@noy-db/hub 0.3.0-pre.1 → 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 +9 -8
- package/dist/aggregate/index.js.map +1 -1
- package/dist/api-YGMINAET.js +20 -0
- package/dist/as/index.js +12 -6
- package/dist/attestation/index.js +19 -13
- package/dist/attestation/index.js.map +1 -1
- package/dist/backup-XA5STIYQ.js +225 -0
- package/dist/backup-XA5STIYQ.js.map +1 -0
- package/dist/blobs/index.js +12 -6
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +21 -15
- package/dist/bundle/index.js.map +1 -1
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +32 -26
- package/dist/chunk-25NDNMQ7.js +70 -0
- package/dist/chunk-25NDNMQ7.js.map +1 -0
- package/dist/chunk-2JMMY7HZ.js +188 -0
- package/dist/chunk-2JMMY7HZ.js.map +1 -0
- package/dist/chunk-3CNQ7FQ3.js +430 -0
- package/dist/chunk-3G4KMVUN.js +291 -0
- package/dist/chunk-3G4KMVUN.js.map +1 -0
- package/dist/chunk-3MSQLQNZ.js +74 -0
- package/dist/chunk-45ZZLTFH.js +38 -0
- package/dist/chunk-45ZZLTFH.js.map +1 -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-4N5QFSNQ.js.map +1 -0
- package/dist/chunk-4R4Q64W5.js +34 -0
- package/dist/chunk-57V5S7PW.js +130 -0
- package/dist/chunk-57V5S7PW.js.map +1 -0
- package/dist/chunk-5JB73NMC.js +202 -0
- package/dist/chunk-5JB73NMC.js.map +1 -0
- package/dist/chunk-5XIPOCQC.js +155 -0
- package/dist/chunk-5ZOSG3RJ.js +778 -0
- package/dist/chunk-5ZOSG3RJ.js.map +1 -0
- package/dist/chunk-67TNU77I.js +36 -0
- package/dist/chunk-67TNU77I.js.map +1 -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-7ITPJFGC.js.map +1 -0
- package/dist/chunk-7NS43EXZ.js +117 -0
- package/dist/chunk-7QIXUSDQ.js +341 -0
- package/dist/chunk-7QIXUSDQ.js.map +1 -0
- package/dist/chunk-7VSGW5KJ.js +74 -0
- package/dist/chunk-7VSGW5KJ.js.map +1 -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-AOVDSIL3.js.map +1 -0
- package/dist/chunk-ARSAMO24.js +29 -0
- package/dist/chunk-ARSAMO24.js.map +1 -0
- package/dist/chunk-AWB5JZW6.js +41 -0
- package/dist/chunk-AWB5JZW6.js.map +1 -0
- package/dist/chunk-BCYQA5BK.js +45 -0
- package/dist/chunk-BE7N3AXA.js +621 -0
- package/dist/chunk-BE7N3AXA.js.map +1 -0
- package/dist/chunk-BEIRE5K4.js +164 -0
- package/dist/chunk-BEIRE5K4.js.map +1 -0
- package/dist/chunk-BZO4WCJI.js +86 -0
- package/dist/chunk-BZO4WCJI.js.map +1 -0
- package/dist/chunk-C3YH34IL.js +75 -0
- package/dist/chunk-C3YH34IL.js.map +1 -0
- package/dist/chunk-C7NTK5I3.js +49 -0
- package/dist/chunk-C7NTK5I3.js.map +1 -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-D3EFFFOL.js.map +1 -0
- package/dist/chunk-DGH65E7Q.js +466 -0
- package/dist/chunk-DGH65E7Q.js.map +1 -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-DMFNPHCX.js.map +1 -0
- package/dist/chunk-ELNBMFOS.js +392 -0
- package/dist/chunk-ELNBMFOS.js.map +1 -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-FQQF23MC.js.map +1 -0
- package/dist/chunk-FXK4X4BL.js +91 -0
- package/dist/chunk-FXK4X4BL.js.map +1 -0
- package/dist/chunk-GA2QHD6P.js +235 -0
- package/dist/chunk-GA2QHD6P.js.map +1 -0
- package/dist/chunk-GYGLAVCX.js +19 -0
- package/dist/chunk-GYGLAVCX.js.map +1 -0
- package/dist/chunk-H44ZE4IE.js +355 -0
- package/dist/chunk-H6CZSDWK.js +1697 -0
- package/dist/chunk-H6CZSDWK.js.map +1 -0
- package/dist/chunk-H6HM6CVR.js +279 -0
- package/dist/chunk-H6HM6CVR.js.map +1 -0
- package/dist/chunk-HFJIGWJC.js +382 -0
- package/dist/chunk-HUS3J5WM.js +404 -0
- package/dist/chunk-HUS3J5WM.js.map +1 -0
- package/dist/chunk-IDIV5NVH.js +99 -0
- package/dist/chunk-IDIV5NVH.js.map +1 -0
- package/dist/chunk-IGJCYUT5.js +99 -0
- package/dist/chunk-IGJCYUT5.js.map +1 -0
- package/dist/chunk-IGJHJYM6.js +515 -0
- package/dist/chunk-IGJHJYM6.js.map +1 -0
- package/dist/chunk-IP2QBAGS.js +589 -0
- package/dist/chunk-IP2QBAGS.js.map +1 -0
- package/dist/chunk-JK733I5V.js +23 -0
- package/dist/chunk-JK733I5V.js.map +1 -0
- package/dist/chunk-JOQ53DMI.js +255 -0
- package/dist/chunk-JOQ53DMI.js.map +1 -0
- package/dist/chunk-K62IUKOD.js +823 -0
- package/dist/chunk-K62IUKOD.js.map +1 -0
- package/dist/chunk-KPGX66PM.js +230 -0
- package/dist/chunk-KPZS5QAQ.js +151 -0
- package/dist/chunk-KPZS5QAQ.js.map +1 -0
- package/dist/chunk-L2SNBIV7.js +453 -0
- package/dist/chunk-L2SNBIV7.js.map +1 -0
- package/dist/chunk-LP7BEXCT.js +32 -0
- package/dist/chunk-LP7BEXCT.js.map +1 -0
- package/dist/chunk-MCEKIAO4.js +367 -0
- package/dist/chunk-MELR46EF.js +280 -0
- package/dist/chunk-MELR46EF.js.map +1 -0
- package/dist/chunk-MSPNM2OM.js +95 -0
- package/dist/chunk-MSPNM2OM.js.map +1 -0
- package/dist/chunk-NO272T7Q.js +194 -0
- package/dist/chunk-NO272T7Q.js.map +1 -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-OEAATWH5.js.map +1 -0
- package/dist/chunk-OFJ5GPNA.js +71 -0
- package/dist/chunk-OOLO4LQG.js +99 -0
- package/dist/chunk-OOLO4LQG.js.map +1 -0
- package/dist/chunk-P5RY4ZWD.js +662 -0
- package/dist/chunk-P5RY4ZWD.js.map +1 -0
- package/dist/chunk-PR5LC5YX.js +265 -0
- package/dist/chunk-PR5LC5YX.js.map +1 -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-QLLKLFE2.js.map +1 -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-QYPKGVT4.js.map +1 -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-SYMS4546.js.map +1 -0
- package/dist/chunk-THNJ3IKU.js +17 -0
- package/dist/chunk-THNJ3IKU.js.map +1 -0
- package/dist/chunk-TPH5EO6L.js +54 -0
- package/dist/chunk-TPH5EO6L.js.map +1 -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-VYYM3MEN.js +98 -0
- package/dist/chunk-VYYM3MEN.js.map +1 -0
- package/dist/chunk-W5D62AQD.js +944 -0
- package/dist/chunk-W5D62AQD.js.map +1 -0
- package/dist/chunk-WGV4CUZT.js +167 -0
- package/dist/chunk-WGV4CUZT.js.map +1 -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-X6CMGUAG.js.map +1 -0
- package/dist/chunk-XFXUTFWQ.js +85 -0
- package/dist/chunk-XFXUTFWQ.js.map +1 -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 +40 -0
- package/dist/classified-marker-LQWWQNIJ.js +24 -0
- package/dist/classified-marker-LQWWQNIJ.js.map +1 -0
- package/dist/collection-facade-YE2O4J4O.js +39 -0
- package/dist/computed-W6MVAMWZ.js +11 -0
- package/dist/consent/index.js +10 -4
- package/dist/consent/index.js.map +1 -1
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-4KXZEB3X.js +28 -0
- package/dist/dead-filter-4KXZEB3X.js.map +1 -0
- package/dist/delegation-OPUU3R2E.js +25 -0
- package/dist/derivations/index.js +13 -6
- 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/fanout-sidecar-CKYFH33E.js.map +1 -0
- package/dist/fence-watcher-DHQ775JB.js +69 -0
- package/dist/fence-watcher-DHQ775JB.js.map +1 -0
- package/dist/find-XRGCNGNN.js +11 -0
- package/dist/forget/index.js +11 -5
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +4 -4
- package/dist/history/index.js +12 -6
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +50 -31
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +303 -1400
- package/dist/index.js +1525 -184
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +4 -4
- package/dist/issue-UB6AA5M6.js +19 -0
- package/dist/json-schema-I22JCYCG.js +44 -0
- package/dist/json-schema-I22JCYCG.js.map +1 -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/lazy/index.js +12 -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 +20 -10
- package/dist/noydb-6JLBZU4U.js +67 -0
- package/dist/on/index.js +10 -4
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +21 -7
- package/dist/pod/index.js +12 -6
- 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/post-register-HAWO3O7O.js.map +1 -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 +9 -6
- package/dist/read-only-facade-CHCKSEPD.js +8 -0
- 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/reveal-BOY7XYFH.js.map +1 -0
- package/dist/revoke-4KUNSVJC.js +24 -0
- package/dist/satellites/index.js +8 -0
- package/dist/sealed-record/index.js +13 -7
- package/dist/sealed-record/index.js.map +1 -1
- package/dist/seed-4RRXT42N.js +231 -0
- package/dist/seed-4RRXT42N.js.map +1 -0
- package/dist/session/index.js +10 -4
- package/dist/session/index.js.map +1 -1
- package/dist/shadow/index.js +2 -2
- package/dist/signer-DDDXP5JD.js +25 -0
- package/dist/signer-DDDXP5JD.js.map +1 -0
- package/dist/snapshots/index.js +11 -5
- package/dist/snapshots/index.js.map +1 -1
- package/dist/stale-NXPT56JA.js +14 -0
- package/dist/stale-NXPT56JA.js.map +1 -0
- package/dist/storage-IR6EEAV2.js +23 -0
- package/dist/storage-IR6EEAV2.js.map +1 -0
- package/dist/store-coordination-provider-HPYVFJCV.js +142 -0
- package/dist/sync/index.js +10 -4
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.js +25 -12
- package/dist/tiers/index.js +11 -5
- package/dist/to/index.js +1 -2
- package/dist/tx/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/verify-66RHOW7N.js +139 -0
- package/dist/verify-66RHOW7N.js.map +1 -0
- package/dist/via/blob/active.d.ts +34 -0
- package/dist/via/blob/binding.d.ts +86 -0
- package/dist/via/blob/index.d.ts +34 -0
- package/dist/via/classified/active.d.ts +3 -0
- package/dist/via/classified/binding.d.ts +83 -0
- package/dist/via/classified/config-drift.d.ts +34 -0
- package/dist/via/classified/descriptor.d.ts +66 -0
- package/dist/via/classified/errors.d.ts +19 -0
- package/dist/via/classified/guards.d.ts +23 -0
- package/dist/via/classified/index.d.ts +11 -0
- package/dist/via/classified/presets.d.ts +65 -0
- package/dist/via/classified/resolve.d.ts +9 -0
- package/dist/via/classified/strategy.d.ts +11 -0
- package/dist/via/classified/validators.d.ts +3 -0
- package/dist/via/classified/write.d.ts +4 -0
- package/dist/via/computed/binding.d.ts +34 -0
- package/dist/via/computed/descriptor.d.ts +35 -0
- package/dist/via/i18n/active.d.ts +28 -0
- package/dist/via/i18n/binding.d.ts +36 -0
- package/dist/via/i18n/core.d.ts +267 -0
- package/dist/via/i18n/densify.d.ts +24 -0
- package/dist/via/i18n/dictionary.d.ts +200 -0
- package/dist/via/i18n/index.d.ts +21 -0
- package/dist/via/i18n/policy.d.ts +44 -0
- package/dist/via/i18n/script.d.ts +26 -0
- package/dist/via/i18n/strategy.d.ts +13 -0
- package/dist/via/lookup/active.d.ts +19 -0
- package/dist/via/lookup/binding.d.ts +99 -0
- package/dist/via/lookup/descriptor.d.ts +123 -0
- package/dist/via/lookup/handle.d.ts +220 -0
- package/dist/via/lookup/index.d.ts +17 -0
- package/dist/via/lookup/registry.d.ts +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/walk-2RWEOCAS.js.map +1 -0
- package/dist/with/index.js +12 -6
- 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/dist/withdraw-accessible-CLMZEHQT.js.map +1 -0
- package/package.json +56 -52
- package/dist/adapter/index.d.ts +0 -5
- package/dist/adapter/index.js +0 -15
- package/dist/aggregate/index.d.ts +0 -42
- package/dist/api-RW3KP7WU.js +0 -14
- package/dist/as/index.d.ts +0 -7
- package/dist/at/index.d.ts +0 -5
- package/dist/attestation/index.d.ts +0 -20
- package/dist/backup-XV3IOEGB.js +0 -217
- package/dist/backup-XV3IOEGB.js.map +0 -1
- package/dist/blobs/index.d.ts +0 -44
- package/dist/bundle/index.d.ts +0 -122
- package/dist/bundle-CH-H06dp.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -9
- package/dist/chunk-26LGBE4T.js +0 -42
- package/dist/chunk-26LGBE4T.js.map +0 -1
- package/dist/chunk-2P2HZEXU.js +0 -233
- package/dist/chunk-2P2HZEXU.js.map +0 -1
- package/dist/chunk-3YFXJ3ZP.js +0 -97
- package/dist/chunk-5LUY7UTV.js +0 -380
- package/dist/chunk-5LUY7UTV.js.map +0 -1
- package/dist/chunk-5N6CZTCY.js +0 -367
- package/dist/chunk-5O3AOPDT.js +0 -992
- package/dist/chunk-5O3AOPDT.js.map +0 -1
- package/dist/chunk-5R3ERCDH.js +0 -239
- package/dist/chunk-5R3ERCDH.js.map +0 -1
- package/dist/chunk-5R5JW2JT.js +0 -12502
- package/dist/chunk-5R5JW2JT.js.map +0 -1
- package/dist/chunk-5TDJ56JE.js +0 -32
- package/dist/chunk-5TDJ56JE.js.map +0 -1
- package/dist/chunk-62QYRORB.js +0 -320
- package/dist/chunk-62QYRORB.js.map +0 -1
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-76722EBH.js +0 -451
- package/dist/chunk-76722EBH.js.map +0 -1
- package/dist/chunk-AIWULCUO.js +0 -68
- package/dist/chunk-AIWULCUO.js.map +0 -1
- package/dist/chunk-AQTBSL7R.js +0 -181
- package/dist/chunk-AQTBSL7R.js.map +0 -1
- package/dist/chunk-AXRXJTE2.js +0 -59
- package/dist/chunk-AZAOEIKW.js +0 -155
- package/dist/chunk-BG3SPSR4.js +0 -53
- package/dist/chunk-BG3SPSR4.js.map +0 -1
- package/dist/chunk-BGIZAFY7.js +0 -1
- package/dist/chunk-CMGR4ZEW.js +0 -209
- package/dist/chunk-CWPPNPOH.js +0 -23
- package/dist/chunk-DFEMTNPJ.js +0 -1219
- package/dist/chunk-DFEMTNPJ.js.map +0 -1
- package/dist/chunk-DGDI2D4M.js +0 -79
- package/dist/chunk-DGDI2D4M.js.map +0 -1
- package/dist/chunk-EIZUR2XW.js +0 -36
- package/dist/chunk-FISN7WE4.js +0 -798
- package/dist/chunk-FISN7WE4.js.map +0 -1
- package/dist/chunk-GYGWYIOZ.js +0 -200
- package/dist/chunk-GYGWYIOZ.js.map +0 -1
- package/dist/chunk-HCIPRAGS.js +0 -45
- package/dist/chunk-I2NOIW44.js +0 -83
- package/dist/chunk-I2NOIW44.js.map +0 -1
- package/dist/chunk-I3TIKTJO.js +0 -132
- package/dist/chunk-I3TIKTJO.js.map +0 -1
- package/dist/chunk-IAGBDSCS.js +0 -40
- package/dist/chunk-IELYAOGG.js +0 -78
- package/dist/chunk-IELYAOGG.js.map +0 -1
- package/dist/chunk-IGUYVGGI.js +0 -205
- package/dist/chunk-IO6GRPT6.js +0 -34
- package/dist/chunk-IPB7FTQX.js +0 -273
- package/dist/chunk-IPB7FTQX.js.map +0 -1
- package/dist/chunk-ITNUCOXM.js +0 -148
- package/dist/chunk-ITNUCOXM.js.map +0 -1
- package/dist/chunk-IUEN57TV.js +0 -722
- package/dist/chunk-IUEN57TV.js.map +0 -1
- package/dist/chunk-JNUWZ6D3.js +0 -57
- package/dist/chunk-JNUWZ6D3.js.map +0 -1
- package/dist/chunk-K2WCO3NX.js +0 -1
- package/dist/chunk-KVOXU4T5.js +0 -30
- package/dist/chunk-KXGNJJXB.js +0 -135
- package/dist/chunk-LFLXAY2W.js +0 -414
- package/dist/chunk-LFLXAY2W.js.map +0 -1
- package/dist/chunk-LMTH2RM6.js +0 -129
- package/dist/chunk-LV7M27WM.js +0 -702
- package/dist/chunk-LV7M27WM.js.map +0 -1
- package/dist/chunk-LXQT4WMP.js +0 -684
- package/dist/chunk-LXQT4WMP.js.map +0 -1
- package/dist/chunk-M2YKN37S.js +0 -524
- package/dist/chunk-M2YKN37S.js.map +0 -1
- package/dist/chunk-M6OST55S.js +0 -14
- package/dist/chunk-MD3Y6J3L.js +0 -278
- package/dist/chunk-MD3Y6J3L.js.map +0 -1
- package/dist/chunk-MTMJVJ5W.js +0 -73
- package/dist/chunk-MTMJVJ5W.js.map +0 -1
- package/dist/chunk-NF5JWERG.js +0 -74
- package/dist/chunk-PKHL44ER.js +0 -124
- package/dist/chunk-PSMV73A5.js +0 -117
- package/dist/chunk-Q7SS3IME.js +0 -120
- package/dist/chunk-Q7SS3IME.js.map +0 -1
- package/dist/chunk-QHJW5EXU.js +0 -54
- package/dist/chunk-RUEKROOS.js +0 -80
- package/dist/chunk-RUIMKQTA.js +0 -23
- package/dist/chunk-RUIMKQTA.js.map +0 -1
- package/dist/chunk-SKF73JOP.js +0 -355
- package/dist/chunk-SM3AVUHC.js +0 -42
- package/dist/chunk-SMXWYP24.js +0 -155
- package/dist/chunk-SRB2XEWB.js +0 -148
- package/dist/chunk-SRB2XEWB.js.map +0 -1
- package/dist/chunk-TA66UMI4.js +0 -123
- package/dist/chunk-TEILUWOI.js +0 -664
- package/dist/chunk-TEILUWOI.js.map +0 -1
- package/dist/chunk-TJYQIGAP.js +0 -82
- package/dist/chunk-TJYQIGAP.js.map +0 -1
- package/dist/chunk-UAG5KWVA.js +0 -367
- package/dist/chunk-UDRIWL7A.js +0 -382
- package/dist/chunk-UIU2THRG.js +0 -1937
- package/dist/chunk-UIU2THRG.js.map +0 -1
- package/dist/chunk-UPJNJGGA.js +0 -572
- package/dist/chunk-UPJNJGGA.js.map +0 -1
- package/dist/chunk-UV5MFVO3.js +0 -21
- package/dist/chunk-V7RWQRG7.js +0 -430
- package/dist/chunk-VCTFO5CO.js +0 -71
- package/dist/chunk-VFQGRQIH.js +0 -97
- package/dist/chunk-VFQGRQIH.js.map +0 -1
- package/dist/chunk-WWGT2MDV.js +0 -762
- package/dist/chunk-WWGT2MDV.js.map +0 -1
- package/dist/chunk-WYSO2NIH.js +0 -30
- package/dist/chunk-XXYIOFUB.js +0 -164
- package/dist/chunk-Y22T3KQE.js +0 -261
- package/dist/chunk-Y22T3KQE.js.map +0 -1
- package/dist/chunk-ZCGAHGUS.js +0 -230
- package/dist/chunk-ZYUC53LT.js +0 -1370
- package/dist/chunk-ZYUC53LT.js.map +0 -1
- package/dist/collection-facade-GQAOGJP2.js +0 -33
- package/dist/consent/index.d.ts +0 -23
- package/dist/crdt/index.d.ts +0 -34
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-UL5HKLER.js +0 -19
- package/dist/derivations/index.d.ts +0 -70
- package/dist/describe/index.d.ts +0 -1
- package/dist/describe/index.js +0 -1
- package/dist/describe-aBkJR2sd.d.ts +0 -131
- package/dist/dev-unlock-C9Ro3v_O.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-UL5LW66V.js +0 -88
- package/dist/executor-2FWQRLMG.js +0 -15
- package/dist/executor-QZ7BXICW.js +0 -9
- package/dist/executor-Z5ZLJVTV.js +0 -9
- package/dist/export-accessible-KRV5W4GH.js +0 -17
- package/dist/extract-partition-GLKBOXFQ.js +0 -30
- package/dist/fanout-sidecar-GF3DJ6KR.js +0 -71
- package/dist/fanout-sidecar-GF3DJ6KR.js.map +0 -1
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -35
- package/dist/hash-Cp5uwiox.d.ts +0 -67
- package/dist/history/index.d.ts +0 -61
- package/dist/i18n/index.d.ts +0 -37
- package/dist/in/index.d.ts +0 -5
- package/dist/index-B9QdHytu.d.ts +0 -123
- package/dist/index-BF9_96A5.d.ts +0 -123
- package/dist/index-BzUo1B6n.d.ts +0 -20730
- package/dist/indexing/index.d.ts +0 -39
- package/dist/issue-Y6UVIR43.js +0 -13
- package/dist/kernel/index.d.ts +0 -32
- package/dist/kernel/index.js +0 -53
- package/dist/ledger-RYI35CDS.js +0 -36
- package/dist/liberate-CRPZEV7O.js +0 -18
- package/dist/materialized-views/index.d.ts +0 -173
- package/dist/mime-magic-CGhw37_E.d.ts +0 -103
- package/dist/noydb-367AM4HT.js +0 -50
- package/dist/on/index.d.ts +0 -5
- package/dist/overlay-views/index.d.ts +0 -98
- package/dist/periods/index.d.ts +0 -20
- package/dist/pod/index.d.ts +0 -63
- package/dist/policy-IXK4FVXP.js +0 -41
- package/dist/portability/index.d.ts +0 -20
- package/dist/public-envelope-JHDQCPSX.js +0 -32
- package/dist/query/index.d.ts +0 -5
- package/dist/read-only-facade-5ADRJVTM.js +0 -8
- package/dist/registry-45RJNWGU.js +0 -9
- package/dist/registry-5GRV5VXI.js +0 -13
- package/dist/registry-WEUCHBO4.js +0 -11
- package/dist/request-withdrawal-GBPH2FDY.js +0 -25
- package/dist/revoke-TUFRGI6S.js +0 -18
- package/dist/sealed-record/index.d.ts +0 -69
- package/dist/session/index.d.ts +0 -44
- package/dist/shadow/index.d.ts +0 -15
- package/dist/signer-PNKTBVF7.js +0 -19
- package/dist/snapshots/index.d.ts +0 -26
- package/dist/stale-3JWHNDIY.js +0 -14
- package/dist/store-coordination-provider-3I7XWZZK.js +0 -142
- package/dist/subject-index-O75wKshW.d.ts +0 -362
- package/dist/sync/index.d.ts +0 -41
- package/dist/team/index.d.ts +0 -116
- package/dist/tiers/index.d.ts +0 -5
- package/dist/to/index.d.ts +0 -5
- package/dist/transition-guard-C7ol6oPw.d.ts +0 -165
- package/dist/tx/index.d.ts +0 -35
- package/dist/ui/index.d.ts +0 -1
- package/dist/ulid-DRH25k3y.d.ts +0 -66
- package/dist/util/index.d.ts +0 -79
- package/dist/vault-diff-B5fYNBL7.d.ts +0 -147
- package/dist/with/index.d.ts +0 -38
- package/dist/with-materialized-view-6p0Fk8bL.d.ts +0 -27
- package/dist/with-overlayed-view-BJ6mXGMd.d.ts +0 -12
- package/dist/with-rollup-BvQo3ROo.d.ts +0 -47
- package/dist/withdraw-accessible-FFS46EOD.js +0 -22
- /package/dist/{adapter/index.js.map → api-YGMINAET.js.map} +0 -0
- /package/dist/{chunk-V7RWQRG7.js.map → chunk-3CNQ7FQ3.js.map} +0 -0
- /package/dist/{chunk-NF5JWERG.js.map → chunk-3MSQLQNZ.js.map} +0 -0
- /package/dist/{chunk-IO6GRPT6.js.map → chunk-4R4Q64W5.js.map} +0 -0
- /package/dist/{chunk-SMXWYP24.js.map → chunk-5XIPOCQC.js.map} +0 -0
- /package/dist/{chunk-IGUYVGGI.js.map → chunk-6QILBDZU.js.map} +0 -0
- /package/dist/{chunk-AZAOEIKW.js.map → chunk-7E67FJ33.js.map} +0 -0
- /package/dist/{chunk-PSMV73A5.js.map → chunk-7NS43EXZ.js.map} +0 -0
- /package/dist/{chunk-CMGR4ZEW.js.map → chunk-A2Y6YFVN.js.map} +0 -0
- /package/dist/{chunk-HCIPRAGS.js.map → chunk-BCYQA5BK.js.map} +0 -0
- /package/dist/{chunk-LMTH2RM6.js.map → chunk-CB25ONKC.js.map} +0 -0
- /package/dist/{chunk-UV5MFVO3.js.map → chunk-CIKY6I4W.js.map} +0 -0
- /package/dist/{chunk-QHJW5EXU.js.map → chunk-D26JB3LZ.js.map} +0 -0
- /package/dist/{chunk-SM3AVUHC.js.map → chunk-DIRRS7WP.js.map} +0 -0
- /package/dist/{chunk-SKF73JOP.js.map → chunk-H44ZE4IE.js.map} +0 -0
- /package/dist/{chunk-UDRIWL7A.js.map → chunk-HFJIGWJC.js.map} +0 -0
- /package/dist/{chunk-ZCGAHGUS.js.map → chunk-KPGX66PM.js.map} +0 -0
- /package/dist/{chunk-5N6CZTCY.js.map → chunk-MCEKIAO4.js.map} +0 -0
- /package/dist/{chunk-CWPPNPOH.js.map → chunk-O2DYPAZY.js.map} +0 -0
- /package/dist/{chunk-KVOXU4T5.js.map → chunk-ODJWBC5I.js.map} +0 -0
- /package/dist/{chunk-VCTFO5CO.js.map → chunk-OFJ5GPNA.js.map} +0 -0
- /package/dist/{chunk-KXGNJJXB.js.map → chunk-PXWVF7MC.js.map} +0 -0
- /package/dist/{chunk-IAGBDSCS.js.map → chunk-Q3XSMOZM.js.map} +0 -0
- /package/dist/{chunk-AXRXJTE2.js.map → chunk-RKRGDAS7.js.map} +0 -0
- /package/dist/{chunk-XXYIOFUB.js.map → chunk-SRVQHVNX.js.map} +0 -0
- /package/dist/{chunk-M6OST55S.js.map → chunk-UFILRICG.js.map} +0 -0
- /package/dist/{chunk-3YFXJ3ZP.js.map → chunk-UTLEAJXC.js.map} +0 -0
- /package/dist/{chunk-TA66UMI4.js.map → chunk-VA4ZWLFY.js.map} +0 -0
- /package/dist/{chunk-UAG5KWVA.js.map → chunk-VR24ILCR.js.map} +0 -0
- /package/dist/{chunk-WYSO2NIH.js.map → chunk-XHV25KBM.js.map} +0 -0
- /package/dist/{chunk-PKHL44ER.js.map → chunk-YSXEFGND.js.map} +0 -0
- /package/dist/{chunk-EIZUR2XW.js.map → chunk-YXOUQ2H7.js.map} +0 -0
- /package/dist/{chunk-RUEKROOS.js.map → chunk-ZP5PL65C.js.map} +0 -0
- /package/dist/{describe → classified}/index.js.map +0 -0
- /package/dist/{api-RW3KP7WU.js.map → collection-facade-YE2O4J4O.js.map} +0 -0
- /package/dist/{chunk-BGIZAFY7.js.map → computed-W6MVAMWZ.js.map} +0 -0
- /package/dist/{chunk-K2WCO3NX.js.map → delegation-OPUU3R2E.js.map} +0 -0
- /package/dist/{collection-facade-GQAOGJP2.js.map → derive-BGUHU663.js.map} +0 -0
- /package/dist/{delegation-UL5HKLER.js.map → enclave-VXAQD4XJ.js.map} +0 -0
- /package/dist/{enclave-UL5LW66V.js.map → executor-GTVSUUBX.js.map} +0 -0
- /package/dist/{executor-2FWQRLMG.js.map → executor-GZWMTOXB.js.map} +0 -0
- /package/dist/{executor-QZ7BXICW.js.map → executor-XXGS4S3K.js.map} +0 -0
- /package/dist/{executor-Z5ZLJVTV.js.map → export-accessible-BMULIOYB.js.map} +0 -0
- /package/dist/{export-accessible-KRV5W4GH.js.map → extract-partition-JUQTWDXR.js.map} +0 -0
- /package/dist/{extract-partition-GLKBOXFQ.js.map → find-XRGCNGNN.js.map} +0 -0
- /package/dist/{issue-Y6UVIR43.js.map → issue-UB6AA5M6.js.map} +0 -0
- /package/dist/{kernel → lazy}/index.js.map +0 -0
- /package/dist/{ledger-RYI35CDS.js.map → ledger-FU6GH5EH.js.map} +0 -0
- /package/dist/{liberate-CRPZEV7O.js.map → liberate-YUN7W5QG.js.map} +0 -0
- /package/dist/{noydb-367AM4HT.js.map → link-set-MNADSH5M.js.map} +0 -0
- /package/dist/{policy-IXK4FVXP.js.map → noydb-6JLBZU4U.js.map} +0 -0
- /package/dist/{public-envelope-JHDQCPSX.js.map → policy-JTFOPPUU.js.map} +0 -0
- /package/dist/{read-only-facade-5ADRJVTM.js.map → public-envelope-NJVB7LPA.js.map} +0 -0
- /package/dist/{registry-45RJNWGU.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
- /package/dist/{registry-5GRV5VXI.js.map → register-VCKOBWKT.js.map} +0 -0
- /package/dist/{registry-WEUCHBO4.js.map → registry-72UKJ2L4.js.map} +0 -0
- /package/dist/{request-withdrawal-GBPH2FDY.js.map → registry-BZFLJNEH.js.map} +0 -0
- /package/dist/{revoke-TUFRGI6S.js.map → registry-YJEYSYI5.js.map} +0 -0
- /package/dist/{signer-PNKTBVF7.js.map → request-withdrawal-6MJRMFHF.js.map} +0 -0
- /package/dist/{stale-3JWHNDIY.js.map → revoke-4KUNSVJC.js.map} +0 -0
- /package/dist/{withdraw-accessible-FFS46EOD.js.map → satellites/index.js.map} +0 -0
- /package/dist/{store-coordination-provider-3I7XWZZK.js.map → store-coordination-provider-HPYVFJCV.js.map} +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical access — the collection-level tier operations
|
|
3
|
+
* (`putAtTier` / `getAtTier` / `listAtTier` / `elevate` / `demote`).
|
|
4
|
+
*
|
|
5
|
+
* A collection opted into `{ tiers: [...] }` stamps `_tier: N` on each envelope
|
|
6
|
+
* and encrypts its body under the tier-N DEK. These helpers are the read/write
|
|
7
|
+
* surface for that scheme: write at a tier, read with tier-aware visibility
|
|
8
|
+
* (invisibility vs. ghost), and move a record up (`elevate`) or down (`demote`)
|
|
9
|
+
* the tier ladder by re-wrapping its body key.
|
|
10
|
+
*
|
|
11
|
+
* Each function takes a small {@link TiersContext} (the exact `this.*` the
|
|
12
|
+
* moving methods touched) instead of `this`, mirroring the `record-keys/`
|
|
13
|
+
* siblings. Behaviour is byte-identical to the inline code it replaced.
|
|
14
|
+
*
|
|
15
|
+
* The crux is `cekCache`: `elevate`/`demote`/`getAtTier` write the SAME `Lru`
|
|
16
|
+
* reference `Collection` owns (never a copy) so a per-record CEK re-wrap stays
|
|
17
|
+
* synchronous with the cache the kernel's write/read path also mutates. The
|
|
18
|
+
* cross-tier event sink stays collection-resident and is reached via the
|
|
19
|
+
* `emitCrossTierEvent` callback.
|
|
20
|
+
*
|
|
21
|
+
* Internal service — not exported as a `@noy-db/hub/*` subpath.
|
|
22
|
+
*/
|
|
23
|
+
export { withTiers } from './active.js';
|
|
24
|
+
export { NO_TIERS, type TiersStrategy } from './strategy.js';
|
|
25
|
+
export { TiersNotEnabledError } from '../../kernel/errors.js';
|
|
26
|
+
import { type RecordCodec, type EnclaveKey, type SealedShredSlot } from '../../kernel/enclave/index.js';
|
|
27
|
+
import type { UnlockedKeyring } from '../../with-party/team/keyring.js';
|
|
28
|
+
import type { Lru } from '../../kernel/cache/index.js';
|
|
29
|
+
import { type NoydbStore, type EncryptedEnvelope, type GhostRecord, type TierMode, type CrossTierAccessEvent } from '../../kernel/types.js';
|
|
30
|
+
/** Everything the moving tier methods touched on `this.*`, as a flat context. */
|
|
31
|
+
export interface TiersContext<T> {
|
|
32
|
+
/** Collection name — the crypto AAD scope and tier-DEK key prefix. */
|
|
33
|
+
readonly name: string;
|
|
34
|
+
/** Vault namespace the records live under. */
|
|
35
|
+
readonly vault: string;
|
|
36
|
+
/** The ciphertext store. */
|
|
37
|
+
readonly adapter: NoydbStore;
|
|
38
|
+
/** The caller's unlocked keyring (tier-DEK holdings + role + userId). */
|
|
39
|
+
readonly keyring: UnlockedKeyring;
|
|
40
|
+
/** The record codec — decrypts a tier-0 envelope to T. */
|
|
41
|
+
readonly codec: RecordCodec<T>;
|
|
42
|
+
/**
|
|
43
|
+
* The collection's per-record CEK cache (SHARED reference, not a copy).
|
|
44
|
+
* `elevate`/`demote`/`getAtTier` re-wrap a record's CEK and `set` it here so
|
|
45
|
+
* the move stays synchronous with the cache the kernel's read/write path
|
|
46
|
+
* owns. `null` → no caching.
|
|
47
|
+
*/
|
|
48
|
+
readonly cekCache: Lru<string, EnclaveKey> | null;
|
|
49
|
+
/** Emit `_source`/`_sourceTs` provenance fields when a source is supplied. */
|
|
50
|
+
readonly provenance: boolean;
|
|
51
|
+
/** Declared tiers, or null when the feature is off. */
|
|
52
|
+
readonly tiers: ReadonlySet<number> | null;
|
|
53
|
+
/** Above-tier read visibility mode (`'invisibility'` | `'ghost'`). */
|
|
54
|
+
readonly tierMode: TierMode;
|
|
55
|
+
/** Resolve a tier DEK by its `dekKey(name, tier)`. */
|
|
56
|
+
getDEK(key: string): Promise<EnclaveKey>;
|
|
57
|
+
/** Fire a cross-tier access event (sink stays collection-resident). */
|
|
58
|
+
emitCrossTierEvent(event: CrossTierAccessEvent): void;
|
|
59
|
+
}
|
|
60
|
+
export declare function assertTiersEnabled<T>(ctx: TiersContext<T>): void;
|
|
61
|
+
export declare function assertDeclaredTier<T>(ctx: TiersContext<T>, tier: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* tier-aware put. Encrypts the record with the collection's tier-N DEK and
|
|
64
|
+
* stamps `_tier: N` on the envelope. The caller's keyring must hold the tier-N
|
|
65
|
+
* DEK (directly, by delegation, or by virtue of being the grantor); otherwise
|
|
66
|
+
* throws `TierNotGrantedError`.
|
|
67
|
+
*
|
|
68
|
+
* accepts an optional `elevation` context. When present, the emitted cross-tier
|
|
69
|
+
* event is stamped with `authorization: 'elevation'`, the elevation's reason,
|
|
70
|
+
* and the caller's pre-elevation tier. `vault.elevate(...).collection().put`
|
|
71
|
+
* threads this through; direct `putAtTier` calls leave it undefined and fall
|
|
72
|
+
* back to the inherent-write event shape.
|
|
73
|
+
*/
|
|
74
|
+
export declare function putAtTier<T>(ctx: TiersContext<T>, id: string, record: T, tier: number, opts?: {
|
|
75
|
+
elevation?: {
|
|
76
|
+
reason: string;
|
|
77
|
+
fromTier: number;
|
|
78
|
+
};
|
|
79
|
+
source?: string;
|
|
80
|
+
sourceTs?: string;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* tier-aware get. When the stored record is at a tier the caller cannot
|
|
84
|
+
* decrypt:
|
|
85
|
+
* - `'invisibility'` mode (default) → returns `null`.
|
|
86
|
+
* - `'ghost'` mode → returns a `GhostRecord` placeholder with the tier and
|
|
87
|
+
* the record id (the record exists but contents are withheld).
|
|
88
|
+
*
|
|
89
|
+
* Fully-cleared reads return the plaintext record and fire a cross-tier event
|
|
90
|
+
* when `_tier > 0`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
93
|
+
/**
|
|
94
|
+
* list ids grouped by the caller's readability. Returns only ids whose tier the
|
|
95
|
+
* caller can read. Above-tier ids are omitted in `'invisibility'` mode and
|
|
96
|
+
* included (with tier metadata) in `'ghost'` mode.
|
|
97
|
+
*/
|
|
98
|
+
export declare function listAtTier<T>(ctx: TiersContext<T>): Promise<Array<{
|
|
99
|
+
id: string;
|
|
100
|
+
tier: number;
|
|
101
|
+
readable: boolean;
|
|
102
|
+
}>>;
|
|
103
|
+
/**
|
|
104
|
+
* elevate a record to a higher tier. Re-encrypts with the target tier's DEK.
|
|
105
|
+
* The caller must hold DEKs for both the current tier (to decrypt) and the
|
|
106
|
+
* target tier (to re-encrypt). Stamps `_elevatedBy` with the caller id so
|
|
107
|
+
* `demote()` can check the reverse operation.
|
|
108
|
+
*/
|
|
109
|
+
export declare function elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* demote a record to a lower tier. Allowed only for the user who performed the
|
|
112
|
+
* last elevation or an owner.
|
|
113
|
+
*/
|
|
114
|
+
export declare function demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Classify a live envelope's `_sealed` slots for crypto-shred completeness
|
|
117
|
+
* (#M-1). Thin delegate to {@link RecordCodec.classifySealedShred}; surfaced
|
|
118
|
+
* here because `vault.ts` forget() reaches in via `collection._classifySealedShred`.
|
|
119
|
+
*/
|
|
120
|
+
export declare function classifySealedShred<T>(ctx: TiersContext<T>, live: EncryptedEnvelope): Promise<{
|
|
121
|
+
readonly slots: readonly SealedShredSlot[];
|
|
122
|
+
}>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiers capability strategy — the five on-demand collection-level tier
|
|
3
|
+
* operations the `Collection` routes through. The active engine
|
|
4
|
+
* ({@link withTiers}) dynamically imports the tier cores (keeping them out of
|
|
5
|
+
* the floor bundle); {@link NO_TIERS} throws. Collection always builds its
|
|
6
|
+
* per-call {@link TiersContext} and delegates here, so an un-opted-in caller
|
|
7
|
+
* hits `NO_TIERS`'s throw.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
import type { GhostRecord } from '../../kernel/types.js';
|
|
11
|
+
import type { TiersContext } from './index.js';
|
|
12
|
+
export interface TiersStrategy {
|
|
13
|
+
putAtTier<T>(ctx: TiersContext<T>, id: string, record: T, tier: number, opts?: {
|
|
14
|
+
elevation?: {
|
|
15
|
+
reason: string;
|
|
16
|
+
fromTier: number;
|
|
17
|
+
};
|
|
18
|
+
source?: string;
|
|
19
|
+
sourceTs?: string;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
22
|
+
listAtTier<T>(ctx: TiersContext<T>): Promise<Array<{
|
|
23
|
+
id: string;
|
|
24
|
+
tier: number;
|
|
25
|
+
readable: boolean;
|
|
26
|
+
}>>;
|
|
27
|
+
elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
28
|
+
demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* No-op stub — the floor default. Every capability method throws
|
|
32
|
+
* {@link TiersNotEnabledError}; opt in with `tiersStrategy: withTiers()` in
|
|
33
|
+
* createNoydb. @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare const NO_TIERS: TiersStrategy;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the cargo (partition extraction) capability.
|
|
3
|
+
* Pass to `createNoydb({ cargoStrategy: withCargo() })` to make the source-side
|
|
4
|
+
* `extractPartition(vault, ...)` free function live. The extraction crypto
|
|
5
|
+
* engine is dynamically imported here, so it stays out of the floor bundle
|
|
6
|
+
* until opted in. The recipient-side `adoptPartition` /
|
|
7
|
+
* `decryptExtractedPartition` free functions — and `diffVault` (shared
|
|
8
|
+
* import/merge infra) — are ungated and unaffected.
|
|
9
|
+
*/
|
|
10
|
+
import type { CargoStrategy } from './strategy.js';
|
|
11
|
+
export declare function withCargo(): CargoStrategy;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition adoption. Recipient side: verify an extracted bundle,
|
|
3
|
+
* validate the transfer key, import the re-keyed collections into a
|
|
4
|
+
* destination store, and record an `_meta/adoption` marker. The bundle
|
|
5
|
+
* stays UNOWNED after adoption — `createOwnerOnAdoptedPartition`
|
|
6
|
+
* mints the owner; the transfer seal is then destroyed.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { type EnclaveKey } from '../kernel/enclave/index.js';
|
|
11
|
+
import type { NoydbStore } from '../kernel/types.js';
|
|
12
|
+
import type { SealingKeyProvider } from '../with-party/team/managed-passphrase.js';
|
|
13
|
+
import type { ShamirRecoveryProvider } from '../with-party/team/shamir-recovery-provider.js';
|
|
14
|
+
import type { RecoveryEnrollmentInput } from '../with-party/team/rotate-recover.js';
|
|
15
|
+
import type { TransferSealPayload } from '../with-pod/bundle.js';
|
|
16
|
+
/**
|
|
17
|
+
* Reverse of `sealDeks`. Imports the transfer key, decrypts the
|
|
18
|
+
* sealed `{ collection: base64(rawDEK) }` map (layout iv(12)‖ct‖tag), and
|
|
19
|
+
* re-imports each DEK as an AES-GCM key. Throws `TransferSealError` on a
|
|
20
|
+
* wrong key (AES-GCM auth-tag failure) or malformed payload.
|
|
21
|
+
*/
|
|
22
|
+
export declare function unsealDeks(seal: TransferSealPayload, transferKey: Uint8Array): Promise<Map<string, EnclaveKey>>;
|
|
23
|
+
export interface AdoptPartitionOptions {
|
|
24
|
+
readonly transferKey: Uint8Array;
|
|
25
|
+
readonly destinationStore: NoydbStore;
|
|
26
|
+
readonly vaultName: string;
|
|
27
|
+
}
|
|
28
|
+
export interface AdoptPartitionResult {
|
|
29
|
+
readonly vaultName: string;
|
|
30
|
+
readonly needsOwner: true;
|
|
31
|
+
readonly sealId: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function adoptPartition(bundleBytes: Uint8Array, opts: AdoptPartitionOptions): Promise<AdoptPartitionResult>;
|
|
34
|
+
export interface CreateOwnerResult {
|
|
35
|
+
readonly vaultName: string;
|
|
36
|
+
readonly userId: string;
|
|
37
|
+
}
|
|
38
|
+
/** Standard-mode owner: recipient supplies the passphrase. */
|
|
39
|
+
export interface CreateOwnerStandardOptions {
|
|
40
|
+
readonly userId: string;
|
|
41
|
+
readonly passphrase: string;
|
|
42
|
+
readonly transferKey: Uint8Array;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Managed-mode owner: the passphrase is minted + sealed under
|
|
46
|
+
* a `SealingKeyProvider` (e.g. an `at-*` OS keychain) so the partition
|
|
47
|
+
* auto-unlocks on the recipient's device. Managed mode mandates a strong
|
|
48
|
+
* (Shamir) recovery profile at creation, which needs the
|
|
49
|
+
* `shamirRecovery` provider injected.
|
|
50
|
+
*/
|
|
51
|
+
export interface CreateOwnerManagedOptions {
|
|
52
|
+
readonly userId: string;
|
|
53
|
+
readonly passphraseMode: 'managed';
|
|
54
|
+
readonly sealingKey: SealingKeyProvider;
|
|
55
|
+
readonly recovery: ReadonlyArray<RecoveryEnrollmentInput>;
|
|
56
|
+
readonly shamirRecovery: ShamirRecoveryProvider;
|
|
57
|
+
readonly transferKey: Uint8Array;
|
|
58
|
+
}
|
|
59
|
+
export type CreateOwnerOptions = CreateOwnerStandardOptions | CreateOwnerManagedOptions;
|
|
60
|
+
/**
|
|
61
|
+
* Mint the first owner keyring on an adopted-but-unowned partition,
|
|
62
|
+
* then destroy the transfer seal.
|
|
63
|
+
*
|
|
64
|
+
* Standard mode: the recipient supplies a passphrase. Managed mode: the
|
|
65
|
+
* passphrase is minted + sealed under a `SealingKeyProvider` and a strong
|
|
66
|
+
* (Shamir) recovery profile is enrolled — orchestrated via the existing
|
|
67
|
+
* `openVaultAndEnrollRecovery` ceremony.
|
|
68
|
+
*
|
|
69
|
+
* Either way, reuses `createOwnerKeyring` to derive the KEK + write the base
|
|
70
|
+
* keyring, then wraps the partition's DEKs (recovered from the seal) under that
|
|
71
|
+
* KEK and re-persists the merged keyring file.
|
|
72
|
+
*
|
|
73
|
+
* Idempotent under retry: the seal is destroyed LAST (Stage D), after the
|
|
74
|
+
* keyring (Stage A), the ledger transition (Stage B), and — in managed mode —
|
|
75
|
+
* strong-recovery enrollment (Stage C). A failure in the fallible enrollment
|
|
76
|
+
* step leaves the seal intact, and re-running with the same `userId` +
|
|
77
|
+
* `transferKey` resumes from the first incomplete stage. (Multi-profile recovery
|
|
78
|
+
* arrays may re-enroll an already-enrolled profile on retry; managed mode's
|
|
79
|
+
* mandated single Shamir profile does not.)
|
|
80
|
+
*/
|
|
81
|
+
export declare function createOwnerOnAdoptedPartition(store: NoydbStore, vaultName: string, opts: CreateOwnerOptions): Promise<CreateOwnerResult>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** One decrypted record from an extracted-partition compartment. */
|
|
2
|
+
export interface DecryptedRecord {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly record: Record<string, unknown>;
|
|
5
|
+
/** Source envelope write timestamp (ISO) — for last-write-wins merges. */
|
|
6
|
+
readonly ts: string;
|
|
7
|
+
/** Source envelope version. */
|
|
8
|
+
readonly version: number;
|
|
9
|
+
/** Provenance source id (FR-5). Present only when the source collection had provenance:true and a source was supplied on put. */
|
|
10
|
+
readonly source?: string;
|
|
11
|
+
/** ISO-8601 timestamp the provenance source was recorded (FR-5). */
|
|
12
|
+
readonly sourceTs?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Decrypt every record of an extracted-partition bundle to plaintext,
|
|
16
|
+
* grouped by collection. Throws if the bundle isn't an
|
|
17
|
+
* extracted-partition or the transfer key is wrong.
|
|
18
|
+
*/
|
|
19
|
+
export declare function decryptExtractedPartition(bundleBytes: Uint8Array, transferKey: Uint8Array): Promise<Record<string, DecryptedRecord[]>>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition-extraction dry-run. Read-only preview of what an
|
|
3
|
+
* `extractPartition` would move: record counts, byte totals, and the
|
|
4
|
+
* timestamp span per collection — computed from raw encrypted
|
|
5
|
+
* envelopes WITHOUT decrypting them. Writes nothing, mutates nothing.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { Vault } from '../kernel/vault.js';
|
|
10
|
+
import { type WalkClosureOptions } from './walk-closure.js';
|
|
11
|
+
export interface ExtractionPreview {
|
|
12
|
+
readonly totalRecords: number;
|
|
13
|
+
/** Sum of serialized encrypted-envelope sizes (bytes). */
|
|
14
|
+
readonly totalBytes: number;
|
|
15
|
+
readonly byCollection: ReadonlyArray<{
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly recordCount: number;
|
|
18
|
+
readonly bytes: number;
|
|
19
|
+
/** Earliest envelope `_ts` in this collection (lexicographic). */
|
|
20
|
+
readonly oldestTs?: string;
|
|
21
|
+
readonly newestTs?: string;
|
|
22
|
+
}>;
|
|
23
|
+
readonly graph: {
|
|
24
|
+
readonly depth: number;
|
|
25
|
+
readonly cyclesDetected: boolean;
|
|
26
|
+
};
|
|
27
|
+
/** Records the walk reached but whose envelope couldn't be read. */
|
|
28
|
+
readonly inaccessible: ReadonlyArray<{
|
|
29
|
+
readonly collection: string;
|
|
30
|
+
readonly id: string;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
export declare function describeExtraction(vault: Vault, opts: WalkClosureOptions): Promise<ExtractionPreview>;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition extraction. Walks the FK closure, re-encrypts
|
|
3
|
+
* the selected records under fresh per-collection DEKs, seals those DEKs
|
|
4
|
+
* under a one-time transfer key, and serializes an unowned
|
|
5
|
+
* `extracted-partition` bundle.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { Vault } from '../kernel/vault.js';
|
|
10
|
+
import type { EncryptedEnvelope } from '../kernel/types.js';
|
|
11
|
+
import { type EnclaveKey } from '../kernel/enclave/index.js';
|
|
12
|
+
import { type WalkClosureOptions } from './walk-closure.js';
|
|
13
|
+
import { type TransferSealPayload } from '../with-pod/bundle.js';
|
|
14
|
+
/** Re-keyed collections snapshot + the fresh DEKs used. */
|
|
15
|
+
export interface ReKeyResult {
|
|
16
|
+
readonly collections: Record<string, Record<string, EncryptedEnvelope>>;
|
|
17
|
+
readonly deks: Map<string, EnclaveKey>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Re-encrypt every record in `closure` under a fresh per-collection DEK.
|
|
21
|
+
* Reads raw source envelopes, decrypts under the source DEK, re-encrypts
|
|
22
|
+
* under the new DEK. Plaintext-pipeline: requires an unlocked vault.
|
|
23
|
+
*/
|
|
24
|
+
export declare function reKeyClosure(vault: Vault, closure: Map<string, Set<string>>, fieldProjection?: Record<string, readonly string[]>): Promise<ReKeyResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Re-key the persisted JSON Schemas (`_schemas/<collection>`) for the
|
|
27
|
+
* closure collections under the destination DEKs. Returns a
|
|
28
|
+
* `{ collection: envelope }` map for the carried collections that actually
|
|
29
|
+
* have a schema; collections without one are omitted.
|
|
30
|
+
*/
|
|
31
|
+
export declare function reKeySchemas(vault: Vault, closure: Map<string, Set<string>>, destDeks: Map<string, EnclaveKey>, fieldProjection?: Record<string, readonly string[]>): Promise<Record<string, EncryptedEnvelope>>;
|
|
32
|
+
export interface ReKeyLedgerResult {
|
|
33
|
+
/** { paddedIndex: re-encrypted entry envelope } for backup._internal._ledger. */
|
|
34
|
+
readonly entries: Record<string, EncryptedEnvelope>;
|
|
35
|
+
/** Recomputed ledgerHead for the carried chain (index -1 when empty). */
|
|
36
|
+
readonly head: {
|
|
37
|
+
hash: string;
|
|
38
|
+
index: number;
|
|
39
|
+
ts: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build the carried `_ledger` chain for an extracted partition.
|
|
44
|
+
* Filters source entries to the closure, RE-CHAINS them (fresh index + prevHash),
|
|
45
|
+
* and re-encrypts under `ledgerDek`. The `payloadHash` is recomputed against the
|
|
46
|
+
* re-keyed envelope ONLY for the latest `put` per (collection,id) — the entry
|
|
47
|
+
* `verifyBackupIntegrity` cross-checks; earlier puts + deletes keep their source
|
|
48
|
+
* `payloadHash` verbatim (recomputing an intermediate put would assert a false
|
|
49
|
+
* hash for an older version). Amendments + out-of-closure entries are dropped;
|
|
50
|
+
* `_ledger_deltas`/`_history` are deferred to slice 2.
|
|
51
|
+
*/
|
|
52
|
+
export declare function reKeyLedger(vault: Vault, closure: Map<string, Set<string>>, reKeyedCollections: Record<string, Record<string, EncryptedEnvelope>>, ledgerDek: EnclaveKey): Promise<ReKeyLedgerResult>;
|
|
53
|
+
/** Carried blob internals + the fresh transfer `_blob` DEK (present only when
|
|
54
|
+
* the closure references at least one chunk-based blob). */
|
|
55
|
+
export interface ReKeyBlobsResult {
|
|
56
|
+
/** `_blob_slots_<C>` / `_blob_versions_<C>` / `_blob_index` / `_blob_chunks`
|
|
57
|
+
* envelopes for the bundle's `_internal` map. */
|
|
58
|
+
readonly internal: Record<string, Record<string, EncryptedEnvelope>>;
|
|
59
|
+
/** Fresh transfer `_blob` DEK — seal it so owner-creation wraps it under the
|
|
60
|
+
* recipient KEK. Undefined when no blob travels (source keyring untouched). */
|
|
61
|
+
readonly blobDek?: EnclaveKey;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Carry the FK-closed slice's blobs — HARDENED key handling (no master-key leak).
|
|
65
|
+
*
|
|
66
|
+
* The source vault's shared `_blob` DEK decrypts (or unwraps the content CEK of)
|
|
67
|
+
* EVERY blob in the source. Sealing it into the transfer would hand the recipient
|
|
68
|
+
* a key to blobs far outside their slice. Instead we mint a **fresh transfer
|
|
69
|
+
* `_blob` DEK** and arrange every carried blob into per-blob-CEK mode under it:
|
|
70
|
+
*
|
|
71
|
+
* - **erasable blob** (`_cek` present): unwrap the per-blob content CEK under the
|
|
72
|
+
* SOURCE `_blob` DEK, re-wrap it under the FRESH transfer DEK. Chunks travel
|
|
73
|
+
* **verbatim** (still ciphertext under that same content CEK — passthrough).
|
|
74
|
+
* - **legacy blob** (no `_cek`, chunks under the shared `_blob` DEK): promote it
|
|
75
|
+
* IN-BUNDLE — mint a fresh content CEK, decrypt each chunk under the source
|
|
76
|
+
* `_blob` DEK and re-encrypt under the content CEK (same AAD, so the eTag-bound
|
|
77
|
+
* integrity holds), then wrap the content CEK under the transfer DEK. The
|
|
78
|
+
* SOURCE is never mutated (non-destructive), and the bundle never holds
|
|
79
|
+
* plaintext blob bytes (zero-knowledge preserved).
|
|
80
|
+
*
|
|
81
|
+
* **eTag identity is preserved** (not re-HMAC'd). eTags are HMAC-keyed off the
|
|
82
|
+
* `_blob` DEK, but they are stored as OPAQUE keys (`_blob_index/<eTag>`,
|
|
83
|
+
* `_blob_chunks/<eTag>_<i>`) and never recomputed on read — only on a `put()`
|
|
84
|
+
* for dedup. Keeping them verbatim keeps every slot/version/index/chunk key and
|
|
85
|
+
* the chunk AAD coherent with zero chunk-key churn. The only consequence: a
|
|
86
|
+
* future `put()` of identical bytes in the adopted vault computes a different
|
|
87
|
+
* eTag (HMAC under the fresh DEK) and will NOT dedup against the carried blob —
|
|
88
|
+
* an accepted, documented trade for hardened key isolation.
|
|
89
|
+
*
|
|
90
|
+
* Slots/versions are re-keyed under their parent collection's destination DEK
|
|
91
|
+
* (honoring `fieldProjection` — projected-out blob fields' slots never travel);
|
|
92
|
+
* `BlobObject.refCount` is recomputed from carried references only.
|
|
93
|
+
*
|
|
94
|
+
* `external` slots reference an unencrypted shared-bucket object that is not in
|
|
95
|
+
* the bundle — their slot metadata travels (so the catalog entry survives) but
|
|
96
|
+
* the bytes do not (a documented v1 limitation; their eTag is `''`).
|
|
97
|
+
*/
|
|
98
|
+
export declare function reKeyBlobs(vault: Vault, closure: Map<string, Set<string>>, destDeks: Map<string, EnclaveKey>, fieldProjection?: Record<string, readonly string[]>): Promise<ReKeyBlobsResult>;
|
|
99
|
+
/** A minted transfer key (raw 32 bytes) + the seal carrying the DEK set. */
|
|
100
|
+
export interface SealResult {
|
|
101
|
+
readonly seal: TransferSealPayload;
|
|
102
|
+
readonly transferKey: Uint8Array;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Mint a random 32-byte transfer key, export each DEK to raw bytes, and
|
|
106
|
+
* AES-256-GCM-seal the `{ collection: base64(rawDEK) }` map under the
|
|
107
|
+
* transfer key. The transfer key is returned to the caller out-of-band;
|
|
108
|
+
* only the sealed bytes travel in the bundle. Layout: iv(12) ‖ ct ‖ tag.
|
|
109
|
+
*/
|
|
110
|
+
export declare function sealDeks(deks: Map<string, EnclaveKey>): Promise<SealResult>;
|
|
111
|
+
export interface ExtractPartitionResult {
|
|
112
|
+
readonly bundleBytes: Uint8Array;
|
|
113
|
+
/** Raw 32-byte transfer key — deliver out-of-band; required to adopt. */
|
|
114
|
+
readonly transferKey: Uint8Array;
|
|
115
|
+
readonly sealId: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Extract a re-keyed, transfer-sealed partition. Owner-only
|
|
119
|
+
* (invariant 5): producing a standalone re-keyed vault is an
|
|
120
|
+
* ownership operation. Non-destructive on the source.
|
|
121
|
+
*/
|
|
122
|
+
export type ExtractPartitionOptions = WalkClosureOptions & {
|
|
123
|
+
readonly compression?: 'auto' | 'brotli' | 'gzip' | 'none';
|
|
124
|
+
readonly carrySchemas?: boolean;
|
|
125
|
+
readonly carryLedger?: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* FR-7 structural field projection: per-collection allow-list of fields
|
|
128
|
+
* to keep. Non-listed fields are dropped from each record BEFORE
|
|
129
|
+
* re-encryption (so they never travel in the bundle); `id` is always
|
|
130
|
+
* preserved. A projected collection's persisted schema is NOT carried.
|
|
131
|
+
* Absent/empty → un-projected behavior (byte-identical to today).
|
|
132
|
+
*/
|
|
133
|
+
readonly fieldProjection?: Record<string, readonly string[]>;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Public extract-partition entry — gated behind `cargoStrategy: withCargo()`
|
|
137
|
+
* (S4). Routes through the source vault's cargo strategy so an un-opted-in
|
|
138
|
+
* caller hits `NO_CARGO`'s throw; `withCargo()` dynamically imports and runs
|
|
139
|
+
* {@link extractPartitionCore} (the crypto engine, kept out of the floor).
|
|
140
|
+
*/
|
|
141
|
+
export declare function extractPartition(vault: Vault, opts: ExtractPartitionOptions): Promise<ExtractPartitionResult>;
|
|
142
|
+
/**
|
|
143
|
+
* The extract-partition crypto engine — reached only when `withCargo()` is
|
|
144
|
+
* opted in (via the lazy `with-cargo/active.ts` chunk). Body unchanged from the
|
|
145
|
+
* hardened implementation; only the public gate wraps it.
|
|
146
|
+
*/
|
|
147
|
+
export declare function extractPartitionCore(vault: Vault, opts: ExtractPartitionOptions): Promise<ExtractPartitionResult>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **@noy-db/hub/cargo** — the orchestration seam klum binds. Canonical
|
|
3
|
+
* successor to `/kernel` (the published `/kernel` subpath alias has been
|
|
4
|
+
* retired — coordinated removal, consumers migrated).
|
|
5
|
+
*
|
|
6
|
+
* `cargo` is the layer of services + interfaces required to **manage pods** —
|
|
7
|
+
* the multi-vault management plane klum-db binds: custody, deed, diff,
|
|
8
|
+
* distributed query, addressing, and change-observation. It consolidates the
|
|
9
|
+
* runtime floor formerly published as `/kernel` plus the orchestration delta.
|
|
10
|
+
*
|
|
11
|
+
* See docs/superpowers/specs/2026-07-01-noydb-architecture-lexicon.md.
|
|
12
|
+
*
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
export * from '../legacy/kernel.js';
|
|
16
|
+
export { CustodyApi } from '../with-party/custody/index.js';
|
|
17
|
+
export type { GrantCustodianOptions } from '../with-party/custody/index.js';
|
|
18
|
+
export { liberateVault } from '../with-party/custody/liberate.js';
|
|
19
|
+
export type { LiberateOptions, LiberateResult } from '../with-party/custody/liberate.js';
|
|
20
|
+
export { createDeedOwner, loadDeedMarker, isDeedVault } from '../with-party/team/deed.js';
|
|
21
|
+
export type { DeedMarker } from '../with-party/team/deed.js';
|
|
22
|
+
export type { SealingKeyProvider } from '../with-party/team/managed-passphrase.js';
|
|
23
|
+
export { diffVault } from './vault-diff.js';
|
|
24
|
+
export { STATE_VAULT_NAME } from '../kernel/constants.js';
|
|
25
|
+
export { withCargo } from './active.js';
|
|
26
|
+
export { NO_CARGO } from './strategy.js';
|
|
27
|
+
export type { CargoStrategy } from './strategy.js';
|
|
28
|
+
export { CargoNotEnabledError } from '../kernel/errors.js';
|
|
29
|
+
export type { WriteHook } from '../port/with/write-hooks.js';
|
|
30
|
+
export type { WriteQueue } from '../kernel/write-queue.js';
|
|
31
|
+
export type { WriteConflict } from '../kernel/types.js';
|
|
32
|
+
export type { AccessibleVault } from '../kernel/types.js';
|
|
33
|
+
export type { Unsubscribe } from '../kernel/types.js';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cargo capability strategy (FR-6/FR-7) — the source-side, owner-level
|
|
3
|
+
* partition operation that requires a live {@link Vault}: extracting a re-keyed
|
|
4
|
+
* transfer-sealed partition ({@link extractPartitionCore}). The active engine
|
|
5
|
+
* ({@link withCargo}) dynamically imports that engine (keeping the extraction
|
|
6
|
+
* crypto out of the floor bundle); {@link NO_CARGO} throws.
|
|
7
|
+
*
|
|
8
|
+
* The public free function `extractPartition` (which takes a `Vault`) delegates
|
|
9
|
+
* here via `vault.cargoStrategy`, so an un-opted-in caller hits `NO_CARGO`'s
|
|
10
|
+
* throw.
|
|
11
|
+
*
|
|
12
|
+
* Carve-out (mirrors `openSealedRecord` / `liberateVault`): the recipient-side
|
|
13
|
+
* free functions `adoptPartition` and `decryptExtractedPartition` operate on
|
|
14
|
+
* raw bundle bytes + a destination store — they carry NO source instance to
|
|
15
|
+
* gate against, so they stay ungated host-side tooling. `diffVault` is likewise
|
|
16
|
+
* ungated: it's shared import/merge infrastructure the `as-*` exporters call
|
|
17
|
+
* internally, not a gated cargo capability.
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
import type { Vault } from '../kernel/vault.js';
|
|
21
|
+
import type { ExtractPartitionResult, ExtractPartitionOptions } from './extract-partition.js';
|
|
22
|
+
export interface CargoStrategy {
|
|
23
|
+
extractPartition(vault: Vault, opts: ExtractPartitionOptions): Promise<ExtractPartitionResult>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* No-op stub — the floor default. The source-side cargo op throws
|
|
27
|
+
* {@link CargoNotEnabledError}; opt in with `cargoStrategy: withCargo()` in
|
|
28
|
+
* createNoydb. @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare const NO_CARGO: CargoStrategy;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault-level diff orchestrator.
|
|
3
|
+
*
|
|
4
|
+
* Compares a live `Vault`'s plaintext state against a candidate state
|
|
5
|
+
* (another vault, a plain `{ collection: records[] }` map, or a vault
|
|
6
|
+
* dump JSON) and returns a structured `VaultDiff` plan listing the
|
|
7
|
+
* records that would be added, modified, or deleted to bring the live
|
|
8
|
+
* vault into the candidate's shape.
|
|
9
|
+
*
|
|
10
|
+
* Builds on two existing record-level helpers:
|
|
11
|
+
*
|
|
12
|
+
* 1. `diff(a, b)` from `./history/diff.ts` — emits dot-pathed
|
|
13
|
+
* `DiffEntry[]` with `type: 'added' | 'removed' | 'changed'` for
|
|
14
|
+
* each changed field of two records. Used here for the
|
|
15
|
+
* `fieldDiffs` of every `modified` entry, and (with empty result)
|
|
16
|
+
* as the default deep-equal check.
|
|
17
|
+
*
|
|
18
|
+
* 2. `Vault.exportStream()` from `./vault.ts` — the canonical
|
|
19
|
+
* decrypt-and-stream-records iterator. Used to walk both sides
|
|
20
|
+
* when the candidate is itself a `Vault`. ACL-scoped: collections
|
|
21
|
+
* the caller can't read silently drop out, the same way every
|
|
22
|
+
* other plaintext-emitting export pipeline filters them.
|
|
23
|
+
*
|
|
24
|
+
* The new orchestration is the **vault-level** enumeration: bucket
|
|
25
|
+
* each record id into added (only in candidate), deleted (only in
|
|
26
|
+
* vault), or modified (in both with field changes); leave the
|
|
27
|
+
* field-level granularity to the existing `diff()`.
|
|
28
|
+
*
|
|
29
|
+
* Use cases:
|
|
30
|
+
*
|
|
31
|
+
* - Import preview (`@noy-db/as-*` `fromString` returns a plan
|
|
32
|
+
* whose body is a `VaultDiff`).
|
|
33
|
+
* - Backup verification ("does this `.noydb` bundle from yesterday
|
|
34
|
+
* match the current vault?").
|
|
35
|
+
* - Two-vault reconciliation ("what's different between Office A
|
|
36
|
+
* and Office B before we sync?").
|
|
37
|
+
* - Test assertions (golden-file testing with one-liner
|
|
38
|
+
* `expect(plan.summary).toEqual(...)`).
|
|
39
|
+
*
|
|
40
|
+
* @module
|
|
41
|
+
*/
|
|
42
|
+
import type { Vault } from '../kernel/vault.js';
|
|
43
|
+
import { type DiffEntry as FieldDiffEntry } from '../with-commit/history/diff.js';
|
|
44
|
+
/** Per-record entry shape — added and deleted records carry only the record value. */
|
|
45
|
+
export interface VaultDiffEntry<T = unknown> {
|
|
46
|
+
readonly collection: string;
|
|
47
|
+
readonly id: string;
|
|
48
|
+
readonly record: T;
|
|
49
|
+
/**
|
|
50
|
+
* Unencrypted envelope metadata for the RECEIVER-side record.
|
|
51
|
+
* Populated only when `diffVault` is called with `{includeMetadata: true}`.
|
|
52
|
+
* Default: `undefined` (zero extra reads, no behavior change).
|
|
53
|
+
*
|
|
54
|
+
* Populated for `modified` (the CURRENT receiver state, before the candidate
|
|
55
|
+
* is applied) and `deleted` (the receiver envelope of the record being
|
|
56
|
+
* removed). `added` entries have no receiver envelope at diff time, so their
|
|
57
|
+
* `metadata` is always absent.
|
|
58
|
+
*/
|
|
59
|
+
readonly metadata?: {
|
|
60
|
+
readonly version: number;
|
|
61
|
+
readonly timestamp: string;
|
|
62
|
+
readonly by?: string;
|
|
63
|
+
readonly source?: string;
|
|
64
|
+
readonly sourceTs?: string;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Modified records carry both halves of the diff plus the field-level breakdown. */
|
|
68
|
+
export interface VaultDiffModifiedEntry<T = unknown> extends VaultDiffEntry<T> {
|
|
69
|
+
/** The record as it stands in the live vault. */
|
|
70
|
+
readonly before: T;
|
|
71
|
+
/** Top-level keys whose values differ between `before` and `record`. */
|
|
72
|
+
readonly fieldsChanged: readonly string[];
|
|
73
|
+
/**
|
|
74
|
+
* Field-level diff entries from `diff(before, record)`. Reuses the
|
|
75
|
+
* existing per-record diff helper so consumers can render git-style
|
|
76
|
+
* `path: from → to` rows without re-walking the records.
|
|
77
|
+
*/
|
|
78
|
+
readonly fieldDiffs: readonly FieldDiffEntry[];
|
|
79
|
+
}
|
|
80
|
+
export interface VaultDiff<T = unknown> {
|
|
81
|
+
readonly added: readonly VaultDiffEntry<T>[];
|
|
82
|
+
readonly modified: readonly VaultDiffModifiedEntry<T>[];
|
|
83
|
+
readonly deleted: readonly VaultDiffEntry<T>[];
|
|
84
|
+
/** Only populated when `options.includeUnchanged: true`. */
|
|
85
|
+
readonly unchanged: readonly VaultDiffEntry<T>[] | undefined;
|
|
86
|
+
readonly summary: {
|
|
87
|
+
readonly add: number;
|
|
88
|
+
readonly modify: number;
|
|
89
|
+
readonly delete: number;
|
|
90
|
+
readonly total: number;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Format the diff as a human-readable string.
|
|
94
|
+
*
|
|
95
|
+
* - `'count'` — one line, just the numbers (`12 added · 3 modified · 0 deleted`)
|
|
96
|
+
* - `'one-line'` — count plus a single overview line
|
|
97
|
+
* - `'full'` — count + one row per added/modified/deleted record (default)
|
|
98
|
+
*/
|
|
99
|
+
format(opts?: {
|
|
100
|
+
detail?: 'count' | 'one-line' | 'full';
|
|
101
|
+
}): string;
|
|
102
|
+
}
|
|
103
|
+
export interface DiffOptions {
|
|
104
|
+
/** Restrict the diff to a subset of collections. */
|
|
105
|
+
readonly collections?: readonly string[];
|
|
106
|
+
/** Field on each record that carries its id. Defaults to `'id'`. */
|
|
107
|
+
readonly idKey?: string;
|
|
108
|
+
/** Override the default deep-equal check for "modified vs unchanged". */
|
|
109
|
+
readonly compareFn?: (a: unknown, b: unknown) => boolean;
|
|
110
|
+
/** If true, include unchanged records in the diff (off by default to save memory). */
|
|
111
|
+
readonly includeUnchanged?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* When `true`, each entry in `added`, `modified`, and `deleted` will carry a
|
|
114
|
+
* `metadata` field with the RECEIVER-side envelope metadata
|
|
115
|
+
* (`version`, `timestamp`, `by?`, `source?`, `sourceTs?`).
|
|
116
|
+
*
|
|
117
|
+
* Off by default — no extra adapter reads, no behavior change for existing callers.
|
|
118
|
+
*/
|
|
119
|
+
readonly includeMetadata?: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Candidate state to diff the vault against:
|
|
123
|
+
*
|
|
124
|
+
* - A `Vault` instance — both sides are walked via `exportStream()`.
|
|
125
|
+
* - A `Record<collection, records[]>` map — same shape `as-json.toObject()`
|
|
126
|
+
* produces. Useful for diffing parsed file content against the live vault.
|
|
127
|
+
* - A `VaultDump` (output of `vault.dump()`) — a JSON string carrying the
|
|
128
|
+
* full vault state. Parsed and reduced to the map shape above.
|
|
129
|
+
*/
|
|
130
|
+
export type DiffCandidate<T = unknown> = Vault | Record<string, readonly T[]> | string;
|
|
131
|
+
/**
|
|
132
|
+
* Compute the diff between a live vault and a candidate state.
|
|
133
|
+
*
|
|
134
|
+
* Ungated shared import/merge infrastructure: the `as-*` exporters call this
|
|
135
|
+
* internally from their `fromString`/import merge logic, so it is always
|
|
136
|
+
* available (not behind `withCargo()`). Only `extractPartition` is a gated
|
|
137
|
+
* cargo capability.
|
|
138
|
+
*
|
|
139
|
+
* Returns a fully buffered `VaultDiff` — no streaming. Memory cost is
|
|
140
|
+
* O(n + m) in the row count of vault + candidate. For documented
|
|
141
|
+
* 1K-50K-record vaults this is fine; a streaming variant lands as a
|
|
142
|
+
* follow-up if a > 100K-record consumer arrives.
|
|
143
|
+
*/
|
|
144
|
+
export declare function diffVault<T = unknown>(vault: Vault, candidate: DiffCandidate<T>, options?: DiffOptions): Promise<VaultDiff<T>>;
|