@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,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ② capability seam for classified read-egress ops (stage 1: reveal;
|
|
3
|
+
* stage 2: verify). `ClassifiedStrategy` + `ClassifiedRevealCtx` +
|
|
4
|
+
* `ClassifiedVerifyCtx` + `NO_CLASSIFIED` now live on the kernel port
|
|
5
|
+
* (`port/with/classified-strategy.ts`, #629 Task 5) — re-exported here for
|
|
6
|
+
* compat with existing importers of this module.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export type { ClassifiedStrategy, ClassifiedRevealCtx, ClassifiedVerifyCtx, ClassifiedVerdict } from '../../port/with/classified-strategy.js';
|
|
11
|
+
export { NO_CLASSIFIED } from '../../port/with/classified-strategy.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Write-path enforcement: storage:'never' rejection + preset validators.
|
|
2
|
+
* Runs BEFORE riders/computed and BEFORE schema validation. Pure. @module */
|
|
3
|
+
import type { ClassifiedFieldSpec } from './descriptor.js';
|
|
4
|
+
export declare function enforceClassifiedWrite(record: Record<string, unknown>, byField: Record<string, ClassifiedFieldSpec>, collection: string): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `computed` via-binding (#638 Task 7) — covers ONLY `mode: 'virtual'`
|
|
3
|
+
* fields. Materialized entries never reach here: they compile into
|
|
4
|
+
* `mergedComputed` (`kernel/collection-config.ts`) and run through the
|
|
5
|
+
* EXISTING stage-5 `evalComputedFields` write path, byte-for-byte unchanged
|
|
6
|
+
* (the behavior lock).
|
|
7
|
+
*
|
|
8
|
+
* A virtual field is computed on READ, inside `present()` — the money-
|
|
9
|
+
* `Formatted`/i18n-`Label` precedent (seam map Part 4) generalized to a
|
|
10
|
+
* user-declared function. It is NEVER stored (no `encodeAtRest`/
|
|
11
|
+
* `decodeAtRest` — the field never appears in `_data` or any `_sealed`
|
|
12
|
+
* slot), and its posture is fixed `queryable: 'none'` — there is no stored/
|
|
13
|
+
* indexed form to query against, regardless of what its sources would
|
|
14
|
+
* otherwise permit (`ViaGraph`'s grain-'virtual' clamp, `kernel/via/graph.ts`,
|
|
15
|
+
* is the belt; this binding's own static posture is the suspenders for a
|
|
16
|
+
* depsless virtual field, which registers no graph edge at all).
|
|
17
|
+
*
|
|
18
|
+
* Export/read redaction for a TAINTED virtual field (sourced from a
|
|
19
|
+
* classified/sealed field) is NOT this binding's job — it stays ignorant of
|
|
20
|
+
* taint, exactly like `evalComputedFields` stays ignorant of it for
|
|
21
|
+
* materialized fields. `kernel/via/taint-binding.ts#taintBinding` (appended
|
|
22
|
+
* to the pipeline by `via/graph-wiring.ts#applyTaintOverlay`, AFTER this
|
|
23
|
+
* binding) overwrites a tainted virtual field's value with the same
|
|
24
|
+
* `EXPORT_REDACTION_MARKER` on every present() — the one enforcement seam
|
|
25
|
+
* every via feature's taint already routes through.
|
|
26
|
+
*/
|
|
27
|
+
import type { ViaBinding } from '../../kernel/via/index.js';
|
|
28
|
+
import type { ComputedDescriptor } from './descriptor.js';
|
|
29
|
+
export interface ComputedViaConfig {
|
|
30
|
+
/** field name -> its virtual-mode descriptor. Materialized entries are never present here. */
|
|
31
|
+
readonly virtualFields: ReadonlyMap<string, ComputedDescriptor>;
|
|
32
|
+
}
|
|
33
|
+
export declare function computedBinding(cfg: ComputedViaConfig): ViaBinding;
|
|
34
|
+
export declare function linkComputedVia(): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* computed() — the declaration factory for a field whose value is DERIVED
|
|
3
|
+
* from other fields on the same record (#638 Task 7, spec §6). Composes
|
|
4
|
+
* with `via()` (the locked grammar since phase A: `via(computed(fn, { deps,
|
|
5
|
+
* mode }), money('EUR'))`), grouped by `_viaBrand` like every other via
|
|
6
|
+
* feature (`kernel/via/compose.ts#mergeViaFields`).
|
|
7
|
+
*
|
|
8
|
+
* `mode` picks where the function runs:
|
|
9
|
+
* - `'materialized'` (default) — TODAY's stage-5 write-time eager compute
|
|
10
|
+
* (`with-formula/computed/index.ts#evalComputedFields`), stored like any
|
|
11
|
+
* other field. Byte-for-byte the existing `computed: { field: fn }` sugar.
|
|
12
|
+
* - `'virtual'` — rides the `present` read phase (the money-`Formatted`/
|
|
13
|
+
* i18n-`Label` precedent, seam map Part 4): computed fresh on every
|
|
14
|
+
* read, NEVER stored, `queryable: 'none'`, excluded from export unless
|
|
15
|
+
* its declared `deps` permit (identical taint rule to materialized —
|
|
16
|
+
* see `via/computed/binding.ts`).
|
|
17
|
+
*
|
|
18
|
+
* `deps` names the OTHER fields `fn` reads — feeds `ViaGraph` (Task 1/2) so
|
|
19
|
+
* a source's taint (e.g. a classified field) propagates to this derived
|
|
20
|
+
* field. A depsless entry is fine UNLESS the collection also declares
|
|
21
|
+
* classified fields (`kernel/collection-config.ts#resolveComputedEdges`
|
|
22
|
+
* refuses it — closes the #636 opaque-function leak).
|
|
23
|
+
*/
|
|
24
|
+
import type { ViaDescriptor } from '../../kernel/via/index.js';
|
|
25
|
+
export interface ComputedDescriptor extends ViaDescriptor {
|
|
26
|
+
readonly _viaBrand: 'computed';
|
|
27
|
+
readonly fn: (record: Record<string, unknown>) => unknown;
|
|
28
|
+
readonly deps?: readonly string[];
|
|
29
|
+
readonly mode: 'materialized' | 'virtual';
|
|
30
|
+
}
|
|
31
|
+
export declare function computed(fn: (record: Record<string, unknown>) => unknown, opts?: {
|
|
32
|
+
readonly deps?: readonly string[];
|
|
33
|
+
readonly mode?: 'materialized' | 'virtual';
|
|
34
|
+
}): ComputedDescriptor;
|
|
35
|
+
export declare function isComputedDescriptor(x: unknown): x is ComputedDescriptor;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Active i18n strategy — `withI18n()` returns the real implementation
|
|
3
|
+
* that wires multi-locale resolution, i18nText validation, and the
|
|
4
|
+
* `DictionaryHandle` for `dictKey` fields into the core read/write
|
|
5
|
+
* paths.
|
|
6
|
+
*
|
|
7
|
+
* Consumers opt in by:
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createNoydb } from '@noy-db/hub'
|
|
11
|
+
* import { withI18n } from '@noy-db/hub/i18n'
|
|
12
|
+
*
|
|
13
|
+
* const db = await createNoydb({
|
|
14
|
+
* store: ...,
|
|
15
|
+
* user: ...,
|
|
16
|
+
* i18nStrategy: withI18n(),
|
|
17
|
+
* })
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* The factory delegates to the existing `core.ts` and `dictionary.ts`
|
|
21
|
+
* modules. Splitting the import chain through this file is what lets
|
|
22
|
+
* tsup tree-shake the `~854 LOC` of dictionary + locale resolution
|
|
23
|
+
* out of the default bundle when no `withI18n()` import is present.
|
|
24
|
+
*
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
import type { I18nStrategy } from './strategy.js';
|
|
28
|
+
export declare function withI18n(): I18nStrategy;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The i18n `ViaBinding` — wires the i18n engine (auto-translate/script
|
|
3
|
+
* enforcement/validation/densify on write; locale + dict-label presentation
|
|
4
|
+
* on read) into the kernel's generic Via port. Mirrors
|
|
5
|
+
* `via/money/binding.ts`'s #553 static-link pattern.
|
|
6
|
+
*
|
|
7
|
+
* LIVE (#623 Task 8 wired the cutover): `i18nBinding()`/`linkI18nVia()` are
|
|
8
|
+
* the real put/read path for every i18n-declaring collection —
|
|
9
|
+
* `collection.ts`'s `_putInternal`/`applyLocaleToRecord` (the call sites
|
|
10
|
+
* this file's bodies were moved/adapted from) now delegate their i18n
|
|
11
|
+
* stages to `this.via.encodeWrite`/`this.via.present` instead of running
|
|
12
|
+
* the hand-wired i18n logic inline.
|
|
13
|
+
*
|
|
14
|
+
* `i18nText()`, `dictKey()`, `staticDict()` each call {@link linkI18nVia}
|
|
15
|
+
* first — the same #553 pattern `money()` uses.
|
|
16
|
+
*/
|
|
17
|
+
import type { ViaBinding } from '../../kernel/via/index.js';
|
|
18
|
+
/**
|
|
19
|
+
* Config a collection's i18n declarations resolve to — the binding's
|
|
20
|
+
* construction input. Fields are loosely typed (`unknown`) at this seam
|
|
21
|
+
* because the kernel's `ViaBinder` contract is opaque-config-in; the
|
|
22
|
+
* concrete i18n types are applied inside the binding's own functions.
|
|
23
|
+
*/
|
|
24
|
+
export interface I18nViaConfig {
|
|
25
|
+
i18nFields?: Record<string, unknown>;
|
|
26
|
+
dictKeyFields?: Record<string, unknown>;
|
|
27
|
+
i18nDensifyFields?: Record<string, unknown>;
|
|
28
|
+
strategy: unknown;
|
|
29
|
+
defaultLocale?: string;
|
|
30
|
+
autoTranslateHook?: (...args: unknown[]) => Promise<string>;
|
|
31
|
+
dictLabelResolver?: (...args: unknown[]) => Promise<string | undefined>;
|
|
32
|
+
i18nPutValidator?: (record: unknown) => void;
|
|
33
|
+
collectionName: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function i18nBinding(cfg: I18nViaConfig): ViaBinding;
|
|
36
|
+
export declare function linkI18nVia(): void;
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18nText schema type —
|
|
3
|
+
*
|
|
4
|
+
* `i18nText({ languages, required })` creates a descriptor for a
|
|
5
|
+
* multi-language content field whose value is stored as a
|
|
6
|
+
* `{ [locale]: string }` map (e.g. `{ en: 'Consulting', th: 'ที่ปรึกษา' }`).
|
|
7
|
+
*
|
|
8
|
+
* On put, the descriptor validates that required languages are present.
|
|
9
|
+
* On read (when a `locale` option is passed), the map is collapsed to the
|
|
10
|
+
* caller's locale string via the fallback chain.
|
|
11
|
+
*
|
|
12
|
+
* Design decisions
|
|
13
|
+
* ────────────────
|
|
14
|
+
*
|
|
15
|
+
* **Descriptor pattern (not a Zod type).**
|
|
16
|
+
* `i18nText()` returns a plain descriptor object used in the collection's
|
|
17
|
+
* `i18nFields` option — same pattern as `ref()` / `dictKey()`. This keeps
|
|
18
|
+
* `@noy-db/core` at zero runtime dependencies and avoids Zod v3 field-type
|
|
19
|
+
* constraints. TypeScript inference is handled via the descriptor's type.
|
|
20
|
+
*
|
|
21
|
+
* **Enforcement at the collection boundary.**
|
|
22
|
+
* The `required` option is checked by `Collection.put()` via the compartment's
|
|
23
|
+
* registered `i18nFields`. Failed validation throws `MissingTranslationError`
|
|
24
|
+
* — a distinct class from `SchemaValidationError` so callers can tell
|
|
25
|
+
* "wrong shape" from "missing translations".
|
|
26
|
+
*
|
|
27
|
+
* **Resolution is post-decryption.**
|
|
28
|
+
* Locale resolution happens AFTER `decryptRecord()`, as a pure in-memory
|
|
29
|
+
* transform. No additional crypto work is needed. The resolved record is
|
|
30
|
+
* returned in place of the stored one, with i18nText fields replaced by
|
|
31
|
+
* their locale-resolved strings.
|
|
32
|
+
*
|
|
33
|
+
* **`locale: 'raw'`.**
|
|
34
|
+
* Passing `{ locale: 'raw' }` skips resolution and returns the full
|
|
35
|
+
* `{ [locale]: string }` map — useful for bilingual exports, admin UIs,
|
|
36
|
+
* and any context where all translations must be visible at once.
|
|
37
|
+
*
|
|
38
|
+
* **Out of scope.**
|
|
39
|
+
* Pluralization, RTL rendering, date/number formatting, per-locale CRDT
|
|
40
|
+
* merging.
|
|
41
|
+
*/
|
|
42
|
+
import type { OnMissing, OnMissingPolicy, Layer } from './policy.js';
|
|
43
|
+
/** Flatten an intersection into a single object literal for nicer hovers. */
|
|
44
|
+
type Prettify<T> = {
|
|
45
|
+
[K in keyof T]: T[K];
|
|
46
|
+
} & {};
|
|
47
|
+
/**
|
|
48
|
+
* The stored shape of a multilingual field, inferred from its `required`
|
|
49
|
+
* mode — so the compiler forces you to handle an absent optional locale
|
|
50
|
+
* (`string | undefined`) instead of silently yielding `undefined`.
|
|
51
|
+
*
|
|
52
|
+
* Mirrors `i18nText({ languages, required })`:
|
|
53
|
+
* - `'all'` (default) — every locale required: `{ th: string; en: string }`
|
|
54
|
+
* - `'any'` — every locale optional: `{ th?: string; en?: string }`
|
|
55
|
+
* (the "at least one present" guarantee is runtime-only — not expressible
|
|
56
|
+
* in TypeScript — so each key is optional)
|
|
57
|
+
* - `readonly L[]` — listed locales required, the rest optional:
|
|
58
|
+
* `I18nMap<'th'|'en', ['th']>` → `{ th: string; en?: string }`
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* type Lang = 'th' | 'en'
|
|
63
|
+
* interface Contact {
|
|
64
|
+
* name: I18nMap<Lang, 'any'> // { th?: string; en?: string }
|
|
65
|
+
* legalName: I18nMap<Lang, ['th']> // { th: string; en?: string }
|
|
66
|
+
* slug: I18nMap<Lang> // { th: string; en: string }
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
export type I18nMap<Langs extends string, Required extends 'all' | 'any' | readonly Langs[] = 'all'> = Required extends 'all' ? Record<Langs, string> : Required extends 'any' ? Partial<Record<Langs, string>> : Required extends readonly (infer R extends Langs)[] ? Prettify<Record<R, string> & Partial<Record<Exclude<Langs, R>, string>>> : never;
|
|
73
|
+
/**
|
|
74
|
+
* Options for `i18nText()`.
|
|
75
|
+
*
|
|
76
|
+
* `languages` declares the full set of supported locales. `required`
|
|
77
|
+
* controls which must be present on every `put()`.
|
|
78
|
+
*
|
|
79
|
+
* `autoTranslate` is the per-field opt-in for the `plaintextTranslator`
|
|
80
|
+
* hook. When `true` and a `plaintextTranslator` is configured
|
|
81
|
+
* on `createNoydb()`, missing translations are generated before `put()`.
|
|
82
|
+
* Default: `false`.
|
|
83
|
+
*/
|
|
84
|
+
export interface I18nTextOptions {
|
|
85
|
+
/** All supported locale codes (BCP 47). */
|
|
86
|
+
readonly languages: readonly string[];
|
|
87
|
+
/**
|
|
88
|
+
* Which locales must be present on every `put()`.
|
|
89
|
+
*
|
|
90
|
+
* - `'all'` — every declared language must be present.
|
|
91
|
+
* - `'any'` — at least one declared language must be present.
|
|
92
|
+
* - `string[]` — listed locales are required; others are optional.
|
|
93
|
+
*/
|
|
94
|
+
readonly required: 'all' | 'any' | readonly string[];
|
|
95
|
+
/**
|
|
96
|
+
* Per-field opt-in for the `plaintextTranslator` hook.
|
|
97
|
+
* When `true`, missing required translations are auto-generated
|
|
98
|
+
* before `put()` if a translator is configured. Default: `false`.
|
|
99
|
+
*/
|
|
100
|
+
readonly autoTranslate?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* What to do when this field is resolved to a locale that is absent.
|
|
103
|
+
* A single policy, or a per-layer map (read/guard/join/mv/derivation/
|
|
104
|
+
* export). Default `'throw'` — today's behavior, zero breaking change.
|
|
105
|
+
* See {@link OnMissingPolicy}.
|
|
106
|
+
*
|
|
107
|
+
* NOTE (current wiring): ALL layers are enforced — `read` (`get`/`list`),
|
|
108
|
+
* `guard`, `derivation`, `mv`, `join`, `export`. Guard / derivation
|
|
109
|
+
* `ctx.vault` reads resolve under their own layer policy (`guard` defaults to
|
|
110
|
+
* the lenient `'substitute'`). The `mv` layer fires for materialized views
|
|
111
|
+
* that declare `{ i18nLocale, i18nFields }` — UNION (group-key i18n fields
|
|
112
|
+
* resolve before the unified-row bucketing) and query-form (resolved in
|
|
113
|
+
* `GroupedAggregation.run` before `groupAndReduce`); grouping a raw i18n field
|
|
114
|
+
* without a locale throws. The `join` layer resolves a joined right-side i18n
|
|
115
|
+
* field to the query locale (`toArray({ locale })` or the vault default; raw
|
|
116
|
+
* when locale-less). The `export` layer fires for
|
|
117
|
+
* `exportStream`/`exportJSON({ resolveLabels })` — records collapse to the
|
|
118
|
+
* export locale.
|
|
119
|
+
*/
|
|
120
|
+
readonly onMissing?: OnMissingPolicy;
|
|
121
|
+
/**
|
|
122
|
+
* Ordered preferred-substitute locales used when `onMissing` resolves
|
|
123
|
+
* to `'substitute'` and the target locale is absent. `'any'` as an
|
|
124
|
+
* element means "first non-empty value". A caller-supplied `fallback`
|
|
125
|
+
* at read time takes precedence over this declared list.
|
|
126
|
+
*/
|
|
127
|
+
readonly substitute?: readonly string[];
|
|
128
|
+
/**
|
|
129
|
+
* Smart-substitute. When `true`, a missing-locale `substitute` walk that
|
|
130
|
+
* misses the explicit chain prefers the available locale whose script is
|
|
131
|
+
* nearest the target (same script, then Latin) rather than an arbitrary value
|
|
132
|
+
* — e.g. a missing Thai label prefers another Thai (or Latin) translation over
|
|
133
|
+
* an unreadable script. Default `false` (legacy first-non-empty behavior).
|
|
134
|
+
*/
|
|
135
|
+
readonly smartSubstitute?: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Per-locale script enforcement (write-time). `'auto'` infers the
|
|
138
|
+
* allowed Unicode scripts per locale (asymmetric Latin tolerance); an
|
|
139
|
+
* object overrides per slot. Absent ⇒ no check. See `./script.ts`.
|
|
140
|
+
*/
|
|
141
|
+
readonly script?: 'auto' | Partial<Record<string, readonly string[]>>;
|
|
142
|
+
/**
|
|
143
|
+
* What to do when a slot's value contains characters outside its
|
|
144
|
+
* allowed script set. Default `'reject'`.
|
|
145
|
+
*/
|
|
146
|
+
readonly onScriptViolation?: 'reject' | 'filter' | 'warn';
|
|
147
|
+
/**
|
|
148
|
+
* Eager-fill empty locale slots from the substitute chain at
|
|
149
|
+
* write time, recording provenance in the internal `_i18nFilled` marker.
|
|
150
|
+
* Mutually exclusive with an EXPLICIT `'throw'` onMissing policy (densify
|
|
151
|
+
* fills every hole, so a throw would be unreachable). Without an explicit
|
|
152
|
+
* `substitute`, fills from `'any'` (first non-empty). Default absent.
|
|
153
|
+
*/
|
|
154
|
+
readonly densifyOnWrite?: boolean;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Descriptor returned by `i18nText()`. Attach to the collection's
|
|
158
|
+
* `i18nFields` option:
|
|
159
|
+
*
|
|
160
|
+
* ```ts
|
|
161
|
+
* const lineItems = company.collection<LineItem>('line-items', {
|
|
162
|
+
* i18nFields: {
|
|
163
|
+
* description: i18nText({ languages: ['en', 'th'], required: 'all' }),
|
|
164
|
+
* },
|
|
165
|
+
* })
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
export interface I18nTextDescriptor {
|
|
169
|
+
readonly _noydbI18nText: true;
|
|
170
|
+
/** Via port brand marker — lets an `I18nTextDescriptor` satisfy the kernel's opaque `ViaDescriptor` (#623 Task 9). */
|
|
171
|
+
readonly _viaBrand: 'i18n';
|
|
172
|
+
readonly options: I18nTextOptions;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Create an `I18nTextDescriptor` for a multi-language content field.
|
|
176
|
+
*
|
|
177
|
+
* @param options Language list + enforcement mode.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* i18nText({ languages: ['en', 'th'], required: 'all' })
|
|
182
|
+
* i18nText({ languages: ['en', 'th'], required: ['th'], autoTranslate: true })
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
export declare function i18nText(options: I18nTextOptions): I18nTextDescriptor;
|
|
186
|
+
export { isI18nTextDescriptor } from '../../port/with/i18n-strategy.js';
|
|
187
|
+
/**
|
|
188
|
+
* Validate that a value is a valid `{ [locale]: string }` map and that
|
|
189
|
+
* all required locales are present. Throws `MissingTranslationError`
|
|
190
|
+
* when the required constraint is violated.
|
|
191
|
+
*
|
|
192
|
+
* Called by `Collection.put()` for each registered `i18nField`.
|
|
193
|
+
*
|
|
194
|
+
* @param value The raw field value from the record being put.
|
|
195
|
+
* @param field The field name (used in the thrown error message).
|
|
196
|
+
* @param descriptor The `i18nText()` descriptor for this field.
|
|
197
|
+
*/
|
|
198
|
+
export declare function validateI18nTextValue(value: unknown, field: string, descriptor: I18nTextDescriptor): void;
|
|
199
|
+
/**
|
|
200
|
+
* Resolve an i18nText value (`{ [locale]: string }` map) to a string
|
|
201
|
+
* for the given locale.
|
|
202
|
+
*
|
|
203
|
+
* @param value The stored locale map.
|
|
204
|
+
* @param locale The requested locale code, or `'raw'` to return the map.
|
|
205
|
+
* @param fallback Single locale or ordered list; use `'any'` as the last
|
|
206
|
+
* element to fall back to any available translation.
|
|
207
|
+
* @param field Field name used in `LocaleNotSpecifiedError` messages.
|
|
208
|
+
* @returns The resolved string, OR the original map when `locale === 'raw'`.
|
|
209
|
+
*/
|
|
210
|
+
/** Options for the policy-aware form of {@link resolveI18nText}. */
|
|
211
|
+
export interface ResolveI18nOptions {
|
|
212
|
+
/** Effective policy for the resolution layer. Default `'throw'`. */
|
|
213
|
+
readonly policy?: OnMissing;
|
|
214
|
+
/** Declared substitute chain; applied only under policy `'substitute'`. */
|
|
215
|
+
readonly substitute?: readonly string[];
|
|
216
|
+
/**
|
|
217
|
+
* Smart-substitute. When `true` and policy is `'substitute'`, after the
|
|
218
|
+
* explicit chain misses, pick the available locale whose script is nearest the
|
|
219
|
+
* target (same script first, then Latin's broad readability) instead of an
|
|
220
|
+
* arbitrary value. Default `false`.
|
|
221
|
+
*/
|
|
222
|
+
readonly smartSubstitute?: boolean;
|
|
223
|
+
}
|
|
224
|
+
export declare function resolveI18nText(value: Record<string, string>, locale: string, fallback?: string | readonly string[], field?: string): string | Record<string, string>;
|
|
225
|
+
export declare function resolveI18nText(value: Record<string, string>, locale: string, fallback: string | readonly string[] | undefined, field: string | undefined, opts: ResolveI18nOptions): string | Record<string, string> | null;
|
|
226
|
+
export { getAtPath } from '../../kernel/paths.js';
|
|
227
|
+
/**
|
|
228
|
+
* Apply locale resolution to a single record, returning a new copy.
|
|
229
|
+
*
|
|
230
|
+
* For each field registered as an `i18nText` descriptor:
|
|
231
|
+
* - If `locale === 'raw'`, the field value is left as the stored map.
|
|
232
|
+
* - Otherwise, the field value is replaced with the resolved string.
|
|
233
|
+
*
|
|
234
|
+
* Field paths support dot notation (`'address.lineOne'`) and array
|
|
235
|
+
* wildcards (`'contacts[].title'`). Top-level fields work as before.
|
|
236
|
+
*
|
|
237
|
+
* @param record The decrypted record.
|
|
238
|
+
* @param i18nFields Map of field path → `I18nTextDescriptor`.
|
|
239
|
+
* @param locale The requested locale (or `'raw'`).
|
|
240
|
+
* @param fallback Fallback chain (optional).
|
|
241
|
+
* @param layer Resolution layer (default `'read'`). Each field's
|
|
242
|
+
* `onMissing` policy is resolved for this layer, so the
|
|
243
|
+
* same record resolves leniently on a get but strictly
|
|
244
|
+
* inside an mv/derivation.
|
|
245
|
+
*/
|
|
246
|
+
export declare function applyI18nLocale(record: Record<string, unknown>, i18nFields: Record<string, I18nTextDescriptor>, locale: string, fallback?: string | readonly string[], layer?: Layer): Record<string, unknown>;
|
|
247
|
+
/**
|
|
248
|
+
* Sync i18n-text-only present-for-join dressing — the exact `join`-layer
|
|
249
|
+
* partial application `kernel/query/join.ts` used to import and call
|
|
250
|
+
* directly before #626's retirement (#650 Task 6): fixes `fallback`
|
|
251
|
+
* `undefined` and `layer` `'join'`. `via/lookup/snapshot.ts`'s
|
|
252
|
+
* `buildPresentForJoin` composes this with the lookup-label half to build
|
|
253
|
+
* the `JoinableSource.presentForJoin` hook the join executor now calls
|
|
254
|
+
* instead of reaching into this module.
|
|
255
|
+
*/
|
|
256
|
+
export declare function presentI18nForJoin(record: Record<string, unknown>, i18nFields: Record<string, I18nTextDescriptor>, locale: string): Record<string, unknown>;
|
|
257
|
+
/**
|
|
258
|
+
* Remove the internal densify provenance marker (`_i18nFilled`) from a
|
|
259
|
+
* read-facing record. NON-mutating: returns the same object when the
|
|
260
|
+
* marker is absent, otherwise a shallow copy without the marker.
|
|
261
|
+
*
|
|
262
|
+
* MUST be applied on every user-facing read return — even locale-less ones,
|
|
263
|
+
* which bypass {@link applyI18nLocale}. MUST NOT be applied on the internal
|
|
264
|
+
* prior-read path (decryptRecord / resolveDensifyPrior), where densify needs
|
|
265
|
+
* the marker.
|
|
266
|
+
*/
|
|
267
|
+
export declare function stripI18nFilled<T extends Record<string, unknown>>(record: T): T;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { I18nTextDescriptor } from './core.js';
|
|
2
|
+
/**
|
|
3
|
+
* Per field, the locales that are UNCHANGED round-tripped densify fills — i.e.
|
|
4
|
+
* marked filled on the prior record AND identical in the incoming record.
|
|
5
|
+
* These are exempt from write-time script enforcement (they are derived copies,
|
|
6
|
+
* not authored text). Slots the user changed are NOT exempt (validated as authored).
|
|
7
|
+
*/
|
|
8
|
+
export declare function computeExemptFills(prior: Record<string, unknown> | undefined, incoming: Record<string, unknown>, fields: Record<string, I18nTextDescriptor>): Map<string, Set<string>>;
|
|
9
|
+
/**
|
|
10
|
+
* Mutate `record` in place: fill empty declared-language slots for each
|
|
11
|
+
* densify-enabled field from the field's substitute chain, recompute unchanged
|
|
12
|
+
* prior fills, clear marks for slots that became authored, and write the
|
|
13
|
+
* resulting `_i18nFilled` marker (removed when empty).
|
|
14
|
+
*
|
|
15
|
+
* `prior` is read-only — it is never mutated.
|
|
16
|
+
*
|
|
17
|
+
* Provenance uses value-equality (decision A): a slot counts as an unchanged
|
|
18
|
+
* fill when it was prior-marked AND its value still equals the prior value. A
|
|
19
|
+
* consequence is that re-authoring a value byte-identical to the existing fill
|
|
20
|
+
* keeps it classified as a fill (the visible value is unchanged either way; the
|
|
21
|
+
* slot stays script-exempt and will auto-refresh if its source later changes).
|
|
22
|
+
* This is inherent to value-equality provenance, not a bug.
|
|
23
|
+
*/
|
|
24
|
+
export declare function densify(record: Record<string, unknown>, prior: Record<string, unknown> | undefined, fields: Record<string, I18nTextDescriptor>): void;
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* _dict_* reserved collections + dictKey schema descriptor —
|
|
3
|
+
*
|
|
4
|
+
* Stores bounded enum-like field dictionaries as reserved encrypted
|
|
5
|
+
* collections (`_dict_<name>/`) within a vault. Each dictionary
|
|
6
|
+
* entry maps a stable key (e.g. `'paid'`) to a locale → label record
|
|
7
|
+
* (e.g. `{ en: 'Paid', th: 'ชำระแล้ว' }`).
|
|
8
|
+
*
|
|
9
|
+
* Design decisions
|
|
10
|
+
* ────────────────
|
|
11
|
+
*
|
|
12
|
+
* **Why reserved collections, not a separate store?**
|
|
13
|
+
* Same answer as `_sync_credentials`: the compartment's existing
|
|
14
|
+
* encryption stack is exactly right. Dictionaries are encrypted under the
|
|
15
|
+
* same vault DEK, inherit ACL, ledger, and backup/restore for free.
|
|
16
|
+
*
|
|
17
|
+
* **One collection per dictionary, not one collection with namespaces.**
|
|
18
|
+
* Each `_dict_<name>/` collection holds entries `{ id: key, labels: {...} }`.
|
|
19
|
+
* This composes with `ref()` naturally (a dictKey IS a ref to the dict
|
|
20
|
+
* collection), and means the query DSL works over dictionary entries
|
|
21
|
+
* without any special-casing.
|
|
22
|
+
*
|
|
23
|
+
* **dictKey() is a descriptor, not a Zod type.**
|
|
24
|
+
* The descriptor pattern matches `ref()`: declare NOYDB-specific metadata
|
|
25
|
+
* in the collection options alongside `refs`. TypeScript inference comes
|
|
26
|
+
* from the descriptor's generic parameter, not from Zod internals.
|
|
27
|
+
*
|
|
28
|
+
* API:
|
|
29
|
+
* `dictKey(name, keys?)` — returns a DictKeyDescriptor
|
|
30
|
+
* `vault.dictionary(name)` — returns a DictionaryHandle
|
|
31
|
+
* `DictionaryHandle.put/putAll/get/delete/rename/list` — CRUD
|
|
32
|
+
*
|
|
33
|
+
* The storage engine (`DictionaryHandle`, `DictEntry`, `DictionaryOptions`,
|
|
34
|
+
* `DICT_COLLECTION_PREFIX`, `dictCollectionName`) moved to
|
|
35
|
+
* `via/lookup/handle.ts` (#650 Task 1 — via-lookup extraction, phase
|
|
36
|
+
* D of the Via port) and is renamed `LookupHandle` there; re-exported here
|
|
37
|
+
* under the original names for one release so existing importers of this
|
|
38
|
+
* module compile unchanged. This file keeps only the descriptor factories
|
|
39
|
+
* (`dictKey`/`staticDict`), which are locale/i18n-coupled and stay put.
|
|
40
|
+
*/
|
|
41
|
+
import type { OnMissingPolicy } from './policy.js';
|
|
42
|
+
export { isDictCollectionName } from '../../port/with/i18n-strategy.js';
|
|
43
|
+
export { DictionaryHandle, DICT_COLLECTION_PREFIX, dictCollectionName, type DictEntry, type DictionaryOptions, } from '../lookup/handle.js';
|
|
44
|
+
/**
|
|
45
|
+
* Descriptor returned by `dictKey()`. Attach to the collection's
|
|
46
|
+
* `dictKeyFields` option to declare which fields are dictionary-backed:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* const invoices = company.collection<Invoice>('invoices', {
|
|
50
|
+
* dictKeyFields: {
|
|
51
|
+
* status: dictKey('status', ['draft', 'open', 'paid'] as const),
|
|
52
|
+
* },
|
|
53
|
+
* })
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* The generic parameter `Keys` narrows the TypeScript type of the field
|
|
57
|
+
* to a literal union; the runtime value of `keys` is used by `put()`
|
|
58
|
+
* validation to reject unknown keys when a key set is declared.
|
|
59
|
+
*/
|
|
60
|
+
export interface DictKeyDescriptor<Keys extends string = string> {
|
|
61
|
+
readonly _noydbDictKey: true;
|
|
62
|
+
/** Via port brand marker (#623 Task 9) — dictKey shares the i18n binding brand. */
|
|
63
|
+
readonly _viaBrand: 'i18n';
|
|
64
|
+
/** Which dictionary this field references. */
|
|
65
|
+
readonly name: string;
|
|
66
|
+
/** Declared valid keys. When set, `put()` rejects keys not in this set. */
|
|
67
|
+
readonly keys: readonly Keys[] | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* What to do when a label is missing for the resolved locale. Mirrors
|
|
70
|
+
* `i18nText`'s `onMissing`. Default behavior (when unset) preserves the
|
|
71
|
+
* legacy contract: a missing label is omitted (scalar) or `null`
|
|
72
|
+
* (array element) — i.e. `'null'`. Set `'substitute'` to walk the
|
|
73
|
+
* declared `substitute` chain, or `'throw'` to raise.
|
|
74
|
+
*/
|
|
75
|
+
readonly onMissing?: OnMissingPolicy;
|
|
76
|
+
/** Ordered preferred-substitute locales for label resolution. */
|
|
77
|
+
readonly substitute?: readonly string[];
|
|
78
|
+
/**
|
|
79
|
+
* Optional inline display labels (value → label map). A SYNC display
|
|
80
|
+
* fallback for `describe()` when async `dictLabels` (from `_dict_`) are
|
|
81
|
+
* not resolved. The async path still wins when available.
|
|
82
|
+
*/
|
|
83
|
+
readonly labels?: Record<string, string>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create a `DictKeyDescriptor` for a dictionary-backed enum field.
|
|
87
|
+
*
|
|
88
|
+
* @param name The dictionary name (corresponds to `_dict_<name>` collection).
|
|
89
|
+
* @param keysOrMap Either:
|
|
90
|
+
* - An `as const` array of valid key literals — narrows the TypeScript type
|
|
91
|
+
* to a literal union and enables put-time validation.
|
|
92
|
+
* - A **value→label map** (`{ draft: 'Draft', paid: 'Paid' }`) — keys are
|
|
93
|
+
* inferred from the map, and the labels are stored as inline display
|
|
94
|
+
* defaults surfaced by `describe()` without a store read.
|
|
95
|
+
* @param opts `{ labels?, onMissing?, substitute? }` when the array form
|
|
96
|
+
* is used; `opts.labels` provides inline display defaults for
|
|
97
|
+
* specific keys (same semantics as the map form, but
|
|
98
|
+
* explicit key order from the array is preserved).
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* // array form (original):
|
|
103
|
+
* dictKey('status', ['draft', 'open', 'paid'] as const)
|
|
104
|
+
*
|
|
105
|
+
* // value→label map form (keys inferred, inline labels for describe()):
|
|
106
|
+
* dictKey('status', { draft: 'Draft', open: 'Open', paid: 'Paid' })
|
|
107
|
+
*
|
|
108
|
+
* // array + opts.labels (preserves explicit order, partial labels OK):
|
|
109
|
+
* dictKey('status', ['draft', 'open', 'paid'] as const, { labels: { paid: 'Paid' } })
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function dictKey<Keys extends string>(name: string, keysOrMap?: readonly Keys[] | Record<Keys, string>, opts?: {
|
|
113
|
+
onMissing?: OnMissingPolicy;
|
|
114
|
+
substitute?: readonly string[];
|
|
115
|
+
labels?: Record<string, string>;
|
|
116
|
+
}): DictKeyDescriptor<Keys>;
|
|
117
|
+
export { isDictKeyDescriptor } from '../../port/with/i18n-strategy.js';
|
|
118
|
+
/**
|
|
119
|
+
* Descriptor returned by `staticDict()`. A sibling to {@link DictKeyDescriptor}
|
|
120
|
+
* for **closed, defined-in-code, identical-across-vaults** enums (honorific,
|
|
121
|
+
* civil-status, gender, religion, ContactTitle, status…).
|
|
122
|
+
*
|
|
123
|
+
* Unlike `dictKey`, the labels are supplied **at registration in code** and
|
|
124
|
+
* resolved through the *same* label machinery, but with **no `_dict_*`
|
|
125
|
+
* per-vault encrypted copy** and **no `rename()`**. The record stores only
|
|
126
|
+
* the **code**; a static dict has no mutation surface.
|
|
127
|
+
*
|
|
128
|
+
* **Hybrid resolution.** Because a static dict is pure code with no
|
|
129
|
+
* vault-locale dependency, it can — via a configured `displayLocale` — emit a
|
|
130
|
+
* `<field>Label` even under a **locale-less read** (the property a locale-less
|
|
131
|
+
* consumer needs and `dictKey` cannot provide). When a locale *is* active it
|
|
132
|
+
* behaves exactly like `dictKey` (honoring `onMissing`/`substitute`).
|
|
133
|
+
*
|
|
134
|
+
* ```ts
|
|
135
|
+
* const workers = vault.collection<Worker>('workers', {
|
|
136
|
+
* dictKeyFields: {
|
|
137
|
+
* civilStatus: staticDict('civilStatus', {
|
|
138
|
+
* adultMale: { th: 'นาย', en: 'Mr' },
|
|
139
|
+
* adultFemale: { th: 'นาง', en: 'Mrs' },
|
|
140
|
+
* }, { displayLocale: 'th' }),
|
|
141
|
+
* },
|
|
142
|
+
* })
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export interface StaticDictDescriptor<Keys extends string = string> {
|
|
146
|
+
readonly _noydbStaticDict: true;
|
|
147
|
+
/** Via port brand marker (#623 Task 9) — staticDict shares the i18n binding brand. */
|
|
148
|
+
readonly _viaBrand: 'i18n';
|
|
149
|
+
/** Which dictionary this field references (the registry name). */
|
|
150
|
+
readonly name: string;
|
|
151
|
+
/** The in-code label table: key → { locale → label }. */
|
|
152
|
+
readonly table: Readonly<Record<Keys, Readonly<Record<string, string>>>>;
|
|
153
|
+
/** Declared valid keys — derived from `Object.keys(table)`. */
|
|
154
|
+
readonly keys: readonly Keys[];
|
|
155
|
+
/**
|
|
156
|
+
* Locale used to emit `<field>Label` under a **locale-less** read — the
|
|
157
|
+
* hybrid hinge. When unset, a static dict behaves like `dictKey` under a
|
|
158
|
+
* locale-less read (no label); a locale-less consumer almost always wants
|
|
159
|
+
* it set.
|
|
160
|
+
*/
|
|
161
|
+
readonly displayLocale?: string;
|
|
162
|
+
/** Same `onMissing` policy engine as `dictKey`. Default `'null'`. */
|
|
163
|
+
readonly onMissing?: OnMissingPolicy;
|
|
164
|
+
/** Ordered preferred-substitute locales for label resolution. */
|
|
165
|
+
readonly substitute?: readonly string[];
|
|
166
|
+
/**
|
|
167
|
+
* Validate the stored code against `keys` on every `put()`. Default `true`
|
|
168
|
+
* — codes are closed by construction, so an unknown code is a bug. Set
|
|
169
|
+
* `false` to allow open codes (skips the `UnknownDictCodeError` guard).
|
|
170
|
+
*/
|
|
171
|
+
readonly validateCodes?: boolean;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Create a `StaticDictDescriptor` for a code-provided enum field — a sibling
|
|
175
|
+
* to {@link dictKey} for closed, code-defined, identical-across-vaults enums.
|
|
176
|
+
*
|
|
177
|
+
* The labels live in `table` (no `_dict_*` collection, no `rename()`); the
|
|
178
|
+
* record stores only the stable code. Pass `displayLocale` so `<field>Label`
|
|
179
|
+
* resolves even under a locale-less read.
|
|
180
|
+
*
|
|
181
|
+
* @param name The dictionary name (used for the readonly-guard registry and
|
|
182
|
+
* the query label seam — never creates a `_dict_<name>` key).
|
|
183
|
+
* @param table `{ key: { locale: label } }` map.
|
|
184
|
+
* @param opts `displayLocale` (locale-less label), `onMissing`, `substitute`.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```ts
|
|
188
|
+
* staticDict('civilStatus', {
|
|
189
|
+
* adultMale: { th: 'นาย', en: 'Mr' },
|
|
190
|
+
* adultFemale: { th: 'นาง', en: 'Mrs' },
|
|
191
|
+
* }, { displayLocale: 'th' })
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
export declare function staticDict<const T extends Record<string, Record<string, string>>>(name: string, table: T, opts?: {
|
|
195
|
+
displayLocale?: string;
|
|
196
|
+
onMissing?: OnMissingPolicy;
|
|
197
|
+
substitute?: readonly string[];
|
|
198
|
+
validateCodes?: boolean;
|
|
199
|
+
}): StaticDictDescriptor<Extract<keyof T, string>>;
|
|
200
|
+
export { isStaticDictDescriptor } from '../../port/with/i18n-strategy.js';
|