@noy-db/hub 0.3.0-pre.10 → 0.3.0-pre.11
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 +4 -4
- package/dist/api-YGMINAET.js +20 -0
- package/dist/as/index.js +11 -11
- package/dist/attestation/index.js +18 -18
- package/dist/backup-XA5STIYQ.js +225 -0
- package/dist/blobs/index.js +10 -10
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +20 -20
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +30 -30
- package/dist/chunk-25NDNMQ7.js +70 -0
- package/dist/chunk-2JMMY7HZ.js +188 -0
- package/dist/chunk-3CNQ7FQ3.js +430 -0
- package/dist/chunk-3G4KMVUN.js +291 -0
- package/dist/chunk-3MSQLQNZ.js +74 -0
- package/dist/chunk-45ZZLTFH.js +38 -0
- package/dist/chunk-4GPE63GU.js +111 -0
- package/dist/chunk-4GPE63GU.js.map +1 -0
- package/dist/chunk-4N5QFSNQ.js +150 -0
- package/dist/chunk-4R4Q64W5.js +34 -0
- package/dist/chunk-57V5S7PW.js +130 -0
- package/dist/chunk-5JB73NMC.js +202 -0
- package/dist/chunk-5XIPOCQC.js +155 -0
- package/dist/chunk-5ZOSG3RJ.js +778 -0
- package/dist/chunk-67TNU77I.js +36 -0
- package/dist/chunk-6QILBDZU.js +205 -0
- package/dist/chunk-7E67FJ33.js +155 -0
- package/dist/chunk-7ITPJFGC.js +50 -0
- package/dist/chunk-7NS43EXZ.js +117 -0
- package/dist/chunk-7QIXUSDQ.js +341 -0
- package/dist/chunk-7VSGW5KJ.js +74 -0
- package/dist/chunk-A2QF4JUE.js +14073 -0
- package/dist/chunk-A2QF4JUE.js.map +1 -0
- package/dist/chunk-A2Y6YFVN.js +209 -0
- package/dist/chunk-AOVDSIL3.js +1221 -0
- package/dist/chunk-ARSAMO24.js +29 -0
- package/dist/chunk-AWB5JZW6.js +41 -0
- package/dist/chunk-BCYQA5BK.js +45 -0
- package/dist/chunk-BE7N3AXA.js +621 -0
- package/dist/chunk-BEIRE5K4.js +164 -0
- package/dist/chunk-BZO4WCJI.js +86 -0
- package/dist/chunk-C3YH34IL.js +75 -0
- package/dist/chunk-C7NTK5I3.js +49 -0
- package/dist/chunk-CB25ONKC.js +129 -0
- package/dist/chunk-CIKY6I4W.js +21 -0
- package/dist/chunk-CKZW6P5V.js +32 -0
- package/dist/chunk-CKZW6P5V.js.map +1 -0
- package/dist/chunk-D26JB3LZ.js +54 -0
- package/dist/chunk-D3EFFFOL.js +59 -0
- package/dist/chunk-DGH65E7Q.js +466 -0
- package/dist/chunk-DIRRS7WP.js +42 -0
- package/dist/chunk-DJ3VKYFA.js +150 -0
- package/dist/chunk-DJ3VKYFA.js.map +1 -0
- package/dist/chunk-DMFNPHCX.js +247 -0
- package/dist/chunk-ELNBMFOS.js +392 -0
- package/dist/chunk-FH542DDY.js +1505 -0
- package/dist/chunk-FH542DDY.js.map +1 -0
- package/dist/chunk-FQQF23MC.js +45 -0
- package/dist/chunk-FXK4X4BL.js +91 -0
- package/dist/chunk-GA2QHD6P.js +235 -0
- package/dist/chunk-H44ZE4IE.js +355 -0
- package/dist/chunk-H6CZSDWK.js +1697 -0
- package/dist/chunk-H6HM6CVR.js +279 -0
- package/dist/chunk-HFJIGWJC.js +382 -0
- package/dist/chunk-HUS3J5WM.js +404 -0
- package/dist/chunk-IDIV5NVH.js +99 -0
- package/dist/chunk-IGJHJYM6.js +515 -0
- package/dist/chunk-IP2QBAGS.js +589 -0
- package/dist/chunk-JOQ53DMI.js +255 -0
- package/dist/chunk-K62IUKOD.js +823 -0
- package/dist/chunk-KPGX66PM.js +230 -0
- package/dist/chunk-L2SNBIV7.js +453 -0
- package/dist/chunk-MCEKIAO4.js +367 -0
- package/dist/chunk-MELR46EF.js +280 -0
- package/dist/chunk-MSPNM2OM.js +95 -0
- package/dist/chunk-O2DYPAZY.js +23 -0
- package/dist/chunk-ODJWBC5I.js +30 -0
- package/dist/chunk-OEAATWH5.js +686 -0
- package/dist/chunk-OFJ5GPNA.js +71 -0
- package/dist/chunk-OOLO4LQG.js +99 -0
- package/dist/chunk-P5RY4ZWD.js +662 -0
- package/dist/chunk-PR5LC5YX.js +265 -0
- package/dist/chunk-PXWVF7MC.js +135 -0
- package/dist/chunk-Q3XSMOZM.js +40 -0
- package/dist/chunk-QLLKLFE2.js +94 -0
- package/dist/chunk-QQJXBZCO.js +1056 -0
- package/dist/chunk-QQJXBZCO.js.map +1 -0
- package/dist/chunk-QYPKGVT4.js +261 -0
- package/dist/chunk-RKRGDAS7.js +59 -0
- package/dist/chunk-SRVQHVNX.js +164 -0
- package/dist/chunk-SYMS4546.js +29 -0
- package/dist/chunk-TPH5EO6L.js +54 -0
- package/dist/chunk-UFILRICG.js +14 -0
- package/dist/chunk-UTLEAJXC.js +97 -0
- package/dist/chunk-VA4ZWLFY.js +123 -0
- package/dist/chunk-VR24ILCR.js +367 -0
- package/dist/chunk-W5D62AQD.js +944 -0
- package/dist/chunk-WGV4CUZT.js +167 -0
- package/dist/chunk-WTUNZACT.js +30 -0
- package/dist/chunk-WTUNZACT.js.map +1 -0
- package/dist/chunk-X6CMGUAG.js +69 -0
- package/dist/chunk-XFXUTFWQ.js +85 -0
- package/dist/chunk-XHV25KBM.js +30 -0
- package/dist/chunk-YSXEFGND.js +124 -0
- package/dist/chunk-YXOUQ2H7.js +36 -0
- package/dist/chunk-ZP5PL65C.js +80 -0
- package/dist/classified/index.js +5 -5
- package/dist/classified-marker-LQWWQNIJ.js +24 -0
- package/dist/collection-facade-YE2O4J4O.js +39 -0
- package/dist/computed-W6MVAMWZ.js +11 -0
- package/dist/consent/index.js +9 -9
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-4KXZEB3X.js +28 -0
- package/dist/delegation-OPUU3R2E.js +25 -0
- package/dist/derivations/index.js +12 -12
- package/dist/derive-BGUHU663.js +21 -0
- package/dist/enclave-VXAQD4XJ.js +135 -0
- package/dist/executor-GTVSUUBX.js +25 -0
- package/dist/executor-GZWMTOXB.js +9 -0
- package/dist/executor-XXGS4S3K.js +9 -0
- package/dist/export-accessible-BMULIOYB.js +23 -0
- package/dist/extract-partition-JUQTWDXR.js +36 -0
- package/dist/fanout-sidecar-CKYFH33E.js +74 -0
- package/dist/find-XRGCNGNN.js +11 -0
- package/dist/forget/index.js +10 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +3 -3
- package/dist/history/index.js +11 -11
- package/dist/i18n/index.js +15 -15
- package/dist/index.d.ts +303 -1492
- package/dist/index.js +172 -171
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +2 -2
- package/dist/issue-UB6AA5M6.js +19 -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 +781 -0
- package/dist/kernel/collection.d.ts +1505 -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 +33 -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 +78 -0
- package/dist/kernel/enclave/record-keys/deterministic.d.ts +54 -0
- package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/lifecycle.d.ts +57 -0
- package/dist/kernel/enclave/record-keys/record-codec.d.ts +301 -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 +1848 -0
- package/dist/kernel/events.d.ts +11 -0
- package/dist/kernel/memory-store.d.ts +17 -0
- package/dist/kernel/mutation.d.ts +14 -0
- package/dist/kernel/noydb.d.ts +818 -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/types.d.ts +3147 -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 +1723 -0
- package/dist/kernel/via/compose.d.ts +144 -0
- package/dist/kernel/via/dispatch.d.ts +185 -0
- package/dist/kernel/via/graph-wiring.d.ts +145 -0
- package/dist/kernel/via/graph.d.ts +165 -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-FU6GH5EH.js +42 -0
- package/dist/legacy/bundle.d.ts +30 -0
- package/dist/legacy/kernel.d.ts +33 -0
- package/dist/liberate-YUN7W5QG.js +24 -0
- package/dist/link-set-MNADSH5M.js +31 -0
- package/dist/materialized-views/index.js +19 -19
- package/dist/noydb-6JLBZU4U.js +67 -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-JTFOPPUU.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 +81 -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 +128 -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-HAWO3O7O.js +55 -0
- package/dist/public-envelope-NJVB7LPA.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 +5 -5
- package/dist/register-VCKOBWKT.js +23 -0
- package/dist/registry-72UKJ2L4.js +9 -0
- package/dist/registry-BZFLJNEH.js +18 -0
- package/dist/registry-YJEYSYI5.js +19 -0
- package/dist/request-withdrawal-6MJRMFHF.js +31 -0
- package/dist/reveal-BOY7XYFH.js +38 -0
- package/dist/revoke-4KUNSVJC.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/sealed-record/index.js +12 -12
- package/dist/seed-4RRXT42N.js +231 -0
- package/dist/seed-4RRXT42N.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-DDDXP5JD.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/stale-NXPT56JA.js +14 -0
- package/dist/storage-IR6EEAV2.js +23 -0
- package/dist/store-coordination-provider-HPYVFJCV.js +142 -0
- package/dist/sync/index.js +9 -9
- package/dist/team/index.js +15 -15
- package/dist/tiers/index.js +10 -10
- package/dist/to/index.js +1 -1
- package/dist/tx/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/verify-66RHOW7N.js +139 -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 +219 -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 +106 -0
- package/dist/walk-2RWEOCAS.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 +177 -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 +122 -0
- package/dist/with-audit/tiers/strategy.d.ts +35 -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 +33 -0
- package/dist/with-cargo/extract-partition.d.ts +147 -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 +38 -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 +27 -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 +335 -0
- package/dist/with-commit/history/strategy.d.ts +126 -0
- package/dist/with-commit/history/time-machine.d.ts +179 -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 +58 -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 +207 -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 +71 -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 +62 -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 +3 -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 +120 -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 +69 -0
- package/dist/with-lookup/indexing/persisted-indexes.d.ts +186 -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 +123 -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 +41 -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 +37 -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 +165 -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-set.d.ts +342 -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 +37 -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/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 +26 -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-CLMZEHQT.js +28 -0
- package/package.json +47 -43
- package/dist/aggregate/index.d.ts +0 -41
- package/dist/api-TX2EX2FX.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-R7NTDFKY.js +0 -225
- package/dist/blobs/index.d.ts +0 -43
- package/dist/bundle/index.d.ts +0 -121
- package/dist/bundle-D6GxiUfq.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -7
- package/dist/chunk-2OV5NVE7.js +0 -95
- package/dist/chunk-2OZXVKVP.js +0 -367
- package/dist/chunk-2REPHKET.js +0 -54
- package/dist/chunk-3JXPAHOZ.js +0 -686
- package/dist/chunk-3MATJ6O4.js +0 -367
- package/dist/chunk-3OPY6MK2.js +0 -404
- package/dist/chunk-3QSIU3UT.js +0 -291
- package/dist/chunk-4OMCIY6F.js +0 -99
- package/dist/chunk-5I35DOHK.js +0 -94
- package/dist/chunk-5VG4IJR7.js +0 -235
- package/dist/chunk-5YESYH2C.js +0 -155
- package/dist/chunk-6G5ORS5D.js +0 -202
- package/dist/chunk-6P5XCKSD.js +0 -71
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-7BWJHO2A.js +0 -34
- package/dist/chunk-7P2SDJG3.js +0 -279
- package/dist/chunk-ANB77BVV.js +0 -150
- package/dist/chunk-ANB77BVV.js.map +0 -1
- package/dist/chunk-BKARNZJN.js +0 -382
- package/dist/chunk-BQISD5ZV.js +0 -261
- package/dist/chunk-BUAQ7YI3.js +0 -1697
- package/dist/chunk-CB7CWSKW.js +0 -430
- package/dist/chunk-DFVUTGT2.js +0 -515
- package/dist/chunk-DJ7KIPLV.js +0 -23
- package/dist/chunk-DSKDQP3G.js +0 -14066
- package/dist/chunk-DSKDQP3G.js.map +0 -1
- package/dist/chunk-DV4HUP5G.js +0 -99
- package/dist/chunk-EOXAAJTY.js +0 -621
- package/dist/chunk-ET67AY6B.js +0 -74
- package/dist/chunk-F4CEK5YM.js +0 -123
- package/dist/chunk-FORYWFN6.js +0 -130
- package/dist/chunk-FRP6D2DM.js +0 -91
- package/dist/chunk-FUOE7UUV.js +0 -341
- package/dist/chunk-G4JYND6L.js +0 -42
- package/dist/chunk-G6XV4H65.js +0 -59
- package/dist/chunk-GNMXXTMN.js +0 -85
- package/dist/chunk-HPWKV3YB.js +0 -21
- package/dist/chunk-HY3AUMFI.js +0 -41
- package/dist/chunk-HYR4WZZ3.js +0 -69
- package/dist/chunk-ICXIFFYZ.js +0 -355
- package/dist/chunk-IVLTXX4W.js +0 -280
- package/dist/chunk-J4LPNIGK.js +0 -777
- package/dist/chunk-JJZ2LW6T.js +0 -36
- package/dist/chunk-KJ2BCBTL.js +0 -589
- package/dist/chunk-KNZB6JMR.js +0 -129
- package/dist/chunk-LEJIKBBB.js +0 -124
- package/dist/chunk-LL2NIVUR.js +0 -188
- package/dist/chunk-MCHVVJIA.js +0 -968
- package/dist/chunk-MCHVVJIA.js.map +0 -1
- package/dist/chunk-NUEQU36L.js +0 -392
- package/dist/chunk-O45M6LDB.js +0 -38
- package/dist/chunk-OBKWYKYC.js +0 -117
- package/dist/chunk-OHHKHSJP.js +0 -209
- package/dist/chunk-OT76OZL6.js +0 -45
- package/dist/chunk-OVYRLHPE.js +0 -150
- package/dist/chunk-OXCSVM3B.js +0 -155
- package/dist/chunk-P33LUIML.js +0 -205
- package/dist/chunk-PLS64NCS.js +0 -59
- package/dist/chunk-PS2NEWEX.js +0 -36
- package/dist/chunk-QA2KUPCP.js +0 -45
- package/dist/chunk-QOC3VYL2.js +0 -30
- package/dist/chunk-QSFOZUYL.js +0 -823
- package/dist/chunk-RHK32N73.js +0 -30
- package/dist/chunk-RW3Y22MW.js +0 -97
- package/dist/chunk-S7VFUQM2.js +0 -1484
- package/dist/chunk-S7VFUQM2.js.map +0 -1
- package/dist/chunk-T7WSLRAU.js +0 -49
- package/dist/chunk-TAKWLZZX.js +0 -944
- package/dist/chunk-TMBXVJKT.js +0 -75
- package/dist/chunk-TWKKOM55.js +0 -54
- package/dist/chunk-U3WZCU7E.js +0 -14
- package/dist/chunk-UF362QVH.js +0 -70
- package/dist/chunk-UN4FVIBH.js +0 -135
- package/dist/chunk-VEAVKDDB.js +0 -29
- package/dist/chunk-VEPTFUJY.js +0 -29
- package/dist/chunk-VJV7GKQK.js +0 -662
- package/dist/chunk-VQRAIPYF.js +0 -50
- package/dist/chunk-VRIYFLBA.js +0 -74
- package/dist/chunk-VWM3DAVB.js +0 -265
- package/dist/chunk-VWRRVE6D.js +0 -80
- package/dist/chunk-WBJIQSLL.js +0 -167
- package/dist/chunk-WIGQB62E.js +0 -164
- package/dist/chunk-WZSCE6RM.js +0 -466
- package/dist/chunk-XGDAPN6M.js +0 -255
- package/dist/chunk-XH7XP3OL.js +0 -1221
- package/dist/chunk-XREOISSI.js +0 -40
- package/dist/chunk-XUBPSPKD.js +0 -164
- package/dist/chunk-Y3A5CB5G.js +0 -247
- package/dist/chunk-YCXCR7VG.js +0 -230
- package/dist/chunk-YMVQD5Q5.js +0 -453
- package/dist/chunk-YN5IAHN6.js +0 -32
- package/dist/chunk-YN5IAHN6.js.map +0 -1
- package/dist/chunk-ZYJ55N7N.js +0 -86
- package/dist/classified/index.d.ts +0 -16
- package/dist/classified-marker-H6YSHYNK.js +0 -24
- package/dist/collection-facade-LVD22JLM.js +0 -39
- package/dist/computed-EXDMQODG.js +0 -11
- package/dist/consent/index.d.ts +0 -22
- package/dist/crdt/index.d.ts +0 -33
- package/dist/dead-filter-HQIE2YG7.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-BJP73GAP.js +0 -25
- package/dist/derivations/index.d.ts +0 -69
- package/dist/derive-BME7HDWO.js +0 -21
- package/dist/dev-unlock-Bmm2pgJ0.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-NHORSWSF.js +0 -125
- package/dist/executor-FE6X4LFX.js +0 -9
- package/dist/executor-KSHKRJXP.js +0 -25
- package/dist/executor-ZHTJJICG.js +0 -9
- package/dist/export-accessible-DACHM5VT.js +0 -23
- package/dist/extract-partition-RNENZZ4T.js +0 -36
- package/dist/fanout-sidecar-OFWN3NM7.js +0 -74
- package/dist/find-BNGBJNKP.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -34
- package/dist/hash-DAJjMsCE.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-DjWbxsjb.d.ts +0 -23579
- package/dist/index-qwuNvO2B.d.ts +0 -144
- package/dist/indexing/index.d.ts +0 -38
- package/dist/issue-NDI4CVZU.js +0 -19
- package/dist/lazy/index.d.ts +0 -20
- package/dist/ledger-6NDS2EO4.js +0 -42
- package/dist/liberate-HN3RIGIP.js +0 -24
- package/dist/link-set-SJB2MVJV.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -189
- package/dist/mime-magic-bBj5OgUC.d.ts +0 -103
- package/dist/noydb-BWF6EPIR.js +0 -66
- 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-WGNAG5H6.js +0 -41
- package/dist/portability/index.d.ts +0 -19
- package/dist/post-register-CWKBQRC7.js +0 -55
- package/dist/public-envelope-EJLVIFX7.js +0 -32
- package/dist/query/index.d.ts +0 -4
- package/dist/register-SBIX7TVV.js +0 -23
- package/dist/registry-3EQG6OOE.js +0 -18
- package/dist/registry-CA327ACV.js +0 -9
- package/dist/registry-E7OXOTSV.js +0 -19
- package/dist/request-withdrawal-KAH2AAXC.js +0 -31
- package/dist/reveal-R3JLHMUF.js +0 -38
- package/dist/revoke-IXLOJ3IH.js +0 -24
- 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-Y46N2GJ3.js +0 -25
- package/dist/snapshots/index.d.ts +0 -25
- package/dist/stale-Z7IW6RIL.js +0 -14
- package/dist/storage-ADNP2UWI.js +0 -23
- package/dist/store-coordination-provider-DTDMI6VL.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-DI-krBsZ.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-BUcli5Nh.d.ts +0 -101
- package/dist/vault-diff-Z2DUayMe.d.ts +0 -147
- package/dist/verify-JPF2YR5E.js +0 -139
- package/dist/walk-XYA2O3LW.js +0 -241
- package/dist/with/index.d.ts +0 -37
- package/dist/with-materialized-view-BUmzlXue.d.ts +0 -27
- package/dist/with-overlayed-view-m4FaXXTO.d.ts +0 -12
- package/dist/with-rollup-DEKGI9vb.d.ts +0 -47
- package/dist/withdraw-accessible-WLV4MTEN.js +0 -28
- /package/dist/{api-TX2EX2FX.js.map → api-YGMINAET.js.map} +0 -0
- /package/dist/{backup-R7NTDFKY.js.map → backup-XA5STIYQ.js.map} +0 -0
- /package/dist/{chunk-UF362QVH.js.map → chunk-25NDNMQ7.js.map} +0 -0
- /package/dist/{chunk-LL2NIVUR.js.map → chunk-2JMMY7HZ.js.map} +0 -0
- /package/dist/{chunk-CB7CWSKW.js.map → chunk-3CNQ7FQ3.js.map} +0 -0
- /package/dist/{chunk-3QSIU3UT.js.map → chunk-3G4KMVUN.js.map} +0 -0
- /package/dist/{chunk-VRIYFLBA.js.map → chunk-3MSQLQNZ.js.map} +0 -0
- /package/dist/{chunk-O45M6LDB.js.map → chunk-45ZZLTFH.js.map} +0 -0
- /package/dist/{chunk-OVYRLHPE.js.map → chunk-4N5QFSNQ.js.map} +0 -0
- /package/dist/{chunk-7BWJHO2A.js.map → chunk-4R4Q64W5.js.map} +0 -0
- /package/dist/{chunk-FORYWFN6.js.map → chunk-57V5S7PW.js.map} +0 -0
- /package/dist/{chunk-6G5ORS5D.js.map → chunk-5JB73NMC.js.map} +0 -0
- /package/dist/{chunk-OXCSVM3B.js.map → chunk-5XIPOCQC.js.map} +0 -0
- /package/dist/{chunk-J4LPNIGK.js.map → chunk-5ZOSG3RJ.js.map} +0 -0
- /package/dist/{chunk-JJZ2LW6T.js.map → chunk-67TNU77I.js.map} +0 -0
- /package/dist/{chunk-P33LUIML.js.map → chunk-6QILBDZU.js.map} +0 -0
- /package/dist/{chunk-5YESYH2C.js.map → chunk-7E67FJ33.js.map} +0 -0
- /package/dist/{chunk-VQRAIPYF.js.map → chunk-7ITPJFGC.js.map} +0 -0
- /package/dist/{chunk-OBKWYKYC.js.map → chunk-7NS43EXZ.js.map} +0 -0
- /package/dist/{chunk-FUOE7UUV.js.map → chunk-7QIXUSDQ.js.map} +0 -0
- /package/dist/{chunk-ET67AY6B.js.map → chunk-7VSGW5KJ.js.map} +0 -0
- /package/dist/{chunk-OHHKHSJP.js.map → chunk-A2Y6YFVN.js.map} +0 -0
- /package/dist/{chunk-XH7XP3OL.js.map → chunk-AOVDSIL3.js.map} +0 -0
- /package/dist/{chunk-VEAVKDDB.js.map → chunk-ARSAMO24.js.map} +0 -0
- /package/dist/{chunk-HY3AUMFI.js.map → chunk-AWB5JZW6.js.map} +0 -0
- /package/dist/{chunk-OT76OZL6.js.map → chunk-BCYQA5BK.js.map} +0 -0
- /package/dist/{chunk-EOXAAJTY.js.map → chunk-BE7N3AXA.js.map} +0 -0
- /package/dist/{chunk-XUBPSPKD.js.map → chunk-BEIRE5K4.js.map} +0 -0
- /package/dist/{chunk-ZYJ55N7N.js.map → chunk-BZO4WCJI.js.map} +0 -0
- /package/dist/{chunk-TMBXVJKT.js.map → chunk-C3YH34IL.js.map} +0 -0
- /package/dist/{chunk-T7WSLRAU.js.map → chunk-C7NTK5I3.js.map} +0 -0
- /package/dist/{chunk-KNZB6JMR.js.map → chunk-CB25ONKC.js.map} +0 -0
- /package/dist/{chunk-HPWKV3YB.js.map → chunk-CIKY6I4W.js.map} +0 -0
- /package/dist/{chunk-TWKKOM55.js.map → chunk-D26JB3LZ.js.map} +0 -0
- /package/dist/{chunk-PLS64NCS.js.map → chunk-D3EFFFOL.js.map} +0 -0
- /package/dist/{chunk-WZSCE6RM.js.map → chunk-DGH65E7Q.js.map} +0 -0
- /package/dist/{chunk-G4JYND6L.js.map → chunk-DIRRS7WP.js.map} +0 -0
- /package/dist/{chunk-Y3A5CB5G.js.map → chunk-DMFNPHCX.js.map} +0 -0
- /package/dist/{chunk-NUEQU36L.js.map → chunk-ELNBMFOS.js.map} +0 -0
- /package/dist/{chunk-QA2KUPCP.js.map → chunk-FQQF23MC.js.map} +0 -0
- /package/dist/{chunk-FRP6D2DM.js.map → chunk-FXK4X4BL.js.map} +0 -0
- /package/dist/{chunk-5VG4IJR7.js.map → chunk-GA2QHD6P.js.map} +0 -0
- /package/dist/{chunk-ICXIFFYZ.js.map → chunk-H44ZE4IE.js.map} +0 -0
- /package/dist/{chunk-BUAQ7YI3.js.map → chunk-H6CZSDWK.js.map} +0 -0
- /package/dist/{chunk-7P2SDJG3.js.map → chunk-H6HM6CVR.js.map} +0 -0
- /package/dist/{chunk-BKARNZJN.js.map → chunk-HFJIGWJC.js.map} +0 -0
- /package/dist/{chunk-3OPY6MK2.js.map → chunk-HUS3J5WM.js.map} +0 -0
- /package/dist/{chunk-DV4HUP5G.js.map → chunk-IDIV5NVH.js.map} +0 -0
- /package/dist/{chunk-DFVUTGT2.js.map → chunk-IGJHJYM6.js.map} +0 -0
- /package/dist/{chunk-KJ2BCBTL.js.map → chunk-IP2QBAGS.js.map} +0 -0
- /package/dist/{chunk-XGDAPN6M.js.map → chunk-JOQ53DMI.js.map} +0 -0
- /package/dist/{chunk-QSFOZUYL.js.map → chunk-K62IUKOD.js.map} +0 -0
- /package/dist/{chunk-YCXCR7VG.js.map → chunk-KPGX66PM.js.map} +0 -0
- /package/dist/{chunk-YMVQD5Q5.js.map → chunk-L2SNBIV7.js.map} +0 -0
- /package/dist/{chunk-2OZXVKVP.js.map → chunk-MCEKIAO4.js.map} +0 -0
- /package/dist/{chunk-IVLTXX4W.js.map → chunk-MELR46EF.js.map} +0 -0
- /package/dist/{chunk-2OV5NVE7.js.map → chunk-MSPNM2OM.js.map} +0 -0
- /package/dist/{chunk-DJ7KIPLV.js.map → chunk-O2DYPAZY.js.map} +0 -0
- /package/dist/{chunk-RHK32N73.js.map → chunk-ODJWBC5I.js.map} +0 -0
- /package/dist/{chunk-3JXPAHOZ.js.map → chunk-OEAATWH5.js.map} +0 -0
- /package/dist/{chunk-6P5XCKSD.js.map → chunk-OFJ5GPNA.js.map} +0 -0
- /package/dist/{chunk-4OMCIY6F.js.map → chunk-OOLO4LQG.js.map} +0 -0
- /package/dist/{chunk-VJV7GKQK.js.map → chunk-P5RY4ZWD.js.map} +0 -0
- /package/dist/{chunk-VWM3DAVB.js.map → chunk-PR5LC5YX.js.map} +0 -0
- /package/dist/{chunk-UN4FVIBH.js.map → chunk-PXWVF7MC.js.map} +0 -0
- /package/dist/{chunk-XREOISSI.js.map → chunk-Q3XSMOZM.js.map} +0 -0
- /package/dist/{chunk-5I35DOHK.js.map → chunk-QLLKLFE2.js.map} +0 -0
- /package/dist/{chunk-BQISD5ZV.js.map → chunk-QYPKGVT4.js.map} +0 -0
- /package/dist/{chunk-G6XV4H65.js.map → chunk-RKRGDAS7.js.map} +0 -0
- /package/dist/{chunk-WIGQB62E.js.map → chunk-SRVQHVNX.js.map} +0 -0
- /package/dist/{chunk-VEPTFUJY.js.map → chunk-SYMS4546.js.map} +0 -0
- /package/dist/{chunk-2REPHKET.js.map → chunk-TPH5EO6L.js.map} +0 -0
- /package/dist/{chunk-U3WZCU7E.js.map → chunk-UFILRICG.js.map} +0 -0
- /package/dist/{chunk-RW3Y22MW.js.map → chunk-UTLEAJXC.js.map} +0 -0
- /package/dist/{chunk-F4CEK5YM.js.map → chunk-VA4ZWLFY.js.map} +0 -0
- /package/dist/{chunk-3MATJ6O4.js.map → chunk-VR24ILCR.js.map} +0 -0
- /package/dist/{chunk-TAKWLZZX.js.map → chunk-W5D62AQD.js.map} +0 -0
- /package/dist/{chunk-WBJIQSLL.js.map → chunk-WGV4CUZT.js.map} +0 -0
- /package/dist/{chunk-HYR4WZZ3.js.map → chunk-X6CMGUAG.js.map} +0 -0
- /package/dist/{chunk-GNMXXTMN.js.map → chunk-XFXUTFWQ.js.map} +0 -0
- /package/dist/{chunk-QOC3VYL2.js.map → chunk-XHV25KBM.js.map} +0 -0
- /package/dist/{chunk-LEJIKBBB.js.map → chunk-YSXEFGND.js.map} +0 -0
- /package/dist/{chunk-PS2NEWEX.js.map → chunk-YXOUQ2H7.js.map} +0 -0
- /package/dist/{chunk-VWRRVE6D.js.map → chunk-ZP5PL65C.js.map} +0 -0
- /package/dist/{classified-marker-H6YSHYNK.js.map → classified-marker-LQWWQNIJ.js.map} +0 -0
- /package/dist/{collection-facade-LVD22JLM.js.map → collection-facade-YE2O4J4O.js.map} +0 -0
- /package/dist/{computed-EXDMQODG.js.map → computed-W6MVAMWZ.js.map} +0 -0
- /package/dist/{dead-filter-HQIE2YG7.js.map → dead-filter-4KXZEB3X.js.map} +0 -0
- /package/dist/{delegation-BJP73GAP.js.map → delegation-OPUU3R2E.js.map} +0 -0
- /package/dist/{derive-BME7HDWO.js.map → derive-BGUHU663.js.map} +0 -0
- /package/dist/{enclave-NHORSWSF.js.map → enclave-VXAQD4XJ.js.map} +0 -0
- /package/dist/{executor-FE6X4LFX.js.map → executor-GTVSUUBX.js.map} +0 -0
- /package/dist/{executor-KSHKRJXP.js.map → executor-GZWMTOXB.js.map} +0 -0
- /package/dist/{executor-ZHTJJICG.js.map → executor-XXGS4S3K.js.map} +0 -0
- /package/dist/{export-accessible-DACHM5VT.js.map → export-accessible-BMULIOYB.js.map} +0 -0
- /package/dist/{extract-partition-RNENZZ4T.js.map → extract-partition-JUQTWDXR.js.map} +0 -0
- /package/dist/{fanout-sidecar-OFWN3NM7.js.map → fanout-sidecar-CKYFH33E.js.map} +0 -0
- /package/dist/{find-BNGBJNKP.js.map → find-XRGCNGNN.js.map} +0 -0
- /package/dist/{issue-NDI4CVZU.js.map → issue-UB6AA5M6.js.map} +0 -0
- /package/dist/{ledger-6NDS2EO4.js.map → ledger-FU6GH5EH.js.map} +0 -0
- /package/dist/{liberate-HN3RIGIP.js.map → liberate-YUN7W5QG.js.map} +0 -0
- /package/dist/{link-set-SJB2MVJV.js.map → link-set-MNADSH5M.js.map} +0 -0
- /package/dist/{noydb-BWF6EPIR.js.map → noydb-6JLBZU4U.js.map} +0 -0
- /package/dist/{policy-WGNAG5H6.js.map → policy-JTFOPPUU.js.map} +0 -0
- /package/dist/{post-register-CWKBQRC7.js.map → post-register-HAWO3O7O.js.map} +0 -0
- /package/dist/{public-envelope-EJLVIFX7.js.map → public-envelope-NJVB7LPA.js.map} +0 -0
- /package/dist/{register-SBIX7TVV.js.map → register-VCKOBWKT.js.map} +0 -0
- /package/dist/{registry-3EQG6OOE.js.map → registry-72UKJ2L4.js.map} +0 -0
- /package/dist/{registry-CA327ACV.js.map → registry-BZFLJNEH.js.map} +0 -0
- /package/dist/{registry-E7OXOTSV.js.map → registry-YJEYSYI5.js.map} +0 -0
- /package/dist/{request-withdrawal-KAH2AAXC.js.map → request-withdrawal-6MJRMFHF.js.map} +0 -0
- /package/dist/{reveal-R3JLHMUF.js.map → reveal-BOY7XYFH.js.map} +0 -0
- /package/dist/{revoke-IXLOJ3IH.js.map → revoke-4KUNSVJC.js.map} +0 -0
- /package/dist/{signer-Y46N2GJ3.js.map → signer-DDDXP5JD.js.map} +0 -0
- /package/dist/{stale-Z7IW6RIL.js.map → stale-NXPT56JA.js.map} +0 -0
- /package/dist/{storage-ADNP2UWI.js.map → storage-IR6EEAV2.js.map} +0 -0
- /package/dist/{store-coordination-provider-DTDMI6VL.js.map → store-coordination-provider-HPYVFJCV.js.map} +0 -0
- /package/dist/{verify-JPF2YR5E.js.map → verify-66RHOW7N.js.map} +0 -0
- /package/dist/{walk-XYA2O3LW.js.map → walk-2RWEOCAS.js.map} +0 -0
- /package/dist/{withdraw-accessible-WLV4MTEN.js.map → withdraw-accessible-CLMZEHQT.js.map} +0 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assertTierAccess,
|
|
3
|
+
dekKey
|
|
4
|
+
} from "./chunk-4R4Q64W5.js";
|
|
5
|
+
import {
|
|
6
|
+
rewrapBodyToDek
|
|
7
|
+
} from "./chunk-QQJXBZCO.js";
|
|
8
|
+
import {
|
|
9
|
+
decrypt,
|
|
10
|
+
encrypt,
|
|
11
|
+
unwrapCek
|
|
12
|
+
} from "./chunk-HUS3J5WM.js";
|
|
13
|
+
import {
|
|
14
|
+
NOYDB_FORMAT_VERSION
|
|
15
|
+
} from "./chunk-CKZW6P5V.js";
|
|
16
|
+
import {
|
|
17
|
+
TierDemoteDeniedError,
|
|
18
|
+
TiersNotEnabledError
|
|
19
|
+
} from "./chunk-FH542DDY.js";
|
|
20
|
+
|
|
21
|
+
// src/with-audit/tiers/active.ts
|
|
22
|
+
function withTiers() {
|
|
23
|
+
return {
|
|
24
|
+
async putAtTier(ctx, id, record, tier, opts) {
|
|
25
|
+
const { putAtTier: putAtTier2 } = await import("./tiers/index.js");
|
|
26
|
+
return putAtTier2(ctx, id, record, tier, opts);
|
|
27
|
+
},
|
|
28
|
+
async getAtTier(ctx, id) {
|
|
29
|
+
const { getAtTier: getAtTier2 } = await import("./tiers/index.js");
|
|
30
|
+
return getAtTier2(ctx, id);
|
|
31
|
+
},
|
|
32
|
+
async listAtTier(ctx) {
|
|
33
|
+
const { listAtTier: listAtTier2 } = await import("./tiers/index.js");
|
|
34
|
+
return listAtTier2(ctx);
|
|
35
|
+
},
|
|
36
|
+
async elevate(ctx, id, toTier) {
|
|
37
|
+
const { elevate: elevate2 } = await import("./tiers/index.js");
|
|
38
|
+
return elevate2(ctx, id, toTier);
|
|
39
|
+
},
|
|
40
|
+
async demote(ctx, id, toTier) {
|
|
41
|
+
const { demote: demote2 } = await import("./tiers/index.js");
|
|
42
|
+
return demote2(ctx, id, toTier);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/with-audit/tiers/strategy.ts
|
|
48
|
+
var NO_TIERS = {
|
|
49
|
+
async putAtTier() {
|
|
50
|
+
throw new TiersNotEnabledError();
|
|
51
|
+
},
|
|
52
|
+
async getAtTier() {
|
|
53
|
+
throw new TiersNotEnabledError();
|
|
54
|
+
},
|
|
55
|
+
async listAtTier() {
|
|
56
|
+
throw new TiersNotEnabledError();
|
|
57
|
+
},
|
|
58
|
+
async elevate() {
|
|
59
|
+
throw new TiersNotEnabledError();
|
|
60
|
+
},
|
|
61
|
+
async demote() {
|
|
62
|
+
throw new TiersNotEnabledError();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// src/with-audit/tiers/index.ts
|
|
67
|
+
function assertTiersEnabled(ctx) {
|
|
68
|
+
if (!ctx.tiers) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
`Collection "${ctx.name}": hierarchical tiers are not enabled. Pass { tiers: [0, 1, 2, \u2026] } to vault.collection() to opt in.`
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function assertDeclaredTier(ctx, tier) {
|
|
75
|
+
if (tier < 0 || !Number.isInteger(tier)) {
|
|
76
|
+
throw new Error(`Collection "${ctx.name}": tier must be a non-negative integer, got ${tier}`);
|
|
77
|
+
}
|
|
78
|
+
if (tier === 0) return;
|
|
79
|
+
if (!ctx.tiers || !ctx.tiers.has(tier)) {
|
|
80
|
+
throw new Error(
|
|
81
|
+
`Collection "${ctx.name}": tier ${tier} is not declared in { tiers: [...] }`
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function isElevatorOrOwner(ctx) {
|
|
86
|
+
return ctx.keyring.role === "owner" || ctx.keyring.role === "admin";
|
|
87
|
+
}
|
|
88
|
+
async function putAtTier(ctx, id, record, tier, opts) {
|
|
89
|
+
assertTiersEnabled(ctx);
|
|
90
|
+
assertDeclaredTier(ctx, tier);
|
|
91
|
+
assertTierAccess(ctx.keyring, ctx.name, tier);
|
|
92
|
+
const key = dekKey(ctx.name, tier);
|
|
93
|
+
const dek = await ctx.getDEK(key);
|
|
94
|
+
const existing = await ctx.adapter.get(ctx.vault, ctx.name, id);
|
|
95
|
+
const version = existing ? existing._v + 1 : 1;
|
|
96
|
+
const json = JSON.stringify(record);
|
|
97
|
+
const { iv, data } = await encrypt(json, dek);
|
|
98
|
+
const envelope = {
|
|
99
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
100
|
+
_v: version,
|
|
101
|
+
_ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
102
|
+
_iv: iv,
|
|
103
|
+
_data: data,
|
|
104
|
+
_by: ctx.keyring.userId,
|
|
105
|
+
...tier > 0 && { _tier: tier },
|
|
106
|
+
...ctx.provenance && opts?.source !== void 0 ? { _source: opts.source, _sourceTs: opts.sourceTs ?? (/* @__PURE__ */ new Date()).toISOString() } : {}
|
|
107
|
+
};
|
|
108
|
+
await ctx.adapter.put(ctx.vault, ctx.name, id, envelope);
|
|
109
|
+
if (tier > 0) {
|
|
110
|
+
ctx.emitCrossTierEvent({
|
|
111
|
+
actor: ctx.keyring.userId,
|
|
112
|
+
collection: ctx.name,
|
|
113
|
+
id,
|
|
114
|
+
tier,
|
|
115
|
+
authorization: opts?.elevation ? "elevation" : "inherent",
|
|
116
|
+
op: "put",
|
|
117
|
+
ts: envelope._ts,
|
|
118
|
+
...opts?.elevation && {
|
|
119
|
+
reason: opts.elevation.reason,
|
|
120
|
+
elevatedFrom: opts.elevation.fromTier
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function getAtTier(ctx, id) {
|
|
126
|
+
assertTiersEnabled(ctx);
|
|
127
|
+
const envelope = await ctx.adapter.get(ctx.vault, ctx.name, id);
|
|
128
|
+
if (!envelope) return null;
|
|
129
|
+
const tier = envelope._tier ?? 0;
|
|
130
|
+
if (tier === 0) {
|
|
131
|
+
return ctx.codec.decryptRecord(envelope, { id });
|
|
132
|
+
}
|
|
133
|
+
const key = dekKey(ctx.name, tier);
|
|
134
|
+
if (!ctx.keyring.deks.has(key)) {
|
|
135
|
+
if (ctx.tierMode === "ghost") {
|
|
136
|
+
return { _ghost: true, _tier: tier };
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const dek = await ctx.getDEK(key);
|
|
141
|
+
let plaintext;
|
|
142
|
+
let cek;
|
|
143
|
+
if (envelope._cek !== void 0) {
|
|
144
|
+
cek = await unwrapCek(envelope._cek, dek);
|
|
145
|
+
ctx.cekCache?.set(id, cek, 1);
|
|
146
|
+
plaintext = await decrypt(envelope._iv, envelope._data, cek);
|
|
147
|
+
} else {
|
|
148
|
+
plaintext = await decrypt(envelope._iv, envelope._data, dek);
|
|
149
|
+
}
|
|
150
|
+
let record = JSON.parse(plaintext);
|
|
151
|
+
if (envelope._sealed !== void 0) {
|
|
152
|
+
record = await ctx.codec.applySealedSlots(record, envelope._sealed, cek, { id });
|
|
153
|
+
}
|
|
154
|
+
ctx.emitCrossTierEvent({
|
|
155
|
+
actor: ctx.keyring.userId,
|
|
156
|
+
collection: ctx.name,
|
|
157
|
+
id,
|
|
158
|
+
tier,
|
|
159
|
+
authorization: isElevatorOrOwner(ctx) ? "inherent" : "delegation",
|
|
160
|
+
op: "get",
|
|
161
|
+
ts: (/* @__PURE__ */ new Date()).toISOString()
|
|
162
|
+
});
|
|
163
|
+
return record;
|
|
164
|
+
}
|
|
165
|
+
async function listAtTier(ctx) {
|
|
166
|
+
assertTiersEnabled(ctx);
|
|
167
|
+
const ids = await ctx.adapter.list(ctx.vault, ctx.name);
|
|
168
|
+
const out = [];
|
|
169
|
+
for (const id of ids) {
|
|
170
|
+
const env = await ctx.adapter.get(ctx.vault, ctx.name, id);
|
|
171
|
+
if (!env) continue;
|
|
172
|
+
const tier = env._tier ?? 0;
|
|
173
|
+
const readable = tier === 0 || ctx.keyring.deks.has(dekKey(ctx.name, tier));
|
|
174
|
+
if (!readable && ctx.tierMode === "invisibility") continue;
|
|
175
|
+
out.push({ id, tier, readable });
|
|
176
|
+
}
|
|
177
|
+
return out;
|
|
178
|
+
}
|
|
179
|
+
async function elevate(ctx, id, toTier) {
|
|
180
|
+
assertTiersEnabled(ctx);
|
|
181
|
+
assertDeclaredTier(ctx, toTier);
|
|
182
|
+
assertTierAccess(ctx.keyring, ctx.name, toTier);
|
|
183
|
+
const envelope = await ctx.adapter.get(ctx.vault, ctx.name, id);
|
|
184
|
+
if (!envelope) throw new Error(`Record "${id}" not found in collection "${ctx.name}"`);
|
|
185
|
+
const fromTier = envelope._tier ?? 0;
|
|
186
|
+
if (toTier === fromTier) return;
|
|
187
|
+
if (toTier < fromTier) {
|
|
188
|
+
throw new Error(`Use demote() to lower the tier of "${id}" from ${fromTier} to ${toTier}`);
|
|
189
|
+
}
|
|
190
|
+
if (fromTier > 0) assertTierAccess(ctx.keyring, ctx.name, fromTier);
|
|
191
|
+
const fromKey = dekKey(ctx.name, fromTier);
|
|
192
|
+
const toKey = dekKey(ctx.name, toTier);
|
|
193
|
+
const fromDek = await ctx.getDEK(fromKey);
|
|
194
|
+
const toDek = await ctx.getDEK(toKey);
|
|
195
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
196
|
+
const body = await rewrapBodyToDek(envelope, fromDek, toDek);
|
|
197
|
+
if (body.cek) ctx.cekCache?.set(id, body.cek, 1);
|
|
198
|
+
const next = {
|
|
199
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
200
|
+
_v: envelope._v + 1,
|
|
201
|
+
_ts: now,
|
|
202
|
+
_iv: body._iv,
|
|
203
|
+
_data: body._data,
|
|
204
|
+
_by: ctx.keyring.userId,
|
|
205
|
+
_tier: toTier,
|
|
206
|
+
_elevatedBy: ctx.keyring.userId,
|
|
207
|
+
...body._cek !== void 0 ? { _cek: body._cek } : {}
|
|
208
|
+
};
|
|
209
|
+
await ctx.adapter.put(ctx.vault, ctx.name, id, next);
|
|
210
|
+
ctx.emitCrossTierEvent({
|
|
211
|
+
actor: ctx.keyring.userId,
|
|
212
|
+
collection: ctx.name,
|
|
213
|
+
id,
|
|
214
|
+
tier: toTier,
|
|
215
|
+
authorization: "elevation",
|
|
216
|
+
op: "elevate",
|
|
217
|
+
ts: now
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
async function demote(ctx, id, toTier) {
|
|
221
|
+
assertTiersEnabled(ctx);
|
|
222
|
+
if (toTier < 0) throw new Error(`Cannot demote to negative tier ${toTier}`);
|
|
223
|
+
const envelope = await ctx.adapter.get(ctx.vault, ctx.name, id);
|
|
224
|
+
if (!envelope) throw new Error(`Record "${id}" not found in collection "${ctx.name}"`);
|
|
225
|
+
const fromTier = envelope._tier ?? 0;
|
|
226
|
+
if (toTier === fromTier) return;
|
|
227
|
+
if (toTier > fromTier) {
|
|
228
|
+
throw new Error(`Use elevate() to raise the tier of "${id}" from ${fromTier} to ${toTier}`);
|
|
229
|
+
}
|
|
230
|
+
const isOwner = ctx.keyring.role === "owner";
|
|
231
|
+
const isOriginalElevator = envelope._elevatedBy === ctx.keyring.userId;
|
|
232
|
+
if (!isOwner && !isOriginalElevator) {
|
|
233
|
+
throw new TierDemoteDeniedError(id, fromTier);
|
|
234
|
+
}
|
|
235
|
+
assertTierAccess(ctx.keyring, ctx.name, fromTier);
|
|
236
|
+
if (toTier > 0) assertDeclaredTier(ctx, toTier);
|
|
237
|
+
const fromDek = await ctx.getDEK(dekKey(ctx.name, fromTier));
|
|
238
|
+
const toDek = await ctx.getDEK(dekKey(ctx.name, toTier));
|
|
239
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
240
|
+
const body = await rewrapBodyToDek(envelope, fromDek, toDek);
|
|
241
|
+
if (body.cek) ctx.cekCache?.set(id, body.cek, 1);
|
|
242
|
+
const next = {
|
|
243
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
244
|
+
_v: envelope._v + 1,
|
|
245
|
+
_ts: now,
|
|
246
|
+
_iv: body._iv,
|
|
247
|
+
_data: body._data,
|
|
248
|
+
_by: ctx.keyring.userId,
|
|
249
|
+
...toTier > 0 && { _tier: toTier },
|
|
250
|
+
...body._cek !== void 0 ? { _cek: body._cek } : {}
|
|
251
|
+
};
|
|
252
|
+
await ctx.adapter.put(ctx.vault, ctx.name, id, next);
|
|
253
|
+
ctx.emitCrossTierEvent({
|
|
254
|
+
actor: ctx.keyring.userId,
|
|
255
|
+
collection: ctx.name,
|
|
256
|
+
id,
|
|
257
|
+
tier: fromTier,
|
|
258
|
+
authorization: "elevation",
|
|
259
|
+
op: "demote",
|
|
260
|
+
ts: now
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
function classifySealedShred(ctx, live) {
|
|
264
|
+
return ctx.codec.classifySealedShred(live);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export {
|
|
268
|
+
withTiers,
|
|
269
|
+
NO_TIERS,
|
|
270
|
+
assertTiersEnabled,
|
|
271
|
+
assertDeclaredTier,
|
|
272
|
+
putAtTier,
|
|
273
|
+
getAtTier,
|
|
274
|
+
listAtTier,
|
|
275
|
+
elevate,
|
|
276
|
+
demote,
|
|
277
|
+
classifySealedShred
|
|
278
|
+
};
|
|
279
|
+
//# sourceMappingURL=chunk-H6HM6CVR.js.map
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import {
|
|
2
|
+
listUserEnvelopeIds,
|
|
3
|
+
loadUserEnvelope,
|
|
4
|
+
persistUserVisibility,
|
|
5
|
+
readUserVisibility,
|
|
6
|
+
saveUserEnvelope
|
|
7
|
+
} from "./chunk-4N5QFSNQ.js";
|
|
8
|
+
import {
|
|
9
|
+
PolicyDeniedError
|
|
10
|
+
} from "./chunk-FH542DDY.js";
|
|
11
|
+
|
|
12
|
+
// src/with-party/directory/user-envelope/api.ts
|
|
13
|
+
var UserApi = class {
|
|
14
|
+
/** keyringId → set of listeners. Wildcard '*' fires on every change. */
|
|
15
|
+
listeners = /* @__PURE__ */ new Map();
|
|
16
|
+
adapter;
|
|
17
|
+
vaultName;
|
|
18
|
+
/** The writer's own keyringId. Frozen at construction time. */
|
|
19
|
+
writerKeyringId;
|
|
20
|
+
getDek;
|
|
21
|
+
/**
|
|
22
|
+
* Policy-gate validator. When omitted, gates are skipped — useful
|
|
23
|
+
* for low-level tests that exercise the storage layer directly.
|
|
24
|
+
* Production paths always wire the Noydb-backed implementation.
|
|
25
|
+
*/
|
|
26
|
+
checkGate;
|
|
27
|
+
/**
|
|
28
|
+
* Noydb-backed `exportMyAccessibleData`, injected by the Vault
|
|
29
|
+
* (which holds the keyring + bundle machinery). Omitted in low-level tests.
|
|
30
|
+
*/
|
|
31
|
+
exportAccessible;
|
|
32
|
+
/**
|
|
33
|
+
* Noydb-backed `unilateralWithdrawal`, injected by the Vault.
|
|
34
|
+
* Destructive — extract + dispose (delete | freeze). Omitted in low-level tests.
|
|
35
|
+
*/
|
|
36
|
+
unilateralWithdraw;
|
|
37
|
+
/**
|
|
38
|
+
* Noydb-backed two-party withdrawal ceremony, injected by the
|
|
39
|
+
* Vault. requestWithdraw = requester side; the rest = owner side.
|
|
40
|
+
*/
|
|
41
|
+
requestWithdraw;
|
|
42
|
+
listWithdrawals;
|
|
43
|
+
approveWithdraw;
|
|
44
|
+
rejectWithdraw;
|
|
45
|
+
constructor(deps) {
|
|
46
|
+
this.adapter = deps.adapter;
|
|
47
|
+
this.vaultName = deps.vaultName;
|
|
48
|
+
this.writerKeyringId = deps.writerKeyringId;
|
|
49
|
+
this.getDek = deps.getDek;
|
|
50
|
+
this.checkGate = deps.checkGate;
|
|
51
|
+
this.exportAccessible = deps.exportAccessible;
|
|
52
|
+
this.unilateralWithdraw = deps.unilateralWithdraw;
|
|
53
|
+
this.requestWithdraw = deps.requestWithdraw;
|
|
54
|
+
this.listWithdrawals = deps.listWithdrawals;
|
|
55
|
+
this.approveWithdraw = deps.approveWithdraw;
|
|
56
|
+
this.rejectWithdraw = deps.rejectWithdraw;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* File a two-party withdrawal request for the caller's accessible
|
|
60
|
+
* scope. Non-destructive (writes a pending request); an owner later approves
|
|
61
|
+
* or rejects. This is the path for read-only roles (`client`/`viewer`) that
|
|
62
|
+
* cannot self-serve a destructive `unilateralWithdrawal`. Gated by
|
|
63
|
+
* `user-request-withdrawal` (enabled by default).
|
|
64
|
+
*/
|
|
65
|
+
async requestWithdrawal(opts = {}) {
|
|
66
|
+
if (this.checkGate) await this.checkGate("user-request-withdrawal");
|
|
67
|
+
if (!this.requestWithdraw) {
|
|
68
|
+
throw new Error("requestWithdrawal requires a Noydb-backed vault (not a bare UserApi)");
|
|
69
|
+
}
|
|
70
|
+
return this.requestWithdraw(opts);
|
|
71
|
+
}
|
|
72
|
+
/** Owner side: list filed withdrawal requests (optionally by status). */
|
|
73
|
+
async listWithdrawalRequests(opts = {}) {
|
|
74
|
+
if (!this.listWithdrawals) {
|
|
75
|
+
throw new Error("listWithdrawalRequests requires a Noydb-backed vault (not a bare UserApi)");
|
|
76
|
+
}
|
|
77
|
+
return this.listWithdrawals(opts);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Owner side: approve a pending request. Extracts the requester's
|
|
81
|
+
* recorded scope under firm authority, disposes of the source per the
|
|
82
|
+
* request's disposition, and returns the re-keyed bundle to hand back. Gated
|
|
83
|
+
* by `approve-user-withdrawal` (tier-2 default) + owner/admin role.
|
|
84
|
+
*/
|
|
85
|
+
async approveWithdrawal(requestId, opts = {}) {
|
|
86
|
+
if (this.checkGate) await this.checkGate("approve-user-withdrawal");
|
|
87
|
+
if (!this.approveWithdraw) {
|
|
88
|
+
throw new Error("approveWithdrawal requires a Noydb-backed vault (not a bare UserApi)");
|
|
89
|
+
}
|
|
90
|
+
return this.approveWithdraw(requestId, opts);
|
|
91
|
+
}
|
|
92
|
+
/** Owner side: reject a pending request (no data is touched). */
|
|
93
|
+
async rejectWithdrawal(requestId, opts = {}) {
|
|
94
|
+
if (this.checkGate) await this.checkGate("approve-user-withdrawal");
|
|
95
|
+
if (!this.rejectWithdraw) {
|
|
96
|
+
throw new Error("rejectWithdrawal requires a Noydb-backed vault (not a bare UserApi)");
|
|
97
|
+
}
|
|
98
|
+
return this.rejectWithdraw(requestId, opts);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Single-party withdrawal: export the caller's accessible scope
|
|
102
|
+
* (re-keyed) and dispose of the source (`delete` or `freeze`). Gated by the
|
|
103
|
+
* fail-closed built-in `client-unilateral-withdraw` policy — undefined or
|
|
104
|
+
* disabled → throws (use `requestWithdrawal`). The firm enables it at vault
|
|
105
|
+
* creation.
|
|
106
|
+
*/
|
|
107
|
+
async unilateralWithdrawal(opts) {
|
|
108
|
+
if (this.checkGate) await this.checkGate("client-unilateral-withdraw");
|
|
109
|
+
if (!this.unilateralWithdraw) {
|
|
110
|
+
throw new Error("unilateralWithdrawal requires a Noydb-backed vault (not a bare UserApi)");
|
|
111
|
+
}
|
|
112
|
+
return this.unilateralWithdraw(opts);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Export the calling user's accessible scope as a portable, re-keyed
|
|
116
|
+
* `.noydb` bundle. Non-destructive and **always allowed** (data sovereignty
|
|
117
|
+
* by construction) but audited. Scope = the caller's DEK access set.
|
|
118
|
+
*/
|
|
119
|
+
async exportMyAccessibleData(opts = {}) {
|
|
120
|
+
if (!this.exportAccessible) {
|
|
121
|
+
throw new Error("exportMyAccessibleData requires a Noydb-backed vault (not a bare UserApi)");
|
|
122
|
+
}
|
|
123
|
+
return this.exportAccessible(opts);
|
|
124
|
+
}
|
|
125
|
+
// ─── Write-self ──────────────────────────────────────────────────────
|
|
126
|
+
/** Read the writer's own envelope. Returns null if never written. */
|
|
127
|
+
async me() {
|
|
128
|
+
const dek = await this.getDek();
|
|
129
|
+
return loadUserEnvelope(this.adapter, this.vaultName, this.writerKeyringId, dek);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Deep-merge a partial patch into the writer's own envelope. Creates
|
|
133
|
+
* the envelope on first call. Optimistic-concurrency safe — a stale
|
|
134
|
+
* `_v` (parallel writer on another device) throws `ConflictError`.
|
|
135
|
+
*
|
|
136
|
+
* Patch semantics:
|
|
137
|
+
* - `undefined` (or omitted key) — skip; existing value preserved
|
|
138
|
+
* - `null` — delete the field from the merged result
|
|
139
|
+
* - any other value — overwrite (deep-merge for plain objects,
|
|
140
|
+
* replace for primitives / arrays)
|
|
141
|
+
*
|
|
142
|
+
* To clear a field, pass `null` rather than `undefined`. Callers
|
|
143
|
+
* with shape `T = string | null` where `null` is a meaningful value
|
|
144
|
+
* should use `setMe` for that specific field instead — `null` here
|
|
145
|
+
* always means delete.
|
|
146
|
+
*
|
|
147
|
+
* Gated by the `edit-own-profile` policy gate (default `minTier: 3`).
|
|
148
|
+
* Pass `presented` to satisfy tightened policies that require a
|
|
149
|
+
* factor proof (e.g. STRICT_POLICY's TOTP requirement).
|
|
150
|
+
*/
|
|
151
|
+
async updateMe(patch, presented) {
|
|
152
|
+
if (this.checkGate) await this.checkGate("edit-own-profile", presented);
|
|
153
|
+
const dek = await this.getDek();
|
|
154
|
+
const current = await loadUserEnvelope(
|
|
155
|
+
this.adapter,
|
|
156
|
+
this.vaultName,
|
|
157
|
+
this.writerKeyringId,
|
|
158
|
+
dek
|
|
159
|
+
);
|
|
160
|
+
const merged = current ? deepMerge(current.data, patch) : patch;
|
|
161
|
+
const written = await saveUserEnvelope(
|
|
162
|
+
this.adapter,
|
|
163
|
+
this.vaultName,
|
|
164
|
+
this.writerKeyringId,
|
|
165
|
+
merged,
|
|
166
|
+
dek,
|
|
167
|
+
current?._v ?? 0
|
|
168
|
+
);
|
|
169
|
+
this.fireChange(this.writerKeyringId, written);
|
|
170
|
+
return written;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Replace the writer's own envelope with `payload`. Use sparingly —
|
|
174
|
+
* `updateMe` is the canonical mutation. No `expectedVersion` check;
|
|
175
|
+
* callers explicitly take last-write-wins semantics.
|
|
176
|
+
*
|
|
177
|
+
* Gated by `edit-own-profile`. See `updateMe` for `presented` usage.
|
|
178
|
+
*/
|
|
179
|
+
async setMe(payload, presented) {
|
|
180
|
+
if (this.checkGate) await this.checkGate("edit-own-profile", presented);
|
|
181
|
+
const dek = await this.getDek();
|
|
182
|
+
const written = await saveUserEnvelope(
|
|
183
|
+
this.adapter,
|
|
184
|
+
this.vaultName,
|
|
185
|
+
this.writerKeyringId,
|
|
186
|
+
payload,
|
|
187
|
+
dek
|
|
188
|
+
);
|
|
189
|
+
this.fireChange(this.writerKeyringId, written);
|
|
190
|
+
return written;
|
|
191
|
+
}
|
|
192
|
+
// ─── Visibility ──────────────────────────────────────────────────────
|
|
193
|
+
/**
|
|
194
|
+
* Read the current user's visibility flag from
|
|
195
|
+
* `_meta/visibility/<keyringId>`. Returns `{ hidden: false }` when no
|
|
196
|
+
* document has been persisted (the default-visible case).
|
|
197
|
+
*/
|
|
198
|
+
async getMyVisibility() {
|
|
199
|
+
const persisted = await readUserVisibility(this.adapter, this.vaultName, this.writerKeyringId);
|
|
200
|
+
return persisted ?? { hidden: false };
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Update the current user's visibility in the team directory.
|
|
204
|
+
*
|
|
205
|
+
* - `hidden: true` — opt out of the default `listUsersWithEnvelopes`
|
|
206
|
+
* listing. `owner`/`admin` callers can still see the user by passing
|
|
207
|
+
* `{ includeHidden: true }`.
|
|
208
|
+
* - `hidden: false` — opt back in.
|
|
209
|
+
*
|
|
210
|
+
* Own-only by construction: the keyringId argument doesn't exist on
|
|
211
|
+
* this method, so no caller can hide or unhide another principal.
|
|
212
|
+
*
|
|
213
|
+
* Honest caveat: this is a UX flag, not a privacy guarantee. The
|
|
214
|
+
* envelope ciphertext at `_users/<keyringId>` and the keyring file at
|
|
215
|
+
* `_keyring/<userId>` are both still observable to anyone with direct
|
|
216
|
+
* store read access. See `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/user-envelope.md` →
|
|
217
|
+
* "Directory visibility".
|
|
218
|
+
*/
|
|
219
|
+
async setMyVisibility(visibility) {
|
|
220
|
+
await persistUserVisibility(
|
|
221
|
+
this.adapter,
|
|
222
|
+
this.vaultName,
|
|
223
|
+
this.writerKeyringId,
|
|
224
|
+
{ hidden: visibility.hidden }
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
// ─── Read-anyone ─────────────────────────────────────────────────────
|
|
228
|
+
/**
|
|
229
|
+
* Read another principal's envelope by their keyringId. Returns null
|
|
230
|
+
* if the principal exists but has no envelope yet, or if the
|
|
231
|
+
* keyringId does not exist at all.
|
|
232
|
+
*
|
|
233
|
+
* Gated by `view-team-profiles` (default `minTier: 2`) — but ONLY for
|
|
234
|
+
* cross-principal reads. Reading your own envelope (`keyringId ===
|
|
235
|
+
* self`) is never gated; that's just `me()` written long-form.
|
|
236
|
+
*/
|
|
237
|
+
async get(keyringId, presented) {
|
|
238
|
+
if (this.checkGate && keyringId !== this.writerKeyringId) {
|
|
239
|
+
await this.checkGate("view-team-profiles", presented);
|
|
240
|
+
}
|
|
241
|
+
const dek = await this.getDek();
|
|
242
|
+
return loadUserEnvelope(this.adapter, this.vaultName, keyringId, dek);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Read every persisted envelope in the vault. Order is store-defined.
|
|
246
|
+
*
|
|
247
|
+
* Gated by `view-team-profiles`. Default policy (`minTier: 2`) lets
|
|
248
|
+
* any authenticated session read all envelopes. Two privacy-strict
|
|
249
|
+
* opt-outs:
|
|
250
|
+
*
|
|
251
|
+
* - `view-team-profiles.enabled: false` → list() returns only the
|
|
252
|
+
* caller's own envelope (silent self-fallback, no thrown error).
|
|
253
|
+
* - `view-team-profiles.minTier: 1` + insufficient tier → throws
|
|
254
|
+
* `PolicyDeniedError` with `reason: 'insufficient-tier'`. The
|
|
255
|
+
* caller is expected to elevate, not silently degrade.
|
|
256
|
+
*
|
|
257
|
+
* The asymmetry is deliberate: `enabled: false` is a deliberate
|
|
258
|
+
* design choice ("nobody sees teammate profiles in this app");
|
|
259
|
+
* `insufficient-tier` is "you need to authenticate further". Different
|
|
260
|
+
* UX prompts for different intents.
|
|
261
|
+
*/
|
|
262
|
+
async list(presented) {
|
|
263
|
+
if (this.checkGate) {
|
|
264
|
+
try {
|
|
265
|
+
await this.checkGate("view-team-profiles", presented);
|
|
266
|
+
} catch (err) {
|
|
267
|
+
if (err instanceof PolicyDeniedError && err.reason === "disabled") {
|
|
268
|
+
const me = await this.me();
|
|
269
|
+
return me ? [me] : [];
|
|
270
|
+
}
|
|
271
|
+
throw err;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
const dek = await this.getDek();
|
|
275
|
+
const ids = await listUserEnvelopeIds(this.adapter, this.vaultName);
|
|
276
|
+
const envelopes = await Promise.all(
|
|
277
|
+
ids.map((id) => loadUserEnvelope(this.adapter, this.vaultName, id, dek))
|
|
278
|
+
);
|
|
279
|
+
return envelopes.filter((e) => e !== null);
|
|
280
|
+
}
|
|
281
|
+
// ─── Reactive ────────────────────────────────────────────────────────
|
|
282
|
+
/**
|
|
283
|
+
* Listen for changes to a specific keyringId's envelope. The callback
|
|
284
|
+
* fires synchronously after every successful local `updateMe` /
|
|
285
|
+
* `setMe` for that principal.
|
|
286
|
+
*
|
|
287
|
+
* Cross-instance changes (a teammate edits their profile on their
|
|
288
|
+
* device, the sync engine pulls the diff onto this device) will fire
|
|
289
|
+
* subscribers when the sync layer replays the write through this API.
|
|
290
|
+
* In v1, subscribers do NOT fire on raw store changes — wire your sync
|
|
291
|
+
* layer to call back through `vault.user.setMe` / `updateMe` if you
|
|
292
|
+
* need that.
|
|
293
|
+
*
|
|
294
|
+
* Pass keyringId `'*'` to fire on every change in the vault.
|
|
295
|
+
*/
|
|
296
|
+
subscribe(keyringId, cb) {
|
|
297
|
+
let listeners = this.listeners.get(keyringId);
|
|
298
|
+
if (!listeners) {
|
|
299
|
+
listeners = /* @__PURE__ */ new Set();
|
|
300
|
+
this.listeners.set(keyringId, listeners);
|
|
301
|
+
}
|
|
302
|
+
const wrapped = cb;
|
|
303
|
+
listeners.add(wrapped);
|
|
304
|
+
return () => {
|
|
305
|
+
listeners?.delete(wrapped);
|
|
306
|
+
if (listeners && listeners.size === 0) {
|
|
307
|
+
this.listeners.delete(keyringId);
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Reactive handle that caches the current value and re-reads on every
|
|
313
|
+
* change for the given keyringId. Convenient for framework bindings:
|
|
314
|
+
*
|
|
315
|
+
* const live = vault.user.live<UserShape>(vault.userId)
|
|
316
|
+
* live.subscribe(env => render(env?.data))
|
|
317
|
+
*
|
|
318
|
+
* Initial value is `null` until the first `current()` call materializes
|
|
319
|
+
* it via `vault.user.get()`. Call `stop()` when done to release the
|
|
320
|
+
* subscription.
|
|
321
|
+
*/
|
|
322
|
+
live(keyringId) {
|
|
323
|
+
let value = null;
|
|
324
|
+
let primed = false;
|
|
325
|
+
const unsubscribe = this.subscribe(keyringId, (env) => {
|
|
326
|
+
value = env;
|
|
327
|
+
});
|
|
328
|
+
return {
|
|
329
|
+
current() {
|
|
330
|
+
if (!primed) {
|
|
331
|
+
primed = true;
|
|
332
|
+
}
|
|
333
|
+
return value;
|
|
334
|
+
},
|
|
335
|
+
subscribe: (cb) => this.subscribe(keyringId, cb),
|
|
336
|
+
stop: unsubscribe
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
// ─── Internal: change emission ───────────────────────────────────────
|
|
340
|
+
fireChange(keyringId, env) {
|
|
341
|
+
const targeted = this.listeners.get(keyringId);
|
|
342
|
+
if (targeted) for (const l of targeted) l(env);
|
|
343
|
+
const wildcard = this.listeners.get("*");
|
|
344
|
+
if (wildcard) for (const l of wildcard) l(env);
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
var createUserApi = (deps) => new UserApi(deps);
|
|
348
|
+
function deepMerge(source, patch) {
|
|
349
|
+
if (!isPlainObject(source) || !isPlainObject(patch)) {
|
|
350
|
+
return patch;
|
|
351
|
+
}
|
|
352
|
+
const out = { ...source };
|
|
353
|
+
for (const [key, patchVal] of Object.entries(patch)) {
|
|
354
|
+
if (patchVal === void 0) {
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
if (patchVal === null) {
|
|
358
|
+
delete out[key];
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
const sourceVal = source[key];
|
|
362
|
+
if (isPlainObject(patchVal)) {
|
|
363
|
+
const recurseSource = isPlainObject(sourceVal) ? sourceVal : {};
|
|
364
|
+
out[key] = deepMerge(recurseSource, patchVal);
|
|
365
|
+
} else {
|
|
366
|
+
out[key] = patchVal;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return out;
|
|
370
|
+
}
|
|
371
|
+
function isPlainObject(x) {
|
|
372
|
+
if (x === null || typeof x !== "object") return false;
|
|
373
|
+
if (Array.isArray(x)) return false;
|
|
374
|
+
const proto = Object.getPrototypeOf(x);
|
|
375
|
+
return proto === Object.prototype || proto === null;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
export {
|
|
379
|
+
UserApi,
|
|
380
|
+
createUserApi
|
|
381
|
+
};
|
|
382
|
+
//# sourceMappingURL=chunk-HFJIGWJC.js.map
|