@noy-db/hub 0.3.0-pre.9 → 0.4.0-pre.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregate/index.js +5 -5
- package/dist/api-3A3S4SHH.js +20 -0
- package/dist/as/index.js +11 -11
- package/dist/attestation/index.js +18 -18
- package/dist/backup-YPUEKIJC.js +242 -0
- package/dist/backup-YPUEKIJC.js.map +1 -0
- package/dist/blobs/index.js +13 -11
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +25 -22
- package/dist/bundle/index.js.map +1 -1
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +31 -32
- package/dist/chunk-2PCAVW2I.js +50 -0
- package/dist/chunk-3ELCWU56.js +344 -0
- package/dist/chunk-3ELCWU56.js.map +1 -0
- package/dist/chunk-4GPE63GU.js +111 -0
- package/dist/chunk-4GPE63GU.js.map +1 -0
- package/dist/chunk-554KLAAN.js +778 -0
- package/dist/chunk-5PFOMHTB.js +135 -0
- package/dist/chunk-5WZXVULX.js +209 -0
- package/dist/chunk-6HPG2YNX.js +38 -0
- package/dist/chunk-6HY2X62D.js +69 -0
- package/dist/chunk-6NQMXTYC.js +123 -0
- package/dist/chunk-6XE5TMPR.js +367 -0
- package/dist/chunk-A4FXFAKF.js +45 -0
- package/dist/chunk-A5BDDEXK.js +1537 -0
- package/dist/chunk-A5BDDEXK.js.map +1 -0
- package/dist/chunk-ANATMTOA.js +205 -0
- package/dist/chunk-BOKIKJJB.js +94 -0
- package/dist/chunk-CJ5KKU6X.js +49 -0
- package/dist/chunk-CZTLE22N.js +381 -0
- package/dist/chunk-CZTLE22N.js.map +1 -0
- package/dist/chunk-DDHM2TLX.js +164 -0
- package/dist/chunk-DDHM2TLX.js.map +1 -0
- package/dist/chunk-DRWBEDYO.js +37 -0
- package/dist/chunk-DRWBEDYO.js.map +1 -0
- package/dist/chunk-DSBQODMZ.js +202 -0
- package/dist/chunk-EO43ANYJ.js +382 -0
- package/dist/chunk-EWPOHMN2.js +255 -0
- package/dist/chunk-FH52K7EG.js +50 -0
- package/dist/chunk-FH52K7EG.js.map +1 -0
- package/dist/chunk-FXZDAV62.js +826 -0
- package/dist/chunk-FXZDAV62.js.map +1 -0
- package/dist/chunk-GDG5VVYG.js +167 -0
- package/dist/chunk-GDG5VVYG.js.map +1 -0
- package/dist/chunk-GULTLPFB.js +621 -0
- package/dist/chunk-GULTLPFB.js.map +1 -0
- package/dist/chunk-GWKAVKHI.js +71 -0
- package/dist/chunk-H2KSZMIX.js +164 -0
- package/dist/chunk-HOONYZY2.js +404 -0
- package/dist/chunk-HQBM64EE.js +957 -0
- package/dist/chunk-HQBM64EE.js.map +1 -0
- package/dist/chunk-IAO54J4R.js +333 -0
- package/dist/chunk-IAO54J4R.js.map +1 -0
- package/dist/chunk-IFJTPAQQ.js +150 -0
- package/dist/chunk-IFJTPAQQ.js.map +1 -0
- package/dist/chunk-IGJCYUT5.js +99 -0
- package/dist/chunk-IGJCYUT5.js.map +1 -0
- package/dist/chunk-IK43HLDQ.js +739 -0
- package/dist/chunk-IK43HLDQ.js.map +1 -0
- package/dist/chunk-ISMV2QVG.js +54 -0
- package/dist/chunk-IY23KFNZ.js +95 -0
- package/dist/chunk-JBBSYJHP.js +129 -0
- package/dist/chunk-JFCV5QIK.js +117 -0
- package/dist/chunk-JK733I5V.js +23 -0
- package/dist/chunk-JK733I5V.js.map +1 -0
- package/dist/chunk-JRBNCUNT.js +371 -0
- package/dist/chunk-JRBNCUNT.js.map +1 -0
- package/dist/chunk-JVBO4SZL.js +29 -0
- package/dist/chunk-JVBO4SZL.js.map +1 -0
- package/dist/chunk-KPZS5QAQ.js +151 -0
- package/dist/chunk-KPZS5QAQ.js.map +1 -0
- package/dist/chunk-KS6SAVCZ.js +247 -0
- package/dist/chunk-KS6SAVCZ.js.map +1 -0
- package/dist/chunk-LVGTA624.js +480 -0
- package/dist/chunk-LVGTA624.js.map +1 -0
- package/dist/chunk-M75ZZHSR.js +30 -0
- package/dist/chunk-MT62YSPZ.js +392 -0
- package/dist/chunk-MT62YSPZ.js.map +1 -0
- package/dist/chunk-N6WF5PKC.js +29 -0
- package/dist/chunk-NCCBLYEB.js +150 -0
- package/dist/chunk-OCVM6KDH.js +99 -0
- package/dist/chunk-ONTBCHCP.js +80 -0
- package/dist/chunk-PK6JIDQ4.js +14425 -0
- package/dist/chunk-PK6JIDQ4.js.map +1 -0
- package/dist/chunk-QDPZWTN2.js +74 -0
- package/dist/chunk-QDPZWTN2.js.map +1 -0
- package/dist/chunk-R3BLCFD2.js +130 -0
- package/dist/chunk-RA5VTXXG.js +173 -0
- package/dist/chunk-RA5VTXXG.js.map +1 -0
- package/dist/chunk-RDXW3OBQ.js +21 -0
- package/dist/chunk-RFI7GGFO.js +230 -0
- package/dist/chunk-RJ6K6K5M.js +36 -0
- package/dist/chunk-RJ6K6K5M.js.map +1 -0
- package/dist/chunk-RNG4VRP4.js +75 -0
- package/dist/chunk-RTEK4C4I.js +41 -0
- package/dist/chunk-S3BFKGET.js +369 -0
- package/dist/chunk-S3BFKGET.js.map +1 -0
- package/dist/chunk-S6Q37VGE.js +30 -0
- package/dist/chunk-SMIRGMS7.js +30 -0
- package/dist/chunk-SMIRGMS7.js.map +1 -0
- package/dist/chunk-SV6EAJEP.js +86 -0
- package/dist/chunk-T36RFODW.js +180 -0
- package/dist/chunk-T36RFODW.js.map +1 -0
- package/dist/chunk-T3GY65MA.js +367 -0
- package/dist/chunk-TAGR72IR.js +515 -0
- package/dist/chunk-TAGR72IR.js.map +1 -0
- package/dist/chunk-THVIPWRF.js +495 -0
- package/dist/chunk-THVIPWRF.js.map +1 -0
- package/dist/chunk-TIGPQDYP.js +14 -0
- package/dist/chunk-U6JMEH2P.js +261 -0
- package/dist/chunk-UC2ETWF3.js +34 -0
- package/dist/chunk-UDSR4X4L.js +235 -0
- package/dist/chunk-UHNGNKLV.js +2782 -0
- package/dist/chunk-UHNGNKLV.js.map +1 -0
- package/dist/chunk-VAIS3SOM.js +74 -0
- package/dist/chunk-VCBHAE4R.js +124 -0
- package/dist/chunk-VCTXU4AT.js +32 -0
- package/dist/chunk-VCTXU4AT.js.map +1 -0
- package/dist/chunk-VEALDPHW.js +524 -0
- package/dist/chunk-VEALDPHW.js.map +1 -0
- package/dist/chunk-VKCADNMR.js +589 -0
- package/dist/chunk-VRBTNCM4.js +720 -0
- package/dist/chunk-VRBTNCM4.js.map +1 -0
- package/dist/chunk-VYYM3MEN.js +98 -0
- package/dist/chunk-VYYM3MEN.js.map +1 -0
- package/dist/chunk-W2OG6JOL.js +1554 -0
- package/dist/chunk-W2OG6JOL.js.map +1 -0
- package/dist/chunk-W4TCUGQR.js +1128 -0
- package/dist/chunk-W4TCUGQR.js.map +1 -0
- package/dist/chunk-WG4QBZDN.js +283 -0
- package/dist/chunk-WG4QBZDN.js.map +1 -0
- package/dist/chunk-WHXXI3W5.js +135 -0
- package/dist/chunk-WHXXI3W5.js.map +1 -0
- package/dist/chunk-WKGF2TJR.js +45 -0
- package/dist/chunk-WNGGJWF7.js +36 -0
- package/dist/chunk-WOM2HTML.js +59 -0
- package/dist/chunk-WQIYTNJV.js +70 -0
- package/dist/chunk-WZSHL6DQ.js +59 -0
- package/dist/chunk-XDIAFPUM.js +42 -0
- package/dist/chunk-XJMBYYQK.js +40 -0
- package/dist/chunk-XTHCN77N.js +91 -0
- package/dist/chunk-XUW3PXHU.js +248 -0
- package/dist/chunk-XUW3PXHU.js.map +1 -0
- package/dist/chunk-YCH5GBN6.js +99 -0
- package/dist/chunk-YTGDPCPW.js +155 -0
- package/dist/chunk-YZQOGE2L.js +23 -0
- package/dist/chunk-Z4PD65VQ.js +265 -0
- package/dist/chunk-Z4PD65VQ.js.map +1 -0
- package/dist/chunk-ZXEZCY6F.js +85 -0
- package/dist/classified/index.js +5 -5
- package/dist/classified-marker-QWMASIT7.js +28 -0
- package/dist/classified-marker-QWMASIT7.js.map +1 -0
- package/dist/collection-facade-KMBWNCYP.js +44 -0
- package/dist/computed-DSMPXG2Y.js +11 -0
- package/dist/consent/index.js +9 -9
- package/dist/cover-QJRXINN5.js +52 -0
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-66VGI6JV.js +28 -0
- package/dist/delegation-SU6CV3W7.js +25 -0
- package/dist/derivations/index.js +12 -12
- package/dist/derive-6RWU4EOA.js +21 -0
- package/dist/enclave-TKPN2G2U.js +141 -0
- package/dist/executor-KGNLJD6M.js +9 -0
- package/dist/executor-UX4FASYZ.js +26 -0
- package/dist/executor-XGIS6CR7.js +9 -0
- package/dist/export-accessible-LKW3QV22.js +23 -0
- package/dist/extract-partition-UP2ARO75.js +38 -0
- package/dist/fanout-sidecar-B5LVUMQX.js +74 -0
- package/dist/find-YS6XWB46.js +11 -0
- package/dist/forget/index.js +10 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +6 -6
- package/dist/history/index.js +14 -11
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +21 -19
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +310 -1493
- package/dist/index.js +331 -191
- 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-3ACYX7LO.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 +1927 -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 +836 -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 +3245 -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 +1744 -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-PTK7XZYT.js +42 -0
- package/dist/legacy/bundle.d.ts +30 -0
- package/dist/legacy/kernel.d.ts +33 -0
- package/dist/liberate-MQQXBUCY.js +24 -0
- package/dist/link-set-SLJHDNRB.js +31 -0
- package/dist/materialized-views/index.js +20 -17
- package/dist/noydb-ANIW5FLE.js +69 -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 +13 -11
- package/dist/policy-YDLCOX4P.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-2YHSADFI.js +60 -0
- package/dist/post-register-2YHSADFI.js.map +1 -0
- package/dist/purge-scope-FGNNLWHD.js +24 -0
- package/dist/purge-scope-FGNNLWHD.js.map +1 -0
- package/dist/query/index.js +12 -10
- package/dist/read-only-facade-CHCKSEPD.js +8 -0
- package/dist/register-PAM3ASRZ.js +23 -0
- package/dist/registry-4S2U2TR4.js +19 -0
- package/dist/registry-NPOWJHC4.js +9 -0
- package/dist/registry-VZ3CCI2R.js +18 -0
- package/dist/request-withdrawal-DI3H5WUI.js +31 -0
- package/dist/reveal-HWO4YMTJ.js +38 -0
- package/dist/reveal-HWO4YMTJ.js.map +1 -0
- package/dist/revoke-R5CZSVUT.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/sealed-record/index.js +12 -12
- package/dist/seed-3ZMF5EQA.js +231 -0
- package/dist/seed-3ZMF5EQA.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-MBVHW4WE.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/stale-VZL4OGUB.js +29 -0
- package/dist/storage-3MEJUENZ.js +23 -0
- package/dist/store-coordination-provider-FKX3F6TQ.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-26Y5GNMK.js +140 -0
- package/dist/verify-26Y5GNMK.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-IPLXE36W.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 +73 -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 +128 -0
- package/dist/with-formula/materialized-views/stale.d.ts +113 -0
- package/dist/with-formula/materialized-views/types.d.ts +399 -0
- package/dist/with-formula/materialized-views/with-materialized-view.d.ts +28 -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/cover/custom.d.ts +34 -0
- package/dist/with-party/directory/cover/index.d.ts +19 -0
- package/dist/with-party/directory/cover/schema.d.ts +39 -0
- package/dist/with-party/directory/cover/storage.d.ts +71 -0
- package/dist/with-party/directory/cover/types.d.ts +149 -0
- package/dist/with-party/directory/index.d.ts +11 -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 +416 -0
- package/dist/with-pod/format.d.ts +207 -0
- package/dist/with-pod/index.d.ts +21 -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-TZDATQVR.js +28 -0
- package/package.json +47 -55
- package/dist/adapter/index.d.ts +0 -4
- package/dist/adapter/index.js +0 -15
- package/dist/aggregate/index.d.ts +0 -41
- package/dist/api-HV4PDUWF.js +0 -20
- package/dist/as/index.d.ts +0 -6
- package/dist/at/index.d.ts +0 -4
- package/dist/attestation/index.d.ts +0 -19
- package/dist/backup-ODXO7OGA.js +0 -225
- package/dist/backup-ODXO7OGA.js.map +0 -1
- package/dist/blobs/index.d.ts +0 -43
- package/dist/bundle/index.d.ts +0 -121
- package/dist/bundle-DlSxo31R.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -8
- package/dist/chunk-2644KEGW.js +0 -247
- package/dist/chunk-2644KEGW.js.map +0 -1
- package/dist/chunk-2HVUKRNE.js +0 -21
- package/dist/chunk-2KOSJTMU.js +0 -69
- package/dist/chunk-2UQ4RMHV.js +0 -167
- package/dist/chunk-2UQ4RMHV.js.map +0 -1
- package/dist/chunk-2XE6LIXT.js +0 -515
- package/dist/chunk-2XE6LIXT.js.map +0 -1
- package/dist/chunk-34RRRIC3.js +0 -71
- package/dist/chunk-3C5CKXFI.js +0 -621
- package/dist/chunk-3C5CKXFI.js.map +0 -1
- package/dist/chunk-3I4KYWNP.js +0 -30
- package/dist/chunk-42KVY3OC.js +0 -86
- package/dist/chunk-4C4WBS4V.js +0 -13822
- package/dist/chunk-4C4WBS4V.js.map +0 -1
- package/dist/chunk-4G3IT7J7.js +0 -280
- package/dist/chunk-4G3IT7J7.js.map +0 -1
- package/dist/chunk-4RQ62VSR.js +0 -53
- package/dist/chunk-4RQ62VSR.js.map +0 -1
- package/dist/chunk-4ZSGSRBI.js +0 -1221
- package/dist/chunk-4ZSGSRBI.js.map +0 -1
- package/dist/chunk-5GAX2QOH.js +0 -132
- package/dist/chunk-5GAX2QOH.js.map +0 -1
- package/dist/chunk-5SAZMBW7.js +0 -202
- package/dist/chunk-5TZZUL5X.js +0 -30
- package/dist/chunk-6CU3FN74.js +0 -777
- package/dist/chunk-6G2SCQYS.js +0 -29
- package/dist/chunk-6G2SCQYS.js.map +0 -1
- package/dist/chunk-6MWUANRF.js +0 -29
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-6ULCYCMU.js +0 -74
- package/dist/chunk-7HAPHVRJ.js +0 -1695
- package/dist/chunk-7HAPHVRJ.js.map +0 -1
- package/dist/chunk-7IZQTCTR.js +0 -382
- package/dist/chunk-7ZANJ6JZ.js +0 -265
- package/dist/chunk-7ZANJ6JZ.js.map +0 -1
- package/dist/chunk-A2APWS32.js +0 -150
- package/dist/chunk-A2APWS32.js.map +0 -1
- package/dist/chunk-A4MAD6PO.js +0 -99
- package/dist/chunk-ANDBBA2P.js +0 -36
- package/dist/chunk-ANDBBA2P.js.map +0 -1
- package/dist/chunk-AUR7MRHA.js +0 -404
- package/dist/chunk-AYGZMQP5.js +0 -75
- package/dist/chunk-BGIZAFY7.js +0 -1
- package/dist/chunk-CJEMA2Z6.js +0 -230
- package/dist/chunk-CTSFKDGA.js +0 -40
- package/dist/chunk-CU62BBRB.js +0 -1465
- package/dist/chunk-CU62BBRB.js.map +0 -1
- package/dist/chunk-CWCCYH34.js +0 -23
- package/dist/chunk-DEYAO3N6.js +0 -589
- package/dist/chunk-DFIBOSOQ.js +0 -85
- package/dist/chunk-E5AHO65E.js +0 -150
- package/dist/chunk-FC3XK5JT.js +0 -99
- package/dist/chunk-FGOGS7CE.js +0 -662
- package/dist/chunk-FGOGS7CE.js.map +0 -1
- package/dist/chunk-GX2BYNCT.js +0 -117
- package/dist/chunk-GZ2MOPVX.js +0 -291
- package/dist/chunk-GZ2MOPVX.js.map +0 -1
- package/dist/chunk-H57P2SJB.js +0 -126
- package/dist/chunk-H57P2SJB.js.map +0 -1
- package/dist/chunk-HBTT7YQX.js +0 -94
- package/dist/chunk-HOCEGVGQ.js +0 -36
- package/dist/chunk-ICV32FPK.js +0 -50
- package/dist/chunk-IIP5WFVT.js +0 -462
- package/dist/chunk-IIP5WFVT.js.map +0 -1
- package/dist/chunk-IUKGIB2Q.js +0 -91
- package/dist/chunk-IWTYFS3D.js +0 -129
- package/dist/chunk-JC5R7P44.js +0 -355
- package/dist/chunk-JC5R7P44.js.map +0 -1
- package/dist/chunk-K2WCO3NX.js +0 -1
- package/dist/chunk-KBBWY46Y.js +0 -14
- package/dist/chunk-KBF5GSGX.js +0 -367
- package/dist/chunk-KCG3BHFG.js +0 -99
- package/dist/chunk-KCG3BHFG.js.map +0 -1
- package/dist/chunk-KNXN47MO.js +0 -155
- package/dist/chunk-KNXN47MO.js.map +0 -1
- package/dist/chunk-KWLD2D75.js +0 -38
- package/dist/chunk-KXKLKJW4.js +0 -49
- package/dist/chunk-KYC4LIEU.js +0 -123
- package/dist/chunk-LEOXZY36.js +0 -130
- package/dist/chunk-M5I354EE.js +0 -235
- package/dist/chunk-MK2BSS44.js +0 -34
- package/dist/chunk-MSVY7ULZ.js +0 -70
- package/dist/chunk-NNWK3PSY.js +0 -135
- package/dist/chunk-NSZ6J5DF.js +0 -59
- package/dist/chunk-NUEFXLZU.js +0 -59
- package/dist/chunk-NYVQCZ54.js +0 -261
- package/dist/chunk-OQAODTYR.js +0 -45
- package/dist/chunk-OV4CMJGR.js +0 -164
- package/dist/chunk-PEDZFFKW.js +0 -41
- package/dist/chunk-PF3FQCCF.js +0 -164
- package/dist/chunk-PF3FQCCF.js.map +0 -1
- package/dist/chunk-Q2KVKTC2.js +0 -823
- package/dist/chunk-Q2KVKTC2.js.map +0 -1
- package/dist/chunk-QJR3W3MF.js +0 -23
- package/dist/chunk-QJR3W3MF.js.map +0 -1
- package/dist/chunk-QTXQ6RNZ.js +0 -255
- package/dist/chunk-RJ5522XX.js +0 -453
- package/dist/chunk-RJ5522XX.js.map +0 -1
- package/dist/chunk-RMUXPHIH.js +0 -930
- package/dist/chunk-RMUXPHIH.js.map +0 -1
- package/dist/chunk-S6AQXDN4.js +0 -155
- package/dist/chunk-SSFC3IYA.js +0 -275
- package/dist/chunk-SSFC3IYA.js.map +0 -1
- package/dist/chunk-SZCHEDML.js +0 -209
- package/dist/chunk-TDPEJINP.js +0 -188
- package/dist/chunk-TDPEJINP.js.map +0 -1
- package/dist/chunk-TQ3REHVF.js +0 -95
- package/dist/chunk-TQ3REHVF.js.map +0 -1
- package/dist/chunk-UNJU345Q.js +0 -32
- package/dist/chunk-UNJU345Q.js.map +0 -1
- package/dist/chunk-V7RNIND6.js +0 -265
- package/dist/chunk-V7RNIND6.js.map +0 -1
- package/dist/chunk-VJ3NQK4K.js +0 -205
- package/dist/chunk-WNA6T3MA.js +0 -686
- package/dist/chunk-WNA6T3MA.js.map +0 -1
- package/dist/chunk-WVCQ75OK.js +0 -124
- package/dist/chunk-WXSYDNBT.js +0 -39
- package/dist/chunk-WXSYDNBT.js.map +0 -1
- package/dist/chunk-X66MXMR5.js +0 -42
- package/dist/chunk-XHD3L3JO.js +0 -930
- package/dist/chunk-XHD3L3JO.js.map +0 -1
- package/dist/chunk-XJK2WIYN.js +0 -430
- package/dist/chunk-XJK2WIYN.js.map +0 -1
- package/dist/chunk-XQ7UYPVN.js +0 -95
- package/dist/chunk-Y2OCKFZ3.js +0 -80
- package/dist/chunk-YBFOBRTO.js +0 -367
- package/dist/chunk-YLN33ADH.js +0 -97
- package/dist/chunk-YLN33ADH.js.map +0 -1
- package/dist/chunk-Z5YFRMG5.js +0 -45
- package/dist/chunk-ZWQFOXBR.js +0 -54
- package/dist/classified/index.d.ts +0 -16
- package/dist/classified-marker-IO5EBW7Q.js +0 -24
- package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
- package/dist/collection-facade-3RAXG2OU.js +0 -38
- package/dist/computed-R62HGCO4.js +0 -11
- package/dist/consent/index.d.ts +0 -22
- package/dist/crdt/index.d.ts +0 -33
- package/dist/dead-filter-VNA4M3GP.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-ZKII5UBI.js +0 -25
- package/dist/derivations/index.d.ts +0 -69
- package/dist/derive-5D2C3WG4.js +0 -21
- package/dist/describe/index.d.ts +0 -4
- package/dist/describe/index.js +0 -1
- package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-EUBEJGPG.js +0 -125
- package/dist/executor-IL7SRNUZ.js +0 -23
- package/dist/executor-OUA2Y6YC.js +0 -9
- package/dist/executor-WAEI6PDV.js +0 -9
- package/dist/export-accessible-O55RKAGC.js +0 -23
- package/dist/extract-partition-VBGCBA6Q.js +0 -36
- package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
- package/dist/find-FISGUWSK.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -34
- package/dist/hash-DBkZfIBW.d.ts +0 -72
- package/dist/history/index.d.ts +0 -60
- package/dist/i18n/index.d.ts +0 -56
- package/dist/in/index.d.ts +0 -4
- package/dist/index-B9QdHytu.d.ts +0 -123
- package/dist/index-CyclmyDr.d.ts +0 -122
- package/dist/index-DzhNI2vE.d.ts +0 -23260
- package/dist/indexing/index.d.ts +0 -38
- package/dist/issue-EQAWIYFQ.js +0 -19
- package/dist/kernel/index.d.ts +0 -31
- package/dist/kernel/index.js +0 -60
- package/dist/lazy/index.d.ts +0 -20
- package/dist/ledger-AJA2SR3C.js +0 -42
- package/dist/liberate-SEGR4JLY.js +0 -24
- package/dist/link-set-YBAC2DQT.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -182
- package/dist/mime-magic-CbV1quyp.d.ts +0 -103
- package/dist/noydb-AMEOU456.js +0 -65
- package/dist/on/index.d.ts +0 -4
- package/dist/overlay-views/index.d.ts +0 -97
- package/dist/periods/index.d.ts +0 -19
- package/dist/pod/index.d.ts +0 -62
- package/dist/policy-SDGRWVIL.js +0 -41
- package/dist/portability/index.d.ts +0 -19
- package/dist/post-register-MROIUA5O.js +0 -55
- package/dist/post-register-MROIUA5O.js.map +0 -1
- package/dist/public-envelope-J5PLQOW2.js +0 -32
- package/dist/query/index.d.ts +0 -4
- package/dist/read-only-facade-UCYNRE56.js +0 -8
- package/dist/register-OVJKW7BS.js +0 -23
- package/dist/registry-5RJSK5AJ.js +0 -9
- package/dist/registry-DQRNTWRL.js +0 -18
- package/dist/registry-LTGLERS7.js +0 -19
- package/dist/request-withdrawal-27O77D2V.js +0 -31
- package/dist/reveal-LT3I2K4P.js +0 -38
- package/dist/reveal-LT3I2K4P.js.map +0 -1
- package/dist/revoke-4N45G7D2.js +0 -24
- package/dist/revoke-4N45G7D2.js.map +0 -1
- package/dist/satellites/index.d.ts +0 -4
- package/dist/sealed-record/index.d.ts +0 -68
- package/dist/session/index.d.ts +0 -43
- package/dist/shadow/index.d.ts +0 -14
- package/dist/signer-XJCOV7JD.js +0 -25
- package/dist/signer-XJCOV7JD.js.map +0 -1
- package/dist/snapshots/index.d.ts +0 -25
- package/dist/stale-IYYXEH3U.js +0 -14
- package/dist/stale-IYYXEH3U.js.map +0 -1
- package/dist/storage-Y44CAPE6.js +0 -23
- package/dist/storage-Y44CAPE6.js.map +0 -1
- package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
- package/dist/subject-index-CyOgGMJL.d.ts +0 -380
- package/dist/sync/index.d.ts +0 -40
- package/dist/team/index.d.ts +0 -154
- package/dist/tiers/index.d.ts +0 -4
- package/dist/to/index.d.ts +0 -4
- package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
- package/dist/tx/index.d.ts +0 -34
- package/dist/ui/index.d.ts +0 -4
- package/dist/ulid-DRH25k3y.d.ts +0 -66
- package/dist/util/index.d.ts +0 -79
- package/dist/validators-B3SalxlJ.d.ts +0 -101
- package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
- package/dist/verify-GH6CWVSW.js +0 -139
- package/dist/verify-GH6CWVSW.js.map +0 -1
- package/dist/walk-76UCFXYV.js +0 -241
- package/dist/with/index.d.ts +0 -37
- package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
- package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
- package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
- package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
- package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
- /package/dist/{adapter/index.js.map → api-3A3S4SHH.js.map} +0 -0
- /package/dist/{chunk-ICV32FPK.js.map → chunk-2PCAVW2I.js.map} +0 -0
- /package/dist/{chunk-6CU3FN74.js.map → chunk-554KLAAN.js.map} +0 -0
- /package/dist/{chunk-NNWK3PSY.js.map → chunk-5PFOMHTB.js.map} +0 -0
- /package/dist/{chunk-SZCHEDML.js.map → chunk-5WZXVULX.js.map} +0 -0
- /package/dist/{chunk-KWLD2D75.js.map → chunk-6HPG2YNX.js.map} +0 -0
- /package/dist/{chunk-2KOSJTMU.js.map → chunk-6HY2X62D.js.map} +0 -0
- /package/dist/{chunk-KYC4LIEU.js.map → chunk-6NQMXTYC.js.map} +0 -0
- /package/dist/{chunk-KBF5GSGX.js.map → chunk-6XE5TMPR.js.map} +0 -0
- /package/dist/{chunk-Z5YFRMG5.js.map → chunk-A4FXFAKF.js.map} +0 -0
- /package/dist/{chunk-VJ3NQK4K.js.map → chunk-ANATMTOA.js.map} +0 -0
- /package/dist/{chunk-HBTT7YQX.js.map → chunk-BOKIKJJB.js.map} +0 -0
- /package/dist/{chunk-KXKLKJW4.js.map → chunk-CJ5KKU6X.js.map} +0 -0
- /package/dist/{chunk-5SAZMBW7.js.map → chunk-DSBQODMZ.js.map} +0 -0
- /package/dist/{chunk-7IZQTCTR.js.map → chunk-EO43ANYJ.js.map} +0 -0
- /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-EWPOHMN2.js.map} +0 -0
- /package/dist/{chunk-34RRRIC3.js.map → chunk-GWKAVKHI.js.map} +0 -0
- /package/dist/{chunk-OV4CMJGR.js.map → chunk-H2KSZMIX.js.map} +0 -0
- /package/dist/{chunk-AUR7MRHA.js.map → chunk-HOONYZY2.js.map} +0 -0
- /package/dist/{chunk-ZWQFOXBR.js.map → chunk-ISMV2QVG.js.map} +0 -0
- /package/dist/{chunk-XQ7UYPVN.js.map → chunk-IY23KFNZ.js.map} +0 -0
- /package/dist/{chunk-IWTYFS3D.js.map → chunk-JBBSYJHP.js.map} +0 -0
- /package/dist/{chunk-GX2BYNCT.js.map → chunk-JFCV5QIK.js.map} +0 -0
- /package/dist/{chunk-5TZZUL5X.js.map → chunk-M75ZZHSR.js.map} +0 -0
- /package/dist/{chunk-6MWUANRF.js.map → chunk-N6WF5PKC.js.map} +0 -0
- /package/dist/{chunk-E5AHO65E.js.map → chunk-NCCBLYEB.js.map} +0 -0
- /package/dist/{chunk-A4MAD6PO.js.map → chunk-OCVM6KDH.js.map} +0 -0
- /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-ONTBCHCP.js.map} +0 -0
- /package/dist/{chunk-LEOXZY36.js.map → chunk-R3BLCFD2.js.map} +0 -0
- /package/dist/{chunk-2HVUKRNE.js.map → chunk-RDXW3OBQ.js.map} +0 -0
- /package/dist/{chunk-CJEMA2Z6.js.map → chunk-RFI7GGFO.js.map} +0 -0
- /package/dist/{chunk-AYGZMQP5.js.map → chunk-RNG4VRP4.js.map} +0 -0
- /package/dist/{chunk-PEDZFFKW.js.map → chunk-RTEK4C4I.js.map} +0 -0
- /package/dist/{chunk-3I4KYWNP.js.map → chunk-S6Q37VGE.js.map} +0 -0
- /package/dist/{chunk-42KVY3OC.js.map → chunk-SV6EAJEP.js.map} +0 -0
- /package/dist/{chunk-YBFOBRTO.js.map → chunk-T3GY65MA.js.map} +0 -0
- /package/dist/{chunk-KBBWY46Y.js.map → chunk-TIGPQDYP.js.map} +0 -0
- /package/dist/{chunk-NYVQCZ54.js.map → chunk-U6JMEH2P.js.map} +0 -0
- /package/dist/{chunk-MK2BSS44.js.map → chunk-UC2ETWF3.js.map} +0 -0
- /package/dist/{chunk-M5I354EE.js.map → chunk-UDSR4X4L.js.map} +0 -0
- /package/dist/{chunk-6ULCYCMU.js.map → chunk-VAIS3SOM.js.map} +0 -0
- /package/dist/{chunk-WVCQ75OK.js.map → chunk-VCBHAE4R.js.map} +0 -0
- /package/dist/{chunk-DEYAO3N6.js.map → chunk-VKCADNMR.js.map} +0 -0
- /package/dist/{chunk-OQAODTYR.js.map → chunk-WKGF2TJR.js.map} +0 -0
- /package/dist/{chunk-HOCEGVGQ.js.map → chunk-WNGGJWF7.js.map} +0 -0
- /package/dist/{chunk-NSZ6J5DF.js.map → chunk-WOM2HTML.js.map} +0 -0
- /package/dist/{chunk-MSVY7ULZ.js.map → chunk-WQIYTNJV.js.map} +0 -0
- /package/dist/{chunk-NUEFXLZU.js.map → chunk-WZSHL6DQ.js.map} +0 -0
- /package/dist/{chunk-X66MXMR5.js.map → chunk-XDIAFPUM.js.map} +0 -0
- /package/dist/{chunk-CTSFKDGA.js.map → chunk-XJMBYYQK.js.map} +0 -0
- /package/dist/{chunk-IUKGIB2Q.js.map → chunk-XTHCN77N.js.map} +0 -0
- /package/dist/{chunk-FC3XK5JT.js.map → chunk-YCH5GBN6.js.map} +0 -0
- /package/dist/{chunk-S6AQXDN4.js.map → chunk-YTGDPCPW.js.map} +0 -0
- /package/dist/{chunk-CWCCYH34.js.map → chunk-YZQOGE2L.js.map} +0 -0
- /package/dist/{chunk-DFIBOSOQ.js.map → chunk-ZXEZCY6F.js.map} +0 -0
- /package/dist/{api-HV4PDUWF.js.map → collection-facade-KMBWNCYP.js.map} +0 -0
- /package/dist/{chunk-BGIZAFY7.js.map → computed-DSMPXG2Y.js.map} +0 -0
- /package/dist/{chunk-K2WCO3NX.js.map → cover-QJRXINN5.js.map} +0 -0
- /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-66VGI6JV.js.map} +0 -0
- /package/dist/{collection-facade-3RAXG2OU.js.map → delegation-SU6CV3W7.js.map} +0 -0
- /package/dist/{computed-R62HGCO4.js.map → derive-6RWU4EOA.js.map} +0 -0
- /package/dist/{delegation-ZKII5UBI.js.map → enclave-TKPN2G2U.js.map} +0 -0
- /package/dist/{derive-5D2C3WG4.js.map → executor-KGNLJD6M.js.map} +0 -0
- /package/dist/{describe/index.js.map → executor-UX4FASYZ.js.map} +0 -0
- /package/dist/{enclave-EUBEJGPG.js.map → executor-XGIS6CR7.js.map} +0 -0
- /package/dist/{executor-IL7SRNUZ.js.map → export-accessible-LKW3QV22.js.map} +0 -0
- /package/dist/{executor-OUA2Y6YC.js.map → extract-partition-UP2ARO75.js.map} +0 -0
- /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-B5LVUMQX.js.map} +0 -0
- /package/dist/{executor-WAEI6PDV.js.map → find-YS6XWB46.js.map} +0 -0
- /package/dist/{export-accessible-O55RKAGC.js.map → issue-3ACYX7LO.js.map} +0 -0
- /package/dist/{extract-partition-VBGCBA6Q.js.map → ledger-PTK7XZYT.js.map} +0 -0
- /package/dist/{find-FISGUWSK.js.map → liberate-MQQXBUCY.js.map} +0 -0
- /package/dist/{issue-EQAWIYFQ.js.map → link-set-SLJHDNRB.js.map} +0 -0
- /package/dist/{kernel/index.js.map → noydb-ANIW5FLE.js.map} +0 -0
- /package/dist/{ledger-AJA2SR3C.js.map → policy-YDLCOX4P.js.map} +0 -0
- /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
- /package/dist/{link-set-YBAC2DQT.js.map → register-PAM3ASRZ.js.map} +0 -0
- /package/dist/{noydb-AMEOU456.js.map → registry-4S2U2TR4.js.map} +0 -0
- /package/dist/{policy-SDGRWVIL.js.map → registry-NPOWJHC4.js.map} +0 -0
- /package/dist/{public-envelope-J5PLQOW2.js.map → registry-VZ3CCI2R.js.map} +0 -0
- /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-DI3H5WUI.js.map} +0 -0
- /package/dist/{register-OVJKW7BS.js.map → revoke-R5CZSVUT.js.map} +0 -0
- /package/dist/{registry-5RJSK5AJ.js.map → signer-MBVHW4WE.js.map} +0 -0
- /package/dist/{registry-DQRNTWRL.js.map → stale-VZL4OGUB.js.map} +0 -0
- /package/dist/{registry-LTGLERS7.js.map → storage-3MEJUENZ.js.map} +0 -0
- /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-FKX3F6TQ.js.map} +0 -0
- /package/dist/{walk-76UCFXYV.js.map → walk-IPLXE36W.js.map} +0 -0
- /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-TZDATQVR.js.map} +0 -0
|
@@ -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;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Magic-link-bound cross-user delegation grants.
|
|
3
|
+
*
|
|
4
|
+
* This module is the **core storage + encryption layer** that lets a
|
|
5
|
+
* grantor issue a tier-DEK to a user whose KEK they do not know. The
|
|
6
|
+
* trust bridge is provided by the `@noy-db/on-magic-link` package:
|
|
7
|
+
*
|
|
8
|
+
* 1. Grantor picks a grantee identity (user id + email handle).
|
|
9
|
+
* 2. Grantor mints a magic-link token (ULID) via `createMagicLinkToken`.
|
|
10
|
+
* 3. Grantor derives a **content key** + a **KEK** from
|
|
11
|
+
* `(serverSecret, token, vault)` using HKDF-SHA256 with separate
|
|
12
|
+
* `info` tags — both callers (grantor and grantee) can derive the
|
|
13
|
+
* same keys given the same inputs.
|
|
14
|
+
* 4. Grantor persists a record in `_magic_link_grants/<token>`:
|
|
15
|
+
* - envelope `_data` is AES-GCM encrypted under the content key
|
|
16
|
+
* - the inner `wrappedDek` is AES-KW wrapped under the KEK
|
|
17
|
+
* 5. Grantee receives the URL, derives the same content key + KEK,
|
|
18
|
+
* loads the grant, decrypts the envelope, unwraps the tier DEK.
|
|
19
|
+
*
|
|
20
|
+
* ## Why a separate collection from `_delegations`
|
|
21
|
+
*
|
|
22
|
+
* `_delegations` envelopes are encrypted under a DEK shared across
|
|
23
|
+
* every vault user (audit-visibility). External auditors / client
|
|
24
|
+
* portal users have NO pre-existing keyring, so they cannot read that
|
|
25
|
+
* DEK. Magic-link grants live in their own collection whose envelope
|
|
26
|
+
* encryption is derived purely from the magic-link URL + server secret
|
|
27
|
+
* — nothing else is required to decrypt.
|
|
28
|
+
*
|
|
29
|
+
* ## Batch grants
|
|
30
|
+
*
|
|
31
|
+
* One magic-link token may point to MULTIPLE grants (e.g. the client
|
|
32
|
+
* portal case: invoices + payments + etax all share one link). Each
|
|
33
|
+
* grant is persisted under a distinct record id:
|
|
34
|
+
*
|
|
35
|
+
* `<token>` for the single-grant / primary entry
|
|
36
|
+
* `<token>:<index>` for subsequent entries
|
|
37
|
+
*
|
|
38
|
+
* `listMagicLinkGrants(store, vault, token)` enumerates every record
|
|
39
|
+
* whose id begins with `<token>` so the claimant can materialize all
|
|
40
|
+
* DEKs in one pass.
|
|
41
|
+
*
|
|
42
|
+
* ## Revocation
|
|
43
|
+
*
|
|
44
|
+
* `store.delete(vault, _magic_link_grants, <token>)` immediately
|
|
45
|
+
* invalidates the link — even if the URL was captured and the server
|
|
46
|
+
* secret leaked, no payload remains to decrypt.
|
|
47
|
+
*
|
|
48
|
+
* @module
|
|
49
|
+
*/
|
|
50
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
51
|
+
import type { UnlockedKeyring } from './keyring.js';
|
|
52
|
+
import { type EnclaveKey } from '../../kernel/enclave/index.js';
|
|
53
|
+
/** Reserved collection holding magic-link grant envelopes. */
|
|
54
|
+
export declare const MAGIC_LINK_GRANTS_COLLECTION = "_magic_link_grants";
|
|
55
|
+
/** HKDF `info` for the AES-GCM content key. Version-namespaced. */
|
|
56
|
+
export declare const MAGIC_LINK_CONTENT_INFO_PREFIX = "noydb-magic-link-content-v1:";
|
|
57
|
+
/** HKDF `info` for the AES-KW KEK. Matches `@noy-db/on-magic-link`. */
|
|
58
|
+
export declare const MAGIC_LINK_KEK_INFO_PREFIX = "noydb-magic-link-v1:";
|
|
59
|
+
/**
|
|
60
|
+
* Decrypted payload of a magic-link grant record. Mirrors
|
|
61
|
+
* `DelegationToken` in `team/delegation.ts` but tracked separately
|
|
62
|
+
* because the two flows persist under different collections + envelope
|
|
63
|
+
* encryption schemes.
|
|
64
|
+
*/
|
|
65
|
+
export interface MagicLinkGrantPayload {
|
|
66
|
+
readonly id: string;
|
|
67
|
+
readonly toUser: string;
|
|
68
|
+
readonly fromUser: string;
|
|
69
|
+
readonly tier: number;
|
|
70
|
+
/** Collection name or `null` for the vault-wide tier DEK. */
|
|
71
|
+
readonly collection: string | null;
|
|
72
|
+
/** Optional specific record id scope. */
|
|
73
|
+
readonly record?: string;
|
|
74
|
+
/** ISO timestamp — grant expires at this instant. */
|
|
75
|
+
readonly until: string;
|
|
76
|
+
/** AES-KW-wrapped tier DEK, unwrap with the magic-link KEK. */
|
|
77
|
+
readonly wrappedDek: string;
|
|
78
|
+
/** ISO timestamp the grant was issued. */
|
|
79
|
+
readonly createdAt: string;
|
|
80
|
+
/** Optional caller-provided label (surfaced in audit UIs). */
|
|
81
|
+
readonly note?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface IssueMagicLinkGrantOptions {
|
|
84
|
+
readonly toUser: string;
|
|
85
|
+
readonly tier: number;
|
|
86
|
+
readonly collection?: string;
|
|
87
|
+
readonly record?: string;
|
|
88
|
+
readonly until: Date | string;
|
|
89
|
+
readonly note?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface MagicLinkGrantRecord {
|
|
92
|
+
/** Store record id — `<token>` or `<token>:<index>` for batch entries. */
|
|
93
|
+
readonly recordId: string;
|
|
94
|
+
readonly payload: MagicLinkGrantPayload;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Derive the AES-GCM content key from the same HKDF inputs used for
|
|
98
|
+
* the magic-link KEK. Different `info` suffix → domain-separated key.
|
|
99
|
+
*
|
|
100
|
+
* Exported so the `@noy-db/on-magic-link` package can share the exact
|
|
101
|
+
* derivation path without cross-dependency between the two modules.
|
|
102
|
+
*/
|
|
103
|
+
export declare function deriveMagicLinkContentKey(serverSecret: string | Uint8Array<ArrayBuffer>, token: string, vault: string): Promise<EnclaveKey>;
|
|
104
|
+
/**
|
|
105
|
+
* Persist a magic-link grant record. Caller derives + provides both
|
|
106
|
+
* the content key and the KEK; this function performs the wrap/encrypt
|
|
107
|
+
* and writes the envelope.
|
|
108
|
+
*
|
|
109
|
+
* `recordId` lets the caller use either the bare token (primary grant)
|
|
110
|
+
* or a suffixed id (batch entry). The writer is responsible for
|
|
111
|
+
* collision-avoidance across batch entries.
|
|
112
|
+
*/
|
|
113
|
+
export declare function writeMagicLinkGrant(store: NoydbStore, vault: string, grantor: UnlockedKeyring, contentKey: EnclaveKey, grantKek: EnclaveKey, recordId: string, opts: IssueMagicLinkGrantOptions): Promise<MagicLinkGrantRecord>;
|
|
114
|
+
/**
|
|
115
|
+
* Fetch + decrypt a single magic-link grant record by id. Returns null
|
|
116
|
+
* when the record is absent OR when decryption fails (wrong server
|
|
117
|
+
* secret, wrong vault, tampered envelope) — callers treat a null as
|
|
118
|
+
* "this URL is not valid for this server".
|
|
119
|
+
*
|
|
120
|
+
* The returned payload's `wrappedDek` is still AES-KW-wrapped; the
|
|
121
|
+
* caller unwraps it with the magic-link KEK to obtain the tier DEK.
|
|
122
|
+
*/
|
|
123
|
+
export declare function readMagicLinkGrantRecord(store: NoydbStore, vault: string, contentKey: EnclaveKey, recordId: string): Promise<MagicLinkGrantPayload | null>;
|
|
124
|
+
/**
|
|
125
|
+
* Enumerate every grant record sharing the magic-link `token` prefix
|
|
126
|
+
* (i.e. the primary `<token>` entry plus any `<token>:*` batch entries).
|
|
127
|
+
* Expired grants are still returned — the caller filters on `until`.
|
|
128
|
+
*/
|
|
129
|
+
export declare function listMagicLinkGrants(store: NoydbStore, vault: string, contentKey: EnclaveKey, token: string): Promise<MagicLinkGrantPayload[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Unwrap the tier DEK from a grant payload using the magic-link KEK.
|
|
132
|
+
* Thin wrapper around `unwrapKey` — provided so the claimant can avoid
|
|
133
|
+
* importing `crypto.js` directly.
|
|
134
|
+
*/
|
|
135
|
+
export declare function unwrapMagicLinkGrant(payload: MagicLinkGrantPayload, grantKek: EnclaveKey): Promise<EnclaveKey>;
|
|
136
|
+
/**
|
|
137
|
+
* Delete a magic-link grant (primary + every batch entry sharing the
|
|
138
|
+
* token). Safe to call when nothing exists.
|
|
139
|
+
*/
|
|
140
|
+
export declare function revokeMagicLinkGrant(store: NoydbStore, vault: string, token: string): Promise<number>;
|
|
141
|
+
/**
|
|
142
|
+
* Compose the batch-entry record id. `index === 0` → bare token.
|
|
143
|
+
* Subsequent entries use `<token>:<index>` so `store.list()` can
|
|
144
|
+
* enumerate them all by common prefix.
|
|
145
|
+
*/
|
|
146
|
+
export declare function magicLinkGrantRecordId(token: string, index: number): string;
|
|
147
|
+
/**
|
|
148
|
+
* True when the payload's `until` is in the past relative to `now`.
|
|
149
|
+
* Kept here (rather than inlined) so the semantics stay aligned with
|
|
150
|
+
* the canonical `DelegationToken` expiry check.
|
|
151
|
+
*/
|
|
152
|
+
export declare function isMagicLinkGrantExpired(payload: MagicLinkGrantPayload, now?: Date): boolean;
|