@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,200 @@
|
|
|
1
|
+
import type { EncryptedEnvelope } from '../types.js';
|
|
2
|
+
/** Awaitable type for potentially async results. */
|
|
3
|
+
type Awaitable<T> = T | Promise<T>;
|
|
4
|
+
/** Declared security posture — a property the kernel enforces (enforcement activates in phases B/C). */
|
|
5
|
+
export interface ViaPosture {
|
|
6
|
+
readonly encryptedAtRest: 'envelope' | 'sealed';
|
|
7
|
+
readonly queryable: 'none' | 'det-exact' | 'ordered' | 'full';
|
|
8
|
+
readonly exportable: boolean;
|
|
9
|
+
readonly forgettable: boolean;
|
|
10
|
+
}
|
|
11
|
+
/** Opaque marker every feature descriptor extends; the kernel never sees concrete descriptor types. */
|
|
12
|
+
export interface ViaDescriptor {
|
|
13
|
+
readonly _viaBrand: string;
|
|
14
|
+
}
|
|
15
|
+
/** Per-call write context (A: minimal; B/C extend). */
|
|
16
|
+
export interface ViaWriteCtx {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
/** Owning vault name (event payload identity — e.g. i18n:script-violation). */
|
|
19
|
+
readonly vault: string;
|
|
20
|
+
/** Prior stored record (decoded), lazily resolved. Null when creating. */
|
|
21
|
+
readonly prior: () => Promise<Record<string, unknown> | null>;
|
|
22
|
+
/** Typed event emission (e.g. i18n:script-violation). */
|
|
23
|
+
readonly emit: (event: string, payload: unknown) => void;
|
|
24
|
+
}
|
|
25
|
+
/** Per-call read context — mirrors LocaleReadOptions loosely; features narrow. */
|
|
26
|
+
export interface ViaReadCtx {
|
|
27
|
+
readonly locale?: unknown;
|
|
28
|
+
readonly fallback?: unknown;
|
|
29
|
+
readonly layer: string;
|
|
30
|
+
}
|
|
31
|
+
/** One sealed slot's ciphertext — matches the existing `iv:data` sealed map entries (seam map §2 step 2). */
|
|
32
|
+
export interface SealedSlotRef {
|
|
33
|
+
readonly iv: string;
|
|
34
|
+
readonly data: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A scoped crypto capability handed to a `via` feature's `encodeAtRest`/
|
|
38
|
+
* `decodeAtRest`/`erase` hooks — never the keyring, never the enclave.
|
|
39
|
+
* `sealedSlots` is pre-bound to one `(collection, recordId)`; `reservedEnvelopes`
|
|
40
|
+
* is a whole-envelope encrypt/decrypt door scoped to collection names under a
|
|
41
|
+
* declared prefix (e.g. `_dict_`).
|
|
42
|
+
*/
|
|
43
|
+
export interface ViaCryptoCtx {
|
|
44
|
+
readonly sealedSlots: {
|
|
45
|
+
seal(field: string, plaintext: unknown): Promise<SealedSlotRef>;
|
|
46
|
+
unseal(field: string, ref: SealedSlotRef): Promise<unknown>;
|
|
47
|
+
delete(field: string): Promise<void>;
|
|
48
|
+
};
|
|
49
|
+
reservedEnvelopes(prefix: string): {
|
|
50
|
+
encrypt(collection: string, json: string, v: number): Promise<EncryptedEnvelope>;
|
|
51
|
+
decrypt(collection: string, env: EncryptedEnvelope): Promise<string>;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Per-call erase context — `forget()`'s per-ref participation door (phase C). */
|
|
55
|
+
export interface ViaEraseCtx {
|
|
56
|
+
readonly id: string;
|
|
57
|
+
readonly vault: string;
|
|
58
|
+
readonly live: unknown;
|
|
59
|
+
readonly crypto: ViaCryptoCtx;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* What an `erase` hook reports back to `forget()`'s summary ledger entry.
|
|
63
|
+
* `retainedShared` is additive (#629 Task 10) — content NOT erased because
|
|
64
|
+
* still referenced by another live record (blob's shared-chunk dual
|
|
65
|
+
* accounting, `shredAllForRecord()`'s `retainedShared` count). Absent/0 for
|
|
66
|
+
* bindings with no such concept (a sealed field is never "shared").
|
|
67
|
+
*/
|
|
68
|
+
export interface ViaEraseReport {
|
|
69
|
+
readonly shredded: number;
|
|
70
|
+
readonly residue: readonly unknown[];
|
|
71
|
+
readonly retainedShared?: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A feature bound to one collection's declared config. Record-grain hooks —
|
|
75
|
+
* every hook receives the whole record (matches the real engine signatures,
|
|
76
|
+
* e.g. quantizeMoneyFields(record, moneyFields)). All hooks optional;
|
|
77
|
+
* absent = passthrough. Query-participation hooks are SYNC (#553).
|
|
78
|
+
*/
|
|
79
|
+
export interface ViaBinding {
|
|
80
|
+
readonly brand: string;
|
|
81
|
+
readonly posture: ViaPosture;
|
|
82
|
+
/** Declared dependencies (field paths / cross-record specs). MANDATORY for any future
|
|
83
|
+
* derive-bearing binding — phase C validates well-formedness (strings, non-empty,
|
|
84
|
+
* reference declared fields) and graph-registers a derived edge for each covered
|
|
85
|
+
* field at declare time, right after `compileViaBindings` builds the bindings
|
|
86
|
+
* (unknown source field throws `ValidationError`). See
|
|
87
|
+
* `kernel/collection-config.ts`'s `resolveViaBindingDepsEdges`. */
|
|
88
|
+
readonly deps?: readonly string[];
|
|
89
|
+
/** Collection-name prefixes this binding's `reservedEnvelopes` capability may address (e.g. `_dict_`). */
|
|
90
|
+
readonly reservedPrefixes?: readonly string[];
|
|
91
|
+
/**
|
|
92
|
+
* Does this binding own `field`? Backs `ViaPipeline.postureFor` (#629 Task
|
|
93
|
+
* 8's posture consumer) — a passive coverage check, independent of
|
|
94
|
+
* `buildClause`/`compareForOrder` (which some bindings, e.g. classified and
|
|
95
|
+
* blob, never define). SYNC, no side effects.
|
|
96
|
+
*
|
|
97
|
+
* Contract (documentation only — not enforced at runtime, future work):
|
|
98
|
+
* any binding declaring a non-default posture value — `queryable: 'none'`
|
|
99
|
+
* (#629 Task 8) or `exportable: false` (#629 Task 9's `redactForExport`)
|
|
100
|
+
* — MUST implement `covers()`. `postureFor`'s consumers only engage for
|
|
101
|
+
* fields a binding actively claims via `covers()`; a binding that omits
|
|
102
|
+
* it would silently fall through to the generic (unrefused/unredacted)
|
|
103
|
+
* path instead.
|
|
104
|
+
*/
|
|
105
|
+
covers?(field: string): boolean;
|
|
106
|
+
/** Refuse a write before crypto runs (classified step-3 slot: storage:'never' rejection + validators). Throws to refuse. */
|
|
107
|
+
enforceWrite?(record: Record<string, unknown>, ctx: ViaWriteCtx): void | Promise<void>;
|
|
108
|
+
/** First pipeline stage (money canonicalizeIncomingMoney). SYNC. */
|
|
109
|
+
ingest?(record: Record<string, unknown>): Record<string, unknown>;
|
|
110
|
+
/** Decode STORED form to canonical for internal boundaries (gates, derivations, patch bases). SYNC. */
|
|
111
|
+
canonicalizeStored?(record: Record<string, unknown>): Record<string, unknown>;
|
|
112
|
+
/** Post-validation write encoding (money quantize; i18n translate→script→validate→densify). May be async. */
|
|
113
|
+
encodeWrite?(record: Record<string, unknown>, ctx: ViaWriteCtx): Awaitable<Record<string, unknown>>;
|
|
114
|
+
/** Final write-pipeline stage: seal/encrypt declared fields via `crypto` before the envelope body is built (classified step-2 slot). */
|
|
115
|
+
encodeAtRest?(record: Record<string, unknown>, crypto: ViaCryptoCtx): Promise<{
|
|
116
|
+
record: Record<string, unknown>;
|
|
117
|
+
sealed?: Record<string, SealedSlotRef>;
|
|
118
|
+
}>;
|
|
119
|
+
/** First read-pipeline stage: unseal/decrypt declared fields via `crypto` before `present` runs (classified sealed-handle slot). */
|
|
120
|
+
decodeAtRest?(record: Record<string, unknown>, sealed: Record<string, SealedSlotRef>, crypto: ViaCryptoCtx, opts: {
|
|
121
|
+
asHandles: boolean;
|
|
122
|
+
}): Promise<Record<string, unknown>>;
|
|
123
|
+
/** Read-time presentation (money decode+virtuals; i18n locale/labels/strip). May be async. */
|
|
124
|
+
present?(record: Record<string, unknown>, ctx: ViaReadCtx): Awaitable<Record<string, unknown>>;
|
|
125
|
+
/**
|
|
126
|
+
* Late read-time presentation (#669) — runs AFTER every binding's `present()` in the
|
|
127
|
+
* money+computed present-order segment (`ViaPipeline`'s `_presentOrder`, `kernel/via/
|
|
128
|
+
* pipeline.ts`), BEFORE the "everything else" segment (i18n/lookup dressing, taint
|
|
129
|
+
* redaction) runs. Exists for a binding that needs to react to a virtual computed
|
|
130
|
+
* field's fresh OWN-field output before anything dresses it (money's MAJOR-UNITS
|
|
131
|
+
* quantize-and-present for a field that is BOTH money AND `mode:'virtual'` computed) —
|
|
132
|
+
* `present()` alone can't express "run after computed for THESE fields only, before
|
|
133
|
+
* computed for all others", since it's a per-BINDING fold, not per-field. Folded over
|
|
134
|
+
* `bindings` in declaration order (mirrors every other per-binding fold), so lookup/
|
|
135
|
+
* i18n dressing and taint/redaction (both in the "everything else" segment) still see
|
|
136
|
+
* the already-dressed value.
|
|
137
|
+
*/
|
|
138
|
+
presentLate?(record: Record<string, unknown>, ctx: ViaReadCtx): Awaitable<Record<string, unknown>>;
|
|
139
|
+
/** Returns an opaque clause payload when this binding covers `field`, else undefined. */
|
|
140
|
+
buildClause?(field: string, op: string, value: unknown): unknown | undefined;
|
|
141
|
+
/** Evaluate a payload produced by buildClause against a raw stored value. */
|
|
142
|
+
evaluateClause?(actual: unknown, op: string, payload: unknown): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Optional: the STORED-form operand for a direct secondary-index probe
|
|
145
|
+
* against a payload produced by `buildClause` (#625) — lets
|
|
146
|
+
* `candidateRecords()` (`query/builder.ts`) hit `CollectionIndexes.
|
|
147
|
+
* lookupEqual`/`lookupIn` for `==`/`in` clauses instead of falling back
|
|
148
|
+
* to a linear scan + per-record `evaluateClause`. Returning `undefined`
|
|
149
|
+
* means "no sound probe for this op/payload" (e.g. a comparison whose
|
|
150
|
+
* stored form isn't a single index-bucketable value, or an op the index
|
|
151
|
+
* can't serve) — the caller falls back to the scan. A binding that
|
|
152
|
+
* never implements this hook always falls back, unchanged from before
|
|
153
|
+
* this hook existed.
|
|
154
|
+
*/
|
|
155
|
+
indexProbe?(op: string, payload: unknown): unknown | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Optional: canonicalize a raw STORED field value into the bucket key an
|
|
158
|
+
* eager index should use (#672) — lets `CollectionIndexes` group a
|
|
159
|
+
* pre-declaration / non-canonical stored value (e.g. a money field's
|
|
160
|
+
* leftover `'0100'` written before its `money()` declaration) under the
|
|
161
|
+
* SAME key a canonical write produces (`'100'`), so the index-probe fast
|
|
162
|
+
* path (`indexProbe` above) and the fallback scan (`evaluateClause`)
|
|
163
|
+
* agree on which records match. `undefined` means "not mine / can't
|
|
164
|
+
* canonicalize this value" — the caller buckets the raw stringified
|
|
165
|
+
* value, unchanged from before this hook existed. MUST agree with what
|
|
166
|
+
* this binding's own `evaluateClause`/`indexProbe` treat as equal, or
|
|
167
|
+
* the fast path and the scan will disagree.
|
|
168
|
+
*/
|
|
169
|
+
canonicalizeIndexKey?(field: string, rawValue: unknown): string | undefined;
|
|
170
|
+
/** Decode a raw stored record for query/scan results and callback views ('raw' — no virtuals). */
|
|
171
|
+
decodeResults?(record: unknown): unknown;
|
|
172
|
+
/** Exact ordering for a covered field; undefined when the field is not covered. */
|
|
173
|
+
compareForOrder?(field: string, a: unknown, b: unknown): number | undefined;
|
|
174
|
+
/**
|
|
175
|
+
* Per-key, PER-CALL-locale label resolution for `orderBy(field, dir,
|
|
176
|
+
* { by: 'label' })` (#650 Task 7) — the sibling `compareForOrder` above
|
|
177
|
+
* structurally cannot serve, since it carries no locale parameter.
|
|
178
|
+
* `locale` is the query's per-call locale (`undefined` for a locale-less
|
|
179
|
+
* query — a binding may fall back to its own descriptor-level default,
|
|
180
|
+
* mirroring `present`'s displayLocale hinge). `undefined` return = this
|
|
181
|
+
* binding doesn't resolve a label for `key` at `field` — caller falls
|
|
182
|
+
* back to the raw stored value, same graceful-degrade discipline every
|
|
183
|
+
* other via query hook uses. SYNC (#553 — query participation).
|
|
184
|
+
*/
|
|
185
|
+
resolveOrderLabel?(field: string, key: string, locale: string | undefined): string | undefined;
|
|
186
|
+
/** Rewrite an aggregate spec (money exact reducers). */
|
|
187
|
+
wrapReducers?(spec: unknown): unknown;
|
|
188
|
+
/** `forget()`'s per-ref erasure door — shred/report this binding's residue for one record (classified/blob forget participation). */
|
|
189
|
+
erase?(ctx: ViaEraseCtx): Promise<ViaEraseReport>;
|
|
190
|
+
describeFragment?(): Record<string, unknown>;
|
|
191
|
+
}
|
|
192
|
+
/** Binder: constructs a binding from a collection's declared config. Installed by the feature's declaration factory. */
|
|
193
|
+
export type ViaBinder = (config: unknown) => ViaBinding;
|
|
194
|
+
/** @internal — called (idempotently, first-wins) by a feature's declaration factory, e.g. money(). */
|
|
195
|
+
export declare function installViaBinder(brand: string, binder: ViaBinder): void;
|
|
196
|
+
/** @internal — registry presence check. Used by tests (mirrors isMoneyEngineInstalled) and by vault's i18n validator delegators as a no-i18n-ever-declared fast path. */
|
|
197
|
+
export declare function isViaInstalled(brand: string): boolean;
|
|
198
|
+
/** @internal — resolve a binder; throws when the declaration factory never ran (hand-rolled descriptors). */
|
|
199
|
+
export declare function viaBinder(brand: string): ViaBinder;
|
|
200
|
+
export {};
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import type { ViaBinding, ViaPosture, ViaWriteCtx, ViaReadCtx, ViaCryptoCtx, SealedSlotRef, ViaEraseCtx, ViaEraseReport } from './index.js';
|
|
2
|
+
/** Opaque per-clause query payload carried on FieldClause (replaces the money-only slot). */
|
|
3
|
+
export interface ViaClause {
|
|
4
|
+
readonly brand: string;
|
|
5
|
+
readonly payload: unknown;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The graph-computed taint overlay (#638 Task 3) — `postureFor`'s
|
|
9
|
+
* assignment→enforcement bridge. `postures`/`sealFields` are the
|
|
10
|
+
* enforcement-facing shapes `via/taint-binding.ts#buildTaintOverlay`
|
|
11
|
+
* produces from `ViaGraph.taintedPostures`/`taintSealedFields`;
|
|
12
|
+
* `provenance` (optional — introspection only, never consulted by
|
|
13
|
+
* `postureFor`) is `ViaGraph.taintProvenance`'s output, surfaced by
|
|
14
|
+
* `describe()`.
|
|
15
|
+
*/
|
|
16
|
+
export interface ViaTaintOverlay {
|
|
17
|
+
readonly postures: ReadonlyMap<string, ViaPosture>;
|
|
18
|
+
readonly sealFields: ReadonlySet<string>;
|
|
19
|
+
readonly provenance?: ReadonlyMap<string, readonly string[]>;
|
|
20
|
+
/** #642 — the whole-record floor for a derivation/MV/overlay OUTPUT collection (the '*' target's
|
|
21
|
+
* folded, clamped effective posture). postureFor falls back to it for ANY field; redactForExport
|
|
22
|
+
* picks it up per-field; a sealed default drives taintBinding's sealAllFields mode. O(1) read. */
|
|
23
|
+
readonly defaultPosture?: ViaPosture;
|
|
24
|
+
}
|
|
25
|
+
export declare class ViaPipeline {
|
|
26
|
+
readonly bindings: readonly ViaBinding[];
|
|
27
|
+
readonly taint?: ViaTaintOverlay | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Present-phase-ONLY order (#665, corrected under #665 review) — a stable
|
|
30
|
+
* THREE-WAY partition of `bindings` computed once here at construction:
|
|
31
|
+
* every `'money'`-brand binding first (existing relative order), then
|
|
32
|
+
* every `'computed'`-brand binding (existing relative order), then
|
|
33
|
+
* everything else (existing relative order). `present()` folds over this
|
|
34
|
+
* instead of `bindings` so a `mode: 'virtual'` computed field's value
|
|
35
|
+
* exists before i18n/lookup's dressing `present()` hooks run on it
|
|
36
|
+
* (today's `compileViaBindings` order is money→i18n→lookup→classified→
|
|
37
|
+
* blob→computed, `collection-config.ts:554`, so dressing unconditionally
|
|
38
|
+
* ran BEFORE the value it dresses existed). This reorder is binding-level,
|
|
39
|
+
* not conditioned on any particular field composition — it applies to
|
|
40
|
+
* EVERY collection that compiles a `'computed'` binding at all, not only
|
|
41
|
+
* ones stacking a dresser on the SAME field as a computed one. EVERY other
|
|
42
|
+
* phase (`ingest`/`encodeWrite`/`encodeAtRest`/`enforceWrite`/etc.) keeps
|
|
43
|
+
* folding over `bindings` unchanged — those write/query phases need
|
|
44
|
+
* money-first (`_applyMoneyFields` PREPENDS money, `_applyClassifiedFields`
|
|
45
|
+
* APPENDS classified to preserve it, `kernel/collection.ts:1275-1284,1364-
|
|
46
|
+
* 1368`).
|
|
47
|
+
*
|
|
48
|
+
* Money is deliberately carved OUT of the generic "everything else" slice
|
|
49
|
+
* and kept FIRST — the original two-way `[computed..., rest...]` partition
|
|
50
|
+
* regressed money's composed-field behavior from a benign missing-dressing
|
|
51
|
+
* gap into VALUE CORRUPTION: money's `present()` DECODES its input as a
|
|
52
|
+
* STORED SCALED-INT (and derives `<field>Formatted` from it) — it is not a
|
|
53
|
+
* pure dressing CONSUMER like i18n/lookup, which only ADD a `<field>Label`
|
|
54
|
+
* key and never rewrite the field's own value. Running money AFTER
|
|
55
|
+
* computed on a field composing `computed(virtual)` + `money(...)` on
|
|
56
|
+
* ITSELF means money's decode sees the virtual field's raw MAJOR-unit
|
|
57
|
+
* output (e.g. `21`) and misreads it as a scaled-int, producing a
|
|
58
|
+
* corrupted value (`'0.21'`) instead of the pre-#665 result (the raw `21`
|
|
59
|
+
* surviving untouched, with no `Formatted` key added — a benign
|
|
60
|
+
* missing-dressing gap, not a wrong value). Money-first restores money's
|
|
61
|
+
* exact pre-#665 present position — byte-identical money behavior; the
|
|
62
|
+
* materialized composition pins from the #631 work and the money suites
|
|
63
|
+
* all ran under money-first. i18n/lookup are genuine dressing consumers
|
|
64
|
+
* (they only ADD, never rewrite), so they stay after computed, which is
|
|
65
|
+
* the fix #665 intended. A `'taint'` binding (appended LAST by
|
|
66
|
+
* `via/graph-wiring.ts#applyTaintOverlay`) stays last here too (it's
|
|
67
|
+
* neither money nor computed, so it lands at the tail of the "everything
|
|
68
|
+
* else" slice), preserving its "runs after computed, redacts tainted
|
|
69
|
+
* virtual output" contract (`via/taint-binding.ts`'s `taintBinding` doc
|
|
70
|
+
* comment).
|
|
71
|
+
*
|
|
72
|
+
* Money-dressing a virtual computed field's OWN output (the composed
|
|
73
|
+
* `computed(virtual) + money` case) is NOT resolved by this partition
|
|
74
|
+
* alone — #669 resolves it with a separate mid-fold hook instead:
|
|
75
|
+
* `ViaBinding.presentLate` runs after every binding's `present()` in this
|
|
76
|
+
* money+computed segment, before the "everything else" segment below, so
|
|
77
|
+
* money can quantize/reinterpret a virtual field's fresh MAJOR-UNITS
|
|
78
|
+
* output as if it were a stored value, without perturbing this ordering
|
|
79
|
+
* or the #665 invariant above it (`_presentLateBoundary` below marks
|
|
80
|
+
* exactly where that mid-fold point sits within `_presentOrder`).
|
|
81
|
+
*/
|
|
82
|
+
private readonly _presentOrder;
|
|
83
|
+
/** #669 — index into `_presentOrder` where the money+computed segment ends and the
|
|
84
|
+
* "everything else" segment begins (`moneyBindings.length + computedBindings.length`);
|
|
85
|
+
* `present()` runs every binding's `presentLate` at exactly this boundary. */
|
|
86
|
+
private readonly _presentLateBoundary;
|
|
87
|
+
private constructor();
|
|
88
|
+
/** undefined when there is nothing to enforce — the zero-via fast path is
|
|
89
|
+
* `this.via === undefined` (#553: keeps an all-plain collection sync). A
|
|
90
|
+
* `'*'`-defaulted output collection (#642) counts as "something to enforce"
|
|
91
|
+
* even with zero field-specific postures and zero bindings. */
|
|
92
|
+
static build(bindings: readonly ViaBinding[], taint?: ViaTaintOverlay): ViaPipeline | undefined;
|
|
93
|
+
/** Refuse a write before crypto runs: awaits each binding's `enforceWrite` in order — first throw wins. */
|
|
94
|
+
enforceWrite(record: Record<string, unknown>, ctx: ViaWriteCtx): Promise<void>;
|
|
95
|
+
ingest(record: Record<string, unknown>): Record<string, unknown>;
|
|
96
|
+
canonicalizeStored(record: Record<string, unknown>): Record<string, unknown>;
|
|
97
|
+
encodeWrite(record: Record<string, unknown>, ctx: ViaWriteCtx): Promise<Record<string, unknown>>;
|
|
98
|
+
/**
|
|
99
|
+
* Final write-pipeline stage: folds each binding's `encodeAtRest` in
|
|
100
|
+
* order, threading the record and accumulating the sealed-slot map. A
|
|
101
|
+
* field belongs to exactly one via feature — two bindings sealing the
|
|
102
|
+
* same field is a brand-keyed collision and throws.
|
|
103
|
+
*/
|
|
104
|
+
encodeAtRest(record: Record<string, unknown>, crypto: ViaCryptoCtx): Promise<{
|
|
105
|
+
record: Record<string, unknown>;
|
|
106
|
+
sealed?: Record<string, SealedSlotRef>;
|
|
107
|
+
}>;
|
|
108
|
+
/** First read-pipeline stage: folds each binding's `decodeAtRest` in order. */
|
|
109
|
+
decodeAtRest(record: Record<string, unknown>, sealed: Record<string, SealedSlotRef>, crypto: ViaCryptoCtx, opts: {
|
|
110
|
+
asHandles: boolean;
|
|
111
|
+
}): Promise<Record<string, unknown>>;
|
|
112
|
+
present(record: Record<string, unknown>, ctx: ViaReadCtx): Promise<Record<string, unknown>>;
|
|
113
|
+
buildClause(field: string, op: string, value: unknown): ViaClause | undefined;
|
|
114
|
+
evaluateClause(clause: ViaClause, actual: unknown, op: string): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Resolve a `buildClause` payload to an index-probe operand (#625) —
|
|
117
|
+
* mirrors `evaluateClause`'s brand dispatch. `undefined` (a binding
|
|
118
|
+
* with no `indexProbe`, or one that declines to probe this op/payload)
|
|
119
|
+
* means the caller (`candidateRecords()`) must fall back to a scan.
|
|
120
|
+
*/
|
|
121
|
+
indexProbe(clause: ViaClause, op: string): unknown | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Resolve a raw STORED field value to its canonical eager-index bucket
|
|
124
|
+
* key (#672) — folds every binding's `canonicalizeIndexKey`, first
|
|
125
|
+
* non-undefined wins (same fold discipline as `buildClause`). `undefined`
|
|
126
|
+
* means no binding claims `field` (or the value can't be canonicalized)
|
|
127
|
+
* — the caller buckets the raw stringified value, unchanged from before
|
|
128
|
+
* this hook existed.
|
|
129
|
+
*/
|
|
130
|
+
canonicalizeIndexKey(field: string, rawValue: unknown): string | undefined;
|
|
131
|
+
decodeResults(record: unknown): unknown;
|
|
132
|
+
/** undefined = no binding covers the field → caller falls back to generic compare. */
|
|
133
|
+
compareForOrder(field: string, a: unknown, b: unknown): number | undefined;
|
|
134
|
+
/** undefined = no binding resolves an order-sort label for `key` at `field`/`locale` (#650 Task 7 —
|
|
135
|
+
* the `orderBy(..., {by:'label'})` per-call-locale channel `compareForOrder` above can't serve). */
|
|
136
|
+
resolveOrderLabel(field: string, key: string, locale: string | undefined): string | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Which posture governs `field`, if any binding covers it — `undefined`
|
|
139
|
+
* means no binding declares `field` (the generic, non-via query path
|
|
140
|
+
* applies). #629 Task 8's posture consumer: `.where()`/`.orderBy()`
|
|
141
|
+
* consult this before building/evaluating a clause, refusing fields whose
|
|
142
|
+
* posture is `queryable: 'none'` (e.g. blob); every other posture
|
|
143
|
+
* ('det-exact'/'ordered'/'full') is left to the existing per-binding
|
|
144
|
+
* buildClause/evaluateClause/compareForOrder machinery, unchanged.
|
|
145
|
+
*
|
|
146
|
+
* #638 Task 3: the graph-computed taint overlay is consulted FIRST — a
|
|
147
|
+
* derived field's assigned (most-restrictive-of-sources) posture wins over
|
|
148
|
+
* whatever a binding would otherwise report for that field name (no
|
|
149
|
+
* binding covers a computed/derived field today, so this never actually
|
|
150
|
+
* shadows one — see `via/taint-binding.ts`'s `taintBinding.covers`, which
|
|
151
|
+
* only claims the sealed subset for `encodeAtRest`/`decodeAtRest`, not for
|
|
152
|
+
* this lookup).
|
|
153
|
+
*/
|
|
154
|
+
postureFor(field: string): ViaPosture | undefined;
|
|
155
|
+
/**
|
|
156
|
+
* Refuse any field-based reducer over a `queryable: 'none'` field (blob) —
|
|
157
|
+
* metadata-only: walks each reducer's `.field` and checks posture, no
|
|
158
|
+
* rewriting. Reducers with no `.field` (e.g. `count()`) are skipped.
|
|
159
|
+
*
|
|
160
|
+
* Shared by `wrapReducers` below (which ALSO applies each binding's
|
|
161
|
+
* rewrite, e.g. money's exact-BigInt reducer swap) and by
|
|
162
|
+
* `ScanBuilder.aggregate()` (#629 Task 8 review fix wave 1), which must
|
|
163
|
+
* call THIS, not `wrapReducers` — wiring full `wrapReducers` into
|
|
164
|
+
* `ScanBuilder.aggregate()` would newly activate money/i18n reducer
|
|
165
|
+
* wrapping on a path that has never run it, a parity-breaking behavior
|
|
166
|
+
* change for existing brands.
|
|
167
|
+
*/
|
|
168
|
+
refuseUnqueryableReducers<S>(spec: S): void;
|
|
169
|
+
/**
|
|
170
|
+
* Rewrite an aggregate spec (money exact reducers), then refuse any
|
|
171
|
+
* field-based reducer over a `queryable: 'none'` field (blob) — the same
|
|
172
|
+
* posture gate `.where()`/`.orderBy()` apply, extended to `.aggregate()`
|
|
173
|
+
* (both the bare-spec and builder forms funnel through here).
|
|
174
|
+
*/
|
|
175
|
+
wrapReducers<S>(spec: S): S;
|
|
176
|
+
/**
|
|
177
|
+
* Deliberate export-layer redaction (#629 Task 9's posture consumer):
|
|
178
|
+
* for every OWN field the decoded record carries, if the covering
|
|
179
|
+
* binding's posture declares `exportable: false` (classified today;
|
|
180
|
+
* money/i18n/blob are all `true`), replace the value with
|
|
181
|
+
* {@link EXPORT_REDACTION_MARKER} — the same `'[sealed]'` string
|
|
182
|
+
* `SealedHandle.toJSON()` (`kernel/types.ts`) already emits, so this is
|
|
183
|
+
* byte-parity with today's accidental redaction, now independent of the
|
|
184
|
+
* field's runtime shape. `SealedHandle.toJSON()` stays untouched as
|
|
185
|
+
* defense-in-depth: a record read via `collection.get()` and
|
|
186
|
+
* JSON.stringify'd outside `exportStream()` still gets the accident's
|
|
187
|
+
* redaction on its own. Never mutates the input; returns a new object
|
|
188
|
+
* only when a field was actually redacted.
|
|
189
|
+
*/
|
|
190
|
+
redactForExport(record: Record<string, unknown>): Record<string, unknown>;
|
|
191
|
+
/**
|
|
192
|
+
* Shared fold over a subset of `this.bindings`: runs each binding's
|
|
193
|
+
* `erase`, concatenating shredded/retainedShared counts and residue.
|
|
194
|
+
* Consults `posture.forgettable` (#629 Task 10) — a binding declaring
|
|
195
|
+
* `forgettable: false` is skipped even if it defines `erase` (none does
|
|
196
|
+
* today; a future non-forgettable binding is supported without a brand check).
|
|
197
|
+
*/
|
|
198
|
+
private foldErase;
|
|
199
|
+
/** `forget()`'s per-ref erasure door: folds every binding's `erase`. */
|
|
200
|
+
erase(ctx: ViaEraseCtx): Promise<ViaEraseReport>;
|
|
201
|
+
/**
|
|
202
|
+
* `forget()`'s SEALED-posture-only erase fold (#629 Task 10, `Collection._onViaErase`'s
|
|
203
|
+
* one caller) — classified today; metadata-filtered on
|
|
204
|
+
* `posture.encryptedAtRest`, not brand-checked. `undefined` when no
|
|
205
|
+
* sealed-posture binding is compiled in — `vault.ts` then falls back to
|
|
206
|
+
* its own bare-`sensitive` classification, which no via binding covers.
|
|
207
|
+
*/
|
|
208
|
+
eraseSealed(ctx: ViaEraseCtx): Promise<ViaEraseReport | undefined>;
|
|
209
|
+
/** True iff any binding implements decodeResults (query fast-path gating). */
|
|
210
|
+
get hasResultDecode(): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* True iff any binding declares an at-rest hook (`encodeAtRest`/
|
|
213
|
+
* `decodeAtRest`) — the codec boundary's async-stack gate (#629 Task 3
|
|
214
|
+
* consults this to choose between the hook path and today's inline
|
|
215
|
+
* sealed-slot path; a stack with only sync hooks, e.g. money-only, stays
|
|
216
|
+
* `false`).
|
|
217
|
+
*/
|
|
218
|
+
get hasAtRestHooks(): boolean;
|
|
219
|
+
/**
|
|
220
|
+
* Fold every binding's `describeFragment()` into one `brand -> fragment`
|
|
221
|
+
* map (#650 Task 7 — the first-ever consumer; `describeFragment` was
|
|
222
|
+
* declared at `via/index.ts:136` since #623 with zero callers until this task).
|
|
223
|
+
* `undefined` when no compiled binding implements it. Consumed by
|
|
224
|
+
* `Collection.describe()`/`describeAsync()`, threaded to `buildDescription`
|
|
225
|
+
* as `BuildDescriptionInput.viaFragments`.
|
|
226
|
+
*/
|
|
227
|
+
describeFragments(): Record<string, Record<string, unknown>> | undefined;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The marker `redactForExport` writes for a non-exportable field —
|
|
231
|
+
* intentionally the same literal `SealedHandle.toJSON()` (`kernel/types.ts`)
|
|
232
|
+
* returns, so the two independent redaction layers (deliberate + accident)
|
|
233
|
+
* produce byte-identical export output. Duplicated, not imported, because
|
|
234
|
+
* `SealedHandle.toJSON()` is untouched by #629 Task 9 (belt-and-braces —
|
|
235
|
+
* `via/export-posture-b.test.ts` asserts both layers agree on this string).
|
|
236
|
+
*/
|
|
237
|
+
export declare const EXPORT_REDACTION_MARKER = "[sealed]";
|
|
238
|
+
/**
|
|
239
|
+
* Structural shape `exportRedact` needs from a collection: just the typed
|
|
240
|
+
* `_via` accessor `Collection` exposes (`kernel/collection.ts`, #634). A
|
|
241
|
+
* named interface rather than the real `Collection` type, because
|
|
242
|
+
* `collection.ts` imports `ViaPipeline` from this module — importing
|
|
243
|
+
* `Collection` back here would be circular.
|
|
244
|
+
*/
|
|
245
|
+
interface HasViaPipeline {
|
|
246
|
+
readonly _via: ViaPipeline | undefined;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Widened sibling of {@link HasViaPipeline}: `via/graph-wiring.ts`'s
|
|
250
|
+
* `applyTaintOverlay` (#666) needs to REASSIGN the live pipeline, not just
|
|
251
|
+
* read it — `_setVia` is `Collection`'s typed writer seam (`kernel/
|
|
252
|
+
* collection.ts`, beside `_via`), replacing the earlier untyped `coll as {
|
|
253
|
+
* via; codec: { setVia } }` cast. Exported (unlike `HasViaPipeline`) because
|
|
254
|
+
* its one consumer lives in a different module.
|
|
255
|
+
*/
|
|
256
|
+
export interface HasWritableViaPipeline extends HasViaPipeline {
|
|
257
|
+
_setVia(pipeline: ViaPipeline | undefined): void;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* `vault.ts`'s `exportStream()` reach-in (#629 Task 9): apply the owning
|
|
261
|
+
* collection's export redaction to one decoded record. Typed via {@link
|
|
262
|
+
* HasViaPipeline} against `Collection`'s `_via` accessor (#634) — replaces
|
|
263
|
+
* the earlier untyped any-cast reach-in.
|
|
264
|
+
*/
|
|
265
|
+
export declare function exportRedact(coll: HasViaPipeline, record: unknown): unknown;
|
|
266
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* kernel/via/reconcile.ts — #664 the late-attach reconcile-path dispatch.
|
|
3
|
+
*
|
|
4
|
+
* `vault.ts`'s reconcile branch (a SECOND-OR-LATER `vault.collection(name, {...})` call on an
|
|
5
|
+
* already-open collection) used to be a flat 5-branch `if (coll && X) coll._applyX(...)` ladder
|
|
6
|
+
* with no collision guard and no i18n/dictKey machinery at all (i18nFields/dictKeyFields were
|
|
7
|
+
* silently ignored on re-open — only the fresh-construction branch ever wired them). This module
|
|
8
|
+
* moves that whole ladder OUT of `vault.ts` (a kernel-surface-ceiling-guarded file) into ONE
|
|
9
|
+
* dispatch entry point, {@link reconcileViaAttach}, that:
|
|
10
|
+
*
|
|
11
|
+
* 1. runs the late-attach collision guard ({@link guardReconcileCollisions}, via/compose.ts)
|
|
12
|
+
* BEFORE any mutation — both the incoming×incoming and existing×incoming recipes;
|
|
13
|
+
* 2. routes the FIVE pre-existing reconciles (money/computed/fieldMeta/meta/classified) through
|
|
14
|
+
* their unchanged `Collection._applyX` methods (collection.ts is NOT touched — this dispatch
|
|
15
|
+
* only orchestrates, matching the pre-#664 call order exactly);
|
|
16
|
+
* 3. commits the two-phase graph-edge reconcile (`via/graph-wiring.ts`) + taint overlay, exactly
|
|
17
|
+
* as before;
|
|
18
|
+
* 4. wires i18n/dictKey late-attach via {@link reconcileI18nFields}/{@link reconcileDictKeyFields}
|
|
19
|
+
* — rebuilding the pipeline through {@link Collection._setVia} (#666's writer seam), mirroring
|
|
20
|
+
* the fresh-construction wiring (`collection-config.ts#compileViaBindings`'s i18n slot +
|
|
21
|
+
* `vault.ts`'s registry population) without duplicating it in a second place;
|
|
22
|
+
* 5. (#664 Part 2b) wires lookup()/enumOf()/dict() late-attach via {@link reconcileLookupFields}
|
|
23
|
+
* — tier-scoped: enum/static tiers are a clean, self-contained attach; the reserved (dict)
|
|
24
|
+
* tier additionally updates the SAME vault registries the fresh path populates
|
|
25
|
+
* (`dictKeyFieldRegistry`/`reservedLookupCollections`/`staticDescriptorByField`/`staticByName`/
|
|
26
|
+
* `staticDictNames`, via `collectLookupDictCompat`); the matrix (`backing:'collection'`) tier
|
|
27
|
+
* is gated by {@link refuseUnattachableMatrixLookupFields} — refuses with a `ValidationError`
|
|
28
|
+
* unless the backing collection is already open (this vault session) and prefetch-enabled.
|
|
29
|
+
*
|
|
30
|
+
* `ViaReconcileVaultCtx` takes the vault-resident registry Maps/closures the i18n/dictKey wiring
|
|
31
|
+
* needs as a plain structural bag of ARGUMENTS (mirroring `via/lookup/registry.ts`'s own
|
|
32
|
+
* "#650 Task 1" extraction pattern) — never a `Vault` import (this file is part of the kernel
|
|
33
|
+
* spine's `port/with/`-only import discipline — S5 port-layering, `scripts/check-architecture.mjs`
|
|
34
|
+
* `checkPortLayering`), so `vault.ts` passes `this` once its relevant fields are readable from
|
|
35
|
+
* outside the class (see `Vault`'s field declarations).
|
|
36
|
+
*/
|
|
37
|
+
import type { Collection } from '../collection.js';
|
|
38
|
+
import { type HasWritableViaPipeline } from './pipeline.js';
|
|
39
|
+
import { type MergedViaFields } from './compose.js';
|
|
40
|
+
import type { ViaGraph } from './graph.js';
|
|
41
|
+
import { type I18nStrategy, type I18nTextDescriptor, type DictKeyDescriptor, type StaticDictDescriptor, type DictionaryHandle } from '../../port/with/i18n-strategy.js';
|
|
42
|
+
import { type LookupDescriptor } from '../../port/with/lookup-strategy.js';
|
|
43
|
+
type AnyCollection = Collection<Record<string, unknown>>;
|
|
44
|
+
/**
|
|
45
|
+
* Structural reconcile-capable collection handle: `_via`/`_setVia` (#666's writer seam) plus the
|
|
46
|
+
* five pre-existing `_applyX` late-attach methods (#623/#629/#638). Every parameter type is
|
|
47
|
+
* DERIVED off `Collection` itself via `Parameters<...>` rather than imported by name — several
|
|
48
|
+
* (`FieldMeta`, `CollectionMeta`, `ComputedFields`) are with-* service types the kernel spine may
|
|
49
|
+
* not statically import (S5 port-layering); deriving them off the already-typed `Collection`
|
|
50
|
+
* method avoids a second, duplicate type declaration too (mirrors `via/graph-wiring.ts`'s
|
|
51
|
+
* `ComputedFieldsParam` trick).
|
|
52
|
+
*/
|
|
53
|
+
export interface ReconcilableCollection extends HasWritableViaPipeline {
|
|
54
|
+
_applyMoneyFields(moneyFields: Parameters<AnyCollection['_applyMoneyFields']>[0]): void;
|
|
55
|
+
_applyComputed(computed: Parameters<AnyCollection['_applyComputed']>[0]): void;
|
|
56
|
+
_applyFieldMeta(fieldMeta: Parameters<AnyCollection['_applyFieldMeta']>[0]): void;
|
|
57
|
+
_applyMeta(meta: Parameters<AnyCollection['_applyMeta']>[0]): void;
|
|
58
|
+
_applyClassifiedFields(classifiedFields: Parameters<AnyCollection['_applyClassifiedFields']>[0]): void;
|
|
59
|
+
/** #671 items 1-3 — the reader + writer seam for `getDictionary`/legacy describe() lists/`presentForJoin`. */
|
|
60
|
+
readonly _viaFieldsSnapshot: AnyCollection['_viaFieldsSnapshot'];
|
|
61
|
+
_reconcileReadState(patch: Parameters<AnyCollection['_reconcileReadState']>[0]): void;
|
|
62
|
+
}
|
|
63
|
+
/** The vault-resident state/closures the i18n/dictKey late-attach wiring reads and writes —
|
|
64
|
+
* the SAME registries `vault.ts`'s fresh-construction branch populates (`i18nFieldRegistry`
|
|
65
|
+
* :884-886, the dictKeyFields split :903-940, `dictLabelResolver`/`i18nPutValidator`/
|
|
66
|
+
* `autoTranslateHook` :1111-1155), passed as plain values (never `this: Vault`) so this module
|
|
67
|
+
* never imports the `Vault` class. */
|
|
68
|
+
export interface ViaReconcileVaultCtx {
|
|
69
|
+
readonly i18nStrategy: I18nStrategy;
|
|
70
|
+
/** — named `locale`, not `defaultLocale`, to match `Vault`'s own field name 1:1 (so `this`
|
|
71
|
+
* satisfies this interface structurally with zero adapter object at the call site). */
|
|
72
|
+
readonly locale: string | undefined;
|
|
73
|
+
readonly translateText: ((text: string, from: string, to: string, field: string, collection: string) => Promise<string>) | undefined;
|
|
74
|
+
readonly i18nFieldRegistry: Map<string, Record<string, I18nTextDescriptor>>;
|
|
75
|
+
readonly dictKeyFieldRegistry: Map<string, Record<string, string>>;
|
|
76
|
+
readonly staticDescriptorByField: Map<string, Record<string, StaticDictDescriptor>>;
|
|
77
|
+
readonly reservedLookupCollections: Map<string, string>;
|
|
78
|
+
readonly staticByName: Map<string, StaticDictDescriptor>;
|
|
79
|
+
readonly staticDictNames: Set<string>;
|
|
80
|
+
dictionary(name: string): DictionaryHandle;
|
|
81
|
+
enforceI18nOnPut(collectionName: string, record: unknown): void;
|
|
82
|
+
enforceStaticDictOnPut(collectionName: string, record: unknown): void;
|
|
83
|
+
/** #664 Part 2b — the matrix-tier lookup late-attach gate: "is this dimension already open in
|
|
84
|
+
* this vault session" (never constructs a fresh collection) — `Vault._getCollection`. */
|
|
85
|
+
getOpenCollection(name: string): AnyCollection | undefined;
|
|
86
|
+
/** #664 Part 2b — the vault's CONSTRUCTING collection accessor the lookup binding's lazy
|
|
87
|
+
* closures (`getLookupBacking`/`membership`/`getAltIndex`/`snapshotFor`) read through — mirrors
|
|
88
|
+
* `vault.ts`'s fresh-construct `(n) => this.collection<Record<string, unknown>>(n)` closure
|
|
89
|
+
* verbatim. Only ever invoked, for a matrix-tier dimension, once {@link getOpenCollection}'s
|
|
90
|
+
* gate has already confirmed it is open — never the door that opens it. */
|
|
91
|
+
getCollection(name: string): AnyCollection;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* #664 Part 2 — late-attach i18nText fields. First-wins (mirrors `_applyMoneyFields`'s own
|
|
95
|
+
* first-wins convention): a no-op once the collection already has an 'i18n' binding, whether
|
|
96
|
+
* that binding came from fresh construction or an earlier reconcile call. `dictKeyFields` is an
|
|
97
|
+
* optional SECOND family arriving in the SAME `vault.collection()` call (`mergeViaFields` already
|
|
98
|
+
* combined them for this one call) — passed through so ONE binding rebuild covers both, exactly
|
|
99
|
+
* like `compileViaBindings` builds ONE 'i18n' binding from both maps at fresh construction.
|
|
100
|
+
*/
|
|
101
|
+
export declare function reconcileI18nFields(coll: ReconcilableCollection, vaultCtx: ViaReconcileVaultCtx, name: string, i18nFields: Record<string, I18nTextDescriptor> | undefined, dictKeyFields?: Record<string, DictKeyDescriptor | StaticDictDescriptor>): void;
|
|
102
|
+
/**
|
|
103
|
+
* #664 Part 2 — late-attach dictKeyFields (dictKey()/staticDict()) with NO i18nFields in the same
|
|
104
|
+
* call — the dictKey-only late-attach door. First-wins, same convention as
|
|
105
|
+
* {@link reconcileI18nFields} (and, transitively, a no-op if that sibling function already
|
|
106
|
+
* handled a combined i18nFields+dictKeyFields call for this collection).
|
|
107
|
+
*/
|
|
108
|
+
export declare function reconcileDictKeyFields(coll: ReconcilableCollection, vaultCtx: ViaReconcileVaultCtx, name: string, dictKeyFields: Record<string, DictKeyDescriptor | StaticDictDescriptor> | undefined): void;
|
|
109
|
+
/**
|
|
110
|
+
* #664 Part 2b — late-attach lookup()/enumOf()/dict() fields, tier-scoped (issue #664, spec-
|
|
111
|
+
* ratified tier policy):
|
|
112
|
+
*
|
|
113
|
+
* - **enum** (`backing:'static'`, no `table`) / **static** (`+table`) — self-contained:
|
|
114
|
+
* membership/labels come from the declared `keys`/`table` alone, no vault registry touch, no
|
|
115
|
+
* cross-collection read. Clean attach, same shape as i18n/dictKey's own reconcile door.
|
|
116
|
+
* - **reserved** (`dict()` / `lookup(dim, { backing:'reserved' })`) — additionally registers into
|
|
117
|
+
* the SAME vault registries the fresh path populates (`vault.ts`'s dictKeyFields/lookupFields
|
|
118
|
+
* registry-population loop) — `dictKeyFieldRegistry`/`reservedLookupCollections` for a bare
|
|
119
|
+
* dict field; `staticDescriptorByField`/`staticByName`/`staticDictNames` for a table-bearing
|
|
120
|
+
* static field — via `collectLookupDictCompat` (#650 Task 2's alias-equivalence bridge, the
|
|
121
|
+
* SAME helper the fresh path already calls), reused verbatim, not duplicated.
|
|
122
|
+
* - **matrix** (`backing:'collection'`) — gated by {@link refuseUnattachableMatrixLookupFields}.
|
|
123
|
+
*
|
|
124
|
+
* First-wins (mirrors {@link reconcileI18nFields}): a no-op once the collection already has a
|
|
125
|
+
* 'lookup' binding, whether from fresh construction or an earlier reconcile call.
|
|
126
|
+
*
|
|
127
|
+
* Post-attach, registers the SAME cross-collection `'ref'` graph edges the fresh path does
|
|
128
|
+
* (`registerLookupRefEdges` — internally skips the static tier, which has no backing collection to
|
|
129
|
+
* reference-check) — `ViaGraph.referencingEdgesOf` sees them immediately, so delete-time
|
|
130
|
+
* restrict/cascade/nullify semantics are live post-attach too, same as a fresh declaration.
|
|
131
|
+
*/
|
|
132
|
+
export declare function reconcileLookupFields(coll: ReconcilableCollection, vaultCtx: ViaReconcileVaultCtx, graph: ViaGraph, name: string, lookupFields: Record<string, LookupDescriptor> | undefined): void;
|
|
133
|
+
/** The late-attach reconcile call's field-declaring options — the slice of `vault.collection()`'s
|
|
134
|
+
* `options` a reconcile call may carry, plus the `mergeViaFields` output that feeds both the
|
|
135
|
+
* guard and the money/i18n/dictKey/lookup reconciles. `blobFields` has no `_apply*` door (guard
|
|
136
|
+
* visibility only — an incoming×incoming collision with `blobFields` must still refuse, even
|
|
137
|
+
* though a bare blobFields late-attach is otherwise silently inert, matching pre-#664 behavior). */
|
|
138
|
+
export interface ReconcileLateAttachPlan {
|
|
139
|
+
readonly effectiveViaFields: MergedViaFields;
|
|
140
|
+
readonly computed?: Parameters<AnyCollection['_applyComputed']>[0];
|
|
141
|
+
readonly fieldMeta?: Parameters<AnyCollection['_applyFieldMeta']>[0];
|
|
142
|
+
readonly meta?: Parameters<AnyCollection['_applyMeta']>[0];
|
|
143
|
+
readonly classifiedFields?: Parameters<AnyCollection['_applyClassifiedFields']>[0];
|
|
144
|
+
readonly blobFields?: Record<string, unknown>;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* #664 — the ONE late-attach reconcile dispatch `vault.ts` calls, replacing its former 5-branch
|
|
148
|
+
* `_apply*` ladder. Order: guard (before any mutation) → the matrix-tier lookup gate (also before
|
|
149
|
+
* any mutation — see below) → the five pre-existing reconciles, UNCHANGED call order/semantics →
|
|
150
|
+
* graph-edge commit + taint overlay (unchanged) → i18n/dictKey → lookup (#664 Part 2b).
|
|
151
|
+
*/
|
|
152
|
+
export declare function reconcileViaAttach(coll: ReconcilableCollection, graph: ViaGraph, name: string, vaultCtx: ViaReconcileVaultCtx, plan: ReconcileLateAttachPlan): void;
|
|
153
|
+
export {};
|