@noy-db/hub 0.3.0-pre.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregate/index.js +5 -5
- package/dist/api-ZGS6LCOF.js +20 -0
- package/dist/as/index.js +11 -11
- package/dist/attestation/index.js +18 -18
- package/dist/backup-BJ57IKAO.js +242 -0
- package/dist/backup-BJ57IKAO.js.map +1 -0
- package/dist/blobs/index.js +13 -11
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +25 -22
- package/dist/bundle/index.js.map +1 -1
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +31 -32
- package/dist/chunk-2NVOWNI3.js +167 -0
- package/dist/chunk-2NVOWNI3.js.map +1 -0
- package/dist/chunk-3B5VVCNY.js +71 -0
- package/dist/chunk-3LQ2YKO4.js +230 -0
- package/dist/chunk-3QCRBHCY.js +54 -0
- package/dist/chunk-454JXE57.js +1697 -0
- package/dist/chunk-454JXE57.js.map +1 -0
- package/dist/chunk-4CTHCN4J.js +480 -0
- package/dist/chunk-4CTHCN4J.js.map +1 -0
- package/dist/chunk-4GPE63GU.js +111 -0
- package/dist/chunk-4GPE63GU.js.map +1 -0
- package/dist/chunk-4JBYV75E.js +150 -0
- package/dist/chunk-4NXKCLLQ.js +97 -0
- package/dist/chunk-4VNQOLML.js +29 -0
- package/dist/chunk-4VNQOLML.js.map +1 -0
- package/dist/chunk-5M5DVGV7.js +69 -0
- package/dist/chunk-5O3XF4DV.js +150 -0
- package/dist/chunk-5O3XF4DV.js.map +1 -0
- package/dist/chunk-5YOLBEQ6.js +30 -0
- package/dist/chunk-6CRIV7DE.js +129 -0
- package/dist/chunk-6JTIAGHD.js +621 -0
- package/dist/chunk-6JTIAGHD.js.map +1 -0
- package/dist/chunk-6QTNZJBS.js +255 -0
- package/dist/chunk-6T2SCQRU.js +86 -0
- package/dist/chunk-7DSTRQIJ.js +45 -0
- package/dist/chunk-AUSTCW2X.js +589 -0
- package/dist/chunk-B3HJYUOF.js +209 -0
- package/dist/chunk-BDVFPG6Y.js +164 -0
- package/dist/chunk-BIOUI4HL.js +1554 -0
- package/dist/chunk-BIOUI4HL.js.map +1 -0
- package/dist/chunk-CAF6WOK7.js +36 -0
- package/dist/chunk-CDUQTA3Z.js +381 -0
- package/dist/chunk-CDUQTA3Z.js.map +1 -0
- package/dist/chunk-CIE2BASH.js +404 -0
- package/dist/chunk-CRI4OUV4.js +42 -0
- package/dist/chunk-DLG74CNB.js +91 -0
- package/dist/chunk-E5ZQT5KX.js +30 -0
- package/dist/chunk-E5ZQT5KX.js.map +1 -0
- package/dist/chunk-EQO2UVP4.js +247 -0
- package/dist/chunk-EQO2UVP4.js.map +1 -0
- package/dist/chunk-ERJ7FU55.js +367 -0
- package/dist/chunk-EVVGJDRQ.js +205 -0
- package/dist/chunk-EVX47VBM.js +74 -0
- package/dist/chunk-EVX47VBM.js.map +1 -0
- package/dist/chunk-EXK7QRWF.js +59 -0
- package/dist/chunk-EYZ6IQ6X.js +202 -0
- package/dist/chunk-F64IRYG3.js +45 -0
- package/dist/chunk-FHS2HQSH.js +823 -0
- package/dist/chunk-FM3G3NOY.js +206 -0
- package/dist/chunk-FM3G3NOY.js.map +1 -0
- package/dist/chunk-FUG4SFN3.js +36 -0
- package/dist/chunk-FUG4SFN3.js.map +1 -0
- package/dist/chunk-GKEWXIV5.js +80 -0
- package/dist/chunk-GTGPO5KW.js +59 -0
- package/dist/chunk-HB3RFQSC.js +95 -0
- package/dist/chunk-HDMEGAQE.js +957 -0
- package/dist/chunk-HDMEGAQE.js.map +1 -0
- package/dist/chunk-HDQIIUPH.js +135 -0
- package/dist/chunk-HDQIIUPH.js.map +1 -0
- package/dist/chunk-HTJQYHZP.js +344 -0
- package/dist/chunk-HTJQYHZP.js.map +1 -0
- package/dist/chunk-I6GALP6E.js +99 -0
- package/dist/chunk-IGJCYUT5.js +99 -0
- package/dist/chunk-IGJCYUT5.js.map +1 -0
- package/dist/chunk-IL6POWCW.js +130 -0
- package/dist/chunk-IU6SNYX6.js +117 -0
- package/dist/chunk-J2ZX2XUV.js +778 -0
- package/dist/chunk-JIF24JPM.js +495 -0
- package/dist/chunk-JIF24JPM.js.map +1 -0
- package/dist/chunk-JK733I5V.js +23 -0
- package/dist/chunk-JK733I5V.js.map +1 -0
- package/dist/chunk-JKJOGPZN.js +29 -0
- package/dist/chunk-JNAI2HN2.js +32 -0
- package/dist/chunk-JNAI2HN2.js.map +1 -0
- package/dist/chunk-JZUV47FZ.js +41 -0
- package/dist/chunk-K5IMOGHB.js +30 -0
- package/dist/chunk-KPZS5QAQ.js +151 -0
- package/dist/chunk-KPZS5QAQ.js.map +1 -0
- package/dist/chunk-KSKBRKGJ.js +291 -0
- package/dist/chunk-KSKBRKGJ.js.map +1 -0
- package/dist/chunk-LASZKVMO.js +382 -0
- package/dist/chunk-LXEXBTKL.js +515 -0
- package/dist/chunk-LXEXBTKL.js.map +1 -0
- package/dist/chunk-M4CV6BRT.js +524 -0
- package/dist/chunk-M4CV6BRT.js.map +1 -0
- package/dist/chunk-MEFJPTZ4.js +371 -0
- package/dist/chunk-MEFJPTZ4.js.map +1 -0
- package/dist/chunk-MV43JSJF.js +265 -0
- package/dist/chunk-MV43JSJF.js.map +1 -0
- package/dist/chunk-NJ4EOKMB.js +392 -0
- package/dist/chunk-NJ4EOKMB.js.map +1 -0
- package/dist/chunk-NR5LT5RY.js +135 -0
- package/dist/chunk-NWSGI5C7.js +261 -0
- package/dist/chunk-OSDB5WW3.js +739 -0
- package/dist/chunk-OSDB5WW3.js.map +1 -0
- package/dist/chunk-PN2XMATY.js +37 -0
- package/dist/chunk-PN2XMATY.js.map +1 -0
- package/dist/chunk-Q5VNKNE5.js +70 -0
- package/dist/chunk-QLWMEXCT.js +21 -0
- package/dist/chunk-QRB7NAOJ.js +123 -0
- package/dist/chunk-R4ROFEYC.js +74 -0
- package/dist/chunk-RCVJZMFE.js +164 -0
- package/dist/chunk-RCVJZMFE.js.map +1 -0
- package/dist/chunk-RIX4V2TB.js +367 -0
- package/dist/chunk-RYCTDFUX.js +40 -0
- package/dist/chunk-RZ5SVOYR.js +155 -0
- package/dist/chunk-SLFHQTTW.js +99 -0
- package/dist/chunk-SNZ6URZZ.js +2782 -0
- package/dist/chunk-SNZ6URZZ.js.map +1 -0
- package/dist/chunk-T2FFWNPK.js +75 -0
- package/dist/chunk-UNFPPVNI.js +23 -0
- package/dist/chunk-VFUPHI2Z.js +333 -0
- package/dist/chunk-VFUPHI2Z.js.map +1 -0
- package/dist/chunk-VLFCJYTL.js +235 -0
- package/dist/chunk-VN3DBQAU.js +124 -0
- package/dist/chunk-VYYM3MEN.js +98 -0
- package/dist/chunk-VYYM3MEN.js.map +1 -0
- package/dist/chunk-VZRODIM3.js +49 -0
- package/dist/chunk-W22IKJE2.js +94 -0
- package/dist/chunk-X3YYQWOQ.js +155 -0
- package/dist/chunk-X7QBD67R.js +14405 -0
- package/dist/chunk-X7QBD67R.js.map +1 -0
- package/dist/chunk-XDYREZWE.js +1128 -0
- package/dist/chunk-XDYREZWE.js.map +1 -0
- package/dist/chunk-XWZVFISC.js +720 -0
- package/dist/chunk-XWZVFISC.js.map +1 -0
- package/dist/chunk-YFXZEAYK.js +85 -0
- package/dist/chunk-ZAJAVEXY.js +50 -0
- package/dist/chunk-ZICD77GM.js +34 -0
- package/dist/chunk-ZJ2AK4V7.js +38 -0
- package/dist/chunk-ZUODRVHY.js +14 -0
- package/dist/classified/index.js +5 -5
- package/dist/classified-marker-CZKA6ITE.js +28 -0
- package/dist/classified-marker-CZKA6ITE.js.map +1 -0
- package/dist/collection-facade-TLWIPI76.js +44 -0
- package/dist/computed-ZIQTYTDI.js +11 -0
- package/dist/consent/index.js +9 -9
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-ESOBZZP5.js +28 -0
- package/dist/delegation-W7ZV2322.js +25 -0
- package/dist/derivations/index.js +12 -12
- package/dist/derive-H2BJTLUI.js +21 -0
- package/dist/enclave-AP3I5W7O.js +141 -0
- package/dist/executor-KGWTNEQD.js +9 -0
- package/dist/executor-OVEXR6RT.js +9 -0
- package/dist/executor-UNEH5ZYH.js +25 -0
- package/dist/export-accessible-PCMXSUZS.js +23 -0
- package/dist/extract-partition-SWHFSYJO.js +38 -0
- package/dist/fanout-sidecar-A765THMX.js +74 -0
- package/dist/find-N6345CNT.js +11 -0
- package/dist/forget/index.js +10 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +6 -6
- package/dist/history/index.js +14 -11
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +21 -19
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +307 -1493
- package/dist/index.js +309 -190
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +7 -7
- package/dist/indexing/index.js.map +1 -1
- package/dist/issue-5OKB6I2R.js +19 -0
- package/dist/kernel/best-effort-revert.d.ts +52 -0
- package/dist/kernel/cache/index.d.ts +10 -0
- package/dist/kernel/cache/lru.d.ts +97 -0
- package/dist/kernel/cache/policy.d.ts +32 -0
- package/dist/kernel/collection-config.d.ts +809 -0
- package/dist/kernel/collection.d.ts +1522 -0
- package/dist/kernel/constants.d.ts +18 -0
- package/dist/kernel/debug.d.ts +25 -0
- package/dist/kernel/enclave/broker/proof.d.ts +154 -0
- package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
- package/dist/kernel/enclave/classify/compare.d.ts +10 -0
- package/dist/kernel/enclave/classify/digest.d.ts +8 -0
- package/dist/kernel/enclave/classify/find.d.ts +36 -0
- package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
- package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
- package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
- package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
- package/dist/kernel/enclave/classify/verify.d.ts +36 -0
- package/dist/kernel/enclave/classify/write.d.ts +8 -0
- package/dist/kernel/enclave/crypto.d.ts +263 -0
- package/dist/kernel/enclave/index.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
- package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
- package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
- package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
- package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
- package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
- package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
- package/dist/kernel/env-check.d.ts +1 -0
- package/dist/kernel/errors.d.ts +1922 -0
- package/dist/kernel/events.d.ts +11 -0
- package/dist/kernel/lazy-count.d.ts +13 -0
- package/dist/kernel/memory-store.d.ts +17 -0
- package/dist/kernel/mutation.d.ts +14 -0
- package/dist/kernel/noydb.d.ts +826 -0
- package/dist/kernel/paths.d.ts +25 -0
- package/dist/kernel/query/builder.d.ts +520 -0
- package/dist/kernel/query/index.d.ts +31 -0
- package/dist/kernel/query/join.d.ts +205 -0
- package/dist/kernel/query/live.d.ts +111 -0
- package/dist/kernel/query/predicate.d.ts +139 -0
- package/dist/kernel/query/scan-builder.d.ts +334 -0
- package/dist/kernel/refs.d.ts +205 -0
- package/dist/kernel/schema.d.ts +134 -0
- package/dist/kernel/sync-policy.d.ts +188 -0
- package/dist/kernel/tier-visibility.d.ts +54 -0
- package/dist/kernel/types.d.ts +3239 -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 +1740 -0
- package/dist/kernel/via/compose.d.ts +144 -0
- package/dist/kernel/via/dispatch.d.ts +195 -0
- package/dist/kernel/via/graph-wiring.d.ts +145 -0
- package/dist/kernel/via/graph.d.ts +166 -0
- package/dist/kernel/via/index.d.ts +200 -0
- package/dist/kernel/via/pipeline.d.ts +266 -0
- package/dist/kernel/via/reconcile.d.ts +153 -0
- package/dist/kernel/via/taint-binding.d.ts +66 -0
- package/dist/kernel/write-queue.d.ts +46 -0
- package/dist/ledger-GFBKVPV4.js +42 -0
- package/dist/legacy/bundle.d.ts +30 -0
- package/dist/legacy/kernel.d.ts +33 -0
- package/dist/liberate-3VDOT4KO.js +24 -0
- package/dist/link-set-Z7Q2ASFX.js +31 -0
- package/dist/materialized-views/index.js +19 -17
- package/dist/noydb-ZCJOYBDI.js +68 -0
- package/dist/on/index.js +9 -9
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +12 -12
- package/dist/pod/index.js +11 -11
- package/dist/policy-Z3RUAIY2.js +41 -0
- package/dist/port/as/index.d.ts +26 -0
- package/dist/port/at/index.d.ts +18 -0
- package/dist/port/by/default-provider.d.ts +9 -0
- package/dist/port/by/index.d.ts +17 -0
- package/dist/port/by/types.d.ts +86 -0
- package/dist/port/in/index.d.ts +21 -0
- package/dist/port/on/index.d.ts +27 -0
- package/dist/port/to/index.d.ts +19 -0
- package/dist/port/ui/index.d.ts +21 -0
- package/dist/port/with/blob-strategy.d.ts +98 -0
- package/dist/port/with/broker-strategy.d.ts +84 -0
- package/dist/port/with/capabilities.d.ts +31 -0
- package/dist/port/with/classified-marker.d.ts +9 -0
- package/dist/port/with/classified-strategy.d.ts +62 -0
- package/dist/port/with/computed-strategy.d.ts +19 -0
- package/dist/port/with/i18n-strategy.d.ts +175 -0
- package/dist/port/with/index.d.ts +18 -0
- package/dist/port/with/lazy-strategy.d.ts +48 -0
- package/dist/port/with/lookup-strategy.d.ts +129 -0
- package/dist/port/with/service-bus.d.ts +156 -0
- package/dist/port/with/team-strategy.d.ts +36 -0
- package/dist/port/with/write-hooks.d.ts +34 -0
- package/dist/portability/index.js +8 -8
- package/dist/post-register-JTH76BLY.js +60 -0
- package/dist/post-register-JTH76BLY.js.map +1 -0
- package/dist/public-envelope-B4KNWVUA.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 +7 -7
- package/dist/read-only-facade-CHCKSEPD.js +8 -0
- package/dist/register-VAHONCID.js +23 -0
- package/dist/registry-7MLVD3VO.js +19 -0
- package/dist/registry-EPKPD5SM.js +18 -0
- package/dist/registry-P5T7PS2U.js +9 -0
- package/dist/request-withdrawal-TI3A5WPS.js +31 -0
- package/dist/reveal-DIBHLUZX.js +38 -0
- package/dist/reveal-DIBHLUZX.js.map +1 -0
- package/dist/revoke-FDRD6GRW.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/sealed-record/index.js +12 -12
- package/dist/seed-Q6M2IZFL.js +231 -0
- package/dist/seed-Q6M2IZFL.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-MUWEIUI6.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/stale-OSQ7J3AA.js +29 -0
- package/dist/storage-MVFCGEQE.js +23 -0
- package/dist/store-coordination-provider-64OEZFGS.js +142 -0
- package/dist/sync/index.js +9 -9
- package/dist/team/index.js +15 -15
- package/dist/tiers/index.js +14 -10
- package/dist/to/index.js +1 -2
- package/dist/tx/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/verify-ZASTRNPR.js +140 -0
- package/dist/verify-ZASTRNPR.js.map +1 -0
- package/dist/via/blob/active.d.ts +34 -0
- package/dist/via/blob/binding.d.ts +86 -0
- package/dist/via/blob/index.d.ts +34 -0
- package/dist/via/classified/active.d.ts +3 -0
- package/dist/via/classified/binding.d.ts +83 -0
- package/dist/via/classified/config-drift.d.ts +34 -0
- package/dist/via/classified/descriptor.d.ts +66 -0
- package/dist/via/classified/errors.d.ts +19 -0
- package/dist/via/classified/guards.d.ts +23 -0
- package/dist/via/classified/index.d.ts +11 -0
- package/dist/via/classified/presets.d.ts +65 -0
- package/dist/via/classified/resolve.d.ts +9 -0
- package/dist/via/classified/strategy.d.ts +11 -0
- package/dist/via/classified/validators.d.ts +3 -0
- package/dist/via/classified/write.d.ts +4 -0
- package/dist/via/computed/binding.d.ts +34 -0
- package/dist/via/computed/descriptor.d.ts +35 -0
- package/dist/via/i18n/active.d.ts +28 -0
- package/dist/via/i18n/binding.d.ts +36 -0
- package/dist/via/i18n/core.d.ts +267 -0
- package/dist/via/i18n/densify.d.ts +24 -0
- package/dist/via/i18n/dictionary.d.ts +200 -0
- package/dist/via/i18n/index.d.ts +21 -0
- package/dist/via/i18n/policy.d.ts +44 -0
- package/dist/via/i18n/script.d.ts +26 -0
- package/dist/via/i18n/strategy.d.ts +13 -0
- package/dist/via/lookup/active.d.ts +19 -0
- package/dist/via/lookup/binding.d.ts +99 -0
- package/dist/via/lookup/descriptor.d.ts +123 -0
- package/dist/via/lookup/handle.d.ts +220 -0
- package/dist/via/lookup/index.d.ts +17 -0
- package/dist/via/lookup/registry.d.ts +228 -0
- package/dist/via/lookup/snapshot.d.ts +67 -0
- package/dist/via/money/arith.d.ts +68 -0
- package/dist/via/money/binding.d.ts +21 -0
- package/dist/via/money/branded.d.ts +61 -0
- package/dist/via/money/descriptor.d.ts +73 -0
- package/dist/via/money/fixed-point.d.ts +51 -0
- package/dist/via/money/index.d.ts +15 -0
- package/dist/via/money/iso4217.d.ts +6 -0
- package/dist/via/money/money-reducer.d.ts +33 -0
- package/dist/via/money/normalize.d.ts +105 -0
- package/dist/via/money/paths.d.ts +61 -0
- package/dist/via/money/where.d.ts +127 -0
- package/dist/walk-SVNDIZ62.js +241 -0
- package/dist/with/index.js +11 -11
- package/dist/with-audit/attestation/active.d.ts +10 -0
- package/dist/with-audit/attestation/index.d.ts +16 -0
- package/dist/with-audit/attestation/issue.d.ts +29 -0
- package/dist/with-audit/attestation/revoke.d.ts +15 -0
- package/dist/with-audit/attestation/signer.d.ts +33 -0
- package/dist/with-audit/attestation/strategy.d.ts +44 -0
- package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
- package/dist/with-audit/consent/active.d.ts +14 -0
- package/dist/with-audit/consent/consent.d.ts +114 -0
- package/dist/with-audit/consent/index.d.ts +14 -0
- package/dist/with-audit/consent/strategy.d.ts +36 -0
- package/dist/with-audit/forget/active.d.ts +31 -0
- package/dist/with-audit/forget/index.d.ts +28 -0
- package/dist/with-audit/forget/purge-scope.d.ts +54 -0
- package/dist/with-audit/forget/strategy.d.ts +199 -0
- package/dist/with-audit/forget/subject-index.d.ts +83 -0
- package/dist/with-audit/guards/executor.d.ts +26 -0
- package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
- package/dist/with-audit/guards/index.d.ts +10 -0
- package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
- package/dist/with-audit/guards/registry.d.ts +83 -0
- package/dist/with-audit/guards/transition-guard.d.ts +82 -0
- package/dist/with-audit/guards/types.d.ts +134 -0
- package/dist/with-audit/guards/with-guard.d.ts +15 -0
- package/dist/with-audit/periods/active.d.ts +11 -0
- package/dist/with-audit/periods/index.d.ts +18 -0
- package/dist/with-audit/periods/periods.d.ts +417 -0
- package/dist/with-audit/periods/strategy.d.ts +32 -0
- package/dist/with-audit/periods/vault-facade.d.ts +95 -0
- package/dist/with-audit/portability/active.d.ts +11 -0
- package/dist/with-audit/portability/export-accessible.d.ts +46 -0
- package/dist/with-audit/portability/index.d.ts +18 -0
- package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
- package/dist/with-audit/portability/strategy.d.ts +31 -0
- package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
- package/dist/with-audit/sealed-record/active.d.ts +9 -0
- package/dist/with-audit/sealed-record/index.d.ts +55 -0
- package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
- package/dist/with-audit/sealed-record/types.d.ts +27 -0
- package/dist/with-audit/tiers/active.d.ts +9 -0
- package/dist/with-audit/tiers/index.d.ts +394 -0
- package/dist/with-audit/tiers/strategy.d.ts +36 -0
- package/dist/with-cargo/active.d.ts +11 -0
- package/dist/with-cargo/adopt-partition.d.ts +81 -0
- package/dist/with-cargo/decrypt-partition.d.ts +19 -0
- package/dist/with-cargo/describe-extraction.d.ts +41 -0
- package/dist/with-cargo/extract-partition.d.ts +155 -0
- package/dist/with-cargo/index.d.ts +33 -0
- package/dist/with-cargo/strategy.d.ts +30 -0
- package/dist/with-cargo/vault-diff.d.ts +144 -0
- package/dist/with-cargo/walk-closure.d.ts +67 -0
- package/dist/with-commit/crdt/active.d.ts +25 -0
- package/dist/with-commit/crdt/crdt.d.ts +42 -0
- package/dist/with-commit/crdt/index.d.ts +16 -0
- package/dist/with-commit/crdt/strategy.d.ts +25 -0
- package/dist/with-commit/history/active.d.ts +40 -0
- package/dist/with-commit/history/diff.d.ts +23 -0
- package/dist/with-commit/history/history.d.ts +73 -0
- package/dist/with-commit/history/index.d.ts +30 -0
- package/dist/with-commit/history/ledger/constants.d.ts +37 -0
- package/dist/with-commit/history/ledger/entry.d.ts +195 -0
- package/dist/with-commit/history/ledger/hash.d.ts +30 -0
- package/dist/with-commit/history/ledger/index.d.ts +19 -0
- package/dist/with-commit/history/ledger/patch.d.ts +99 -0
- package/dist/with-commit/history/ledger/store.d.ts +356 -0
- package/dist/with-commit/history/strategy.d.ts +136 -0
- package/dist/with-commit/history/time-machine.d.ts +202 -0
- package/dist/with-commit/numbering/descriptor.d.ts +27 -0
- package/dist/with-commit/numbering/index.d.ts +69 -0
- package/dist/with-commit/sequence/active.d.ts +10 -0
- package/dist/with-commit/sequence/index.d.ts +150 -0
- package/dist/with-commit/sequence/strategy.d.ts +26 -0
- package/dist/with-commit/tx/active.d.ts +27 -0
- package/dist/with-commit/tx/dry-run.d.ts +29 -0
- package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
- package/dist/with-commit/tx/index.d.ts +13 -0
- package/dist/with-commit/tx/invariants.d.ts +68 -0
- package/dist/with-commit/tx/strategy.d.ts +23 -0
- package/dist/with-commit/tx/transaction.d.ts +212 -0
- package/dist/with-fork/archive/engine.d.ts +71 -0
- package/dist/with-fork/archive/index.d.ts +23 -0
- package/dist/with-fork/shadow/active.d.ts +6 -0
- package/dist/with-fork/shadow/index.d.ts +14 -0
- package/dist/with-fork/shadow/strategy.d.ts +28 -0
- package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
- package/dist/with-fork/snapshots/active.d.ts +20 -0
- package/dist/with-fork/snapshots/engine.d.ts +36 -0
- package/dist/with-fork/snapshots/index.d.ts +5 -0
- package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
- package/dist/with-fork/snapshots/policy.d.ts +23 -0
- package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
- package/dist/with-fork/snapshots/strategy.d.ts +48 -0
- package/dist/with-formula/computed/index.d.ts +48 -0
- package/dist/with-formula/computed/lazy.d.ts +13 -0
- package/dist/with-formula/derivations/executor.d.ts +61 -0
- package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
- package/dist/with-formula/derivations/index.d.ts +6 -0
- package/dist/with-formula/derivations/registry.d.ts +67 -0
- package/dist/with-formula/derivations/stale.d.ts +39 -0
- package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
- package/dist/with-formula/derivations/types.d.ts +248 -0
- package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
- package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
- package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
- package/dist/with-formula/materialized-views/executor.d.ts +80 -0
- package/dist/with-formula/materialized-views/index.d.ts +11 -0
- package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
- package/dist/with-formula/materialized-views/registry.d.ts +99 -0
- package/dist/with-formula/materialized-views/stale.d.ts +113 -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 +4 -0
- package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
- package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
- package/dist/with-lookup/indexing/active.d.ts +30 -0
- package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
- package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
- package/dist/with-lookup/indexing/index.d.ts +27 -0
- package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
- package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
- package/dist/with-lookup/indexing/strategy.d.ts +56 -0
- package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
- package/dist/with-lookup/search/active.d.ts +10 -0
- package/dist/with-lookup/search/build-docs.d.ts +15 -0
- package/dist/with-lookup/search/collection-facade.d.ts +163 -0
- package/dist/with-lookup/search/fuse.d.ts +22 -0
- package/dist/with-lookup/search/index-store.d.ts +19 -0
- package/dist/with-lookup/search/index.d.ts +19 -0
- package/dist/with-lookup/search/inverted-index.d.ts +47 -0
- package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
- package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
- package/dist/with-lookup/search/scan.d.ts +28 -0
- package/dist/with-lookup/search/segment.d.ts +15 -0
- package/dist/with-lookup/search/serialize.d.ts +4 -0
- package/dist/with-lookup/search/snippet.d.ts +5 -0
- package/dist/with-lookup/search/strategy.d.ts +41 -0
- package/dist/with-lookup/search/tokenize.d.ts +12 -0
- package/dist/with-party/auth-introspection/index.d.ts +44 -0
- package/dist/with-party/broker/active.d.ts +23 -0
- package/dist/with-party/broker/index.d.ts +28 -0
- package/dist/with-party/broker/seed.d.ts +77 -0
- package/dist/with-party/custody/active.d.ts +10 -0
- package/dist/with-party/custody/index.d.ts +69 -0
- package/dist/with-party/custody/liberate.d.ts +64 -0
- package/dist/with-party/custody/strategy.d.ts +48 -0
- package/dist/with-party/directory/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 +174 -0
- package/dist/with-party/team/tiers.d.ts +39 -0
- package/dist/with-party/team/wrapped-deks.d.ts +86 -0
- package/dist/with-pod/backup.d.ts +74 -0
- package/dist/with-pod/bundle.d.ts +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-intent.d.ts +153 -0
- package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
- package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
- package/dist/with-shape/blobs/import-external.d.ts +50 -0
- package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
- package/dist/with-shape/blobs/object-projection.d.ts +70 -0
- package/dist/with-shape/introspection/describe.d.ts +237 -0
- package/dist/with-shape/introspection/field-meta.d.ts +61 -0
- package/dist/with-shape/introspection/fields.d.ts +14 -0
- package/dist/with-shape/introspection/index.d.ts +12 -0
- package/dist/with-shape/introspection/json-schema.d.ts +13 -0
- package/dist/with-shape/introspection/meta.d.ts +22 -0
- package/dist/with-shape/introspection/projection.d.ts +13 -0
- package/dist/with-shape/introspection/types.d.ts +154 -0
- package/dist/with-shape/introspection/walk.d.ts +50 -0
- package/dist/with-shape/links/lazy-handle.d.ts +36 -0
- package/dist/with-shape/links/link-set.d.ts +67 -0
- package/dist/with-shape/links/names.d.ts +65 -0
- package/dist/with-shape/links/vault-facade.d.ts +211 -0
- package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
- package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
- package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
- package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
- package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
- package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
- package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
- package/dist/with-shape/satellites/declare.d.ts +60 -0
- package/dist/with-shape/satellites/existence.d.ts +5 -0
- package/dist/with-shape/satellites/fanout.d.ts +38 -0
- package/dist/with-shape/satellites/forget.d.ts +47 -0
- package/dist/with-shape/satellites/index.d.ts +3 -0
- package/dist/with-shape/satellites/joined.d.ts +19 -0
- package/dist/with-shape/satellites/marker.d.ts +10 -0
- package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
- package/dist/with-shape/satellites/post-register.d.ts +6 -0
- package/dist/with-shape/satellites/proxy.d.ts +37 -0
- package/dist/with-shape/satellites/raw-target.d.ts +14 -0
- package/dist/with-shape/satellites/registry.d.ts +19 -0
- package/dist/with-shape/satellites/types.d.ts +37 -0
- package/dist/with-shape/satellites/validate.d.ts +17 -0
- package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
- package/dist/with-shape/schema-update/cutover.d.ts +5 -0
- package/dist/with-shape/schema-update/delta.d.ts +2 -0
- package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
- package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
- package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
- package/dist/with-shape/schema-update/fence.d.ts +15 -0
- package/dist/with-shape/schema-update/gate.d.ts +16 -0
- package/dist/with-shape/schema-update/index.d.ts +6 -0
- package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
- package/dist/with-shape/schema-update/strategies.d.ts +12 -0
- package/dist/with-shape/schema-update/types.d.ts +53 -0
- package/dist/with-store/index.d.ts +15 -0
- package/dist/with-store/lazy/active.d.ts +12 -0
- package/dist/with-store/lazy/index.d.ts +14 -0
- package/dist/with-store/lazy/strategy.d.ts +9 -0
- package/dist/with-store/route-store.d.ts +259 -0
- package/dist/with-store/store-middleware.d.ts +189 -0
- package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
- package/package.json +47 -55
- package/dist/adapter/index.d.ts +0 -4
- package/dist/adapter/index.js +0 -15
- package/dist/aggregate/index.d.ts +0 -41
- package/dist/api-HV4PDUWF.js +0 -20
- package/dist/as/index.d.ts +0 -6
- package/dist/at/index.d.ts +0 -4
- package/dist/attestation/index.d.ts +0 -19
- package/dist/backup-ODXO7OGA.js +0 -225
- package/dist/backup-ODXO7OGA.js.map +0 -1
- package/dist/blobs/index.d.ts +0 -43
- package/dist/bundle/index.d.ts +0 -121
- package/dist/bundle-DlSxo31R.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -8
- package/dist/chunk-2644KEGW.js +0 -247
- package/dist/chunk-2644KEGW.js.map +0 -1
- package/dist/chunk-2HVUKRNE.js +0 -21
- package/dist/chunk-2KOSJTMU.js +0 -69
- package/dist/chunk-2UQ4RMHV.js +0 -167
- package/dist/chunk-2UQ4RMHV.js.map +0 -1
- package/dist/chunk-2XE6LIXT.js +0 -515
- package/dist/chunk-2XE6LIXT.js.map +0 -1
- package/dist/chunk-34RRRIC3.js +0 -71
- package/dist/chunk-3C5CKXFI.js +0 -621
- package/dist/chunk-3C5CKXFI.js.map +0 -1
- package/dist/chunk-3I4KYWNP.js +0 -30
- package/dist/chunk-42KVY3OC.js +0 -86
- package/dist/chunk-4C4WBS4V.js +0 -13822
- package/dist/chunk-4C4WBS4V.js.map +0 -1
- package/dist/chunk-4G3IT7J7.js +0 -280
- package/dist/chunk-4G3IT7J7.js.map +0 -1
- package/dist/chunk-4RQ62VSR.js +0 -53
- package/dist/chunk-4RQ62VSR.js.map +0 -1
- package/dist/chunk-4ZSGSRBI.js +0 -1221
- package/dist/chunk-4ZSGSRBI.js.map +0 -1
- package/dist/chunk-5GAX2QOH.js +0 -132
- package/dist/chunk-5GAX2QOH.js.map +0 -1
- package/dist/chunk-5SAZMBW7.js +0 -202
- package/dist/chunk-5TZZUL5X.js +0 -30
- package/dist/chunk-6CU3FN74.js +0 -777
- package/dist/chunk-6G2SCQYS.js +0 -29
- package/dist/chunk-6G2SCQYS.js.map +0 -1
- package/dist/chunk-6MWUANRF.js +0 -29
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-6ULCYCMU.js +0 -74
- package/dist/chunk-7HAPHVRJ.js +0 -1695
- package/dist/chunk-7HAPHVRJ.js.map +0 -1
- package/dist/chunk-7IZQTCTR.js +0 -382
- package/dist/chunk-7ZANJ6JZ.js +0 -265
- package/dist/chunk-7ZANJ6JZ.js.map +0 -1
- package/dist/chunk-A2APWS32.js +0 -150
- package/dist/chunk-A2APWS32.js.map +0 -1
- package/dist/chunk-A4MAD6PO.js +0 -99
- package/dist/chunk-ANDBBA2P.js +0 -36
- package/dist/chunk-ANDBBA2P.js.map +0 -1
- package/dist/chunk-AUR7MRHA.js +0 -404
- package/dist/chunk-AYGZMQP5.js +0 -75
- package/dist/chunk-BGIZAFY7.js +0 -1
- package/dist/chunk-CJEMA2Z6.js +0 -230
- package/dist/chunk-CTSFKDGA.js +0 -40
- package/dist/chunk-CU62BBRB.js +0 -1465
- package/dist/chunk-CU62BBRB.js.map +0 -1
- package/dist/chunk-CWCCYH34.js +0 -23
- package/dist/chunk-DEYAO3N6.js +0 -589
- package/dist/chunk-DFIBOSOQ.js +0 -85
- package/dist/chunk-E5AHO65E.js +0 -150
- package/dist/chunk-FC3XK5JT.js +0 -99
- package/dist/chunk-FGOGS7CE.js +0 -662
- package/dist/chunk-FGOGS7CE.js.map +0 -1
- package/dist/chunk-GX2BYNCT.js +0 -117
- package/dist/chunk-GZ2MOPVX.js +0 -291
- package/dist/chunk-GZ2MOPVX.js.map +0 -1
- package/dist/chunk-H57P2SJB.js +0 -126
- package/dist/chunk-H57P2SJB.js.map +0 -1
- package/dist/chunk-HBTT7YQX.js +0 -94
- package/dist/chunk-HOCEGVGQ.js +0 -36
- package/dist/chunk-ICV32FPK.js +0 -50
- package/dist/chunk-IIP5WFVT.js +0 -462
- package/dist/chunk-IIP5WFVT.js.map +0 -1
- package/dist/chunk-IUKGIB2Q.js +0 -91
- package/dist/chunk-IWTYFS3D.js +0 -129
- package/dist/chunk-JC5R7P44.js +0 -355
- package/dist/chunk-JC5R7P44.js.map +0 -1
- package/dist/chunk-K2WCO3NX.js +0 -1
- package/dist/chunk-KBBWY46Y.js +0 -14
- package/dist/chunk-KBF5GSGX.js +0 -367
- package/dist/chunk-KCG3BHFG.js +0 -99
- package/dist/chunk-KCG3BHFG.js.map +0 -1
- package/dist/chunk-KNXN47MO.js +0 -155
- package/dist/chunk-KWLD2D75.js +0 -38
- package/dist/chunk-KXKLKJW4.js +0 -49
- package/dist/chunk-KYC4LIEU.js +0 -123
- package/dist/chunk-LEOXZY36.js +0 -130
- package/dist/chunk-M5I354EE.js +0 -235
- package/dist/chunk-MK2BSS44.js +0 -34
- package/dist/chunk-MSVY7ULZ.js +0 -70
- package/dist/chunk-NNWK3PSY.js +0 -135
- package/dist/chunk-NSZ6J5DF.js +0 -59
- package/dist/chunk-NUEFXLZU.js +0 -59
- package/dist/chunk-NYVQCZ54.js +0 -261
- package/dist/chunk-OQAODTYR.js +0 -45
- package/dist/chunk-OV4CMJGR.js +0 -164
- package/dist/chunk-PEDZFFKW.js +0 -41
- package/dist/chunk-PF3FQCCF.js +0 -164
- package/dist/chunk-PF3FQCCF.js.map +0 -1
- package/dist/chunk-Q2KVKTC2.js +0 -823
- package/dist/chunk-QJR3W3MF.js +0 -23
- package/dist/chunk-QJR3W3MF.js.map +0 -1
- package/dist/chunk-QTXQ6RNZ.js +0 -255
- package/dist/chunk-RJ5522XX.js +0 -453
- package/dist/chunk-RJ5522XX.js.map +0 -1
- package/dist/chunk-RMUXPHIH.js +0 -930
- package/dist/chunk-RMUXPHIH.js.map +0 -1
- package/dist/chunk-S6AQXDN4.js +0 -155
- package/dist/chunk-SSFC3IYA.js +0 -275
- package/dist/chunk-SSFC3IYA.js.map +0 -1
- package/dist/chunk-SZCHEDML.js +0 -209
- package/dist/chunk-TDPEJINP.js +0 -188
- package/dist/chunk-TDPEJINP.js.map +0 -1
- package/dist/chunk-TQ3REHVF.js +0 -95
- package/dist/chunk-TQ3REHVF.js.map +0 -1
- package/dist/chunk-UNJU345Q.js +0 -32
- package/dist/chunk-UNJU345Q.js.map +0 -1
- package/dist/chunk-V7RNIND6.js +0 -265
- package/dist/chunk-V7RNIND6.js.map +0 -1
- package/dist/chunk-VJ3NQK4K.js +0 -205
- package/dist/chunk-WNA6T3MA.js +0 -686
- package/dist/chunk-WNA6T3MA.js.map +0 -1
- package/dist/chunk-WVCQ75OK.js +0 -124
- package/dist/chunk-X66MXMR5.js +0 -42
- package/dist/chunk-XHD3L3JO.js +0 -930
- package/dist/chunk-XHD3L3JO.js.map +0 -1
- package/dist/chunk-XJK2WIYN.js +0 -430
- package/dist/chunk-XJK2WIYN.js.map +0 -1
- package/dist/chunk-XQ7UYPVN.js +0 -95
- package/dist/chunk-Y2OCKFZ3.js +0 -80
- package/dist/chunk-YBFOBRTO.js +0 -367
- package/dist/chunk-YLN33ADH.js +0 -97
- package/dist/chunk-Z5YFRMG5.js +0 -45
- package/dist/chunk-ZWQFOXBR.js +0 -54
- package/dist/classified/index.d.ts +0 -16
- package/dist/classified-marker-IO5EBW7Q.js +0 -24
- package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
- package/dist/collection-facade-3RAXG2OU.js +0 -38
- package/dist/computed-R62HGCO4.js +0 -11
- package/dist/consent/index.d.ts +0 -22
- package/dist/crdt/index.d.ts +0 -33
- package/dist/dead-filter-VNA4M3GP.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-ZKII5UBI.js +0 -25
- package/dist/derivations/index.d.ts +0 -69
- package/dist/derive-5D2C3WG4.js +0 -21
- package/dist/describe/index.d.ts +0 -4
- package/dist/describe/index.js +0 -1
- package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-EUBEJGPG.js +0 -125
- package/dist/executor-IL7SRNUZ.js +0 -23
- package/dist/executor-OUA2Y6YC.js +0 -9
- package/dist/executor-WAEI6PDV.js +0 -9
- package/dist/export-accessible-O55RKAGC.js +0 -23
- package/dist/extract-partition-VBGCBA6Q.js +0 -36
- package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
- package/dist/find-FISGUWSK.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -34
- package/dist/hash-DBkZfIBW.d.ts +0 -72
- package/dist/history/index.d.ts +0 -60
- package/dist/i18n/index.d.ts +0 -56
- package/dist/in/index.d.ts +0 -4
- package/dist/index-B9QdHytu.d.ts +0 -123
- package/dist/index-CyclmyDr.d.ts +0 -122
- package/dist/index-DzhNI2vE.d.ts +0 -23260
- package/dist/indexing/index.d.ts +0 -38
- package/dist/issue-EQAWIYFQ.js +0 -19
- package/dist/kernel/index.d.ts +0 -31
- package/dist/kernel/index.js +0 -60
- package/dist/lazy/index.d.ts +0 -20
- package/dist/ledger-AJA2SR3C.js +0 -42
- package/dist/liberate-SEGR4JLY.js +0 -24
- package/dist/link-set-YBAC2DQT.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -182
- package/dist/mime-magic-CbV1quyp.d.ts +0 -103
- package/dist/noydb-AMEOU456.js +0 -65
- package/dist/on/index.d.ts +0 -4
- package/dist/overlay-views/index.d.ts +0 -97
- package/dist/periods/index.d.ts +0 -19
- package/dist/pod/index.d.ts +0 -62
- package/dist/policy-SDGRWVIL.js +0 -41
- package/dist/portability/index.d.ts +0 -19
- package/dist/post-register-MROIUA5O.js +0 -55
- package/dist/post-register-MROIUA5O.js.map +0 -1
- package/dist/public-envelope-J5PLQOW2.js +0 -32
- package/dist/query/index.d.ts +0 -4
- package/dist/read-only-facade-UCYNRE56.js +0 -8
- package/dist/register-OVJKW7BS.js +0 -23
- package/dist/registry-5RJSK5AJ.js +0 -9
- package/dist/registry-DQRNTWRL.js +0 -18
- package/dist/registry-LTGLERS7.js +0 -19
- package/dist/request-withdrawal-27O77D2V.js +0 -31
- package/dist/reveal-LT3I2K4P.js +0 -38
- package/dist/reveal-LT3I2K4P.js.map +0 -1
- package/dist/revoke-4N45G7D2.js +0 -24
- package/dist/revoke-4N45G7D2.js.map +0 -1
- package/dist/satellites/index.d.ts +0 -4
- package/dist/sealed-record/index.d.ts +0 -68
- package/dist/session/index.d.ts +0 -43
- package/dist/shadow/index.d.ts +0 -14
- package/dist/signer-XJCOV7JD.js +0 -25
- package/dist/signer-XJCOV7JD.js.map +0 -1
- package/dist/snapshots/index.d.ts +0 -25
- package/dist/stale-IYYXEH3U.js +0 -14
- package/dist/stale-IYYXEH3U.js.map +0 -1
- package/dist/storage-Y44CAPE6.js +0 -23
- package/dist/storage-Y44CAPE6.js.map +0 -1
- package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
- package/dist/subject-index-CyOgGMJL.d.ts +0 -380
- package/dist/sync/index.d.ts +0 -40
- package/dist/team/index.d.ts +0 -154
- package/dist/tiers/index.d.ts +0 -4
- package/dist/to/index.d.ts +0 -4
- package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
- package/dist/tx/index.d.ts +0 -34
- package/dist/ui/index.d.ts +0 -4
- package/dist/ulid-DRH25k3y.d.ts +0 -66
- package/dist/util/index.d.ts +0 -79
- package/dist/validators-B3SalxlJ.d.ts +0 -101
- package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
- package/dist/verify-GH6CWVSW.js +0 -139
- package/dist/verify-GH6CWVSW.js.map +0 -1
- package/dist/walk-76UCFXYV.js +0 -241
- package/dist/with/index.d.ts +0 -37
- package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
- package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
- package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
- package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
- package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
- /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
- /package/dist/{chunk-34RRRIC3.js.map → chunk-3B5VVCNY.js.map} +0 -0
- /package/dist/{chunk-CJEMA2Z6.js.map → chunk-3LQ2YKO4.js.map} +0 -0
- /package/dist/{chunk-ZWQFOXBR.js.map → chunk-3QCRBHCY.js.map} +0 -0
- /package/dist/{chunk-E5AHO65E.js.map → chunk-4JBYV75E.js.map} +0 -0
- /package/dist/{chunk-YLN33ADH.js.map → chunk-4NXKCLLQ.js.map} +0 -0
- /package/dist/{chunk-2KOSJTMU.js.map → chunk-5M5DVGV7.js.map} +0 -0
- /package/dist/{chunk-3I4KYWNP.js.map → chunk-5YOLBEQ6.js.map} +0 -0
- /package/dist/{chunk-IWTYFS3D.js.map → chunk-6CRIV7DE.js.map} +0 -0
- /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-6QTNZJBS.js.map} +0 -0
- /package/dist/{chunk-42KVY3OC.js.map → chunk-6T2SCQRU.js.map} +0 -0
- /package/dist/{chunk-Z5YFRMG5.js.map → chunk-7DSTRQIJ.js.map} +0 -0
- /package/dist/{chunk-DEYAO3N6.js.map → chunk-AUSTCW2X.js.map} +0 -0
- /package/dist/{chunk-SZCHEDML.js.map → chunk-B3HJYUOF.js.map} +0 -0
- /package/dist/{chunk-OV4CMJGR.js.map → chunk-BDVFPG6Y.js.map} +0 -0
- /package/dist/{chunk-HOCEGVGQ.js.map → chunk-CAF6WOK7.js.map} +0 -0
- /package/dist/{chunk-AUR7MRHA.js.map → chunk-CIE2BASH.js.map} +0 -0
- /package/dist/{chunk-X66MXMR5.js.map → chunk-CRI4OUV4.js.map} +0 -0
- /package/dist/{chunk-IUKGIB2Q.js.map → chunk-DLG74CNB.js.map} +0 -0
- /package/dist/{chunk-YBFOBRTO.js.map → chunk-ERJ7FU55.js.map} +0 -0
- /package/dist/{chunk-VJ3NQK4K.js.map → chunk-EVVGJDRQ.js.map} +0 -0
- /package/dist/{chunk-NSZ6J5DF.js.map → chunk-EXK7QRWF.js.map} +0 -0
- /package/dist/{chunk-5SAZMBW7.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
- /package/dist/{chunk-OQAODTYR.js.map → chunk-F64IRYG3.js.map} +0 -0
- /package/dist/{chunk-Q2KVKTC2.js.map → chunk-FHS2HQSH.js.map} +0 -0
- /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-GKEWXIV5.js.map} +0 -0
- /package/dist/{chunk-NUEFXLZU.js.map → chunk-GTGPO5KW.js.map} +0 -0
- /package/dist/{chunk-XQ7UYPVN.js.map → chunk-HB3RFQSC.js.map} +0 -0
- /package/dist/{chunk-FC3XK5JT.js.map → chunk-I6GALP6E.js.map} +0 -0
- /package/dist/{chunk-LEOXZY36.js.map → chunk-IL6POWCW.js.map} +0 -0
- /package/dist/{chunk-GX2BYNCT.js.map → chunk-IU6SNYX6.js.map} +0 -0
- /package/dist/{chunk-6CU3FN74.js.map → chunk-J2ZX2XUV.js.map} +0 -0
- /package/dist/{chunk-6MWUANRF.js.map → chunk-JKJOGPZN.js.map} +0 -0
- /package/dist/{chunk-PEDZFFKW.js.map → chunk-JZUV47FZ.js.map} +0 -0
- /package/dist/{chunk-5TZZUL5X.js.map → chunk-K5IMOGHB.js.map} +0 -0
- /package/dist/{chunk-7IZQTCTR.js.map → chunk-LASZKVMO.js.map} +0 -0
- /package/dist/{chunk-NNWK3PSY.js.map → chunk-NR5LT5RY.js.map} +0 -0
- /package/dist/{chunk-NYVQCZ54.js.map → chunk-NWSGI5C7.js.map} +0 -0
- /package/dist/{chunk-MSVY7ULZ.js.map → chunk-Q5VNKNE5.js.map} +0 -0
- /package/dist/{chunk-2HVUKRNE.js.map → chunk-QLWMEXCT.js.map} +0 -0
- /package/dist/{chunk-KYC4LIEU.js.map → chunk-QRB7NAOJ.js.map} +0 -0
- /package/dist/{chunk-6ULCYCMU.js.map → chunk-R4ROFEYC.js.map} +0 -0
- /package/dist/{chunk-KBF5GSGX.js.map → chunk-RIX4V2TB.js.map} +0 -0
- /package/dist/{chunk-CTSFKDGA.js.map → chunk-RYCTDFUX.js.map} +0 -0
- /package/dist/{chunk-S6AQXDN4.js.map → chunk-RZ5SVOYR.js.map} +0 -0
- /package/dist/{chunk-A4MAD6PO.js.map → chunk-SLFHQTTW.js.map} +0 -0
- /package/dist/{chunk-AYGZMQP5.js.map → chunk-T2FFWNPK.js.map} +0 -0
- /package/dist/{chunk-CWCCYH34.js.map → chunk-UNFPPVNI.js.map} +0 -0
- /package/dist/{chunk-M5I354EE.js.map → chunk-VLFCJYTL.js.map} +0 -0
- /package/dist/{chunk-WVCQ75OK.js.map → chunk-VN3DBQAU.js.map} +0 -0
- /package/dist/{chunk-KXKLKJW4.js.map → chunk-VZRODIM3.js.map} +0 -0
- /package/dist/{chunk-HBTT7YQX.js.map → chunk-W22IKJE2.js.map} +0 -0
- /package/dist/{chunk-KNXN47MO.js.map → chunk-X3YYQWOQ.js.map} +0 -0
- /package/dist/{chunk-DFIBOSOQ.js.map → chunk-YFXZEAYK.js.map} +0 -0
- /package/dist/{chunk-ICV32FPK.js.map → chunk-ZAJAVEXY.js.map} +0 -0
- /package/dist/{chunk-MK2BSS44.js.map → chunk-ZICD77GM.js.map} +0 -0
- /package/dist/{chunk-KWLD2D75.js.map → chunk-ZJ2AK4V7.js.map} +0 -0
- /package/dist/{chunk-KBBWY46Y.js.map → chunk-ZUODRVHY.js.map} +0 -0
- /package/dist/{api-HV4PDUWF.js.map → collection-facade-TLWIPI76.js.map} +0 -0
- /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
- /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
- /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
- /package/dist/{collection-facade-3RAXG2OU.js.map → derive-H2BJTLUI.js.map} +0 -0
- /package/dist/{computed-R62HGCO4.js.map → enclave-AP3I5W7O.js.map} +0 -0
- /package/dist/{delegation-ZKII5UBI.js.map → executor-KGWTNEQD.js.map} +0 -0
- /package/dist/{derive-5D2C3WG4.js.map → executor-OVEXR6RT.js.map} +0 -0
- /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
- /package/dist/{enclave-EUBEJGPG.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
- /package/dist/{executor-IL7SRNUZ.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
- /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
- /package/dist/{executor-OUA2Y6YC.js.map → find-N6345CNT.js.map} +0 -0
- /package/dist/{executor-WAEI6PDV.js.map → issue-5OKB6I2R.js.map} +0 -0
- /package/dist/{export-accessible-O55RKAGC.js.map → ledger-GFBKVPV4.js.map} +0 -0
- /package/dist/{extract-partition-VBGCBA6Q.js.map → liberate-3VDOT4KO.js.map} +0 -0
- /package/dist/{find-FISGUWSK.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
- /package/dist/{issue-EQAWIYFQ.js.map → noydb-ZCJOYBDI.js.map} +0 -0
- /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
- /package/dist/{ledger-AJA2SR3C.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
- /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
- /package/dist/{link-set-YBAC2DQT.js.map → register-VAHONCID.js.map} +0 -0
- /package/dist/{noydb-AMEOU456.js.map → registry-7MLVD3VO.js.map} +0 -0
- /package/dist/{policy-SDGRWVIL.js.map → registry-EPKPD5SM.js.map} +0 -0
- /package/dist/{public-envelope-J5PLQOW2.js.map → registry-P5T7PS2U.js.map} +0 -0
- /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
- /package/dist/{register-OVJKW7BS.js.map → revoke-FDRD6GRW.js.map} +0 -0
- /package/dist/{registry-5RJSK5AJ.js.map → signer-MUWEIUI6.js.map} +0 -0
- /package/dist/{registry-DQRNTWRL.js.map → stale-OSQ7J3AA.js.map} +0 -0
- /package/dist/{registry-LTGLERS7.js.map → storage-MVFCGEQE.js.map} +0 -0
- /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
- /package/dist/{walk-76UCFXYV.js.map → walk-SVNDIZ62.js.map} +0 -0
- /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure dict-registry helpers — extracted from `kernel/vault.ts`'s dict
|
|
3
|
+
* bodies (#650 Task 1 — via-lookup extraction, phase D).
|
|
4
|
+
*
|
|
5
|
+
* These take the vault-resident registry Maps (and a couple of vault-bound
|
|
6
|
+
* callbacks) as ARGUMENTS instead of closing over `this` — no `Vault`
|
|
7
|
+
* import here, so this module stays a plain, testable function library.
|
|
8
|
+
* `kernel/vault.ts` keeps the registry Maps themselves (they're populated
|
|
9
|
+
* by `vault.collection()` and read by the backup path) and calls these
|
|
10
|
+
* helpers through the `port/with/lookup-strategy.ts` seam.
|
|
11
|
+
*/
|
|
12
|
+
import type { JoinableSource } from '../../kernel/query/index.js';
|
|
13
|
+
import type { ViaGraph } from '../../kernel/via/graph.js';
|
|
14
|
+
import type { StaticDictDescriptor } from '../../port/with/i18n-strategy.js';
|
|
15
|
+
import { type LookupHandle } from './handle.js';
|
|
16
|
+
import type { LookupDescriptor } from './descriptor.js';
|
|
17
|
+
/**
|
|
18
|
+
* Validate staticDict codes on a `put()`. For each `staticDict()` field,
|
|
19
|
+
* every stored code must be a declared key of the descriptor's table, else
|
|
20
|
+
* `UnknownDictCodeError`. Opt out per descriptor with `{ validateCodes:
|
|
21
|
+
* false }`. Supports scalar, dotted, and `[].`-wildcard field paths via
|
|
22
|
+
* `getAtPath` (same path support as i18n validation).
|
|
23
|
+
*
|
|
24
|
+
* `staticFields` is the collection's `field → StaticDictDescriptor` map
|
|
25
|
+
* (`Vault#staticDescriptorByField.get(collectionName)`) — `undefined`/empty
|
|
26
|
+
* is a no-op.
|
|
27
|
+
*/
|
|
28
|
+
export declare function enforceStaticDictOnPut(staticFields: Record<string, StaticDictDescriptor> | undefined, record: unknown): void;
|
|
29
|
+
/**
|
|
30
|
+
* Build a `JoinableSource` for a dictKey field, for use in dict joins.
|
|
31
|
+
* Returns a source whose snapshot contains `{ key, labels, ...labels }`
|
|
32
|
+
* records — one per dictionary entry — keyed by the stable key.
|
|
33
|
+
*
|
|
34
|
+
* staticDict: a code-table-backed source — snapshot() materialises the
|
|
35
|
+
* in-memory table into rows, mirroring `LookupHandle.snapshotEntries()`.
|
|
36
|
+
* Carries `displayLocale` so a locale-less `{ by: 'label' }` query has a
|
|
37
|
+
* default locale to resolve at.
|
|
38
|
+
*
|
|
39
|
+
* Plain dictKey: the snapshot is built synchronously from the
|
|
40
|
+
* `LookupHandle`'s write-through cache, which is populated on every
|
|
41
|
+
* `put()`, `rename()`, `delete()`, and `list()` call. For pre-existing
|
|
42
|
+
* data not yet touched this session, call `await vault.dictionary(name).list()`
|
|
43
|
+
* first to warm the cache.
|
|
44
|
+
*
|
|
45
|
+
* Returns `null` when `field` is not a dictKey in `leftCollection`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveDictSource(leftCollection: string, field: string, staticDescriptorByField: ReadonlyMap<string, Record<string, StaticDictDescriptor>>, dictKeyFieldRegistry: ReadonlyMap<string, Record<string, string>>, getDictionaryHandle: (name: string) => LookupHandle): JoinableSource | null;
|
|
48
|
+
/** The minimal collection surface `updateReferencingRecords` needs. */
|
|
49
|
+
export interface DictReferencingCollection {
|
|
50
|
+
list(): Promise<Record<string, unknown>[]>;
|
|
51
|
+
put(id: string, record: Record<string, unknown>): Promise<unknown>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Find and rewrite records in every registered collection whose
|
|
55
|
+
* dictKeyField points at `name`, replacing `oldKey` with `newKey`. Used by
|
|
56
|
+
* `LookupHandle.rename()` (the only sanctioned mass-mutation path for
|
|
57
|
+
* dictKey fields) via the vault's `findAndUpdateReferences` callback.
|
|
58
|
+
*
|
|
59
|
+
* `registry` is `Vault#dictKeyFieldRegistry` (collection name → field name
|
|
60
|
+
* → dictionary name); `getCollection` is the vault's collection accessor —
|
|
61
|
+
* rewrites go through the public `coll.put()` choke point, same as before.
|
|
62
|
+
*/
|
|
63
|
+
export declare function updateReferencingRecords(registry: ReadonlyMap<string, Record<string, string>>, getCollection: (collectionName: string) => DictReferencingCollection, name: string, oldKey: string, newKey: string): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Resolve a label from an in-memory `{ locale -> label }` map, walking the
|
|
66
|
+
* same fallback chain semantics as `LookupHandle.resolveLabel` (#650 Task 2
|
|
67
|
+
* — moved here from `kernel/vault.ts` so the SAME chain serves both the
|
|
68
|
+
* i18n binding's `dictLabelResolver` and the lookup binding's
|
|
69
|
+
* `lookupLabelResolver`, which #650 Task 2 wires to the identical closure).
|
|
70
|
+
*/
|
|
71
|
+
export declare function resolveLabelFromMap(labels: Readonly<Record<string, string>>, locale: string, fallback?: string | readonly string[]): string | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Project a native `lookup(dimension, { backing:'static', table, … })`
|
|
74
|
+
* descriptor into the legacy `StaticDictDescriptor` shape — the
|
|
75
|
+
* alias-equivalence compat seam (#650 Task 2) that lets a native
|
|
76
|
+
* static-tier lookup field reuse the SAME vault registries
|
|
77
|
+
* (`staticByName`/`staticDescriptorByField`) — and therefore the same
|
|
78
|
+
* `dictLabelResolver`/`resolveDictSource` machinery — as its `staticDict()`
|
|
79
|
+
* alias. `vocabulary:'closed'` maps to `validateCodes:true` (closed = only
|
|
80
|
+
* declared codes are legal); `'open'` maps to `validateCodes:false`.
|
|
81
|
+
* Returns `undefined` for non-static or table-less (bare `enumOf`)
|
|
82
|
+
* descriptors — those have nothing to register.
|
|
83
|
+
*/
|
|
84
|
+
export declare function lookupToStaticDictCompat(desc: LookupDescriptor): StaticDictDescriptor | undefined;
|
|
85
|
+
/** The vault-registry entries a collection's `lookupFields` contribute — the alias-equivalence bridge (#650 Task 2). */
|
|
86
|
+
export interface LookupDictCompat {
|
|
87
|
+
/** Reserved-tier fields: field name -> dimension (dictionary) name — merges into `dictKeyFieldRegistry`. */
|
|
88
|
+
readonly dictFieldMap: Record<string, string>;
|
|
89
|
+
/** Static-tier (table-bearing) fields, projected — merges into `staticDescriptorByField`/`staticByName`. */
|
|
90
|
+
readonly staticEntries: ReadonlyArray<readonly [string, StaticDictDescriptor]>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Bridge a collection's `lookupFields` into the SAME shape the legacy dict
|
|
94
|
+
* registries expect, so `resolveDictSource`/`dictLabelResolver` (and
|
|
95
|
+
* therefore `.join()`/`orderBy({by:'label'})`) serve a native `dict()`/
|
|
96
|
+
* `lookup(static)` field identically to its `dictKey()`/`staticDict()`
|
|
97
|
+
* alias — the reserved-vs-first-class-backing "matrix" tier is NOT bridged
|
|
98
|
+
* here (no vault registry backs it; Task 5/6 build its own graph edge /
|
|
99
|
+
* snapshot seam).
|
|
100
|
+
*/
|
|
101
|
+
export declare function collectLookupDictCompat(lookupFields: Record<string, LookupDescriptor> | undefined): LookupDictCompat;
|
|
102
|
+
/**
|
|
103
|
+
* Reserved-dict deps of a set of named collections (#653) — the `_dict_*`
|
|
104
|
+
* collections partial sync must auto-include alongside a `collections`
|
|
105
|
+
* filter, mirroring `SyncEngine`'s existing satellite-pair expansion.
|
|
106
|
+
* One hop is provably complete: `vault.collection()` refuses `_dict_*`
|
|
107
|
+
* names, so a dict can never itself declare lookup fields — no
|
|
108
|
+
* dict-of-dict chain to recurse through.
|
|
109
|
+
*/
|
|
110
|
+
export declare function reservedDictDepsOf(names: readonly string[], dictKeyFieldRegistry: ReadonlyMap<string, Record<string, string>>): readonly string[];
|
|
111
|
+
/**
|
|
112
|
+
* A lookup dimension's sync membership/altKey table, materialized from its
|
|
113
|
+
* backing rows (#650 Task 3). `keys` is every canonical key present;
|
|
114
|
+
* `altIndex` maps an altKey candidate VALUE to its owning canonical key.
|
|
115
|
+
*/
|
|
116
|
+
export interface MaterializedBacking {
|
|
117
|
+
/** Canonical key values present in the materialized rows. */
|
|
118
|
+
readonly keys: ReadonlySet<string>;
|
|
119
|
+
/** altKey candidate value -> canonical key. */
|
|
120
|
+
readonly altIndex: ReadonlyMap<string, string>;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build a lookup dimension's altKey index from its backing rows, enforcing
|
|
124
|
+
* declare/warm-time uniqueness across `key ∪ altKeys` values (#650 Task 3 —
|
|
125
|
+
* the CHE/SWZ drift class: two different rows must never claim the same
|
|
126
|
+
* candidate key). `rows` is keyed by canonical key (`row[descriptor.key]`
|
|
127
|
+
* for the matrix tier; the dimension's own key for static/reserved).
|
|
128
|
+
* An altKey candidate VALUE may be a string or number — both normalize via
|
|
129
|
+
* `coerceLookupKey` (#651 Task 3); non-scalar/absent values are skipped.
|
|
130
|
+
* Pure — no I/O. Throws `ValidationError` on collision.
|
|
131
|
+
*/
|
|
132
|
+
export declare function materializeBackingTable(descriptor: LookupDescriptor, rows: ReadonlyMap<string, Record<string, unknown>>): MaterializedBacking;
|
|
133
|
+
/**
|
|
134
|
+
* Closed-vocabulary membership test for one candidate key (#650 Task 3).
|
|
135
|
+
* Static tier: sync, against the in-config key set (declared `keys`, or the
|
|
136
|
+
* table's own keys when table-bearing). Reserved tier: sync — the declared
|
|
137
|
+
* `keys` union the reserved handle's live write-through snapshot (closes
|
|
138
|
+
* #649 for the native `dict()` spelling: the declared-keys promise the old
|
|
139
|
+
* `dictKey()` doc comment made falsely). Matrix (collection) tier: sync —
|
|
140
|
+
* delegates to `buildLookupAltIndex` so membership is checked against the
|
|
141
|
+
* SAME `row[descriptor.key]` keying the altKey index uses (review fix,
|
|
142
|
+
* Important 1: an earlier PUT-id `.get(key)` scan disagreed with the
|
|
143
|
+
* altIndex whenever `descriptor.key !== 'id'`, wrongly rejecting valid
|
|
144
|
+
* non-id candidates and wrongly accepting an unrelated row's PUT-id).
|
|
145
|
+
*/
|
|
146
|
+
export declare function checkLookupMembership(descriptor: LookupDescriptor, key: string, getDictionary: (dimension: string) => LookupHandle, getCollection: (dimension: string) => {
|
|
147
|
+
querySourceForJoin(): JoinableSource;
|
|
148
|
+
}): boolean;
|
|
149
|
+
/**
|
|
150
|
+
* The ONE guarded key coercion (#651 Task 3, dm12) — string/number values
|
|
151
|
+
* coerce to their canonical `String()` form; everything else (`null`,
|
|
152
|
+
* `undefined`, objects, …) coerces to `undefined`. Every consumer that turns
|
|
153
|
+
* a raw record field into a lookup key routes through this, closing the
|
|
154
|
+
* bare-`String()` `"undefined"`/`"null"`-key poisoning class (seam map
|
|
155
|
+
* finding 6): a row whose key field is genuinely absent must never mint the
|
|
156
|
+
* literal candidate string `"undefined"`.
|
|
157
|
+
*/
|
|
158
|
+
export declare function coerceLookupKey(raw: unknown): string | undefined;
|
|
159
|
+
/**
|
|
160
|
+
* Resolve a backing row's canonical key VALUE — `coerceLookupKey(row[descriptor.key])`
|
|
161
|
+
* (#651 Task 3). The matrix tier's `row[descriptor.key]`, never the row's own PUT-id
|
|
162
|
+
* when the two differ (`descriptor.key !== 'id'`).
|
|
163
|
+
*/
|
|
164
|
+
export declare function resolveBackingRowKey(descriptor: LookupDescriptor, row: Record<string, unknown>): string | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* The referencing-side match predicate — does `rec[field]` (coerced) equal an
|
|
167
|
+
* already-coerced `compareKey` (#651 Task 3)? Shared by every site that scans a
|
|
168
|
+
* referencing collection for rows pointing at a given backing key
|
|
169
|
+
* (`with-shape/links/vault-facade.ts`'s ref-delete propagation, `kernel/via/dispatch.ts`'s
|
|
170
|
+
* forget-fanout twin).
|
|
171
|
+
*/
|
|
172
|
+
export declare function matchesReferencingValue(rec: Record<string, unknown>, field: string, compareKey: string): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Materialize a lookup dimension's altKey index from whatever backing data
|
|
175
|
+
* is synchronously available (#650 Task 3 — the `ingest` source). Static:
|
|
176
|
+
* the in-config table. Reserved: the reserved handle's live write-through
|
|
177
|
+
* cache (the same warm-via-put()/list() cache `resolveDictSource` already
|
|
178
|
+
* relies on). Matrix (collection): the backing collection's own in-memory
|
|
179
|
+
* eager cache via `querySourceForJoin()` — already public, already the
|
|
180
|
+
* mechanism `.join()` uses (`with-shape/links/vault-facade.ts`'s
|
|
181
|
+
* `resolveSource`); no new I/O, no fire-and-forget warm step. Like that
|
|
182
|
+
* existing join precedent, a dimension collection this vault session has
|
|
183
|
+
* not yet opened/populated sees an empty snapshot (no altKey normalization
|
|
184
|
+
* until it has rows) — open/populate it first for normalization to apply.
|
|
185
|
+
* A matrix row whose `descriptor.key` field coerces to `undefined` (missing/
|
|
186
|
+
* non-scalar) is SKIPPED — never enters the index under a poisoned
|
|
187
|
+
* `"undefined"` key (#651 Task 3, dm12).
|
|
188
|
+
*/
|
|
189
|
+
export declare function buildLookupAltIndex(descriptor: LookupDescriptor, getDictionary: (dimension: string) => LookupHandle, getCollection: (dimension: string) => {
|
|
190
|
+
querySourceForJoin(): JoinableSource;
|
|
191
|
+
}): MaterializedBacking;
|
|
192
|
+
/** Thin wrapper — `collectLookupRefEdges` + one `graph.registerDerived` call per edge. Lets
|
|
193
|
+
* `vault.collection()` (kernel-surface-budgeted, #650 Task 5) register a collection's lookup-ref
|
|
194
|
+
* edges with a single line, keeping the ceiling-guarded call site a thin call (route logic here). */
|
|
195
|
+
export declare function registerLookupRefEdges(graph: ViaGraph, collectionName: string, lookupFields: Record<string, LookupDescriptor> | undefined): void;
|
|
196
|
+
/**
|
|
197
|
+
* `LookupViaConfig.snapshotFor`'s vault-built row source (#650 Task 6, spec
|
|
198
|
+
* §5; matrix-tier coverage added #650 Task 7, spec §6 — Task 6 deferred it,
|
|
199
|
+
* see `task-6-report.md`'s Concerns #1; the reviewer's Task-7 dispatch
|
|
200
|
+
* refuted the "needs a new vault-resident registry" premise: the descriptor
|
|
201
|
+
* is already in hand at both call sites, so `snapshotFor` just needs to
|
|
202
|
+
* ACCEPT it). Takes the full `descriptor` (not a bare dimension name) so it
|
|
203
|
+
* can route the matrix tier's `key` field, which — unlike reserved tier's
|
|
204
|
+
* hardcoded `'id'` — varies per collection. Routes on `descriptor.backing`:
|
|
205
|
+
*
|
|
206
|
+
* - **reserved**: rows come straight from the SAME `LookupHandle.
|
|
207
|
+
* snapshotEntries()` write-through cache `dictLabelResolver`/
|
|
208
|
+
* `resolveDictSource` already read (no second copy), keyed by each
|
|
209
|
+
* entry's own canonical `key` (always `'id'` by construction for this
|
|
210
|
+
* tier — `dict()`'s factory hardcodes it).
|
|
211
|
+
* - **collection** (matrix): rows come from `getCollection(dimension).
|
|
212
|
+
* querySourceForJoin().snapshot()` — the SAME sync, already-live cache
|
|
213
|
+
* `buildLookupAltIndex`'s matrix branch (above, this file) and `.join()`
|
|
214
|
+
* itself already read — re-keyed via `resolveBackingRowKey(descriptor, row)`,
|
|
215
|
+
* NOT the row's own PUT-id (which may differ when `key !== 'id'`; the exact
|
|
216
|
+
* distinction the #650 Task 3 review fix already applies to
|
|
217
|
+
* `checkLookupMembership`'s matrix branch). A row whose `descriptor.key`
|
|
218
|
+
* field coerces to `undefined` is skipped (#651 Task 3, dm12).
|
|
219
|
+
* - **static**: never routed here — `descriptor.table` is read directly by
|
|
220
|
+
* the caller (`binding.ts`'s `compareLookupOrder`/`resolveLookupOrderLabel`,
|
|
221
|
+
* `snapshot.ts`'s `presentLookupForJoin`); no vault call needed.
|
|
222
|
+
*
|
|
223
|
+
* `isReservedDimension` is the vault's `reservedLookupCollections`
|
|
224
|
+
* membership test.
|
|
225
|
+
*/
|
|
226
|
+
export declare function buildLookupSnapshotRows(descriptor: LookupDescriptor, isReservedDimension: (dimension: string) => boolean, getDictionary: (dimension: string) => LookupHandle, getCollection: (dimension: string) => {
|
|
227
|
+
querySourceForJoin(): JoinableSource;
|
|
228
|
+
}): ReadonlyMap<string, Record<string, unknown>> | undefined;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The sync lookup snapshot + join/locale seam (#650 Task 6, spec §5 — "the
|
|
3
|
+
* snapshot+locale seam"). Retires the #626 kernel→via grandfather:
|
|
4
|
+
* `kernel/query/join.ts` no longer imports `via/i18n/core.js` directly
|
|
5
|
+
* — it calls the `presentForJoin` hook this file's `buildPresentForJoin`
|
|
6
|
+
* builds instead (seam map Part 2 item 4, the #626 reviewer-spec'd shape:
|
|
7
|
+
* a sync `presentI18nForJoin`-class hook on `JoinableSource`).
|
|
8
|
+
*
|
|
9
|
+
* `LookupSnapshot` is the sync materialized `key -> row` view over ONE
|
|
10
|
+
* lookup dimension's ALREADY-LIVE backing data (the `active.ts`
|
|
11
|
+
* `_syncCache`/`snapshotEntries` write-through-cache pattern — never a
|
|
12
|
+
* second copy of the data: `LookupViaConfig.snapshotFor`'s vault-built
|
|
13
|
+
* closure reads the SAME `LookupHandle._syncCache` /
|
|
14
|
+
* first-class-collection cache every other lookup consumer
|
|
15
|
+
* (`dictLabelResolver`, `resolveDictSource`, `getAltIndex`) already reads).
|
|
16
|
+
* Serves (reserved AND matrix tier since #650 Task 7 — `registry.ts`'s
|
|
17
|
+
* `buildLookupSnapshotRows` routes both; static tier is read straight off
|
|
18
|
+
* `descriptor.table` by every consumer below, never through this cache):
|
|
19
|
+
* - join dressing (`presentForJoin`, consumed by `kernel/query/join.ts`
|
|
20
|
+
* via `JoinableSource.presentForJoin`)
|
|
21
|
+
* - dimension sort (`compareForOrder`, consumed by
|
|
22
|
+
* `via/lookup/binding.ts`'s `ViaBinding.compareForOrder` closure)
|
|
23
|
+
* - per-call-locale order-label resolution (`resolveOrderLabel`, #650
|
|
24
|
+
* Task 7 — the `orderBy(..., {by:'label'})` channel `compareForOrder`
|
|
25
|
+
* structurally can't serve, no locale param; consumed by
|
|
26
|
+
* `kernel/query/builder.ts`'s `buildOrderLabelMaps`)
|
|
27
|
+
* - membership: reserved/static-tier membership (#650 Task 3,
|
|
28
|
+
* `checkLookupMembership`) already reads the identical sync caches
|
|
29
|
+
* directly — not re-plumbed through this file; see
|
|
30
|
+
* `.superpowers/sdd/task-6-report.md`'s "bridge disposition" section.
|
|
31
|
+
*
|
|
32
|
+
* Sync end-to-end (#553) — every function here is a pure, synchronous
|
|
33
|
+
* transform over already-materialized rows; no store read, no Promise.
|
|
34
|
+
*/
|
|
35
|
+
import type { LookupDescriptor } from './descriptor.js';
|
|
36
|
+
import { type I18nTextDescriptor } from '../i18n/core.js';
|
|
37
|
+
/** A lookup dimension's sync materialized view — see file header. */
|
|
38
|
+
export interface LookupSnapshot {
|
|
39
|
+
/** The full backing row for `key`, or `undefined` when `key` isn't (yet) present in the snapshot. */
|
|
40
|
+
row(key: string): Record<string, unknown> | undefined;
|
|
41
|
+
/** The dimension's declared presentation label for `key` at `locale` — mirrors `binding.ts`'s `fetchLookupLabel` (matrix-row branch), generalized to any tier's already-materialized rows. */
|
|
42
|
+
label(key: string, locale: string, fallback?: unknown): string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Exact ordering for two canonical keys against `descriptor.sortBy`
|
|
45
|
+
* (falls back to `present.label`, then to the raw keys) at `locale`.
|
|
46
|
+
* Never throws — degrades to comparing the raw keys when no sortable
|
|
47
|
+
* value resolves for either side.
|
|
48
|
+
*/
|
|
49
|
+
compareKeys(a: string, b: string, locale: string): number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Build a sync `LookupSnapshot` over one dimension's already-materialized
|
|
53
|
+
* rows (canonical-key -> row, the SAME keying `materializeBackingTable`
|
|
54
|
+
* (`registry.ts`, #650 Task 3) uses). Pure — never reads a store.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildLookupSnapshot(dimension: string, rows: ReadonlyMap<string, Record<string, unknown>>, descriptor: LookupDescriptor): LookupSnapshot;
|
|
57
|
+
/**
|
|
58
|
+
* Build the combined sync `presentForJoin(record, locale)` hook a
|
|
59
|
+
* `Collection` attaches to the `JoinableSource` it exposes
|
|
60
|
+
* (`querySourceForJoin()`) — the i18n-text half (`presentI18nForJoin`, the
|
|
61
|
+
* exact `applyI18nLocale(..., 'join')` partial application
|
|
62
|
+
* `kernel/query/join.ts` used to call directly, #626) composed with the
|
|
63
|
+
* lookup-label half above. `undefined` when the collection declares
|
|
64
|
+
* neither — `JoinableSource.presentForJoin` then stays unset, matching
|
|
65
|
+
* today's `i18nFields`-absent behavior exactly (#626 parity lock).
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildPresentForJoin(i18nFields: Record<string, I18nTextDescriptor> | undefined, lookupFields: Record<string, LookupDescriptor> | undefined, getSnapshotRows: ((descriptor: LookupDescriptor) => ReadonlyMap<string, Record<string, unknown>> | undefined) | undefined): ((record: unknown, locale: string) => unknown) | undefined;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exact money arithmetic helpers — `mulRate` and `allocate`.
|
|
3
|
+
*
|
|
4
|
+
* Both operate on the canonical decoded string form that `get()`
|
|
5
|
+
* returns (`'10000.00'`), entirely in scaled-`BigInt` space — no
|
|
6
|
+
* floating-point step anywhere, exact past 2^53. They are pure
|
|
7
|
+
* functions with no vault or descriptor dependency: the working scale
|
|
8
|
+
* is inferred from the amount's fractional digits (a canonical money
|
|
9
|
+
* string always carries exactly the field's scale) or pinned with
|
|
10
|
+
* `opts.scale`.
|
|
11
|
+
*
|
|
12
|
+
* Why these two: app-side invariants of the form
|
|
13
|
+
* `Σ parts === whole` (receipt totals, net-zero WHT pairs, proration)
|
|
14
|
+
* carry ±0.01 tolerances ONLY because the math is major-unit floats +
|
|
15
|
+
* round2. `mulRate` (VAT-style rate application with explicit
|
|
16
|
+
* rounding) and `allocate` (largest-remainder split — parts sum to the
|
|
17
|
+
* input EXACTLY, by construction) make those tolerances zero.
|
|
18
|
+
*/
|
|
19
|
+
import { type RoundingMode } from './fixed-point.js';
|
|
20
|
+
export interface MulRateOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Output scale (fraction digits). Defaults to the amount's own
|
|
23
|
+
* fractional digits — for a canonical money string that IS the
|
|
24
|
+
* field's scale.
|
|
25
|
+
*/
|
|
26
|
+
readonly scale?: number;
|
|
27
|
+
/** Rounding for the final re-scale. Default `'half-up'`. */
|
|
28
|
+
readonly rounding?: RoundingMode;
|
|
29
|
+
}
|
|
30
|
+
export interface AllocateOptions {
|
|
31
|
+
/** Working scale. Defaults to the amount's own fractional digits. */
|
|
32
|
+
readonly scale?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Multiply a money amount by a decimal rate, exactly.
|
|
36
|
+
*
|
|
37
|
+
* The rate is parsed at its OWN full precision (`0.07` → `7` at scale
|
|
38
|
+
* 2), the product computed in `BigInt` at `amountScale + rateScale`,
|
|
39
|
+
* then re-scaled back to the output scale with the requested rounding —
|
|
40
|
+
* one rounding step, at the very end.
|
|
41
|
+
*
|
|
42
|
+
* ```ts
|
|
43
|
+
* mulRate('10000.00', 0.07) // '700.00' (VAT)
|
|
44
|
+
* mulRate('33.33', '0.07') // '2.33' (half-up)
|
|
45
|
+
* mulRate('33.33', 0.07, { rounding: 'floor' }) // '2.33'
|
|
46
|
+
* mulRate(100, 0.07, { scale: 2 }) // '7.00'
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function mulRate(amount: number | string, rate: number | string, opts?: MulRateOptions): string;
|
|
50
|
+
/**
|
|
51
|
+
* Split a money amount across weighted buckets with ZERO drift: the
|
|
52
|
+
* returned parts sum to the input exactly, by construction
|
|
53
|
+
* (largest-remainder method).
|
|
54
|
+
*
|
|
55
|
+
* Each bucket gets `floor(amount × weightᵢ / Σweights)`; the leftover
|
|
56
|
+
* minor units (always fewer than the bucket count) go one each to the
|
|
57
|
+
* buckets with the largest truncated remainders — ties broken by
|
|
58
|
+
* position, earlier bucket first. Weights are parsed as exact decimals
|
|
59
|
+
* (no float division anywhere); they must be non-negative with a
|
|
60
|
+
* positive sum.
|
|
61
|
+
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* allocate('100.00', [1, 1, 1]) // ['33.34', '33.33', '33.33']
|
|
64
|
+
* allocate('0.05', [3, 7]) // ['0.02', '0.03']
|
|
65
|
+
* allocate('-100.00', [1, 1, 1]) // ['-33.34', '-33.33', '-33.33']
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function allocate(amount: number | string, weights: ReadonlyArray<number | string>, opts?: AllocateOptions): string[];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The money `ViaBinding` — wires the money engine (normalize/paths/where/
|
|
3
|
+
* money-reducer) into the kernel's generic Via port. `money()`
|
|
4
|
+
* (descriptor.ts) calls {@link linkMoneyVia} at declaration time — the
|
|
5
|
+
* same #553 static-link pattern the retired `linkMoneyEngine()` /
|
|
6
|
+
* `kernel/money-runtime.ts` seam used, now the only one (Task 6 cut the
|
|
7
|
+
* query DSL over to this binding and deleted the legacy seam).
|
|
8
|
+
*/
|
|
9
|
+
import type { ViaBinding } from '../../kernel/via/index.js';
|
|
10
|
+
import type { MoneyDescriptor } from './descriptor.js';
|
|
11
|
+
/** #669 — the money binder's config bag. `virtualMoneyFields` is the money∩virtual-mode-
|
|
12
|
+
* computed field-name intersection (`kernel/collection-config.ts#resolveVirtualMoneyFields`);
|
|
13
|
+
* absent/empty means no field on this collection composes money with a virtual computed
|
|
14
|
+
* field on itself — the pre-#669 behavior (no `presentLate`, ordinary `present()` for
|
|
15
|
+
* every declared money field). */
|
|
16
|
+
export interface MoneyBindingConfig {
|
|
17
|
+
readonly moneyFields: Record<string, MoneyDescriptor>;
|
|
18
|
+
readonly virtualMoneyFields?: ReadonlySet<string>;
|
|
19
|
+
}
|
|
20
|
+
export declare function moneyBinding(moneyFields: Record<string, MoneyDescriptor>, virtualMoneyFields?: ReadonlySet<string>): ViaBinding;
|
|
21
|
+
export declare function linkMoneyVia(): void;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branded money output type.
|
|
3
|
+
*
|
|
4
|
+
* The decoded read shape of a money field is an exact decimal STRING
|
|
5
|
+
* (`'10000.00'`) — but a hand-written schema types it `string | number`,
|
|
6
|
+
* which is honest about the input side and unhelpful on the output
|
|
7
|
+
* side: every read site hand-coerces, and a missed coercion passes
|
|
8
|
+
* typecheck silently (then surfaces as a runtime template warning, or
|
|
9
|
+
* worse, as `'10000.00' * 100` arithmetic).
|
|
10
|
+
*
|
|
11
|
+
* {@link MoneyString} is the output-side brand: a `string` that has
|
|
12
|
+
* been through noy-db's decode (or {@link asMoney}'s guard). Branding
|
|
13
|
+
* is type-level only — zero runtime cost on the read path.
|
|
14
|
+
*
|
|
15
|
+
* ## Wiring the brand through a validator (the input/output asymmetry)
|
|
16
|
+
*
|
|
17
|
+
* Keep the permissive `string | number` on the INPUT side so write
|
|
18
|
+
* sites are untouched, and brand the OUTPUT side. With Zod:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* import type { MoneyString } from '@noy-db/hub'
|
|
22
|
+
*
|
|
23
|
+
* const moneyValue = z.union([z.number(), z.string()]) as unknown as
|
|
24
|
+
* z.ZodType<MoneyString, z.ZodTypeDef, string | number>
|
|
25
|
+
*
|
|
26
|
+
* const Invoice = z.object({ id: z.string(), total: moneyValue })
|
|
27
|
+
* type InvoiceOut = z.output<typeof Invoice> // total: MoneyString
|
|
28
|
+
* type InvoiceIn = z.input<typeof Invoice> // total: string | number
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* The cast is sound for fields declared in `moneyFields`: reads pass
|
|
32
|
+
* through `decodeMoneyFields`, which always produces the canonical
|
|
33
|
+
* decimal string.
|
|
34
|
+
*/
|
|
35
|
+
declare const MONEY_BRAND: unique symbol;
|
|
36
|
+
/**
|
|
37
|
+
* An exact decimal string produced by noy-db's money decode
|
|
38
|
+
* (`'10000.00'`). The brand exists only at the type level — at runtime
|
|
39
|
+
* a `MoneyString` is a plain string.
|
|
40
|
+
*/
|
|
41
|
+
export type MoneyString = string & {
|
|
42
|
+
readonly [MONEY_BRAND]: true;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Runtime-guarded cast to {@link MoneyString}. Accepts a decimal string
|
|
46
|
+
* or a number, returns the canonical decimal string branded — throws
|
|
47
|
+
* `MoneyUnsupportedError` on anything non-finite / non-decimal. Use at
|
|
48
|
+
* trust boundaries (deserialized JSON, route params); values read
|
|
49
|
+
* through `get()`/`list()` are already canonical.
|
|
50
|
+
*/
|
|
51
|
+
export declare function asMoney(value: string | number): MoneyString;
|
|
52
|
+
/** Type guard: is `value` a decimal string acceptable as money? */
|
|
53
|
+
export declare function isMoneyString(value: unknown): value is MoneyString;
|
|
54
|
+
/**
|
|
55
|
+
* The ONE sanctioned escape hatch to a JS `number` — explicit because
|
|
56
|
+
* the conversion is lossy past 2^53. For display math and chart axes;
|
|
57
|
+
* never feed the result back into stored amounts (use `mulRate` /
|
|
58
|
+
* `allocate` for exact arithmetic).
|
|
59
|
+
*/
|
|
60
|
+
export declare function moneyNumber(value: MoneyString | string | number): number;
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `money()` field descriptor — a branded schema-layer descriptor, a
|
|
3
|
+
* sibling of `i18nText()` / `dictKey()`. It owns currency, scale, and
|
|
4
|
+
* rounding policy for a field; the pure arithmetic lives in
|
|
5
|
+
* {@link ./fixed-point} and default scale resolution in
|
|
6
|
+
* {@link ./iso4217}.
|
|
7
|
+
*
|
|
8
|
+
* Two modes:
|
|
9
|
+
* - **fixed** `money({ currency: 'EUR' })` — one currency for the
|
|
10
|
+
* field; the value stores a bare scaled-integer string.
|
|
11
|
+
* - **multi** `money({ currencies: 'any' | [...] })` — currency travels
|
|
12
|
+
* per record; the value stores `{ amount, currency }`.
|
|
13
|
+
*
|
|
14
|
+
* `currency` and `currencies` are mutually exclusive.
|
|
15
|
+
*/
|
|
16
|
+
import type { RoundingMode } from './fixed-point.js';
|
|
17
|
+
import { NoydbError } from '../../kernel/errors.js';
|
|
18
|
+
export interface MoneyOptionsFixed {
|
|
19
|
+
currency: string;
|
|
20
|
+
/** Override the ISO-4217 default scale (required for unlisted codes). */
|
|
21
|
+
scale?: number;
|
|
22
|
+
rounding?: RoundingMode;
|
|
23
|
+
}
|
|
24
|
+
export interface MoneyOptionsMulti {
|
|
25
|
+
currencies: 'any' | readonly string[];
|
|
26
|
+
/** Per-currency scale overrides (required for unlisted codes). */
|
|
27
|
+
scaleOverrides?: Record<string, number>;
|
|
28
|
+
rounding?: RoundingMode;
|
|
29
|
+
}
|
|
30
|
+
export type MoneyOptions = MoneyOptionsFixed | MoneyOptionsMulti;
|
|
31
|
+
export interface MoneyDescriptor {
|
|
32
|
+
readonly _noydbMoney: true;
|
|
33
|
+
/** Via port brand marker — lets a `MoneyDescriptor` satisfy the kernel's opaque `ViaDescriptor`. */
|
|
34
|
+
readonly _viaBrand: 'money';
|
|
35
|
+
readonly mode: 'fixed' | 'multi';
|
|
36
|
+
readonly options: MoneyOptions;
|
|
37
|
+
readonly rounding: RoundingMode | undefined;
|
|
38
|
+
/** The currency for fixed mode; `undefined` in multi mode. */
|
|
39
|
+
readonly fixedCurrency: string | undefined;
|
|
40
|
+
/** Resolve the scale for a currency, throwing if not allowed / unknown. */
|
|
41
|
+
scaleFor(currency: string): number;
|
|
42
|
+
/** Whether this descriptor permits the given currency. */
|
|
43
|
+
allows(currency: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The single currency this descriptor implies, if any — fixed mode, or
|
|
46
|
+
* multi mode with exactly one allow-listed currency. Lets a multi field
|
|
47
|
+
* accept a bare amount unambiguously. `undefined` otherwise.
|
|
48
|
+
*/
|
|
49
|
+
soleCurrency(): string | undefined;
|
|
50
|
+
}
|
|
51
|
+
/** Raised when a written value carries more precision than `scale` allows. */
|
|
52
|
+
export declare class MoneyPrecisionError extends NoydbError {
|
|
53
|
+
readonly field: string;
|
|
54
|
+
readonly value: unknown;
|
|
55
|
+
readonly scale: number;
|
|
56
|
+
constructor(field: string, value: unknown, scale: number);
|
|
57
|
+
}
|
|
58
|
+
/** Raised when a currency is disallowed or has no resolvable scale. */
|
|
59
|
+
export declare class MoneyCurrencyError extends NoydbError {
|
|
60
|
+
readonly currency: string;
|
|
61
|
+
readonly reason: 'not-allowed' | 'unknown-scale';
|
|
62
|
+
readonly field?: string | undefined;
|
|
63
|
+
constructor(currency: string, reason: 'not-allowed' | 'unknown-scale', field?: string | undefined);
|
|
64
|
+
}
|
|
65
|
+
/** Raised when an aggregate operation is not supported on a money field. */
|
|
66
|
+
export declare class MoneyUnsupportedError extends NoydbError {
|
|
67
|
+
readonly field: string;
|
|
68
|
+
constructor(field: string, message?: string);
|
|
69
|
+
}
|
|
70
|
+
/** Create a {@link MoneyDescriptor}. */
|
|
71
|
+
export declare function money(options: MoneyOptions): MoneyDescriptor;
|
|
72
|
+
/** Runtime predicate for detecting a {@link MoneyDescriptor}. */
|
|
73
|
+
export declare function isMoneyDescriptor(x: unknown): x is MoneyDescriptor;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure fixed-point decimal core for the money descriptor.
|
|
3
|
+
*
|
|
4
|
+
* All conversion goes decimal-string ⇄ scaled `BigInt`. There is no
|
|
5
|
+
* floating-point arithmetic anywhere: a value like `123.45` becomes
|
|
6
|
+
* `12345n` purely by string manipulation, never by `value * 100` (which
|
|
7
|
+
* would reintroduce the very drift money() exists to eliminate). BigInt
|
|
8
|
+
* has no magnitude ceiling, so values past `Number.MAX_SAFE_INTEGER`
|
|
9
|
+
* stay exact end-to-end.
|
|
10
|
+
*
|
|
11
|
+
* This module knows nothing about currencies, descriptors, or storage —
|
|
12
|
+
* it is the isolated, exhaustively-tested arithmetic kernel.
|
|
13
|
+
*/
|
|
14
|
+
export type RoundingMode = 'half-up' | 'half-even' | 'half-down' | 'up' | 'down' | 'ceil' | 'floor';
|
|
15
|
+
export type ParseResult = {
|
|
16
|
+
ok: true;
|
|
17
|
+
value: bigint;
|
|
18
|
+
} | {
|
|
19
|
+
ok: false;
|
|
20
|
+
reason: 'precision' | 'nonfinite';
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Parse a decimal (`number | string`) into a scaled `BigInt` at the
|
|
24
|
+
* given scale. When the input carries more fractional precision than
|
|
25
|
+
* `scale`:
|
|
26
|
+
* - `rounding` omitted ⇒ `{ ok: false, reason: 'precision' }`
|
|
27
|
+
* - `rounding` set ⇒ the tail is rounded per the mode.
|
|
28
|
+
* Non-finite / unparseable input ⇒ `{ ok: false, reason: 'nonfinite' }`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseToScaledInt(input: number | string, scale: number, rounding?: RoundingMode): ParseResult;
|
|
31
|
+
/**
|
|
32
|
+
* Number of fractional digits in the canonical decimal rendering of
|
|
33
|
+
* `input` (`'123.45'` → 2, `100` → 0, `'1e-7'` → 7), or `null` when the
|
|
34
|
+
* input is non-finite / not a decimal. Used to infer the working scale
|
|
35
|
+
* of arithmetic helpers from their canonical-string inputs.
|
|
36
|
+
*/
|
|
37
|
+
export declare function decimalScaleOf(input: number | string): number | null;
|
|
38
|
+
/**
|
|
39
|
+
* Re-scale a scaled `BigInt` from `fromScale` to `toScale`. Scaling up
|
|
40
|
+
* is exact (append zeros); scaling down rounds the discarded tail per
|
|
41
|
+
* `rounding`. The rounding decision reuses the same kernel as
|
|
42
|
+
* {@link parseToScaledInt}, so `rescaleScaledInt(parse('1.005', 3), 3, 2)`
|
|
43
|
+
* and `parse('1.005', 2, mode)` agree for every mode.
|
|
44
|
+
*/
|
|
45
|
+
export declare function rescaleScaledInt(value: bigint, fromScale: number, toScale: number, rounding?: RoundingMode): bigint;
|
|
46
|
+
/**
|
|
47
|
+
* Render a scaled `BigInt` back to its canonical decimal string at the
|
|
48
|
+
* given scale. `(12345n, 2)` → `'123.45'`; `(5n, 0)` → `'5'`;
|
|
49
|
+
* `(-1n, 2)` → `'-0.01'`. Exact for any magnitude.
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatScaledInt(value: bigint, scale: number): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub` money service — the `money()` field descriptor for
|
|
3
|
+
* currency-safe, exact decimal storage, formatting, and aggregation.
|
|
4
|
+
*
|
|
5
|
+
* @see ./descriptor for the public `money()` factory.
|
|
6
|
+
*/
|
|
7
|
+
export { money, isMoneyDescriptor, MoneyPrecisionError, MoneyCurrencyError, MoneyUnsupportedError } from './descriptor.js';
|
|
8
|
+
export type { MoneyDescriptor, MoneyOptions, MoneyOptionsFixed, MoneyOptionsMulti, } from './descriptor.js';
|
|
9
|
+
export type { RoundingMode } from './fixed-point.js';
|
|
10
|
+
export { scaleForCurrency } from './iso4217.js';
|
|
11
|
+
export type { FxRates } from './money-reducer.js';
|
|
12
|
+
export { mulRate, allocate } from './arith.js';
|
|
13
|
+
export type { MulRateOptions, AllocateOptions } from './arith.js';
|
|
14
|
+
export { asMoney, isMoneyString, moneyNumber } from './branded.js';
|
|
15
|
+
export type { MoneyString } from './branded.js';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Money-aware aggregation: exact `sum` / `min` / `max` over money
|
|
3
|
+
* fields.
|
|
4
|
+
*
|
|
5
|
+
* The generic reducers (`aggregate/reducers.ts`) read a field via
|
|
6
|
+
* `readNumber`, which coerces a string (the stored scaled-integer form
|
|
7
|
+
* of money, e.g. `'12345'`) to `0` — so an un-wrapped money `sum` would
|
|
8
|
+
* silently return zero. {@link wrapMoneyReducers} rewrites any `sum` /
|
|
9
|
+
* `min` / `max` over a declared money field into a reducer that
|
|
10
|
+
* accumulates per-currency `BigInt` totals of the stored integers, so
|
|
11
|
+
* the result is exact for any magnitude (past `Number.MAX_SAFE_INTEGER`
|
|
12
|
+
* included).
|
|
13
|
+
*
|
|
14
|
+
* Results are currency-aware and never silently mix currencies:
|
|
15
|
+
* - **fixed** mode → a single exact decimal string.
|
|
16
|
+
* - **multi** mode → an exact `Record<currency, string>` map.
|
|
17
|
+
* - **`sum` with `convertTo` + `fx`** → a single exact string, with
|
|
18
|
+
* each currency converted via BigInt arithmetic (no float).
|
|
19
|
+
*
|
|
20
|
+
* `remove()` is implemented for every money reducer so they participate
|
|
21
|
+
* in incremental live-aggregation and materialized-view maintenance
|
|
22
|
+
* exactly like the generic reducers they replace.
|
|
23
|
+
*/
|
|
24
|
+
import type { MoneyDescriptor } from './descriptor.js';
|
|
25
|
+
import type { AggregateSpec } from '../../with-lookup/aggregate/aggregation.js';
|
|
26
|
+
export type FxRates = Record<string, number | string>;
|
|
27
|
+
/**
|
|
28
|
+
* Rewrite any `sum` / `min` / `max` reducer over a declared money field
|
|
29
|
+
* into its exact BigInt money-aware equivalent. Other reducers (and
|
|
30
|
+
* reducers over non-money fields) pass through unchanged. Returns a new
|
|
31
|
+
* spec; the input is not mutated.
|
|
32
|
+
*/
|
|
33
|
+
export declare function wrapMoneyReducers(spec: AggregateSpec, moneyFields: Record<string, MoneyDescriptor>): AggregateSpec;
|