@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,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `_broker` reserved-collection seed lifecycle (#479, credential-broker
|
|
3
|
+
* spec §2/§3). Modeled on `with-party/team/sync-credentials.ts`: a
|
|
4
|
+
* `_`-prefixed reserved collection, record id = `brokerId`, encrypted under
|
|
5
|
+
* the collection's own DEK, `requireAdminAccess` role gate (owner/admin
|
|
6
|
+
* only — custodian intentionally excluded, same rationale as
|
|
7
|
+
* `_sync_credentials`: this is transport-auth material, not the
|
|
8
|
+
* custodian's operational scope).
|
|
9
|
+
*
|
|
10
|
+
* Three operations, each a free function taking a {@link BrokerSeedCtx}
|
|
11
|
+
* (the {@link BrokerCtx} threaded through `with-party/broker/active.ts`,
|
|
12
|
+
* augmented there with the `config` its closure was built with):
|
|
13
|
+
*
|
|
14
|
+
* - {@link enrollSeed} — two-phase commit (I9): create-if-absent CAS the
|
|
15
|
+
* seed (I4), then register its derived proof key with the broker host,
|
|
16
|
+
* then (only on a 2xx) mark the record `registered: true`. A seed
|
|
17
|
+
* persisted whose `/enroll` POST failed stays `registered: false` so a
|
|
18
|
+
* later `credentialSource()` fails fast instead of degrading into an
|
|
19
|
+
* opaque `BrokerProofError` (I9/V23).
|
|
20
|
+
* - {@link rotateSeed} — quiesce-then-swap (I5): mint a fresh seed,
|
|
21
|
+
* register-new-first, THEN overwrite the local record — closing the
|
|
22
|
+
* torn-proof window a naive local-overwrite-then-register order would
|
|
23
|
+
* open. The single-flight cache quiesce itself (await in-flight, bump
|
|
24
|
+
* epoch) is the caller's job (`with-party/broker/active.ts`) since the
|
|
25
|
+
* cache lives in that closure, not here.
|
|
26
|
+
* - {@link mintStoreCredentials} — the challenge/response round trip
|
|
27
|
+
* (`/challenge` then `/credentials`) that produces one `StoreCredentials`
|
|
28
|
+
* value; the single-flight cache wrapping it lives in `active.ts`.
|
|
29
|
+
*
|
|
30
|
+
* First-seed creation calls `ensureCollectionDEK`, which throws
|
|
31
|
+
* (`ValidationError`) when the keyring's KEK is `null` (PIN quick-resume /
|
|
32
|
+
* session-restore) — this module intercepts that and re-surfaces it as
|
|
33
|
+
* {@link BrokerEnrolmentError} (R-B8/I3): *enrol* needs the KEK; *use* of an
|
|
34
|
+
* already-enrolled seed needs only the DEK.
|
|
35
|
+
*
|
|
36
|
+
* @module
|
|
37
|
+
*/
|
|
38
|
+
import type { StoreCredentials } from '../../kernel/types.js';
|
|
39
|
+
import type { BrokerSeedCtx } from '../../port/with/broker-strategy.js';
|
|
40
|
+
/** The `_broker/<brokerId>` record payload (spec §3). */
|
|
41
|
+
export interface BrokerSeedRecord {
|
|
42
|
+
readonly brokerId: string;
|
|
43
|
+
/** base64(32 random bytes). */
|
|
44
|
+
readonly seed: string;
|
|
45
|
+
readonly endpoint: string;
|
|
46
|
+
readonly createdAt: string;
|
|
47
|
+
/** `true` only once `/enroll` has returned a 2xx for this seed (I9). */
|
|
48
|
+
readonly registered: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Enrol (idempotent, two-phase commit — I9): create-if-absent the `_broker`
|
|
52
|
+
* seed (I4), derive+register its proof key with the broker host, and only
|
|
53
|
+
* on a 2xx mark the record `registered: true`. Requires owner/admin role
|
|
54
|
+
* and (for first-seed creation only) the KEK.
|
|
55
|
+
*/
|
|
56
|
+
export declare function enrollSeed(ctx: BrokerSeedCtx): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Rotate (quiesce-then-swap — I5): mint a fresh seed, register its proof
|
|
59
|
+
* key with the broker host FIRST, then overwrite the local `_broker`
|
|
60
|
+
* record. The broker host is expected to accept both the old and new
|
|
61
|
+
* registration for a short grace window, so an in-flight proof computed
|
|
62
|
+
* under the old key (from before rotation started) still verifies. Cache
|
|
63
|
+
* quiescing (awaiting any in-flight round-trip, bumping the refresh-cache
|
|
64
|
+
* epoch) is the caller's job — `with-party/broker/active.ts` — since the
|
|
65
|
+
* cache lives in that closure, not here.
|
|
66
|
+
*/
|
|
67
|
+
export declare function rotateSeed(ctx: BrokerSeedCtx): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* The challenge/response round trip: `POST /challenge`, derive+sign the
|
|
70
|
+
* proof from the decrypted seed, `POST /credentials`. One network round
|
|
71
|
+
* trip per call — the single-flight/cache wrapping lives in `active.ts`.
|
|
72
|
+
*
|
|
73
|
+
* Fails fast with {@link BrokerEnrolmentError} if the seed hasn't completed
|
|
74
|
+
* enrolment yet (`registered !== true` — I9/V23), never degrading into an
|
|
75
|
+
* opaque {@link BrokerProofError}.
|
|
76
|
+
*/
|
|
77
|
+
export declare function mintStoreCredentials(ctx: BrokerSeedCtx, profile?: string): Promise<StoreCredentials>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the sovereign-custody (FR-6) capability.
|
|
3
|
+
* Pass to `createNoydb({ custodyStrategy: withCustody() })` to make
|
|
4
|
+
* `db.grantCustodian` / `db.revokeCustodian` (and the `vault.custody.*` facade
|
|
5
|
+
* that delegates to them) plus `vault.custody.liberate()` live. The heavy
|
|
6
|
+
* `liberateVault` ceremony is dynamically imported here, so it is reached only
|
|
7
|
+
* via opt-in; grant/revoke run the host's own gate + keyring engine.
|
|
8
|
+
*/
|
|
9
|
+
import type { CustodyStrategy } from './strategy.js';
|
|
10
|
+
export declare function withCustody(): CustodyStrategy;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public `vault.custody.*` API surface (FR-6).
|
|
3
|
+
*
|
|
4
|
+
* The custody namespace is the vault-instance face of the FR-6 sovereign-custody
|
|
5
|
+
* model — it mirrors `vault.user.*` exactly: a thin delegation shell with NO
|
|
6
|
+
* business logic. The Vault constructs one `CustodyApi` per session, injecting
|
|
7
|
+
* closures that bind the vault name / keyring into the genuinely-core
|
|
8
|
+
* implementations (`Noydb.grantCustodian` / `Noydb.revokeCustodian` and the
|
|
9
|
+
* `liberateVault` ceremony). Each method just forwards to its injected callback.
|
|
10
|
+
*
|
|
11
|
+
* Three operations:
|
|
12
|
+
* - `grantCustodian(opts)` — owner-only: mint a `custodian` who operates the
|
|
13
|
+
* vault fully but can never grant / rotate / sever / extract.
|
|
14
|
+
* - `revokeCustodian(opts)` — owner-only: remove a custodian.
|
|
15
|
+
* - `liberate(opts)` — custodian-only: audited claim of ownership over a
|
|
16
|
+
* sealed-owner (Deed) vault (mints a DISTINCT new owner; ledger-audited).
|
|
17
|
+
*
|
|
18
|
+
* Provisioning a Deed (`createDeedOwner`) is deliberately NOT on this class: it
|
|
19
|
+
* is a store-level operation that mints the vault's first owner, so there is no
|
|
20
|
+
* vault instance (and thus no custody namespace) yet — it stays the exported
|
|
21
|
+
* `team/deed.ts` function.
|
|
22
|
+
*
|
|
23
|
+
* @see docs/superpowers/specs/2026-06-17-fr6-deed-custodian-liberate-design.md
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
import type { GrantOptions, RevokeOptions, FactorProofBundle } from '../../kernel/types.js';
|
|
27
|
+
import type { LiberateOptions, LiberateResult } from './liberate.js';
|
|
28
|
+
/** Options for `vault.custody.grantCustodian` — a grant with the role fixed to `custodian`. */
|
|
29
|
+
export type GrantCustodianOptions = Omit<GrantOptions, 'role'>;
|
|
30
|
+
export { withCustody } from './active.js';
|
|
31
|
+
export { NO_CUSTODY, type CustodyStrategy, type CustodyHost } from './strategy.js';
|
|
32
|
+
export { CustodyNotEnabledError } from '../../kernel/errors.js';
|
|
33
|
+
/**
|
|
34
|
+
* Implementation behind `vault.custody`. Constructed once per Vault. Holds the
|
|
35
|
+
* injected, vault-bound implementations in closure; every method delegates with
|
|
36
|
+
* no added logic (the owner-only / custodian-only / gate checks all live in the
|
|
37
|
+
* injected implementations — `Noydb.grantCustodian` etc. and `liberateVault`).
|
|
38
|
+
*/
|
|
39
|
+
export declare class CustodyApi {
|
|
40
|
+
/** Bound `Noydb.grantCustodian(this.name, ...)` — owner-only, gated. */
|
|
41
|
+
private readonly _grantCustodian;
|
|
42
|
+
/** Bound `Noydb.revokeCustodian(this.name, ...)` — owner-only, gated. */
|
|
43
|
+
private readonly _revokeCustodian;
|
|
44
|
+
/** Bound `liberateVault(this, ...)` — custodian-only audited ownership claim. */
|
|
45
|
+
private readonly _liberate;
|
|
46
|
+
constructor(
|
|
47
|
+
/** Bound `Noydb.grantCustodian(this.name, ...)` — owner-only, gated. */
|
|
48
|
+
_grantCustodian: (options: GrantCustodianOptions, factors?: FactorProofBundle) => Promise<void>,
|
|
49
|
+
/** Bound `Noydb.revokeCustodian(this.name, ...)` — owner-only, gated. */
|
|
50
|
+
_revokeCustodian: (options: RevokeOptions, factors?: FactorProofBundle) => Promise<void>,
|
|
51
|
+
/** Bound `liberateVault(this, ...)` — custodian-only audited ownership claim. */
|
|
52
|
+
_liberate: (opts: LiberateOptions) => Promise<LiberateResult>);
|
|
53
|
+
/**
|
|
54
|
+
* Owner-only: grant the FR-6 `custodian` role. The custodian operates every
|
|
55
|
+
* collection (rw + access) but is provably unable to grant / revoke / rotate /
|
|
56
|
+
* extract-and-sever. Defended in depth (gate + owner-only role check) inside
|
|
57
|
+
* the injected `Noydb.grantCustodian`.
|
|
58
|
+
*/
|
|
59
|
+
grantCustodian(options: GrantCustodianOptions, factors?: FactorProofBundle): Promise<void>;
|
|
60
|
+
/** Owner-only: revoke a custodian. */
|
|
61
|
+
revokeCustodian(options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Custodian-only: the audited claim of ownership over a sealed-owner (Deed)
|
|
64
|
+
* vault. Mints a DISTINCT new owner re-wrapping the incumbent DEKs under a
|
|
65
|
+
* fresh KEK (the latent owner is never impersonated), ledger-audited. See
|
|
66
|
+
* {@link liberateVault}.
|
|
67
|
+
*/
|
|
68
|
+
liberate(opts: LiberateOptions): Promise<LiberateResult>;
|
|
69
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `liberateVault` — the audited claim of ownership over a
|
|
3
|
+
* sealed-owner (Deed) vault. The inverse of withdrawal.
|
|
4
|
+
*
|
|
5
|
+
* A **Deed** vault's owner credential is sealed under a non-firm provider, so
|
|
6
|
+
* the firm-side **custodian** (which holds every collection DEK and operates
|
|
7
|
+
* the vault fully) can never reach `KEK_owner`. Liberation is the ONLY route
|
|
8
|
+
* by which a custodian assumes ownership, and it is deliberately a manual,
|
|
9
|
+
* audited ceremony:
|
|
10
|
+
*
|
|
11
|
+
* 1. gate `'liberate-vault'` (fail-closed)
|
|
12
|
+
* 2. caller MUST be the `custodian` (the de-facto authority holding the DEKs)
|
|
13
|
+
* 3. freeze a PRE-liberation EVIDENCE snapshot (hash-pinned in the ledger) —
|
|
14
|
+
* but PRESERVE the live data for the new owner (see the freeze decision
|
|
15
|
+
* below)
|
|
16
|
+
* 4. mint a NEW owner keyring re-wrapping the incumbent DEKs under the new
|
|
17
|
+
* owner's KEK
|
|
18
|
+
* 5. lifecycle ledger `liberation-claimed:<newOwnerId>:<legalBasis>`
|
|
19
|
+
* 6. stamp the `_meta/deed` marker with `liberatedAt`
|
|
20
|
+
*
|
|
21
|
+
* ## Security: the inalienability floor
|
|
22
|
+
*
|
|
23
|
+
* Liberation **mints a new owner from the custodian's DEKs** — it does NOT
|
|
24
|
+
* unseal the original sealed owner. The old sealed-owner credential is left
|
|
25
|
+
* untouched and ORPHANED (its `_keyring/<id>` file remains, its KEK is still
|
|
26
|
+
* sealed under the non-firm provider), never impersonated. The new owner is a
|
|
27
|
+
* DISTINCT principal under a fresh KEK derived from `newOwnerPassphrase`. This
|
|
28
|
+
* preserves the inalienability floor: the act of claiming ownership is itself
|
|
29
|
+
* auditable and produces a different principal, rather than silently assuming
|
|
30
|
+
* the latent owner's identity.
|
|
31
|
+
*
|
|
32
|
+
* ## Freeze decision: snapshot-only, not freeze-and-delete
|
|
33
|
+
*
|
|
34
|
+
* `freezeAndDeleteClosure` (withdraw-accessible.ts) writes a hash-pinned
|
|
35
|
+
* snapshot and THEN delete-closures the live records — correct for a
|
|
36
|
+
* destructive withdrawal, WRONG for liberation. Liberation transfers
|
|
37
|
+
* operational continuity; it must leave the live data intact for the new
|
|
38
|
+
* owner. We therefore call the snapshot-only core `freezeSnapshotOnly`
|
|
39
|
+
* (factored out of that module; the freeze-AND-delete withdrawal path is
|
|
40
|
+
* unchanged) to pin the evidence snapshot while preserving the records.
|
|
41
|
+
*
|
|
42
|
+
* @module
|
|
43
|
+
*/
|
|
44
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
45
|
+
import type { FactorProofBundle } from '../../kernel/types.js';
|
|
46
|
+
import type { FrozenSnapshotRef } from '../../with-audit/portability/withdraw-accessible.js';
|
|
47
|
+
export interface LiberateOptions {
|
|
48
|
+
/** The id of the new owner principal the custodian mints by claiming ownership. */
|
|
49
|
+
readonly newOwnerId: string;
|
|
50
|
+
/** The passphrase that derives the new owner's KEK (the DEKs are re-wrapped under it). */
|
|
51
|
+
readonly newOwnerPassphrase: string;
|
|
52
|
+
/** Legal/contractual basis recorded in the audit (e.g. 'contractual-handover'). */
|
|
53
|
+
readonly legalBasis: string;
|
|
54
|
+
readonly factors?: FactorProofBundle;
|
|
55
|
+
}
|
|
56
|
+
export interface LiberateResult {
|
|
57
|
+
/** The hash-pinned pre-liberation evidence snapshot. */
|
|
58
|
+
readonly snapshot: FrozenSnapshotRef;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Audited claim of ownership over a sealed-owner vault by its custodian. See
|
|
62
|
+
* the module doc for the full ceremony + security rationale.
|
|
63
|
+
*/
|
|
64
|
+
export declare function liberateVault(vault: Vault, opts: LiberateOptions): Promise<LiberateResult>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sovereign-custody (FR-6) capability strategy — the three on-demand
|
|
3
|
+
* operations the custody surface routes through: minting a custodian
|
|
4
|
+
* (`grantCustodian`), removing one (`revokeCustodian`), and the audited
|
|
5
|
+
* ownership-claim ceremony (`liberate`). The active engine ({@link withCustody})
|
|
6
|
+
* runs the grant/revoke impls the host exposes and dynamically imports the
|
|
7
|
+
* heavy `liberateVault` ceremony (keeping it out of the floor bundle);
|
|
8
|
+
* {@link NO_CUSTODY} throws.
|
|
9
|
+
*
|
|
10
|
+
* `Noydb.grantCustodian` / `Noydb.revokeCustodian` delegate here (passing
|
|
11
|
+
* themselves as the {@link CustodyHost}), and `vault.custody.liberate` delegates
|
|
12
|
+
* here with its {@link Vault}. An un-opted-in caller hits `NO_CUSTODY`'s throw.
|
|
13
|
+
*
|
|
14
|
+
* Note: the lower-level `liberateVault` FREE FUNCTION (exported from
|
|
15
|
+
* `custody/liberate.ts`) stays ungated — it has no `createNoydb` instance to
|
|
16
|
+
* gate against (the same carve-out as the `openSealedRecord` host opener). Only
|
|
17
|
+
* the instance surfaces (`db.grantCustodian` / `db.revokeCustodian` /
|
|
18
|
+
* `vault.custody.*`) are the capability.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
import type { GrantOptions, RevokeOptions, FactorProofBundle, NoydbStore } from '../../kernel/types.js';
|
|
22
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
23
|
+
import type { UnlockedKeyring } from '../team/keyring.js';
|
|
24
|
+
import type { GrantCustodianOptions } from './index.js';
|
|
25
|
+
import type { LiberateOptions, LiberateResult } from './liberate.js';
|
|
26
|
+
/**
|
|
27
|
+
* The grant/revoke engine the strategy runs when opted in — implemented by
|
|
28
|
+
* `Noydb` (`_grantCustodianImpl` / `_revokeCustodianImpl` hold the gate +
|
|
29
|
+
* keyring logic; the public `grantCustodian` / `revokeCustodian` route through
|
|
30
|
+
* the strategy). Since the #267 team split the keyring grant/revoke engines
|
|
31
|
+
* are passed IN by `withCustody()` (statically linked there, not in the
|
|
32
|
+
* kernel) so the single-user floor never carries them.
|
|
33
|
+
*/
|
|
34
|
+
export interface CustodyHost {
|
|
35
|
+
_grantCustodianImpl(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: GrantOptions) => Promise<void>, vault: string, options: GrantCustodianOptions, factors?: FactorProofBundle): Promise<void>;
|
|
36
|
+
_revokeCustodianImpl(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions) => Promise<void>, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export interface CustodyStrategy {
|
|
39
|
+
grantCustodian(host: CustodyHost, vault: string, options: GrantCustodianOptions, factors?: FactorProofBundle): Promise<void>;
|
|
40
|
+
revokeCustodian(host: CustodyHost, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
|
|
41
|
+
liberate(vault: Vault, opts: LiberateOptions): Promise<LiberateResult>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* No-op stub — the floor default. Every custody operation throws
|
|
45
|
+
* {@link CustodyNotEnabledError}; opt in with `custodyStrategy: withCustody()`
|
|
46
|
+
* in createNoydb. @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare const NO_CUSTODY: CustodyStrategy;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-list visibility — barrel export for the
|
|
3
|
+
* `@noy-db/hub/directory` surface.
|
|
4
|
+
*
|
|
5
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md → Directory visibility
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
export type { DirectoryConfig, UserVisibility } from './types.js';
|
|
10
|
+
export { readDirectoryConfig, persistDirectoryConfig, META_COLLECTION, DIRECTORY_RECORD_ID, } from './storage.js';
|
|
11
|
+
export { readUserVisibility, persistUserVisibility, deleteUserVisibility, visibilityRecordId, VISIBILITY_RECORD_PREFIX, } from './visibility.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public envelope service — barrel export.
|
|
3
|
+
*
|
|
4
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
export type { PublicEnvelope, PublicEnvelopeText, PublicEnvelopeSchema, PublicEnvelopeField, ResolvedPublicEnvelopeSchema, } from './types.js';
|
|
9
|
+
export { PUBLIC_ENVELOPE_FIELDS, DEFAULT_PUBLIC_ENVELOPE_SCHEMA, resolveSchema, } from './types.js';
|
|
10
|
+
export type { SetPublicEnvelopeInput } from './schema.js';
|
|
11
|
+
export { validatePublicEnvelopeInput, isPublicEnvelope } from './schema.js';
|
|
12
|
+
export { loadPublicEnvelope, savePublicEnvelope, readPublicEnvelope, resolveLocale, pickLocale, PUBLIC_ENVELOPE_RECORD_ID, } from './storage.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PublicEnvelope, PublicEnvelopeText, ResolvedPublicEnvelopeSchema } from './types.js';
|
|
2
|
+
/** Owner-supplied input — the subset of {@link PublicEnvelope} the owner can set. */
|
|
3
|
+
export interface SetPublicEnvelopeInput {
|
|
4
|
+
readonly name?: PublicEnvelopeText;
|
|
5
|
+
readonly description?: PublicEnvelopeText;
|
|
6
|
+
readonly icon?: string;
|
|
7
|
+
readonly defaultLocale?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Validate an owner-supplied envelope input against the developer's
|
|
11
|
+
* resolved schema. Throws `ValidationError` on the first violation;
|
|
12
|
+
* returns void on success.
|
|
13
|
+
*
|
|
14
|
+
* The validator is deliberately strict: every fail mode is a hard
|
|
15
|
+
* error rather than a silent drop, so the owner finds out immediately
|
|
16
|
+
* which field they oversized rather than discovering a truncated
|
|
17
|
+
* label months later.
|
|
18
|
+
*/
|
|
19
|
+
export declare function validatePublicEnvelopeInput(input: SetPublicEnvelopeInput, schema: ResolvedPublicEnvelopeSchema): void;
|
|
20
|
+
/**
|
|
21
|
+
* Lightweight runtime predicate — used by the bundle header
|
|
22
|
+
* validator to recognise a public envelope without requiring it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isPublicEnvelope(x: unknown): x is PublicEnvelope;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistence helpers for `_meta/public-envelope`. Mirrors the
|
|
3
|
+
* bypass-AES pattern used by `_meta/handle` and `_meta/policy` —
|
|
4
|
+
* the document is plaintext JSON, the envelope's `_iv` field is
|
|
5
|
+
* left empty.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { NoydbStore } from '../../../kernel/types.js';
|
|
10
|
+
import type { PublicEnvelope } from './types.js';
|
|
11
|
+
/** Reserved id for the vault-level public envelope record. */
|
|
12
|
+
export declare const PUBLIC_ENVELOPE_RECORD_ID = "public-envelope";
|
|
13
|
+
/**
|
|
14
|
+
* Read the public envelope from `_meta/public-envelope`. Returns
|
|
15
|
+
* `undefined` when no envelope has been persisted (fresh vault, or
|
|
16
|
+
* a vault written before the feature was enabled). Tolerates
|
|
17
|
+
* corrupted documents — a JSON parse failure surfaces as `undefined`,
|
|
18
|
+
* not a thrown error, mirroring `_meta/handle`'s contract.
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadPublicEnvelope(store: NoydbStore, vault: string): Promise<PublicEnvelope | undefined>;
|
|
21
|
+
/** Persist the public envelope. Idempotent — overwrites any prior write. */
|
|
22
|
+
export declare function savePublicEnvelope(store: NoydbStore, vault: string, envelope: PublicEnvelope): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Public, no-key reader. Plain function, not a method on `Noydb` —
|
|
25
|
+
* the whole point is it works without an authenticated session, so
|
|
26
|
+
* a UI can show "Acme 2026 Tax Records" before unlocking.
|
|
27
|
+
*
|
|
28
|
+
* Resolves any `name` / `description` locale map through the supplied
|
|
29
|
+
* `locale` (when provided). Omitting `locale` returns the raw
|
|
30
|
+
* envelope, which a multilingual picker can render as it pleases.
|
|
31
|
+
*/
|
|
32
|
+
export declare function readPublicEnvelope(store: NoydbStore, vault: string, opts?: {
|
|
33
|
+
readonly locale?: string;
|
|
34
|
+
}): Promise<PublicEnvelope | undefined>;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the locale-map fields (`name`, `description`) of a public
|
|
37
|
+
* envelope to plain strings for the requested locale, falling back
|
|
38
|
+
* through `defaultLocale` and then any available translation.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveLocale(envelope: PublicEnvelope, locale: string): PublicEnvelope;
|
|
43
|
+
/**
|
|
44
|
+
* Resolve a `string | { [locale]: string }` value to a string for a
|
|
45
|
+
* given locale. Exported so the bundle reader can reuse it without
|
|
46
|
+
* duplicating the fallback chain.
|
|
47
|
+
*
|
|
48
|
+
* **Looser than `resolveI18nText`** — the hub's record-field resolver
|
|
49
|
+
* throws `LocaleNotSpecifiedError` when no translation matches, but
|
|
50
|
+
* label semantics deliberately prefer "show *something*" over
|
|
51
|
+
* throwing. The fallback chain is:
|
|
52
|
+
* 1. Exact `locale` match.
|
|
53
|
+
* 2. `defaultLocale` (when supplied on the envelope).
|
|
54
|
+
* 3. First non-empty value in the map.
|
|
55
|
+
* 4. Empty string (only if every translation is empty — pathological).
|
|
56
|
+
*
|
|
57
|
+
* This deviation is documented in `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function pickLocale(value: string | Record<string, string>, locale: string, defaultLocale: string | undefined): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public envelope — owner-curated plaintext metadata, readable
|
|
3
|
+
* before vault unlock or bundle decryption.
|
|
4
|
+
*
|
|
5
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Either a single string (used when the developer's app is
|
|
11
|
+
* single-locale) or a locale → string map for i18n. Mirrors the
|
|
12
|
+
* shape `@noy-db/hub/i18n` already uses for record fields, so the
|
|
13
|
+
* existing `resolveI18nText` resolver applies.
|
|
14
|
+
*/
|
|
15
|
+
export type PublicEnvelopeText = string | Record<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Persisted shape — both `_meta/public-envelope` and the bundle
|
|
18
|
+
* header carry this. The version number is monotonic per vault and
|
|
19
|
+
* helps cache invalidators detect change without hashing the JSON.
|
|
20
|
+
*/
|
|
21
|
+
export interface PublicEnvelope {
|
|
22
|
+
readonly _noydb_public: 1;
|
|
23
|
+
readonly version: number;
|
|
24
|
+
readonly name?: PublicEnvelopeText;
|
|
25
|
+
readonly description?: PublicEnvelopeText;
|
|
26
|
+
/** Inline `data:` URL (`data:image/png;base64,…` or `data:image/svg+xml;base64,…`). */
|
|
27
|
+
readonly icon?: string;
|
|
28
|
+
/** ISO-8601 timestamp; auto-set on first envelope write, immutable thereafter. */
|
|
29
|
+
readonly createdAt?: string;
|
|
30
|
+
/** ISO-8601 timestamp; auto-updated on every `setPublicEnvelope` call. */
|
|
31
|
+
readonly updatedAt?: string;
|
|
32
|
+
/** BCP-47 fallback locale for renderers when the user's locale isn't covered. */
|
|
33
|
+
readonly defaultLocale?: string;
|
|
34
|
+
}
|
|
35
|
+
/** Field names the developer can allow in `PublicEnvelopeSchema.fields`. */
|
|
36
|
+
export declare const PUBLIC_ENVELOPE_FIELDS: readonly ["name", "description", "icon", "createdAt", "updatedAt", "defaultLocale"];
|
|
37
|
+
export type PublicEnvelopeField = (typeof PUBLIC_ENVELOPE_FIELDS)[number];
|
|
38
|
+
/**
|
|
39
|
+
* Build-time schema. The developer enables the feature and bounds
|
|
40
|
+
* what the owner can set. `true` is shorthand for "all defaults" —
|
|
41
|
+
* gives the owner the full field set with the standard caps.
|
|
42
|
+
*/
|
|
43
|
+
export interface PublicEnvelopeSchema {
|
|
44
|
+
/**
|
|
45
|
+
* Allowed field names. Setting `name`/`description`/`icon`/`defaultLocale` is
|
|
46
|
+
* gated on the field being listed here. `createdAt` / `updatedAt` are managed
|
|
47
|
+
* by the hub; including them is a no-op (the owner cannot set them
|
|
48
|
+
* directly). Default: every field above.
|
|
49
|
+
*/
|
|
50
|
+
readonly fields?: ReadonlyArray<PublicEnvelopeField>;
|
|
51
|
+
/**
|
|
52
|
+
* Maximum icon size — measured as the length of the data-URL
|
|
53
|
+
* string. Default 256 KB.
|
|
54
|
+
*/
|
|
55
|
+
readonly maxIconBytes?: number;
|
|
56
|
+
/** Allowed icon MIME types. Default ['image/png', 'image/svg+xml']. */
|
|
57
|
+
readonly iconMimeTypes?: ReadonlyArray<string>;
|
|
58
|
+
/** Maximum length of `name` / `description` per locale. Default 200. */
|
|
59
|
+
readonly maxStringChars?: number;
|
|
60
|
+
}
|
|
61
|
+
/** Default schema values; merged onto every developer-supplied schema. */
|
|
62
|
+
export declare const DEFAULT_PUBLIC_ENVELOPE_SCHEMA: {
|
|
63
|
+
readonly fields: readonly ["name", "description", "icon", "createdAt", "updatedAt", "defaultLocale"];
|
|
64
|
+
readonly maxIconBytes: number;
|
|
65
|
+
readonly iconMimeTypes: readonly ["image/png", "image/svg+xml"];
|
|
66
|
+
readonly maxStringChars: 200;
|
|
67
|
+
};
|
|
68
|
+
/** Resolved schema after merging developer override onto defaults. */
|
|
69
|
+
export interface ResolvedPublicEnvelopeSchema {
|
|
70
|
+
readonly fields: ReadonlyArray<PublicEnvelopeField>;
|
|
71
|
+
readonly maxIconBytes: number;
|
|
72
|
+
readonly iconMimeTypes: ReadonlyArray<string>;
|
|
73
|
+
readonly maxStringChars: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Merge developer schema onto the defaults. The shorthand `true`
|
|
77
|
+
* resolves to the full default schema; an explicit object only
|
|
78
|
+
* overrides the keys it provides.
|
|
79
|
+
*/
|
|
80
|
+
export declare function resolveSchema(schema: true | PublicEnvelopeSchema | undefined): ResolvedPublicEnvelopeSchema | undefined;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistence helpers for the vault-level user-directory toggle
|
|
3
|
+
* (`_meta/directory`). Mirrors the bypass-AES pattern used by
|
|
4
|
+
* `_meta/policy` — the directory document is plain JSON, the
|
|
5
|
+
* envelope's `_iv` field is left empty.
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md → Directory visibility
|
|
8
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/plaintext-bypass.md — every `_iv: ''` write site
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
13
|
+
import type { DirectoryConfig } from './types.js';
|
|
14
|
+
/** Reserved collection name for vault-level metadata documents. */
|
|
15
|
+
export declare const META_COLLECTION = "_meta";
|
|
16
|
+
/** Reserved id for the vault-level directory document. */
|
|
17
|
+
export declare const DIRECTORY_RECORD_ID = "directory";
|
|
18
|
+
/**
|
|
19
|
+
* Read the directory toggle from `_meta/directory`. Returns `undefined`
|
|
20
|
+
* when no document has been persisted — callers treat that as the
|
|
21
|
+
* default-on case (`{ enabled: true }`).
|
|
22
|
+
*
|
|
23
|
+
* Tolerates corrupted documents the same way `_meta/policy` does: a
|
|
24
|
+
* JSON parse failure surfaces as `undefined`, not a thrown error, so a
|
|
25
|
+
* bad write never permanently breaks team enumeration.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readDirectoryConfig(store: NoydbStore, vault: string): Promise<DirectoryConfig | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Persist the directory toggle at `_meta/directory`. Idempotent — call
|
|
30
|
+
* on every `db.setDirectoryEnabled()` invocation. Owner-only at the
|
|
31
|
+
* caller site; this primitive does not check roles.
|
|
32
|
+
*/
|
|
33
|
+
export declare function persistDirectoryConfig(store: NoydbStore, vault: string, config: DirectoryConfig): Promise<void>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type surface for the user-list visibility service.
|
|
3
|
+
*
|
|
4
|
+
* Two complementary flags:
|
|
5
|
+
* - {@link DirectoryConfig} — vault-level "is the directory listing
|
|
6
|
+
* enabled at all?" toggle. Owner-only mutation.
|
|
7
|
+
* - {@link UserVisibility} — per-user "hide me from teammate listings"
|
|
8
|
+
* opt-out. Self-mutation via `vault.user.setMyVisibility`.
|
|
9
|
+
*
|
|
10
|
+
* Both flags live in the existing `_meta` collection as plaintext-bypass
|
|
11
|
+
* sidecars (`_iv: ''`). Neither is a security boundary — the keyring
|
|
12
|
+
* file is still observable at `_keyring/*` and the envelope ciphertext
|
|
13
|
+
* is still at `_users/*` to anyone with direct store read access. The
|
|
14
|
+
* flags exist to keep admin-UI listings tidy, not to hide principals
|
|
15
|
+
* from a determined attacker.
|
|
16
|
+
*
|
|
17
|
+
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md → Directory visibility
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Vault-level directory toggle. Persisted at `_meta/directory`.
|
|
23
|
+
*
|
|
24
|
+
* - `enabled: true` (default when no document exists) — every authenticated
|
|
25
|
+
* caller can enumerate users via `listUsersWithEnvelopes`.
|
|
26
|
+
* - `enabled: false` — only `owner` and `admin` callers can enumerate;
|
|
27
|
+
* anyone else gets {@link import('../../kernel/errors.js').DirectoryDisabledError}.
|
|
28
|
+
*/
|
|
29
|
+
export interface DirectoryConfig {
|
|
30
|
+
readonly enabled: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Per-user visibility flag. Persisted at `_meta/visibility/<keyringId>`.
|
|
34
|
+
*
|
|
35
|
+
* - `hidden: false` (default when no document exists) — the user shows up
|
|
36
|
+
* in `listUsersWithEnvelopes` like any other principal.
|
|
37
|
+
* - `hidden: true` — the user is filtered out of the default listing.
|
|
38
|
+
* `owner`/`admin` callers can still see them by passing
|
|
39
|
+
* `{ includeHidden: true }`.
|
|
40
|
+
*/
|
|
41
|
+
export interface UserVisibility {
|
|
42
|
+
readonly hidden: boolean;
|
|
43
|
+
}
|