@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,291 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sha256Hex
|
|
3
|
+
} from "./chunk-HUS3J5WM.js";
|
|
4
|
+
import {
|
|
5
|
+
MaterializedViewSourceUnknownError
|
|
6
|
+
} from "./chunk-FH542DDY.js";
|
|
7
|
+
|
|
8
|
+
// src/with-formula/materialized-views/dependency-analyzer.ts
|
|
9
|
+
function analyzeDependencies(query) {
|
|
10
|
+
const deps = /* @__PURE__ */ new Set();
|
|
11
|
+
const plan = query._plan();
|
|
12
|
+
const ctx = query._joinContext();
|
|
13
|
+
if (ctx?.leftCollection) {
|
|
14
|
+
deps.add(ctx.leftCollection);
|
|
15
|
+
}
|
|
16
|
+
for (const leg of plan.joins) {
|
|
17
|
+
deps.add(leg.target);
|
|
18
|
+
}
|
|
19
|
+
for (const clause of plan.clauses) {
|
|
20
|
+
if (clause.type === "crossJoin") {
|
|
21
|
+
deps.add(clause.target);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
walkClausesForJoins(plan, deps, ctx);
|
|
25
|
+
return deps;
|
|
26
|
+
}
|
|
27
|
+
function walkClausesForJoins(plan, deps, ctx) {
|
|
28
|
+
void ctx;
|
|
29
|
+
for (const clause of plan.clauses) {
|
|
30
|
+
if (clause.type === "group") {
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function summarizeQueryPlan(query) {
|
|
35
|
+
const plan = query._plan();
|
|
36
|
+
const ctx = query._joinContext();
|
|
37
|
+
return JSON.stringify({
|
|
38
|
+
root: ctx?.leftCollection ?? null,
|
|
39
|
+
clauses: plan.clauses.map((c) => {
|
|
40
|
+
if (c.type === "crossJoin") {
|
|
41
|
+
return {
|
|
42
|
+
type: "crossJoin",
|
|
43
|
+
target: c.target,
|
|
44
|
+
as: c.as,
|
|
45
|
+
// Inline on: callback: use sentinel — drift detection disabled for this MV
|
|
46
|
+
onPredicateName: c.onPredicateName ?? (c.on ? "[inline]" : null),
|
|
47
|
+
maxRows: c.maxRows ?? null
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return c;
|
|
51
|
+
}),
|
|
52
|
+
orderBy: plan.orderBy,
|
|
53
|
+
limit: plan.limit ?? null,
|
|
54
|
+
offset: plan.offset,
|
|
55
|
+
joins: plan.joins.map((j) => ({ field: j.field, as: j.as, target: j.target, mode: j.mode }))
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function summarizeUnionPlan(spec) {
|
|
59
|
+
const arms = (spec.unionSources ?? []).map((s) => {
|
|
60
|
+
const joins = s.join?.length ? `[${s.join.map((j) => `${j.field}\u2192${j.as}`).join(";")}]` : "";
|
|
61
|
+
return `${s.collection}${joins}`;
|
|
62
|
+
}).join(",");
|
|
63
|
+
const groupBy = Array.isArray(spec.groupBy) ? [...spec.groupBy].sort().join(",") : typeof spec.groupBy === "string" ? spec.groupBy : "";
|
|
64
|
+
const aggKeys = spec.aggregate ? Object.keys(spec.aggregate).sort().join(",") : "";
|
|
65
|
+
const moneyKeys = spec.moneyFields ? Object.keys(spec.moneyFields).sort().join(",") : "";
|
|
66
|
+
return `union(${arms})|groupBy(${groupBy})|aggregate(${aggKeys})|money(${moneyKeys})`;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// src/with-formula/materialized-views/query-hash.ts
|
|
70
|
+
async function computeQueryHash(mvName, dependencies, queryPlanSummary) {
|
|
71
|
+
const canonical = JSON.stringify({
|
|
72
|
+
mvName,
|
|
73
|
+
dependencies: [...dependencies].sort(),
|
|
74
|
+
queryPlanSummary
|
|
75
|
+
});
|
|
76
|
+
const bytes = new TextEncoder().encode(canonical);
|
|
77
|
+
return sha256Hex(bytes);
|
|
78
|
+
}
|
|
79
|
+
function canonicalizeQueryPlan(plan) {
|
|
80
|
+
return JSON.stringify(plan, (_key, value) => {
|
|
81
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
82
|
+
const sorted = {};
|
|
83
|
+
for (const k of Object.keys(value).sort()) {
|
|
84
|
+
sorted[k] = value[k];
|
|
85
|
+
}
|
|
86
|
+
return sorted;
|
|
87
|
+
}
|
|
88
|
+
return value;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// src/with-formula/materialized-views/registry.ts
|
|
93
|
+
var WHOLE_RECORD = "*";
|
|
94
|
+
var MaterializedViewRegistry = class {
|
|
95
|
+
/** Keyed by `spec.name`. */
|
|
96
|
+
_byName = /* @__PURE__ */ new Map();
|
|
97
|
+
/** Keyed by dependency source-collection → MVs that depend on it. */
|
|
98
|
+
_bySource = /* @__PURE__ */ new Map();
|
|
99
|
+
/**
|
|
100
|
+
* Register an MV. Invokes `spec.query()` once at registration time to
|
|
101
|
+
* read the plan + join context; the resulting `Query<T>` is discarded
|
|
102
|
+
* after dependency extraction. `vault.collection(...)` must therefore
|
|
103
|
+
* be functional by the time this runs — typically wired from
|
|
104
|
+
* `Vault._initMaterializedViews` after collection bootstrap.
|
|
105
|
+
*
|
|
106
|
+
* Throws `MaterializedViewSourceUnknownError` if the analyzer
|
|
107
|
+
* surfaces a dependency the vault doesn't know about (when a
|
|
108
|
+
* `knownCollections` checker is supplied).
|
|
109
|
+
*/
|
|
110
|
+
async register(spec, db, options) {
|
|
111
|
+
const dbForQuery = spec.predicates ? wrapDbWithPredicates(db, spec.predicates) : db;
|
|
112
|
+
let dependencies;
|
|
113
|
+
let queryPlanSummary;
|
|
114
|
+
let qAny = null;
|
|
115
|
+
let isQuery = false;
|
|
116
|
+
if (spec.unionSources) {
|
|
117
|
+
dependencies = new Set(spec.unionSources.map((s) => s.collection));
|
|
118
|
+
if (spec.sources) for (const s of spec.sources) dependencies.add(s);
|
|
119
|
+
queryPlanSummary = summarizeUnionPlan(spec);
|
|
120
|
+
} else {
|
|
121
|
+
const q = spec.query(dbForQuery);
|
|
122
|
+
qAny = q;
|
|
123
|
+
isQuery = typeof qAny._plan === "function";
|
|
124
|
+
if (isQuery) {
|
|
125
|
+
dependencies = analyzeDependencies(qAny);
|
|
126
|
+
queryPlanSummary = summarizeQueryPlan(qAny);
|
|
127
|
+
const predicateRefs = extractPredicateRefs(qAny._plan());
|
|
128
|
+
if (predicateRefs.length > 0) {
|
|
129
|
+
queryPlanSummary = JSON.stringify({ plan: queryPlanSummary, predicates: predicateRefs });
|
|
130
|
+
}
|
|
131
|
+
if (spec.sources) for (const s of spec.sources) dependencies.add(s);
|
|
132
|
+
} else {
|
|
133
|
+
if (!spec.sources || spec.sources.length === 0) {
|
|
134
|
+
throw new Error(
|
|
135
|
+
`withMaterializedView "${spec.name}": query() returned an aggregate (Aggregation or GroupedAggregation) but no \`sources\` field is declared. The dependency analyzer cannot walk through groupBy().aggregate() back to the source \u2014 declare sources: [...] explicitly.`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
dependencies = new Set(spec.sources);
|
|
139
|
+
queryPlanSummary = JSON.stringify({ aggregate: true, sources: [...spec.sources].sort() });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (options?.knownCollections) {
|
|
143
|
+
for (const dep of dependencies) {
|
|
144
|
+
if (!options.knownCollections(dep)) {
|
|
145
|
+
throw new MaterializedViewSourceUnknownError(spec.name, dep);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const outputCollection = spec.output?.collection ?? spec.name;
|
|
150
|
+
const queryHash = await computeQueryHash(spec.name, dependencies, queryPlanSummary);
|
|
151
|
+
const partitionClauses = [];
|
|
152
|
+
const partitionField = spec.output?.partition?.field;
|
|
153
|
+
if (partitionField !== void 0 && isQuery) {
|
|
154
|
+
const plan = qAny._plan();
|
|
155
|
+
for (const clause of plan.clauses) {
|
|
156
|
+
if (isFieldClauseOnField(clause, partitionField)) partitionClauses.push(clause);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
const grain = spec.unionSources || isQuery ? "record" : "aggregate";
|
|
160
|
+
const reg = { spec, outputCollection, dependencies, queryHash, partitionClauses, grain };
|
|
161
|
+
this._byName.set(spec.name, reg);
|
|
162
|
+
for (const dep of dependencies) {
|
|
163
|
+
const arr = this._bySource.get(dep);
|
|
164
|
+
if (arr) arr.push(reg);
|
|
165
|
+
else this._bySource.set(dep, [reg]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** All MVs that depend on `source`, in registration order. */
|
|
169
|
+
mvsForSource(source) {
|
|
170
|
+
return this._bySource.get(source) ?? [];
|
|
171
|
+
}
|
|
172
|
+
/** Single MV by name, or `undefined`. */
|
|
173
|
+
byName(name) {
|
|
174
|
+
return this._byName.get(name);
|
|
175
|
+
}
|
|
176
|
+
/** Iterate over every registered MV. */
|
|
177
|
+
all() {
|
|
178
|
+
return [...this._byName.values()];
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Graph edges for #638 Task 2: one `'mv'` edge per registered MV — target
|
|
182
|
+
* = the output collection (a `WHOLE_RECORD` artifact node), sources =
|
|
183
|
+
* every dependency (also `WHOLE_RECORD` nodes). Same-collection edges
|
|
184
|
+
* (`dep === outputCollection`) are skipped IFF the MV declares an
|
|
185
|
+
* `output.partition` discriminator AND the query has a where-clause that
|
|
186
|
+
* provably excludes the partition value (`partitionDisjoint`) — the SAME
|
|
187
|
+
* condition the old local DFS used. Grain comes from the registration-time
|
|
188
|
+
* `RegisteredMV.grain`.
|
|
189
|
+
*/
|
|
190
|
+
edges() {
|
|
191
|
+
const out = [];
|
|
192
|
+
for (const reg of this._byName.values()) {
|
|
193
|
+
const sources = [];
|
|
194
|
+
for (const dep of reg.dependencies) {
|
|
195
|
+
if (dep === reg.outputCollection && partitionDisjoint(reg)) continue;
|
|
196
|
+
sources.push({ collection: dep, field: WHOLE_RECORD });
|
|
197
|
+
}
|
|
198
|
+
if (sources.length === 0) continue;
|
|
199
|
+
out.push({ target: { collection: reg.outputCollection, field: WHOLE_RECORD }, sources, kind: "mv", grain: reg.grain });
|
|
200
|
+
}
|
|
201
|
+
return out;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Cycle detection, delegated to `ViaGraph.assertAcyclic()` (#638 Task 2 —
|
|
205
|
+
* retires the local DFS). `graph` is the caller's shared per-vault graph,
|
|
206
|
+
* ALREADY carrying this registry's `edges()` AND `DerivationRegistry`'s
|
|
207
|
+
* (registered by the caller — see `Vault._initMaterializedViews`, which
|
|
208
|
+
* runs after `_initDerivations`, so a pure-derivation cycle already threw
|
|
209
|
+
* `DerivationCycleError` there; any cycle surfacing here necessarily
|
|
210
|
+
* touches an MV edge). Throws `MaterializedViewCycleError` — SAME class as
|
|
211
|
+
* before.
|
|
212
|
+
*/
|
|
213
|
+
validate(graph) {
|
|
214
|
+
graph.assertAcyclic();
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
function isFieldClauseOnField(clause, field) {
|
|
218
|
+
return clause.type === "field" && clause.field === field;
|
|
219
|
+
}
|
|
220
|
+
function wrapDbWithPredicates(db, predicates) {
|
|
221
|
+
const map = /* @__PURE__ */ new Map();
|
|
222
|
+
for (const [name, decl] of Object.entries(predicates)) {
|
|
223
|
+
map.set(name, {
|
|
224
|
+
hash: decl.hash,
|
|
225
|
+
fn: decl.fn
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
230
|
+
collection(name) {
|
|
231
|
+
const c = db.collection(name);
|
|
232
|
+
return new Proxy(c, {
|
|
233
|
+
get(target, prop, receiver) {
|
|
234
|
+
if (prop === "query") {
|
|
235
|
+
return (...args) => {
|
|
236
|
+
const q = target.query(...args);
|
|
237
|
+
if (q && typeof q._withPredicates === "function") {
|
|
238
|
+
return q._withPredicates(map);
|
|
239
|
+
}
|
|
240
|
+
return q;
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
return Reflect.get(target, prop, receiver);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
function extractPredicateRefs(plan) {
|
|
250
|
+
const refs = [];
|
|
251
|
+
const walk = (clauses) => {
|
|
252
|
+
for (const c of clauses) {
|
|
253
|
+
if (c.type === "wherePredicate") {
|
|
254
|
+
refs.push({ name: c.name, predicateHash: c.predicateHash, ctxHash: c.ctxHash });
|
|
255
|
+
} else if (c.type === "group") {
|
|
256
|
+
walk(c.clauses);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
walk(plan.clauses);
|
|
261
|
+
refs.sort((a, b) => {
|
|
262
|
+
if (a.name !== b.name) return a.name < b.name ? -1 : 1;
|
|
263
|
+
if (a.predicateHash !== b.predicateHash) return a.predicateHash < b.predicateHash ? -1 : 1;
|
|
264
|
+
return a.ctxHash < b.ctxHash ? -1 : a.ctxHash > b.ctxHash ? 1 : 0;
|
|
265
|
+
});
|
|
266
|
+
return refs;
|
|
267
|
+
}
|
|
268
|
+
function partitionDisjoint(reg) {
|
|
269
|
+
const partition = reg.spec.output?.partition;
|
|
270
|
+
if (partition === void 0) return false;
|
|
271
|
+
const value = partition.value;
|
|
272
|
+
for (const c of reg.partitionClauses) {
|
|
273
|
+
if (c.op === "==" && c.value !== value) return true;
|
|
274
|
+
if (c.op === "!=" && c.value === value) return true;
|
|
275
|
+
if (c.op === "in" && Array.isArray(c.value)) {
|
|
276
|
+
const list = c.value;
|
|
277
|
+
if (!list.includes(value)) return true;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
export {
|
|
284
|
+
analyzeDependencies,
|
|
285
|
+
summarizeQueryPlan,
|
|
286
|
+
computeQueryHash,
|
|
287
|
+
canonicalizeQueryPlan,
|
|
288
|
+
MaterializedViewRegistry,
|
|
289
|
+
wrapDbWithPredicates
|
|
290
|
+
};
|
|
291
|
+
//# sourceMappingURL=chunk-3G4KMVUN.js.map
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ReadOnlyFrameError
|
|
3
|
+
} from "./chunk-FH542DDY.js";
|
|
4
|
+
|
|
5
|
+
// src/with-fork/shadow/vault-frame.ts
|
|
6
|
+
var VaultFrame = class {
|
|
7
|
+
constructor(vault) {
|
|
8
|
+
this.vault = vault;
|
|
9
|
+
}
|
|
10
|
+
vault;
|
|
11
|
+
/**
|
|
12
|
+
* Get a read-only view of one collection. The returned
|
|
13
|
+
* {@link CollectionFrame} delegates all reads to the underlying
|
|
14
|
+
* live collection — cache, locale handling, and validation all
|
|
15
|
+
* work identically to the live collection.
|
|
16
|
+
*/
|
|
17
|
+
collection(name) {
|
|
18
|
+
return new CollectionFrame(this.vault.collection(name), name);
|
|
19
|
+
}
|
|
20
|
+
/** List all collection names visible in the underlying vault. */
|
|
21
|
+
async collections() {
|
|
22
|
+
return this.vault.collections();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
var CollectionFrame = class {
|
|
26
|
+
constructor(inner, name) {
|
|
27
|
+
this.inner = inner;
|
|
28
|
+
this.name = name;
|
|
29
|
+
}
|
|
30
|
+
inner;
|
|
31
|
+
name;
|
|
32
|
+
// ── reads (delegated) ──────────────────────────────────────────────
|
|
33
|
+
get(id, locale) {
|
|
34
|
+
return this.inner.get(id, locale);
|
|
35
|
+
}
|
|
36
|
+
list(locale) {
|
|
37
|
+
return this.inner.list(locale);
|
|
38
|
+
}
|
|
39
|
+
query(predicate) {
|
|
40
|
+
return predicate !== void 0 ? this.inner.query(predicate) : this.inner.query();
|
|
41
|
+
}
|
|
42
|
+
/** History reads — allowed (history is read-only by nature). */
|
|
43
|
+
history(...args) {
|
|
44
|
+
return this.inner.history(...args);
|
|
45
|
+
}
|
|
46
|
+
getVersion(id, version) {
|
|
47
|
+
return this.inner.getVersion(id, version);
|
|
48
|
+
}
|
|
49
|
+
// ── write guards ──────────────────────────────────────────────────
|
|
50
|
+
async put(_id, _record) {
|
|
51
|
+
throw new ReadOnlyFrameError("put");
|
|
52
|
+
}
|
|
53
|
+
async delete(_id) {
|
|
54
|
+
throw new ReadOnlyFrameError("delete");
|
|
55
|
+
}
|
|
56
|
+
async update(_id, _patch) {
|
|
57
|
+
throw new ReadOnlyFrameError("update");
|
|
58
|
+
}
|
|
59
|
+
async revert(_id, _version) {
|
|
60
|
+
throw new ReadOnlyFrameError("revert");
|
|
61
|
+
}
|
|
62
|
+
async putMany(_entries) {
|
|
63
|
+
throw new ReadOnlyFrameError("putMany");
|
|
64
|
+
}
|
|
65
|
+
async deleteMany(_ids) {
|
|
66
|
+
throw new ReadOnlyFrameError("deleteMany");
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
VaultFrame,
|
|
72
|
+
CollectionFrame
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-3MSQLQNZ.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NoydbError
|
|
3
|
+
} from "./chunk-FH542DDY.js";
|
|
4
|
+
|
|
5
|
+
// src/with-formula/computed/index.ts
|
|
6
|
+
var ComputedFieldError = class extends NoydbError {
|
|
7
|
+
constructor(field, id, cause) {
|
|
8
|
+
super(
|
|
9
|
+
"COMPUTED_FIELD",
|
|
10
|
+
`computed field "${field}" threw for record "${id}": ` + (cause instanceof Error ? cause.message : String(cause))
|
|
11
|
+
);
|
|
12
|
+
this.field = field;
|
|
13
|
+
this.id = id;
|
|
14
|
+
this.cause = cause;
|
|
15
|
+
this.name = "ComputedFieldError";
|
|
16
|
+
}
|
|
17
|
+
field;
|
|
18
|
+
id;
|
|
19
|
+
cause;
|
|
20
|
+
};
|
|
21
|
+
function evalComputedFields(record, computed, id) {
|
|
22
|
+
const out = { ...record };
|
|
23
|
+
for (const [field, entry] of Object.entries(computed)) {
|
|
24
|
+
const fn = typeof entry === "function" ? entry : entry.fn;
|
|
25
|
+
try {
|
|
26
|
+
out[field] = fn(out);
|
|
27
|
+
} catch (cause) {
|
|
28
|
+
throw new ComputedFieldError(field, id, cause);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
ComputedFieldError,
|
|
36
|
+
evalComputedFields
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=chunk-45ZZLTFH.js.map
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// src/with-commit/crdt/crdt.ts
|
|
2
|
+
function resolveCrdtSnapshot(state) {
|
|
3
|
+
switch (state._crdt) {
|
|
4
|
+
case "lww-map": {
|
|
5
|
+
const result = {};
|
|
6
|
+
for (const [field, reg] of Object.entries(state.fields)) {
|
|
7
|
+
result[field] = reg.v;
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
case "rga": {
|
|
12
|
+
const dead = new Set(state.tombstones);
|
|
13
|
+
return state.items.filter((i) => !dead.has(i.nid)).map((i) => i.v);
|
|
14
|
+
}
|
|
15
|
+
case "yjs":
|
|
16
|
+
return state.update;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function mergeCrdtStates(a, b) {
|
|
20
|
+
if (a._crdt !== b._crdt) return a;
|
|
21
|
+
switch (a._crdt) {
|
|
22
|
+
case "lww-map":
|
|
23
|
+
return mergeLwwMap(a, b);
|
|
24
|
+
case "rga":
|
|
25
|
+
return mergeRga(a, b);
|
|
26
|
+
case "yjs":
|
|
27
|
+
return a;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function mergeLwwMap(a, b) {
|
|
31
|
+
const merged = {};
|
|
32
|
+
const allFields = /* @__PURE__ */ new Set([...Object.keys(a.fields), ...Object.keys(b.fields)]);
|
|
33
|
+
for (const field of allFields) {
|
|
34
|
+
const fa = a.fields[field];
|
|
35
|
+
const fb = b.fields[field];
|
|
36
|
+
if (!fa) {
|
|
37
|
+
merged[field] = fb;
|
|
38
|
+
} else if (!fb) {
|
|
39
|
+
merged[field] = fa;
|
|
40
|
+
} else {
|
|
41
|
+
merged[field] = fa.ts >= fb.ts ? fa : fb;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return { _crdt: "lww-map", fields: merged };
|
|
45
|
+
}
|
|
46
|
+
function mergeRga(a, b) {
|
|
47
|
+
const allTombstones = /* @__PURE__ */ new Set([...a.tombstones, ...b.tombstones]);
|
|
48
|
+
const seenNids = new Set(a.items.map((i) => i.nid));
|
|
49
|
+
const merged = [
|
|
50
|
+
...a.items,
|
|
51
|
+
...b.items.filter((i) => !seenNids.has(i.nid))
|
|
52
|
+
];
|
|
53
|
+
return { _crdt: "rga", items: merged, tombstones: [...allTombstones] };
|
|
54
|
+
}
|
|
55
|
+
function buildLwwMapState(record, existing, now) {
|
|
56
|
+
const fields = {};
|
|
57
|
+
for (const [field, value] of Object.entries(record)) {
|
|
58
|
+
fields[field] = { v: value, ts: now };
|
|
59
|
+
}
|
|
60
|
+
if (existing) {
|
|
61
|
+
for (const [field, reg] of Object.entries(existing.fields)) {
|
|
62
|
+
if (!(field in fields)) {
|
|
63
|
+
fields[field] = reg;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { _crdt: "lww-map", fields };
|
|
68
|
+
}
|
|
69
|
+
function buildRgaState(arr, existing, generateNid) {
|
|
70
|
+
const existingByValue = /* @__PURE__ */ new Map();
|
|
71
|
+
if (existing) {
|
|
72
|
+
for (const item of existing.items) {
|
|
73
|
+
const key = JSON.stringify(item.v);
|
|
74
|
+
if (!existingByValue.has(key)) existingByValue.set(key, item);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const usedNids = /* @__PURE__ */ new Set();
|
|
78
|
+
const newItems = [];
|
|
79
|
+
for (const el of arr) {
|
|
80
|
+
const key = JSON.stringify(el);
|
|
81
|
+
const match = existingByValue.get(key);
|
|
82
|
+
if (match && !usedNids.has(match.nid)) {
|
|
83
|
+
newItems.push(match);
|
|
84
|
+
usedNids.add(match.nid);
|
|
85
|
+
} else {
|
|
86
|
+
const nid = generateNid();
|
|
87
|
+
newItems.push({ nid, v: el });
|
|
88
|
+
usedNids.add(nid);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const tombstones = existing ? [...existing.tombstones] : [];
|
|
92
|
+
const extraItems = [];
|
|
93
|
+
if (existing) {
|
|
94
|
+
for (const item of existing.items) {
|
|
95
|
+
if (!usedNids.has(item.nid)) {
|
|
96
|
+
if (!tombstones.includes(item.nid)) tombstones.push(item.nid);
|
|
97
|
+
extraItems.push(item);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const items = [...newItems, ...extraItems];
|
|
102
|
+
return { _crdt: "rga", items, tombstones };
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export {
|
|
106
|
+
resolveCrdtSnapshot,
|
|
107
|
+
mergeCrdtStates,
|
|
108
|
+
buildLwwMapState,
|
|
109
|
+
buildRgaState
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=chunk-4GPE63GU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/with-commit/crdt/crdt.ts"],"sourcesContent":["/**\n * CRDT state types, merge logic, and build helpers.\n * per-collection CRDT mode: 'lww-map' | 'rga' | 'yjs'\n *\n * The encrypted envelope wraps the CRDT state (not the resolved snapshot).\n * Adapters only ever see ciphertext. `collection.get(id)` returns the\n * resolved snapshot; `collection.getRaw(id)` returns the full CRDT state.\n */\n\n// Hoisted to kernel/types.ts (C3 — enclave self-containment: record-codec.ts\n// consumes CrdtState/CrdtMode as spine-owned contract types; LwwMapState/\n// RgaState/YjsState were hoisted alongside them to break the types.ts ↔\n// crdt.ts cycle — #667). Re-exported here so existing importers of this\n// module are unaffected.\nimport type { CrdtState, LwwMapState, RgaState } from '../../kernel/types.js'\nexport type { CrdtMode, CrdtState, LwwMapState, RgaState, YjsState } from '../../kernel/types.js'\n\n// ─── Snapshot resolution ──────────────────────────────────────────────\n\n/**\n * Resolve a CRDT state into the end-user record snapshot.\n *\n * - `lww-map` → `Record<string, unknown>` (field values extracted from registers)\n * - `rga` → `unknown[]` (non-tombstoned items in insertion order)\n * - `yjs` → `string` (base64 update blob; use @noy-db/yjs for a Y.Doc)\n */\nexport function resolveCrdtSnapshot(state: CrdtState): unknown {\n switch (state._crdt) {\n case 'lww-map': {\n const result: Record<string, unknown> = {}\n for (const [field, reg] of Object.entries(state.fields)) {\n result[field] = reg.v\n }\n return result\n }\n case 'rga': {\n const dead = new Set(state.tombstones)\n return state.items.filter(i => !dead.has(i.nid)).map(i => i.v)\n }\n case 'yjs':\n return state.update\n }\n}\n\n// ─── CRDT merge ───────────────────────────────────────────────────────\n\n/**\n * Merge two CRDT states produced by concurrent writes.\n * Called by the collection-level conflict resolver registered with SyncEngine.\n *\n * For `yjs`: core cannot merge Yjs without importing the `yjs` package.\n * The caller must handle that case by falling back to the higher-`_v` envelope.\n */\nexport function mergeCrdtStates(a: CrdtState, b: CrdtState): CrdtState {\n // Mismatched modes shouldn't happen in practice — same collection, same schema.\n if (a._crdt !== b._crdt) return a\n\n switch (a._crdt) {\n case 'lww-map':\n return mergeLwwMap(a, b as LwwMapState)\n case 'rga':\n return mergeRga(a, b as RgaState)\n case 'yjs':\n // Signal to caller that Yjs merge is needed externally\n return a\n }\n}\n\nfunction mergeLwwMap(a: LwwMapState, b: LwwMapState): LwwMapState {\n const merged: Record<string, { v: unknown; ts: string }> = {}\n const allFields = new Set([...Object.keys(a.fields), ...Object.keys(b.fields)])\n for (const field of allFields) {\n const fa = a.fields[field]\n const fb = b.fields[field]\n if (!fa) { merged[field] = fb! }\n else if (!fb) { merged[field] = fa }\n else { merged[field] = fa.ts >= fb.ts ? fa : fb }\n }\n return { _crdt: 'lww-map', fields: merged }\n}\n\nfunction mergeRga(a: RgaState, b: RgaState): RgaState {\n // Union tombstones from both sides\n const allTombstones = new Set([...a.tombstones, ...b.tombstones])\n // Union items by nid: start with a's ordering, append b-only items\n const seenNids = new Set(a.items.map(i => i.nid))\n const merged: Array<{ nid: string; v: unknown }> = [\n ...a.items,\n ...b.items.filter(i => !seenNids.has(i.nid)),\n ]\n return { _crdt: 'rga', items: merged, tombstones: [...allTombstones] }\n}\n\n// ─── Build helpers ────────────────────────────────────────────────────\n\n/**\n * Build (or update) an lww-map state from a new record.\n *\n * All fields in the new record win at timestamp `now`.\n * Fields present in the existing state but absent from the new record\n * are preserved (they were written by another device).\n */\nexport function buildLwwMapState(\n record: Record<string, unknown>,\n existing: LwwMapState | undefined,\n now: string,\n): LwwMapState {\n const fields: Record<string, { v: unknown; ts: string }> = {}\n\n // New record fields all get the current timestamp — this device wins for these\n for (const [field, value] of Object.entries(record)) {\n fields[field] = { v: value, ts: now }\n }\n\n // Preserve fields from the existing state that aren't in the new record\n if (existing) {\n for (const [field, reg] of Object.entries(existing.fields)) {\n if (!(field in fields)) {\n fields[field] = reg\n }\n }\n }\n\n return { _crdt: 'lww-map', fields }\n}\n\n/**\n * Build (or update) an RGA state from a new array.\n *\n * Existing items are matched to new elements by deep-equality of their `v`.\n * Unmatched existing items are tombstoned. New elements that have no existing\n * match get a fresh NID via `generateNid()`.\n */\nexport function buildRgaState(\n arr: unknown[],\n existing: RgaState | undefined,\n generateNid: () => string,\n): RgaState {\n // Build an index from JSON(v) → existing item so we can match by value\n const existingByValue = new Map<string, { nid: string; v: unknown }>()\n if (existing) {\n for (const item of existing.items) {\n // Only add first occurrence per value to avoid double-matching\n const key = JSON.stringify(item.v)\n if (!existingByValue.has(key)) existingByValue.set(key, item)\n }\n }\n\n const usedNids = new Set<string>()\n const newItems: Array<{ nid: string; v: unknown }> = []\n\n for (const el of arr) {\n const key = JSON.stringify(el)\n const match = existingByValue.get(key)\n if (match && !usedNids.has(match.nid)) {\n // Reuse existing NID to preserve cross-device identity\n newItems.push(match)\n usedNids.add(match.nid)\n } else {\n // New element — assign a fresh NID\n const nid = generateNid()\n newItems.push({ nid, v: el })\n usedNids.add(nid)\n }\n }\n\n // Elements in the existing state that aren't in the new array → tombstone.\n // Tombstoned items are kept in the items array to preserve ordering for\n // cross-device merge — the resolved snapshot filters them out.\n const tombstones: string[] = existing ? [...existing.tombstones] : []\n const extraItems: Array<{ nid: string; v: unknown }> = []\n if (existing) {\n for (const item of existing.items) {\n if (!usedNids.has(item.nid)) {\n if (!tombstones.includes(item.nid)) tombstones.push(item.nid)\n extraItems.push(item) // retain in items for ordering\n }\n }\n }\n\n // Final items: live items in new order, then tombstoned extras at the end\n const items = [...newItems, ...extraItems]\n\n return { _crdt: 'rga', items, tombstones }\n}\n"],"mappings":";AA0BO,SAAS,oBAAoB,OAA2B;AAC7D,UAAQ,MAAM,OAAO;AAAA,IACnB,KAAK,WAAW;AACd,YAAM,SAAkC,CAAC;AACzC,iBAAW,CAAC,OAAO,GAAG,KAAK,OAAO,QAAQ,MAAM,MAAM,GAAG;AACvD,eAAO,KAAK,IAAI,IAAI;AAAA,MACtB;AACA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,OAAO;AACV,YAAM,OAAO,IAAI,IAAI,MAAM,UAAU;AACrC,aAAO,MAAM,MAAM,OAAO,OAAK,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,OAAK,EAAE,CAAC;AAAA,IAC/D;AAAA,IACA,KAAK;AACH,aAAO,MAAM;AAAA,EACjB;AACF;AAWO,SAAS,gBAAgB,GAAc,GAAyB;AAErE,MAAI,EAAE,UAAU,EAAE,MAAO,QAAO;AAEhC,UAAQ,EAAE,OAAO;AAAA,IACf,KAAK;AACH,aAAO,YAAY,GAAG,CAAgB;AAAA,IACxC,KAAK;AACH,aAAO,SAAS,GAAG,CAAa;AAAA,IAClC,KAAK;AAEH,aAAO;AAAA,EACX;AACF;AAEA,SAAS,YAAY,GAAgB,GAA6B;AAChE,QAAM,SAAqD,CAAC;AAC5D,QAAM,YAAY,oBAAI,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,MAAM,GAAG,GAAG,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9E,aAAW,SAAS,WAAW;AAC7B,UAAM,KAAK,EAAE,OAAO,KAAK;AACzB,UAAM,KAAK,EAAE,OAAO,KAAK;AACzB,QAAI,CAAC,IAAI;AAAE,aAAO,KAAK,IAAI;AAAA,IAAI,WACtB,CAAC,IAAI;AAAE,aAAO,KAAK,IAAI;AAAA,IAAG,OAC9B;AAAE,aAAO,KAAK,IAAI,GAAG,MAAM,GAAG,KAAK,KAAK;AAAA,IAAG;AAAA,EAClD;AACA,SAAO,EAAE,OAAO,WAAW,QAAQ,OAAO;AAC5C;AAEA,SAAS,SAAS,GAAa,GAAuB;AAEpD,QAAM,gBAAgB,oBAAI,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,EAAE,UAAU,CAAC;AAEhE,QAAM,WAAW,IAAI,IAAI,EAAE,MAAM,IAAI,OAAK,EAAE,GAAG,CAAC;AAChD,QAAM,SAA6C;AAAA,IACjD,GAAG,EAAE;AAAA,IACL,GAAG,EAAE,MAAM,OAAO,OAAK,CAAC,SAAS,IAAI,EAAE,GAAG,CAAC;AAAA,EAC7C;AACA,SAAO,EAAE,OAAO,OAAO,OAAO,QAAQ,YAAY,CAAC,GAAG,aAAa,EAAE;AACvE;AAWO,SAAS,iBACd,QACA,UACA,KACa;AACb,QAAM,SAAqD,CAAC;AAG5D,aAAW,CAAC,OAAO,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACnD,WAAO,KAAK,IAAI,EAAE,GAAG,OAAO,IAAI,IAAI;AAAA,EACtC;AAGA,MAAI,UAAU;AACZ,eAAW,CAAC,OAAO,GAAG,KAAK,OAAO,QAAQ,SAAS,MAAM,GAAG;AAC1D,UAAI,EAAE,SAAS,SAAS;AACtB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,OAAO,WAAW,OAAO;AACpC;AASO,SAAS,cACd,KACA,UACA,aACU;AAEV,QAAM,kBAAkB,oBAAI,IAAyC;AACrE,MAAI,UAAU;AACZ,eAAW,QAAQ,SAAS,OAAO;AAEjC,YAAM,MAAM,KAAK,UAAU,KAAK,CAAC;AACjC,UAAI,CAAC,gBAAgB,IAAI,GAAG,EAAG,iBAAgB,IAAI,KAAK,IAAI;AAAA,IAC9D;AAAA,EACF;AAEA,QAAM,WAAW,oBAAI,IAAY;AACjC,QAAM,WAA+C,CAAC;AAEtD,aAAW,MAAM,KAAK;AACpB,UAAM,MAAM,KAAK,UAAU,EAAE;AAC7B,UAAM,QAAQ,gBAAgB,IAAI,GAAG;AACrC,QAAI,SAAS,CAAC,SAAS,IAAI,MAAM,GAAG,GAAG;AAErC,eAAS,KAAK,KAAK;AACnB,eAAS,IAAI,MAAM,GAAG;AAAA,IACxB,OAAO;AAEL,YAAM,MAAM,YAAY;AACxB,eAAS,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC;AAC5B,eAAS,IAAI,GAAG;AAAA,IAClB;AAAA,EACF;AAKA,QAAM,aAAuB,WAAW,CAAC,GAAG,SAAS,UAAU,IAAI,CAAC;AACpE,QAAM,aAAiD,CAAC;AACxD,MAAI,UAAU;AACZ,eAAW,QAAQ,SAAS,OAAO;AACjC,UAAI,CAAC,SAAS,IAAI,KAAK,GAAG,GAAG;AAC3B,YAAI,CAAC,WAAW,SAAS,KAAK,GAAG,EAAG,YAAW,KAAK,KAAK,GAAG;AAC5D,mBAAW,KAAK,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAGA,QAAM,QAAQ,CAAC,GAAG,UAAU,GAAG,UAAU;AAEzC,SAAO,EAAE,OAAO,OAAO,OAAO,WAAW;AAC3C;","names":[]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import {
|
|
2
|
+
openEnvelopeJson
|
|
3
|
+
} from "./chunk-QQJXBZCO.js";
|
|
4
|
+
import {
|
|
5
|
+
encrypt
|
|
6
|
+
} from "./chunk-HUS3J5WM.js";
|
|
7
|
+
import {
|
|
8
|
+
NOYDB_FORMAT_VERSION
|
|
9
|
+
} from "./chunk-CKZW6P5V.js";
|
|
10
|
+
import {
|
|
11
|
+
ConflictError,
|
|
12
|
+
USER_ENVELOPE_COLLECTION,
|
|
13
|
+
USER_ENVELOPE_MAX_BYTES,
|
|
14
|
+
UserEnvelopeOversizedError
|
|
15
|
+
} from "./chunk-FH542DDY.js";
|
|
16
|
+
|
|
17
|
+
// src/with-party/directory/storage.ts
|
|
18
|
+
var META_COLLECTION = "_meta";
|
|
19
|
+
var DIRECTORY_RECORD_ID = "directory";
|
|
20
|
+
async function readDirectoryConfig(store, vault) {
|
|
21
|
+
const envelope = await store.get(vault, META_COLLECTION, DIRECTORY_RECORD_ID);
|
|
22
|
+
if (!envelope) return void 0;
|
|
23
|
+
try {
|
|
24
|
+
const parsed = JSON.parse(envelope._data);
|
|
25
|
+
if (!isDirectoryConfig(parsed)) return void 0;
|
|
26
|
+
return parsed;
|
|
27
|
+
} catch {
|
|
28
|
+
return void 0;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async function persistDirectoryConfig(store, vault, config) {
|
|
32
|
+
const envelope = {
|
|
33
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
34
|
+
_v: 1,
|
|
35
|
+
_ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
36
|
+
_iv: "",
|
|
37
|
+
_data: JSON.stringify({ enabled: config.enabled })
|
|
38
|
+
};
|
|
39
|
+
await store.put(vault, META_COLLECTION, DIRECTORY_RECORD_ID, envelope);
|
|
40
|
+
}
|
|
41
|
+
function isDirectoryConfig(x) {
|
|
42
|
+
if (x === null || typeof x !== "object") return false;
|
|
43
|
+
if (!("enabled" in x)) return false;
|
|
44
|
+
return typeof x.enabled === "boolean";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/with-party/directory/visibility.ts
|
|
48
|
+
var VISIBILITY_RECORD_PREFIX = "visibility/";
|
|
49
|
+
function visibilityRecordId(keyringId) {
|
|
50
|
+
return VISIBILITY_RECORD_PREFIX + keyringId;
|
|
51
|
+
}
|
|
52
|
+
async function readUserVisibility(store, vault, keyringId) {
|
|
53
|
+
const envelope = await store.get(vault, META_COLLECTION, visibilityRecordId(keyringId));
|
|
54
|
+
if (!envelope) return void 0;
|
|
55
|
+
try {
|
|
56
|
+
const parsed = JSON.parse(envelope._data);
|
|
57
|
+
if (!isUserVisibility(parsed)) return void 0;
|
|
58
|
+
return parsed;
|
|
59
|
+
} catch {
|
|
60
|
+
return void 0;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function persistUserVisibility(store, vault, keyringId, visibility) {
|
|
64
|
+
const envelope = {
|
|
65
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
66
|
+
_v: 1,
|
|
67
|
+
_ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
68
|
+
_iv: "",
|
|
69
|
+
_data: JSON.stringify({ hidden: visibility.hidden })
|
|
70
|
+
};
|
|
71
|
+
await store.put(vault, META_COLLECTION, visibilityRecordId(keyringId), envelope);
|
|
72
|
+
}
|
|
73
|
+
async function deleteUserVisibility(store, vault, keyringId) {
|
|
74
|
+
await store.delete(vault, META_COLLECTION, visibilityRecordId(keyringId));
|
|
75
|
+
}
|
|
76
|
+
function isUserVisibility(x) {
|
|
77
|
+
if (x === null || typeof x !== "object") return false;
|
|
78
|
+
if (!("hidden" in x)) return false;
|
|
79
|
+
return typeof x.hidden === "boolean";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// src/with-party/directory/user-envelope/storage.ts
|
|
83
|
+
async function loadUserEnvelope(store, vault, keyringId, dek) {
|
|
84
|
+
const envelope = await store.get(vault, USER_ENVELOPE_COLLECTION, keyringId);
|
|
85
|
+
if (!envelope) return null;
|
|
86
|
+
const plaintext = await openEnvelopeJson(envelope, dek);
|
|
87
|
+
const data = JSON.parse(plaintext);
|
|
88
|
+
return {
|
|
89
|
+
keyringId,
|
|
90
|
+
data,
|
|
91
|
+
_v: envelope._v,
|
|
92
|
+
_ts: envelope._ts
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
async function saveUserEnvelope(store, vault, keyringId, payload, dek, expectedVersion) {
|
|
96
|
+
const json = JSON.stringify(payload);
|
|
97
|
+
const bytes = new TextEncoder().encode(json).byteLength;
|
|
98
|
+
if (bytes > USER_ENVELOPE_MAX_BYTES) {
|
|
99
|
+
throw new UserEnvelopeOversizedError(bytes);
|
|
100
|
+
}
|
|
101
|
+
const prior = await store.get(vault, USER_ENVELOPE_COLLECTION, keyringId);
|
|
102
|
+
if (expectedVersion !== void 0) {
|
|
103
|
+
const priorVersion = prior?._v ?? 0;
|
|
104
|
+
if (priorVersion !== expectedVersion) {
|
|
105
|
+
throw new ConflictError(
|
|
106
|
+
priorVersion,
|
|
107
|
+
`User envelope for "${keyringId}" expected version ${expectedVersion}, actual ${priorVersion}`
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const nextVersion = (prior?._v ?? 0) + 1;
|
|
112
|
+
const ts = (/* @__PURE__ */ new Date()).toISOString();
|
|
113
|
+
const { iv, data } = await encrypt(json, dek);
|
|
114
|
+
const envelope = {
|
|
115
|
+
_noydb: NOYDB_FORMAT_VERSION,
|
|
116
|
+
_v: nextVersion,
|
|
117
|
+
_ts: ts,
|
|
118
|
+
_iv: iv,
|
|
119
|
+
_data: data
|
|
120
|
+
};
|
|
121
|
+
await store.put(vault, USER_ENVELOPE_COLLECTION, keyringId, envelope);
|
|
122
|
+
return {
|
|
123
|
+
keyringId,
|
|
124
|
+
data: payload,
|
|
125
|
+
_v: nextVersion,
|
|
126
|
+
_ts: ts
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
async function deleteUserEnvelope(store, vault, keyringId) {
|
|
130
|
+
await store.delete(vault, USER_ENVELOPE_COLLECTION, keyringId);
|
|
131
|
+
}
|
|
132
|
+
async function listUserEnvelopeIds(store, vault) {
|
|
133
|
+
return store.list(vault, USER_ENVELOPE_COLLECTION);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export {
|
|
137
|
+
DIRECTORY_RECORD_ID,
|
|
138
|
+
readDirectoryConfig,
|
|
139
|
+
persistDirectoryConfig,
|
|
140
|
+
VISIBILITY_RECORD_PREFIX,
|
|
141
|
+
visibilityRecordId,
|
|
142
|
+
readUserVisibility,
|
|
143
|
+
persistUserVisibility,
|
|
144
|
+
deleteUserVisibility,
|
|
145
|
+
loadUserEnvelope,
|
|
146
|
+
saveUserEnvelope,
|
|
147
|
+
deleteUserEnvelope,
|
|
148
|
+
listUserEnvelopeIds
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=chunk-4N5QFSNQ.js.map
|