@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,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FR-6 — Deed: sealed / hidden-owner provisioning.
|
|
3
|
+
*
|
|
4
|
+
* A **Deed** is a vault owned by a *latent* principal who never
|
|
5
|
+
* authenticates. The owner credential (the random passphrase that
|
|
6
|
+
* derives `KEK_owner`) is minted machine-side and sealed under a
|
|
7
|
+
* **non-firm** {@link SealingKeyProvider} — that sealing boundary is
|
|
8
|
+
* the cryptographic *inalienability anchor*: whoever holds the
|
|
9
|
+
* provider (the client / their KMS) is the only party that can ever
|
|
10
|
+
* re-derive `KEK_owner`. A firm-side custodian operates the vault
|
|
11
|
+
* fully but can never reach the owner key — there is deliberately NO
|
|
12
|
+
* firm-controlled fallback.
|
|
13
|
+
*
|
|
14
|
+
* Provisioning reuses the managed-mode seam:
|
|
15
|
+
* - {@link resolveManagedSecret} mints + seals + persists the random
|
|
16
|
+
* passphrase at `_meta/sealed-passphrase` (and unseals it on every
|
|
17
|
+
* subsequent open through the same provider).
|
|
18
|
+
* - {@link createOwnerKeyring} derives `KEK_owner` from that
|
|
19
|
+
* passphrase and writes the `_keyring/<ownerUserId>` file.
|
|
20
|
+
*
|
|
21
|
+
* On top of that, a Deed writes a `_meta/deed` **marker**. The marker
|
|
22
|
+
* is PLAINTEXT metadata — it records WHO the latent owner is and WHICH
|
|
23
|
+
* sealing boundary protects them, so it must be readable without
|
|
24
|
+
* unlocking the vault (a custodian or auditor inspecting the vault must
|
|
25
|
+
* be able to see "this is a Deed vault, owner = X, sealed under Y"
|
|
26
|
+
* without any key). The marker itself is therefore never sealed; only
|
|
27
|
+
* the owner *credential* is.
|
|
28
|
+
*
|
|
29
|
+
* @module
|
|
30
|
+
*/
|
|
31
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
32
|
+
import type { UnlockedKeyring } from './keyring.js';
|
|
33
|
+
import type { SealingKeyProvider } from './managed-passphrase.js';
|
|
34
|
+
/** Reserved id for the Deed marker under `_meta`. */
|
|
35
|
+
export declare const DEED_RECORD_ID: "deed";
|
|
36
|
+
/**
|
|
37
|
+
* Plaintext metadata recording a vault's latent-owner Deed. Persisted
|
|
38
|
+
* at `_meta/deed`. Readable without unlocking the vault by design — it
|
|
39
|
+
* carries no secret material, only the identity of the latent owner
|
|
40
|
+
* and the sealing boundary that anchors inalienability.
|
|
41
|
+
*/
|
|
42
|
+
export interface DeedMarker {
|
|
43
|
+
/** The latent owner principal — the user id of the `_keyring/<id>` owner file. */
|
|
44
|
+
readonly ownerUserId: string;
|
|
45
|
+
/**
|
|
46
|
+
* The `SealingKeyProvider.id` the owner credential is sealed under.
|
|
47
|
+
* The inalienability anchor: only the holder of this (non-firm)
|
|
48
|
+
* provider can re-derive `KEK_owner`. Audit metadata — never secret.
|
|
49
|
+
*/
|
|
50
|
+
readonly sealedUnder: string;
|
|
51
|
+
/** Always `true` for a Deed — the owner never authenticates interactively. */
|
|
52
|
+
readonly latent: true;
|
|
53
|
+
/** ISO-8601 timestamp the Deed was issued. */
|
|
54
|
+
readonly issuedAt: string;
|
|
55
|
+
/**
|
|
56
|
+
* ISO-8601 timestamp the vault was liberated (a new owner claimed it
|
|
57
|
+
* via the audited Liberate ceremony), if any. Absent until liberation.
|
|
58
|
+
*/
|
|
59
|
+
readonly liberatedAt?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Provision a Deed: a latent owner whose credential is sealed under
|
|
63
|
+
* `sealing` (a NON-firm provider). Mints + seals the owner passphrase
|
|
64
|
+
* via {@link resolveManagedSecret}, derives the owner keyring via
|
|
65
|
+
* {@link createOwnerKeyring}, then writes the plaintext `_meta/deed`
|
|
66
|
+
* marker. Returns the unlocked owner keyring.
|
|
67
|
+
*
|
|
68
|
+
* The returned keyring is the only in-memory window onto `KEK_owner`
|
|
69
|
+
* for this call; the persistent re-entry point is the sealing provider
|
|
70
|
+
* (re-run {@link resolveManagedSecret} with the same provider to
|
|
71
|
+
* re-resolve the passphrase, then {@link createOwnerKeyring}/load to
|
|
72
|
+
* unlock — no interactive passphrase is ever required).
|
|
73
|
+
*
|
|
74
|
+
* There is deliberately no firm-controlled fallback: the marker's
|
|
75
|
+
* `sealedUnder` is the single cryptographic anchor of ownership.
|
|
76
|
+
*/
|
|
77
|
+
export declare function createDeedOwner(store: NoydbStore, vault: string, ownerUserId: string, sealing: SealingKeyProvider): Promise<UnlockedKeyring>;
|
|
78
|
+
/**
|
|
79
|
+
* Read the {@link DeedMarker} from `_meta/deed`, or `null` if the vault
|
|
80
|
+
* has no Deed marker (i.e. it is not a Deed vault). Plaintext read — no
|
|
81
|
+
* unlocking required.
|
|
82
|
+
*/
|
|
83
|
+
export declare function loadDeedMarker(store: NoydbStore, vault: string): Promise<DeedMarker | null>;
|
|
84
|
+
/** Whether `vault` carries a Deed marker (a sealed/latent owner). */
|
|
85
|
+
export declare function isDeedVault(store: NoydbStore, vault: string): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Persist a {@link DeedMarker} at `_meta/deed`. Mirrors
|
|
88
|
+
* `saveSealedPassphrase`'s envelope shape: a standard
|
|
89
|
+
* {@link EncryptedEnvelope} with AES-GCM bypassed (`_iv: ''`), the
|
|
90
|
+
* payload stored as plaintext JSON in `_data`. The marker is metadata,
|
|
91
|
+
* not a secret — sealing it would defeat its purpose (auditors /
|
|
92
|
+
* custodians must read it without a key).
|
|
93
|
+
*
|
|
94
|
+
* @internal — used by `createDeedOwner` and (later) the Liberate
|
|
95
|
+
* ceremony to stamp `liberatedAt`.
|
|
96
|
+
*/
|
|
97
|
+
export declare function saveDeedMarker(store: NoydbStore, vault: string, marker: DeedMarker): Promise<void>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time-boxed cross-tier delegation tokens.
|
|
3
|
+
*
|
|
4
|
+
* A higher-tier user can issue a delegation that grants another user
|
|
5
|
+
* temporary access to records at a specified tier. The delegation is
|
|
6
|
+
* persisted as an encrypted envelope in the reserved `_delegations`
|
|
7
|
+
* collection. The target user's runtime scans this collection on every
|
|
8
|
+
* open and, while `until` is still in the future, merges the
|
|
9
|
+
* unwrapped tier DEKs into their in-memory DEK map.
|
|
10
|
+
*
|
|
11
|
+
* ## Token shape
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* {
|
|
15
|
+
* id, // ULID, also the _delegations record id
|
|
16
|
+
* toUser, // grantee user id
|
|
17
|
+
* fromUser, // grantor user id (owner/admin/higher-tier principal)
|
|
18
|
+
* tier, // tier being delegated
|
|
19
|
+
* collection, // collection name OR null for "every collection"
|
|
20
|
+
* record, // optional specific record id
|
|
21
|
+
* until, // ISO timestamp — token expires at this instant
|
|
22
|
+
* wrappedDek, // base64 AES-KW-wrapped tier DEK, wrapped under target KEK
|
|
23
|
+
* createdAt, // ISO timestamp
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* The ciphertext is stored as a normal noy-db envelope — the
|
|
28
|
+
* `_delegations` collection has its own DEK shared across all vault
|
|
29
|
+
* users, so an operator can enumerate active delegations for audit
|
|
30
|
+
* without being able to *use* them (the `wrappedDek` inside is still
|
|
31
|
+
* keyed to the target user's KEK).
|
|
32
|
+
*
|
|
33
|
+
* ## Revocation
|
|
34
|
+
*
|
|
35
|
+
* Delete the `_delegations/<id>` envelope. The target user's runtime
|
|
36
|
+
* reloads the delegation list at each open and at periodic intervals
|
|
37
|
+
* (tracked by the caller — this module is pure logic).
|
|
38
|
+
*
|
|
39
|
+
* @module
|
|
40
|
+
*/
|
|
41
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
42
|
+
import type { UnlockedKeyring } from './keyring.js';
|
|
43
|
+
import { type EnclaveKey } from '../../kernel/enclave/index.js';
|
|
44
|
+
export declare const DELEGATIONS_COLLECTION = "_delegations";
|
|
45
|
+
/**
|
|
46
|
+
* Durable payload of a delegation token. Encrypted under the vault's
|
|
47
|
+
* `_delegations` DEK; the `wrappedDek` inside is additionally wrapped
|
|
48
|
+
* under the target user's KEK.
|
|
49
|
+
*/
|
|
50
|
+
export interface DelegationToken {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly toUser: string;
|
|
53
|
+
readonly fromUser: string;
|
|
54
|
+
readonly tier: number;
|
|
55
|
+
/** Collection name or `null` for all collections. */
|
|
56
|
+
readonly collection: string | null;
|
|
57
|
+
/** Optional specific record id scope. */
|
|
58
|
+
readonly record?: string;
|
|
59
|
+
readonly until: string;
|
|
60
|
+
readonly wrappedDek: string;
|
|
61
|
+
readonly createdAt: string;
|
|
62
|
+
}
|
|
63
|
+
export interface IssueDelegationOptions {
|
|
64
|
+
readonly toUser: string;
|
|
65
|
+
readonly tier: number;
|
|
66
|
+
readonly collection?: string;
|
|
67
|
+
readonly record?: string;
|
|
68
|
+
readonly until: Date | string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build and persist a delegation token. The caller must hold a tier-N
|
|
72
|
+
* DEK and must have already located the target user's keyring file
|
|
73
|
+
* (so the `wrappedDek` can be re-wrapped against their KEK).
|
|
74
|
+
*/
|
|
75
|
+
export declare function issueDelegation(store: NoydbStore, vault: string, grantor: UnlockedKeyring, targetKek: EnclaveKey | null, delegationsDek: EnclaveKey, opts: IssueDelegationOptions): Promise<DelegationToken>;
|
|
76
|
+
/**
|
|
77
|
+
* Enumerate every live (non-expired) delegation addressed to `toUser`
|
|
78
|
+
* and merge the unwrapped tier DEKs into their keyring. Returns the
|
|
79
|
+
* list of merged delegations so the caller can register per-access
|
|
80
|
+
* audit context.
|
|
81
|
+
*/
|
|
82
|
+
export declare function loadActiveDelegations(store: NoydbStore, vault: string, user: UnlockedKeyring, delegationsDek: EnclaveKey, now?: Date): Promise<DelegationToken[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Revoke a delegation by id — the caller resolves the envelope and
|
|
85
|
+
* issues a `delete`. Provided as a stable helper so the naming is
|
|
86
|
+
* symmetric to `issueDelegation`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function revokeDelegation(store: NoydbStore, vault: string, id: string): Promise<void>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub/team` — subpath export for multi-user / sync / keyring.
|
|
3
|
+
*
|
|
4
|
+
* Solo-user apps that never call `grant()`, `db.push()`, or open a
|
|
5
|
+
* sync target can exclude this subpath entirely — bundle savings
|
|
6
|
+
* estimated at ~4-6 KB.
|
|
7
|
+
*
|
|
8
|
+
* The main `@noy-db/hub` entry still re-exports every symbol for
|
|
9
|
+
* backward compatibility — direct subpath import is purely a
|
|
10
|
+
* tree-shaking opt-in.
|
|
11
|
+
*
|
|
12
|
+
* Named re-exports (not `export *`) so tsup keeps the barrel
|
|
13
|
+
* populated even with `sideEffects: false`.
|
|
14
|
+
*/
|
|
15
|
+
export { withTeam } from './active.js';
|
|
16
|
+
export { NO_TEAM, type TeamStrategy } from './strategy.js';
|
|
17
|
+
export { TeamNotEnabledError } from '../../kernel/errors.js';
|
|
18
|
+
export type { UnlockedKeyring } from './keyring.js';
|
|
19
|
+
export { loadKeyring, createOwnerKeyring, grant, revoke, changeSecret, listUsers, listUsersWithEnvelopes, ensureCollectionDEK, persistKeyring, updateKeyringIdentity, buildRecipientKeyringFile, } from './keyring.js';
|
|
20
|
+
export type { BundleRecipient, ListUsersOptions } from './keyring.js';
|
|
21
|
+
export { enrollAuthenticator, removeAuthenticator, updateAuthenticator, findAuthenticator, } from './authenticators.js';
|
|
22
|
+
export type { EnrollAuthenticatorOptions, EnrollAuthenticatorWrappingKEKOptions, EnrollAuthenticatorWrappingDEKsOptions, UpdateAuthenticatorOptions, } from './authenticators.js';
|
|
23
|
+
export { rotatePassphrase, recoverPassphrase, } from './rotate-recover.js';
|
|
24
|
+
export type { RotatePassphraseInput, RecoverPassphraseInput, RecoverPassphraseResult, RecoveryProof, SlotRewrapContext, SlotRewrapCeremony, } from './rotate-recover.js';
|
|
25
|
+
export { recoverUser } from './peer-recover.js';
|
|
26
|
+
export type { RecoverUserOptions } from './peer-recover.js';
|
|
27
|
+
export { mintPaperRecoveryEntry, unwrapDeksFromPaperEntry, loadPaperRecoveryEntries, savePaperRecoveryEntries, burnPaperRecoveryEntry, } from './recovery.js';
|
|
28
|
+
export type { PaperRecoveryEntry } from './recovery.js';
|
|
29
|
+
export { mintWrappedDeksBlob, unwrapDeksFromBlob, } from './wrapped-deks.js';
|
|
30
|
+
export type { WrappedDeksBlob } from './wrapped-deks.js';
|
|
31
|
+
export { writeMagicLinkGrant, readMagicLinkGrantRecord, listMagicLinkGrants, unwrapMagicLinkGrant, revokeMagicLinkGrant, deriveMagicLinkContentKey, magicLinkGrantRecordId, isMagicLinkGrantExpired, } from './magic-link-grant.js';
|
|
32
|
+
export { hasExportCapability, evaluateExportCapability, } from './keyring.js';
|
|
33
|
+
export { hasImportCapability, evaluateImportCapability, } from './keyring.js';
|
|
34
|
+
export { SyncEngine } from './sync.js';
|
|
35
|
+
export { SyncTransaction } from './sync-transaction.js';
|
|
36
|
+
export { PresenceHandle } from './presence.js';
|
|
37
|
+
export { putCredential, getCredential, deleteCredential, listCredentials, credentialStatus, SYNC_CREDENTIALS_COLLECTION, } from './sync-credentials.js';
|
|
38
|
+
export type { SyncCredential } from './sync-credentials.js';
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import type { NoydbStore, KeyringFile, KeyringAuthenticator, Role, Permissions, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, ExportCapability, ExportFormat, ImportCapability, VaultPolicyOnDisk, UserEnvelope as UserEnvelopeReader } from '../../kernel/types.js';
|
|
2
|
+
import { type EnclaveKey } from '../../kernel/enclave/index.js';
|
|
3
|
+
import { type PassphrasePolicy } from '../../kernel/validation.js';
|
|
4
|
+
/** In-memory representation of an unlocked keyring. */
|
|
5
|
+
export interface UnlockedKeyring {
|
|
6
|
+
readonly userId: string;
|
|
7
|
+
readonly displayName: string;
|
|
8
|
+
readonly role: Role;
|
|
9
|
+
readonly permissions: Permissions;
|
|
10
|
+
readonly deks: Map<string, EnclaveKey>;
|
|
11
|
+
/**
|
|
12
|
+
* The KEK, when this keyring was unlocked via tier 1 (passphrase) or
|
|
13
|
+
* a wrap-KEK tier-2 method (WebAuthn / OIDC). `null` when the
|
|
14
|
+
* keyring was opened via:
|
|
15
|
+
*
|
|
16
|
+
* - Unencrypted mode (no KEK exists)
|
|
17
|
+
* - Tier-3 PIN quick-resume (`@noy-db/on-pin`)
|
|
18
|
+
* - Wrap-DEKs tier-2 unlock (`@noy-db/on-password`'s
|
|
19
|
+
* `verifyPasswordSlot`)
|
|
20
|
+
* - Session-state restore (`session/session.ts`)
|
|
21
|
+
* - Dev-unlock fixture (`session/dev-unlock.ts`)
|
|
22
|
+
*
|
|
23
|
+
* Consumers performing tier-1 operations that need the KEK
|
|
24
|
+
* (DEK rewrap, keyring persist, delegation issue/unwrap) must
|
|
25
|
+
* null-check and throw a clear error if absent — re-authenticate
|
|
26
|
+
* at tier 1 first to recover the KEK.
|
|
27
|
+
*
|
|
28
|
+
* Tightened from `EnclaveKey` to `EnclaveKey | null`; the runtime
|
|
29
|
+
* contract has always allowed null, the type now matches reality.
|
|
30
|
+
*/
|
|
31
|
+
readonly kek: EnclaveKey | null;
|
|
32
|
+
readonly salt: Uint8Array;
|
|
33
|
+
/**
|
|
34
|
+
* Debug-plaintext layout flag. Set only on the plaintext keyring created
|
|
35
|
+
* in `encrypt: false` + `debugPlaintext: true` mode — it lives here
|
|
36
|
+
* because its lifecycle is identical to the plaintext keyring's (no
|
|
37
|
+
* encrypted vault ever has it, so this never widens the encrypted surface).
|
|
38
|
+
* When true, user-collection records are written with their fields inlined
|
|
39
|
+
* beside the envelope metadata (`_debug: 1`) so native store tooling can
|
|
40
|
+
* read them without unwrapping `_data`.
|
|
41
|
+
*/
|
|
42
|
+
readonly debugPlaintext?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* `@noy-db/as-*` export capability. Absent when the
|
|
45
|
+
* keyring was written before this RFC landed — role-based defaults
|
|
46
|
+
* apply via `hasExportCapability`.
|
|
47
|
+
*/
|
|
48
|
+
readonly exportCapability?: ExportCapability;
|
|
49
|
+
/**
|
|
50
|
+
* `@noy-db/as-*` import capability. Absent when the
|
|
51
|
+
* keyring was written before the import-capability extension
|
|
52
|
+
* landed — default-closed semantics
|
|
53
|
+
* apply via `hasImportCapability` (no plaintext format granted, no
|
|
54
|
+
* bundle import granted, regardless of role).
|
|
55
|
+
*/
|
|
56
|
+
readonly importCapability?: ImportCapability;
|
|
57
|
+
/**
|
|
58
|
+
* Tier-2 authenticator slots — readonly snapshot loaded from the
|
|
59
|
+
* keyring file. Mutations go through `enrollAuthenticator` /
|
|
60
|
+
* `removeAuthenticator`, which write back via
|
|
61
|
+
* `persistKeyring`. Always defined; loads with an empty array for
|
|
62
|
+
* keyrings written before the multi-slot extension landed.
|
|
63
|
+
*/
|
|
64
|
+
readonly authenticators: readonly KeyringAuthenticator[];
|
|
65
|
+
/**
|
|
66
|
+
* Reserved per-keyring policy override (forward-compat for Option C
|
|
67
|
+
* — see {@link VaultPolicyOnDisk}). v1.0 round-trips this field but
|
|
68
|
+
* never enforces it; the gate engine uses `_meta/policy` only.
|
|
69
|
+
*/
|
|
70
|
+
readonly policy?: VaultPolicyOnDisk;
|
|
71
|
+
}
|
|
72
|
+
/** Mint a fresh wrapped-canary string. Deterministic for a given KEK. */
|
|
73
|
+
export declare function mintKeyringCanary(kek: EnclaveKey): Promise<string>;
|
|
74
|
+
/** Load and unlock a user's keyring for a vault. */
|
|
75
|
+
export declare function loadKeyring(adapter: NoydbStore, vault: string, userId: string, passphrase: string): Promise<UnlockedKeyring>;
|
|
76
|
+
/**
|
|
77
|
+
* Open-policy pre-gate: decide create-vs-fail-closed **before** any
|
|
78
|
+
* vault write. `openVault` must not self-provision an owner keyring into a
|
|
79
|
+
* vault held by other principals; create-on-open is allowed only for a
|
|
80
|
+
* genuinely-new vault (no `_keyring/*` at all). Capability-free — one
|
|
81
|
+
* `store.list`. Returns when the open may proceed (the caller is a member, or
|
|
82
|
+
* the vault is genuinely-new and `create` is allowed, in which case the caller
|
|
83
|
+
* falls through to the normal `createOwnerKeyring` path); throws `NoAccessError`
|
|
84
|
+
* otherwise. Placed before managed-passphrase secret resolution (which persists
|
|
85
|
+
* on first open), so a fail-closed open writes nothing.
|
|
86
|
+
*/
|
|
87
|
+
export declare function assertKeyringOpenAllowed(store: NoydbStore, vault: string, userId: string, create: boolean): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Create the initial owner keyring for a new vault.
|
|
90
|
+
*
|
|
91
|
+
* Pass `{ validate: true }` (or a `PassphrasePolicy`) to gate creation
|
|
92
|
+
* on the phrase-format strength rules — `Noydb` threads this from
|
|
93
|
+
* `NoydbOptions.validatePassphrase`. Direct callers (CLI, scripts,
|
|
94
|
+
* test fixtures) opt in explicitly.
|
|
95
|
+
*/
|
|
96
|
+
export declare function createOwnerKeyring(adapter: NoydbStore, vault: string, userId: string, passphrase: string, passphraseOpts?: PassphrasePolicy & {
|
|
97
|
+
validate?: boolean;
|
|
98
|
+
allowWeakPassphrase?: boolean;
|
|
99
|
+
}): Promise<UnlockedKeyring>;
|
|
100
|
+
/** Grant access to a new user. Caller must have grant privilege. */
|
|
101
|
+
export declare function grant(adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: GrantOptions): Promise<void>;
|
|
102
|
+
/** Revoke a user's access. Optionally rotate keys for affected collections. */
|
|
103
|
+
export declare function revoke(adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Mutate `role`, `displayName`, and/or `permissions` on an existing
|
|
106
|
+
* keyring. Pure plaintext-header rewrite — no DEK rewrap, no KEK
|
|
107
|
+
* required, no authenticator slots touched. Tier-2 enrollments and
|
|
108
|
+
* recovery codes survive the operation.
|
|
109
|
+
*
|
|
110
|
+
* Role-elevation guard: BOTH the old role AND the new role must
|
|
111
|
+
* satisfy `canUpdateRole(callerRole, _)`. This blocks the two
|
|
112
|
+
* privilege-escalation shapes:
|
|
113
|
+
* - admin elevates someone (or themselves) to owner
|
|
114
|
+
* - admin demotes an owner to a role they then control
|
|
115
|
+
*
|
|
116
|
+
* Owner is always allowed. Admin manages admin / operator / viewer /
|
|
117
|
+
* client laterally.
|
|
118
|
+
*
|
|
119
|
+
* Identity preserved: same userId, same DEK wrappings. Last-write-wins
|
|
120
|
+
* through the standard keyring put (same concurrency story as `grant`
|
|
121
|
+
* and `revoke`).
|
|
122
|
+
*
|
|
123
|
+
* @throws `NoAccessError` when no keyring exists for the target.
|
|
124
|
+
* @throws `PermissionDeniedError` when the role hierarchy rejects.
|
|
125
|
+
* @throws `ValidationError` when the diff is empty (nothing to update).
|
|
126
|
+
*
|
|
127
|
+
*/
|
|
128
|
+
export declare function updateKeyringIdentity(adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: UpdateUserOptions): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Rotate DEKs for specified collections:
|
|
131
|
+
* 1. Generate new DEKs
|
|
132
|
+
* 2. Re-encrypt all records in affected collections
|
|
133
|
+
* 3. Re-wrap new DEKs for all remaining users
|
|
134
|
+
*/
|
|
135
|
+
export declare function rotateKeys(adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, collections: string[]): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Change the user's passphrase. Re-wraps every DEK under the new KEK.
|
|
138
|
+
*
|
|
139
|
+
* Validates the new passphrase against the strength rules unless
|
|
140
|
+
* `allowWeakPassphrase: true` is passed. Mirrors `rotatePassphrase`'s
|
|
141
|
+
* default-on validation contract.
|
|
142
|
+
*
|
|
143
|
+
* `db.rotatePassphrase()` adds a `checkGate('rotate-passphrase')` step
|
|
144
|
+
* on top of this primitive and additionally requires the OLD passphrase
|
|
145
|
+
* for re-derivation; `changeSecret` reuses the cached unlocked KEK so
|
|
146
|
+
* the OLD passphrase is not retyped.
|
|
147
|
+
*/
|
|
148
|
+
export declare function changeSecret(adapter: NoydbStore, vault: string, keyring: UnlockedKeyring, newPassphrase: string, passphraseOpts?: PassphrasePolicy & {
|
|
149
|
+
allowWeakPassphrase?: boolean;
|
|
150
|
+
}): Promise<UnlockedKeyring>;
|
|
151
|
+
/**
|
|
152
|
+
* Recipient slot in a re-keyed `.noydb` bundle. Each slot becomes its
|
|
153
|
+
* own keyring file inside the bundle, sealed with its own passphrase.
|
|
154
|
+
* Same role/permission semantics as `db.grant()` but no adapter side
|
|
155
|
+
* effect — the slot only exists inside the bundle bytes.
|
|
156
|
+
*
|
|
157
|
+
* @public
|
|
158
|
+
*/
|
|
159
|
+
export interface BundleRecipient {
|
|
160
|
+
/** User id stamped onto the keyring file in the bundle. */
|
|
161
|
+
readonly id: string;
|
|
162
|
+
/** Optional display name. Defaults to `id`. */
|
|
163
|
+
readonly displayName?: string;
|
|
164
|
+
/** Passphrase the recipient will type to unlock. */
|
|
165
|
+
readonly passphrase: string;
|
|
166
|
+
/** Role on the destination vault. Defaults to `'viewer'`. */
|
|
167
|
+
readonly role?: Role;
|
|
168
|
+
/**
|
|
169
|
+
* Per-collection permissions. When omitted, role defaults apply.
|
|
170
|
+
* Restricting permissions here ALSO restricts which DEKs are wrapped
|
|
171
|
+
* into the slot — a slot with `{ invoices: 'ro' }` cannot decrypt
|
|
172
|
+
* other collections even though their ciphertext sits in the bundle.
|
|
173
|
+
*/
|
|
174
|
+
readonly permissions?: Permissions;
|
|
175
|
+
/**
|
|
176
|
+
* Optional `as-*` export grants on the destination vault.
|
|
177
|
+
* Mirrors the `exportCapability` field on a live keyring.
|
|
178
|
+
*/
|
|
179
|
+
readonly exportCapability?: ExportCapability;
|
|
180
|
+
/**
|
|
181
|
+
* Optional `as-*` import grants on the destination vault.
|
|
182
|
+
* Mirrors the `importCapability` field on a live keyring.
|
|
183
|
+
* Default-closed: no plaintext format granted, no bundle import.
|
|
184
|
+
*/
|
|
185
|
+
readonly importCapability?: ImportCapability;
|
|
186
|
+
/**
|
|
187
|
+
* Optional bundle-slot expiry. ISO-8601 timestamp; past the
|
|
188
|
+
* cutoff this slot's keyring refuses to load with
|
|
189
|
+
* `KeyringExpiredError`. Time-boxed audit access pattern: "this
|
|
190
|
+
* slot works for 30 days then becomes opaque to its holder."
|
|
191
|
+
*/
|
|
192
|
+
readonly expiresAt?: string;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Build a `KeyringFile` for one bundle recipient, given the source
|
|
196
|
+
* vault's unwrapped DEKs. Mirrors `grant()` minus the adapter write —
|
|
197
|
+
* the produced file is meant to be embedded in the bundle's
|
|
198
|
+
* `keyrings` map, never persisted to the source vault.
|
|
199
|
+
*
|
|
200
|
+
* Privilege-escalation check still runs: every DEK wrapped into the
|
|
201
|
+
* recipient's keyring must come from the source's own DEK set.
|
|
202
|
+
*
|
|
203
|
+
* @internal
|
|
204
|
+
*/
|
|
205
|
+
export declare function buildRecipientKeyringFile(callerKeyring: UnlockedKeyring, recipient: BundleRecipient): Promise<KeyringFile>;
|
|
206
|
+
/** List all users with access to a vault. */
|
|
207
|
+
export declare function listUsers(adapter: NoydbStore, vault: string): Promise<UserInfo[]>;
|
|
208
|
+
/**
|
|
209
|
+
* Optional filter knobs for {@link listUsersWithEnvelopes}.
|
|
210
|
+
*
|
|
211
|
+
* - `includeHidden` — when true, principals with `_meta/visibility/<id>`
|
|
212
|
+
* set to `{ hidden: true }` are returned alongside everyone else.
|
|
213
|
+
* Requires `owner` or `admin` callerRole; lower roles get
|
|
214
|
+
* {@link import('../../kernel/errors.js').PermissionDeniedError}.
|
|
215
|
+
*/
|
|
216
|
+
export interface ListUsersOptions {
|
|
217
|
+
readonly includeHidden?: boolean;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Joined enumeration: every keyring + its `_users/<keyringId>`
|
|
221
|
+
* envelope side by side. Convenience for admin UIs that want to
|
|
222
|
+
* render team-member lists with profile data ("Bob — operator —
|
|
223
|
+
* 'Bob the Auditor' avatar X locale fr-FR") in a single pass.
|
|
224
|
+
*
|
|
225
|
+
* `userEnvelopeDek` is the vault's `_users` collection DEK
|
|
226
|
+
* (`vault.getDEK('_users')`); used to decrypt every envelope.
|
|
227
|
+
*
|
|
228
|
+
* `callerRole` drives the directory-visibility checks:
|
|
229
|
+
*
|
|
230
|
+
* - When the vault's `_meta/directory` document has `enabled: false`,
|
|
231
|
+
* only `owner` and `admin` callers may enumerate; anyone else gets
|
|
232
|
+
* {@link import('../../kernel/errors.js').DirectoryDisabledError}.
|
|
233
|
+
* - Principals with `_meta/visibility/<id>` set to `{ hidden: true }`
|
|
234
|
+
* are filtered out by default. `owner`/`admin` callers can pass
|
|
235
|
+
* `{ includeHidden: true }` to see them; lower roles passing that
|
|
236
|
+
* option get `PermissionDeniedError`.
|
|
237
|
+
*
|
|
238
|
+
* Honest caveat: these filters are a UX hint, not a security
|
|
239
|
+
* boundary. The keyring file is still listed at `_keyring/*` and the
|
|
240
|
+
* envelope ciphertext at `_users/*`. A caller with direct store access
|
|
241
|
+
* — or a caller that calls this function with `callerRole: 'owner'`
|
|
242
|
+
* unconditionally — sees every principal. The protection is only as
|
|
243
|
+
* strong as the role the calling layer passes in. The hub-level wrapper
|
|
244
|
+
* on `Vault` sources `callerRole` from the unlocked keyring's `role`
|
|
245
|
+
* field, which is signed-by-construction (it lives in the user's own
|
|
246
|
+
* keyring file). See `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md` →
|
|
247
|
+
* "Directory visibility".
|
|
248
|
+
*
|
|
249
|
+
* Principals without a persisted envelope (legacy keyrings predating
|
|
250
|
+
* the user-envelope feature) come back with `envelope: null`. The
|
|
251
|
+
* caller chooses how to render — usually "fall back to keyring's
|
|
252
|
+
* `displayName`".
|
|
253
|
+
*
|
|
254
|
+
* Order matches `listUsers()` (store-defined; sort if you need a
|
|
255
|
+
* stable display order).
|
|
256
|
+
*/
|
|
257
|
+
export declare function listUsersWithEnvelopes<T = unknown>(adapter: NoydbStore, vault: string, userEnvelopeDek: EnclaveKey, callerRole: Role, options?: ListUsersOptions): Promise<Array<{
|
|
258
|
+
user: UserInfo;
|
|
259
|
+
envelope: UserEnvelopeReader<T> | null;
|
|
260
|
+
}>>;
|
|
261
|
+
/** Ensure a DEK exists for a collection. Generates one if new. */
|
|
262
|
+
export declare function ensureCollectionDEK(adapter: NoydbStore, vault: string, keyring: UnlockedKeyring): Promise<(collectionName: string) => Promise<EnclaveKey>>;
|
|
263
|
+
/** Check if a user has write permission for a collection. */
|
|
264
|
+
export declare function hasWritePermission(keyring: UnlockedKeyring, collectionName: string): boolean;
|
|
265
|
+
/** Check if a user has any access to a collection. */
|
|
266
|
+
export declare function hasAccess(keyring: UnlockedKeyring, collectionName: string): boolean;
|
|
267
|
+
/** Persist a keyring file to the adapter. */
|
|
268
|
+
export declare function persistKeyring(adapter: NoydbStore, vault: string, keyring: UnlockedKeyring): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Check whether a keyring is authorised for a given `@noy-db/as-*`
|
|
271
|
+
* export tier.
|
|
272
|
+
*
|
|
273
|
+
* - `tier: 'plaintext'` — returns true iff `exportCapability.plaintext`
|
|
274
|
+
* contains the requested `format` or the `'*'` wildcard. Default for
|
|
275
|
+
* every role is empty — no grant, no plaintext export.
|
|
276
|
+
* - `tier: 'bundle'` — returns `exportCapability.bundle` if present, or
|
|
277
|
+
* the role-based default otherwise (owner/admin → true, else false).
|
|
278
|
+
*
|
|
279
|
+
* `@noy-db/as-*` packages MUST call this before invoking the underlying
|
|
280
|
+
* export primitive. Rogue forks that skip the check are caught by code
|
|
281
|
+
* review — the single-entry-point contract is a convention, not a
|
|
282
|
+
* runtime invariant. Vault-level gated wrappers
|
|
283
|
+
* (`vault.exportRecords` / `exportBlobs` / `writeBundle`) will land in a
|
|
284
|
+
* follow-up PR to enforce at the primitive level.
|
|
285
|
+
*/
|
|
286
|
+
export declare function hasExportCapability(keyring: UnlockedKeyring, tier: 'plaintext', format: ExportFormat): boolean;
|
|
287
|
+
export declare function hasExportCapability(keyring: UnlockedKeyring, tier: 'bundle'): boolean;
|
|
288
|
+
/**
|
|
289
|
+
* Same-shape inspector for an `ExportCapability` value that isn't yet
|
|
290
|
+
* attached to a keyring (e.g. for previewing a grant before applying).
|
|
291
|
+
* Role must be supplied separately so bundle defaults can be computed.
|
|
292
|
+
*/
|
|
293
|
+
export declare function evaluateExportCapability(capability: ExportCapability | undefined, role: Role, tier: 'plaintext', format: ExportFormat): boolean;
|
|
294
|
+
export declare function evaluateExportCapability(capability: ExportCapability | undefined, role: Role, tier: 'bundle'): boolean;
|
|
295
|
+
/**
|
|
296
|
+
* Check whether a keyring is authorised for a given `@noy-db/as-*`
|
|
297
|
+
* import tier (issue ).
|
|
298
|
+
*
|
|
299
|
+
* - `tier: 'plaintext'` — true iff `importCapability.plaintext`
|
|
300
|
+
* contains the requested `format` or the `'*'` wildcard.
|
|
301
|
+
* - `tier: 'bundle'` — true iff `importCapability.bundle === true`.
|
|
302
|
+
*
|
|
303
|
+
* **Default-closed for every role on every dimension** — including
|
|
304
|
+
* owner. Import is more dangerous than export (corrupts vs leaks), so
|
|
305
|
+
* the policy refuses to assume intent. Owners must positively grant
|
|
306
|
+
* the capability via `vault.grant({ importCapability: ... })`.
|
|
307
|
+
*/
|
|
308
|
+
export declare function hasImportCapability(keyring: UnlockedKeyring, tier: 'plaintext', format: ExportFormat): boolean;
|
|
309
|
+
export declare function hasImportCapability(keyring: UnlockedKeyring, tier: 'bundle'): boolean;
|
|
310
|
+
/**
|
|
311
|
+
* Same-shape inspector for an `ImportCapability` value that isn't yet
|
|
312
|
+
* attached to a keyring (e.g. previewing a grant before applying).
|
|
313
|
+
* `role` is accepted for symmetry with `evaluateExportCapability` even
|
|
314
|
+
* though the import policy ignores it — bundle defaults are
|
|
315
|
+
* role-agnostic and closed.
|
|
316
|
+
*/
|
|
317
|
+
export declare function evaluateImportCapability(capability: ImportCapability | undefined, role: Role, tier: 'plaintext', format: ExportFormat): boolean;
|
|
318
|
+
export declare function evaluateImportCapability(capability: ImportCapability | undefined, role: Role, tier: 'bundle'): boolean;
|