@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,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrate the derive → hash → skip-or-write cycle for a collection's
|
|
3
|
+
* persisted JSON Schema. Called by the Vault at collection-registration
|
|
4
|
+
* time when the developer opts in via `collection({ persistJsonSchema:
|
|
5
|
+
* true })`.
|
|
6
|
+
*
|
|
7
|
+
* Skip semantics:
|
|
8
|
+
*
|
|
9
|
+
* - Zod validators: skip when the new hash equals the stored hash.
|
|
10
|
+
* - Non-Zod (stub envelopes have hash=null): skip when the stored
|
|
11
|
+
* envelope's `kind` matches the freshly-detected kind (since there's
|
|
12
|
+
* no body to compare yet — a kind change is the only signal).
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import type { SchemaUpdateStrategy, UpdateDecision } from '../schema-update/types.js';
|
|
17
|
+
import type { NoydbStore, ClassifiedMarker } from '../../kernel/types.js';
|
|
18
|
+
import type { PersistedSchemaEnvelope } from './types.js';
|
|
19
|
+
import type { PairingMarker } from '../satellites/types.js';
|
|
20
|
+
import type { EnclaveKey } from '../../kernel/enclave/index.js';
|
|
21
|
+
export interface PersistSchemaResult {
|
|
22
|
+
/** True when a fresh envelope was written to storage. */
|
|
23
|
+
readonly written: boolean;
|
|
24
|
+
/** True when an existing envelope matched and the write was skipped. */
|
|
25
|
+
readonly skipped: boolean;
|
|
26
|
+
/** The envelope that was either written or matched. */
|
|
27
|
+
readonly envelope: PersistedSchemaEnvelope;
|
|
28
|
+
/** The update-strategy decision, present when strategies ran. */
|
|
29
|
+
readonly decision?: UpdateDecision;
|
|
30
|
+
}
|
|
31
|
+
export declare function persistSchemaIfNeeded(opts: {
|
|
32
|
+
readonly store: NoydbStore;
|
|
33
|
+
readonly vault: string;
|
|
34
|
+
readonly collectionName: string;
|
|
35
|
+
readonly validator: unknown;
|
|
36
|
+
readonly dek: EnclaveKey;
|
|
37
|
+
readonly strategies?: readonly SchemaUpdateStrategy[];
|
|
38
|
+
}): Promise<PersistSchemaResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Persist (or refresh) the C-A / R10 classified marker into the collection's
|
|
41
|
+
* `_schemas/<collection>` record, preserving any existing derived JSON-Schema
|
|
42
|
+
* body. Idempotent — a no-op when an equivalent marker is already stored.
|
|
43
|
+
* Independent of `persistJsonSchema`: called on the first classified write so a
|
|
44
|
+
* later naive handle can detect the drift cross-session.
|
|
45
|
+
*/
|
|
46
|
+
export declare function persistClassifiedMarker(opts: {
|
|
47
|
+
readonly store: NoydbStore;
|
|
48
|
+
readonly vault: string;
|
|
49
|
+
readonly collectionName: string;
|
|
50
|
+
readonly dek: EnclaveKey;
|
|
51
|
+
readonly marker: ClassifiedMarker;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Persist (or refresh) the R-S9 satellite pairing marker into the collection's
|
|
55
|
+
* `_schemas/<collection>` record, preserving any existing derived JSON-Schema
|
|
56
|
+
* body. Idempotent — a no-op when an equivalent marker is already stored.
|
|
57
|
+
* Independent of `persistJsonSchema`: called on satellite declaration so a
|
|
58
|
+
* later divergent re-declaration can be detected cross-session.
|
|
59
|
+
*/
|
|
60
|
+
export declare function persistSatelliteMarker(opts: {
|
|
61
|
+
readonly store: NoydbStore;
|
|
62
|
+
readonly vault: string;
|
|
63
|
+
readonly collectionName: string;
|
|
64
|
+
readonly dek: EnclaveKey;
|
|
65
|
+
readonly marker: PairingMarker;
|
|
66
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read / write the per-collection persisted-schema envelope. Mirrors the
|
|
3
|
+
* standard noy-db record envelope shape and is **AES-GCM encrypted with
|
|
4
|
+
* the collection's DEK** — the schema body (field names, enum values,
|
|
5
|
+
* constraints) is sensitive metadata, so it gets the same encryption
|
|
6
|
+
* envelope as the records it describes.
|
|
7
|
+
*
|
|
8
|
+
* Storage layout:
|
|
9
|
+
*
|
|
10
|
+
* <vault>/_schemas/<collection> → EncryptedEnvelope
|
|
11
|
+
*
|
|
12
|
+
* The DEK passed to {@link savePersistedSchema} / {@link loadPersistedSchema}
|
|
13
|
+
* is the same key the collection uses for its records.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import { type EnclaveKey } from '../../kernel/enclave/index.js';
|
|
18
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
19
|
+
import type { PersistedSchemaEnvelope } from './types.js';
|
|
20
|
+
/** Reserved collection name where persisted schemas live. */
|
|
21
|
+
export declare const SCHEMAS_COLLECTION: "_schemas";
|
|
22
|
+
/**
|
|
23
|
+
* A decrypted persisted-schema read paired with the wrapping envelope's
|
|
24
|
+
* `_v`. The version is the optimistic-concurrency token: pass it back to
|
|
25
|
+
* {@link savePersistedSchema} as `expectedVersion` to make the write a CAS
|
|
26
|
+
* that rejects a stale put (see #583 — the `_schemas` record is shared by
|
|
27
|
+
* the JSON-Schema writer and the classified-marker writer).
|
|
28
|
+
*/
|
|
29
|
+
export interface PersistedSchemaEntry {
|
|
30
|
+
/** Wrapping envelope `_v` (0 when no record exists yet). */
|
|
31
|
+
readonly version: number;
|
|
32
|
+
/** Decrypted payload, or `undefined` when absent/corrupt/wrong-DEK. */
|
|
33
|
+
readonly payload: PersistedSchemaEnvelope | undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read the persisted-schema envelope for one collection together with its
|
|
37
|
+
* wrapping `_v`. The version reflects the raw stored envelope even when the
|
|
38
|
+
* payload cannot be decrypted/parsed (so a CAS still guards a corrupt record
|
|
39
|
+
* rather than silently clobbering it).
|
|
40
|
+
*/
|
|
41
|
+
export declare function loadPersistedSchemaEntry(store: NoydbStore, vault: string, collection: string, dek: EnclaveKey): Promise<PersistedSchemaEntry>;
|
|
42
|
+
/**
|
|
43
|
+
* Read and decrypt the persisted-schema envelope for one collection.
|
|
44
|
+
* Returns `undefined` when no envelope has been written or when decryption
|
|
45
|
+
* fails (e.g. wrong DEK passed). Tolerates corrupted records — JSON parse
|
|
46
|
+
* failures surface as `undefined`, mirroring `_meta/handle`'s contract.
|
|
47
|
+
*/
|
|
48
|
+
export declare function loadPersistedSchema(store: NoydbStore, vault: string, collection: string, dek: EnclaveKey): Promise<PersistedSchemaEnvelope | undefined>;
|
|
49
|
+
/**
|
|
50
|
+
* Encrypt and persist a schema envelope for one collection. Always
|
|
51
|
+
* overwrites any prior write (callers gate on hash equality before calling
|
|
52
|
+
* to avoid no-op writes).
|
|
53
|
+
*
|
|
54
|
+
* Pass `expectedVersion` — the `version` from {@link loadPersistedSchemaEntry}
|
|
55
|
+
* captured at load time — to make the write an optimistic CAS: on a store with
|
|
56
|
+
* `casAtomic`, `store.put` throws {@link ConflictError} when the record was
|
|
57
|
+
* bumped concurrently, so a lost update on the shared `_schemas` record is
|
|
58
|
+
* rejected instead of silently clobbering the other writer's field (#583).
|
|
59
|
+
* When omitted, keeps the legacy unconditional last-writer-wins behaviour.
|
|
60
|
+
*/
|
|
61
|
+
export declare function savePersistedSchema(store: NoydbStore, vault: string, collection: string, dek: EnclaveKey, payload: PersistedSchemaEnvelope, expectedVersion?: number): Promise<void>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persisted-schema envelope shape.
|
|
3
|
+
*
|
|
4
|
+
* Stored encrypted under `_schemas/<collection>` with the same DEK as the
|
|
5
|
+
* collection's records. Auditors who can unlock the collection's data can
|
|
6
|
+
* also read its schema; nothing more.
|
|
7
|
+
*
|
|
8
|
+
* @see docs/superpowers/specs/2026-05-22-schema-dump-design.md
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
import type { ClassifiedMarker } from '../../kernel/types.js';
|
|
13
|
+
import type { PairingMarker } from '../satellites/types.js';
|
|
14
|
+
/** Family of Standard Schema v1 validator the persisted snapshot was derived from. */
|
|
15
|
+
export type PersistedSchemaKind = 'Zod' | 'Valibot' | 'ArkType' | 'Effect' | 'Unknown';
|
|
16
|
+
/**
|
|
17
|
+
* Plaintext payload encrypted into the `_data` field of the
|
|
18
|
+
* `_schemas/<collection>` envelope. The wrapper `EncryptedEnvelope` adds
|
|
19
|
+
* `_noydb`, `_v`, `_ts`, `_iv`, `_data` per the standard noy-db record
|
|
20
|
+
* format.
|
|
21
|
+
*/
|
|
22
|
+
export interface PersistedSchemaEnvelope {
|
|
23
|
+
readonly _noydb_schema: 1;
|
|
24
|
+
/** Detected validator family. */
|
|
25
|
+
readonly kind: PersistedSchemaKind;
|
|
26
|
+
/**
|
|
27
|
+
* JSON Schema (Draft 2020-12) derived from the validator. Null when
|
|
28
|
+
* derivation isn't yet supported for `kind`; in that case `reason` is
|
|
29
|
+
* populated.
|
|
30
|
+
*/
|
|
31
|
+
readonly jsonSchema: object | null;
|
|
32
|
+
/** SHA-256 (hex) of the canonicalised JSON Schema, or null when unavailable. */
|
|
33
|
+
readonly hash: string | null;
|
|
34
|
+
/** Human-readable reason when `jsonSchema` is null. */
|
|
35
|
+
readonly reason?: string;
|
|
36
|
+
/** ISO-8601 timestamp of the most recent derivation write. */
|
|
37
|
+
readonly derivedAt: string;
|
|
38
|
+
/**
|
|
39
|
+
* C-A / R10 config-drift marker. Present when the collection declares
|
|
40
|
+
* classified digest-only fields. A handle opened WITHOUT `classifiedFields`
|
|
41
|
+
* (a naive handle, whose codec has `vdigFields === null`) reads this back and
|
|
42
|
+
* refuses to write — a silent plaintext/tag-drop write would corrupt the
|
|
43
|
+
* classified record. Independent of `persistJsonSchema`: a classified
|
|
44
|
+
* collection that never opts into schema persistence still writes this marker.
|
|
45
|
+
*/
|
|
46
|
+
readonly classified?: ClassifiedMarker;
|
|
47
|
+
/**
|
|
48
|
+
* R-S9 satellite pairing marker. Present when this collection is declared
|
|
49
|
+
* as a satellite (`satelliteOf`). A later re-declaration of the same
|
|
50
|
+
* satellite must match `(base, fieldsHash, joined)` exactly or is refused —
|
|
51
|
+
* the satellite-pair analogue of {@link classified}'s config-drift guard.
|
|
52
|
+
*/
|
|
53
|
+
readonly satellite?: PairingMarker;
|
|
54
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
+
import type { EnclaveKey } from '../../kernel/enclave/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a live-base id set for every satellite collection detectable from
|
|
5
|
+
* its persisted `_schemas/<name>` pairing marker (#591 Task 10).
|
|
6
|
+
*
|
|
7
|
+
* The bundle-export path (`with-pod/bundle.ts`) has no reachable
|
|
8
|
+
* `SatelliteRegistry` — that registry is private to `Vault` and adding an
|
|
9
|
+
* accessor would grow a kernel file past its line-ceiling ratchet. The
|
|
10
|
+
* marker persisted by `ensureSatelliteMarker` (`_schemas/<satellite>`,
|
|
11
|
+
* decrypted with the satellite collection's own DEK — see
|
|
12
|
+
* `with-shape/persisted-schemas/storage.ts`) is the fallback pairing-info
|
|
13
|
+
* source that's always reachable from just a raw store + a per-collection
|
|
14
|
+
* DEK accessor, so export uses that instead of the in-memory registry.
|
|
15
|
+
*
|
|
16
|
+
* Returns a `Map` from satellite collection name to its base's live id set
|
|
17
|
+
* (existence.ts rule 1: absent or tombstoned base ⇒ not live). Only
|
|
18
|
+
* satellite collections are present as keys — callers should treat a
|
|
19
|
+
* missing key as "not a satellite, don't filter."
|
|
20
|
+
*/
|
|
21
|
+
export declare function liveBaseIdSetsForBundle(store: NoydbStore, vaultName: string, collectionNames: readonly string[], getDEK: (collectionName: string) => Promise<EnclaveKey>): Promise<Map<string, Set<string>>>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Satellite declaration wiring (#591, archetype-③) — the full body behind
|
|
3
|
+
* `Vault.collection()`'s thin call-site: in-session reconcile (idempotent
|
|
4
|
+
* identical redeclare / R-S9 divergent refusal), sync validation
|
|
5
|
+
* (R-S3/R-S5/R-S8), the R-S7 forget-coverage gate, lazy registry + poison
|
|
6
|
+
* write-gate creation, registration, and the fire-and-forget postRegister
|
|
7
|
+
* (marker persistence + R-S1 cross-check). Kept dependency-narrow: no
|
|
8
|
+
* `Vault` import — the kernel supplies a {@link SatelliteDeclareContext}.
|
|
9
|
+
*/
|
|
10
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
11
|
+
import type { EnclaveKey } from '../../kernel/enclave/index.js';
|
|
12
|
+
import { SatelliteRegistry } from './registry.js';
|
|
13
|
+
/** The narrow slice of Vault that declaration wiring needs. */
|
|
14
|
+
export interface SatelliteDeclareContext {
|
|
15
|
+
readonly adapter: NoydbStore;
|
|
16
|
+
readonly vaultName: string;
|
|
17
|
+
/** `forgetStrategy.subjects` — collection → subject field (R-S7 gate input). */
|
|
18
|
+
readonly forgetSubjects: Record<string, string>;
|
|
19
|
+
readonly getDEK: (collectionName: string) => Promise<EnclaveKey>;
|
|
20
|
+
/** The base collection's attached Standard Schema validator, if constructed. */
|
|
21
|
+
readonly getBaseSchema: (base: string) => unknown;
|
|
22
|
+
/** The base collection's constructed crdt mode, if any (R-S8 direction i). */
|
|
23
|
+
readonly getBaseCrdt: (base: string) => unknown;
|
|
24
|
+
/** True when `name` is an already-constructed collection (R-S5 joined-name guard). */
|
|
25
|
+
readonly collectionExists: (name: string) => boolean;
|
|
26
|
+
/** Registers the vault-wide poison write-gate; invoked at most once per vault. */
|
|
27
|
+
readonly registerPoisonHook: (hook: (e: {
|
|
28
|
+
readonly vault: string;
|
|
29
|
+
readonly collection: string;
|
|
30
|
+
}) => void) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Iterates the vault's SyncEngine(s) (#591 Task 11) — used to wire the
|
|
33
|
+
* live pair-expander (once per vault, alongside `registerPoisonHook`; the
|
|
34
|
+
* closure captures the registry itself, not a snapshot, so pairs declared
|
|
35
|
+
* later are still picked up by push/pull filters) and to retroactively
|
|
36
|
+
* re-mirror conflict resolvers on every successful pair registration.
|
|
37
|
+
* No-op when sync is not configured.
|
|
38
|
+
*/
|
|
39
|
+
readonly forEachSyncEngine: (fn: (engine: PairSyncEngine) => void) => void;
|
|
40
|
+
}
|
|
41
|
+
/** The narrow slice of SyncEngine that satellite declaration wiring drives (#591 Task 11). */
|
|
42
|
+
interface PairSyncEngine {
|
|
43
|
+
setPairExpander(expander: (names: readonly string[]) => readonly string[]): void;
|
|
44
|
+
remirrorPairResolvers(names: readonly string[]): void;
|
|
45
|
+
}
|
|
46
|
+
export interface SatelliteDeclarationOptions {
|
|
47
|
+
readonly satelliteOf: string;
|
|
48
|
+
readonly fields?: readonly string[] | undefined;
|
|
49
|
+
readonly joined?: string | undefined;
|
|
50
|
+
readonly perRecordKeys?: boolean | undefined;
|
|
51
|
+
readonly crdt?: unknown;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Register `collectionName` as a satellite per `options`. Returns the
|
|
55
|
+
* (possibly newly created) registry — the caller stores it back on the vault.
|
|
56
|
+
* A refused declaration throws {@link SatelliteConfigError} and leaves NO
|
|
57
|
+
* side effect (no registry created, no hook registered).
|
|
58
|
+
*/
|
|
59
|
+
export declare function declareSatellite(ctx: SatelliteDeclareContext, collectionName: string, options: SatelliteDeclarationOptions, existingRegistry: SatelliteRegistry | null): SatelliteRegistry;
|
|
60
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
+
/** One undecrypted adapter `get` on the base — the store-shape the spec pins (zero extra crypto). */
|
|
3
|
+
export declare function isBaseLive(adapter: NoydbStore, vault: string, base: string, id: string): Promise<boolean>;
|
|
4
|
+
/** The set of base ids that are currently live — used to id-filter satellite `list()` results. */
|
|
5
|
+
export declare function liveBaseIdSet(adapter: NoydbStore, vault: string, base: string): Promise<Set<string>>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fan-out writes for a base↔satellite pair (#591, Task 6): a joined `put`
|
|
3
|
+
* splits the record across both collections and writes base-then-satellite;
|
|
4
|
+
* a pair `delete` removes satellite-then-base. Either function reverts every
|
|
5
|
+
* already-executed leg (best-effort, raw adapter writes) and compensates
|
|
6
|
+
* each reverted collection's cache/dirty-tracking/change-stream on failure.
|
|
7
|
+
*
|
|
8
|
+
* Both legs are driven through `Collection.put`/`.delete` (encryption,
|
|
9
|
+
* ledger, history, cache, sync-dirty, change-emit all fire normally); only
|
|
10
|
+
* the REVERT writes go straight to the raw adapter, via the shared
|
|
11
|
+
* `bestEffortRevert` helper (`kernel/best-effort-revert.ts`) also used by
|
|
12
|
+
* `revertExecuted` (`with-commit/tx/transaction.ts`) — a neutral kernel-level
|
|
13
|
+
* home so this always-on satellite path can share the revert shape without
|
|
14
|
+
* depending on with-commit, a gated service.
|
|
15
|
+
*
|
|
16
|
+
* `deps.base()`/`deps.satellite()` may return either a raw `Collection` or
|
|
17
|
+
* one of this package's proxies (`makeSatelliteProxy` / `makeBaseProxy`) —
|
|
18
|
+
* every handle is unwrapped via `RAW_TARGET` before use so fan-out never
|
|
19
|
+
* re-enters a proxy's own `put`/`delete` override. Re-entering would either
|
|
20
|
+
* deadlock (the satellite proxy's `put` takes the same non-reentrant
|
|
21
|
+
* `registry.withPairLock` this module already holds) or recurse forever
|
|
22
|
+
* (the base proxy's `delete` calls straight back into `pairDelete`).
|
|
23
|
+
*/
|
|
24
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
25
|
+
import type { SatelliteSpec } from './types.js';
|
|
26
|
+
import type { SatelliteRegistry } from './registry.js';
|
|
27
|
+
export interface FanoutDeps {
|
|
28
|
+
readonly spec: SatelliteSpec;
|
|
29
|
+
readonly base: () => unknown;
|
|
30
|
+
readonly satellite: () => unknown;
|
|
31
|
+
readonly adapter: NoydbStore;
|
|
32
|
+
readonly vaultName: string;
|
|
33
|
+
readonly registry: SatelliteRegistry;
|
|
34
|
+
}
|
|
35
|
+
/** Split `record` across the pair by `spec.fields`, base leg first, satellite leg second. */
|
|
36
|
+
export declare function joinedPut(deps: FanoutDeps, id: string, record: Record<string, unknown>): Promise<void>;
|
|
37
|
+
/** Remove both legs of the pair, satellite first, base second. */
|
|
38
|
+
export declare function pairDelete(deps: FanoutDeps, id: string): Promise<void>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forget fan-out (#591, Task 8): expands the base refs resolved from the
|
|
3
|
+
* encrypted subject index with a synthesized same-id ref for every base ref
|
|
4
|
+
* whose collection has a declared satellite.
|
|
5
|
+
*
|
|
6
|
+
* A satellite record is NEVER itself indexed in `_subject_index` (its writes
|
|
7
|
+
* only ever go through `joinedPut`, which never touches the subject-field
|
|
8
|
+
* write hook — see `noydb.ts#registerForgetHooks`), so `lookupSubject` alone
|
|
9
|
+
* would leave the satellite half of a pair permanently un-erasable. The
|
|
10
|
+
* synthesized ref carries `satelliteOf` (the base collection name) so:
|
|
11
|
+
* - `vault.forget()`'s classification line can inherit `perRecordKeys`
|
|
12
|
+
* from the BASE's forget-strategy entry (the satellite itself is never a
|
|
13
|
+
* `subjects` key), and
|
|
14
|
+
* - the synthesized ref's tombstone write can be held to R-S4 fail-loud
|
|
15
|
+
* semantics distinct from a base ref's existing resilient handling.
|
|
16
|
+
*
|
|
17
|
+
* The synthesized ref is INTERLEAVED into the SAME list the caller iterates —
|
|
18
|
+
* immediately BEFORE its base ref, not appended after the whole list — so it
|
|
19
|
+
* traverses every purge stage below the tombstone (history, `_idx`/`_ftindex`,
|
|
20
|
+
* blobs, `_sealed`/`_sealed_cek`, vectors) identically to a base ref — there
|
|
21
|
+
* is no separate satellite-only code path.
|
|
22
|
+
*
|
|
23
|
+
* Ordering is load-bearing (retry black hole, #591 review C1): `vault.forget()`'s
|
|
24
|
+
* per-ref loop removes each ref's subject-index entry (the retry anchor) only
|
|
25
|
+
* at the END of that ref's own iteration. If the satellite ref instead ran
|
|
26
|
+
* AFTER its base ref (as a simple append), an R-S4 abort mid-satellite-ref (or
|
|
27
|
+
* a crash) would leave the base ref already fully processed — including its
|
|
28
|
+
* subject-index entry already removed — so a retried `forget(subjectId)` finds
|
|
29
|
+
* nothing to resolve and returns a clean, empty result while the satellite's
|
|
30
|
+
* heavy data stays un-shredded forever. Interleaving the satellite ref BEFORE
|
|
31
|
+
* its base ref means any R-S4 abort happens before the base's subject-index
|
|
32
|
+
* anchor is touched, so a retry re-discovers the same base ref (and
|
|
33
|
+
* re-synthesizes its satellite ref) until both actually shred.
|
|
34
|
+
*/
|
|
35
|
+
import type { SubjectRef } from '../../with-audit/forget/subject-index.js';
|
|
36
|
+
import type { SatelliteRegistry } from './registry.js';
|
|
37
|
+
/** A subject ref synthesized from a base ref via a declared satellite pairing. */
|
|
38
|
+
export interface SatelliteSubjectRef extends SubjectRef {
|
|
39
|
+
readonly satelliteOf: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Expand `refs` (as resolved by `lookupSubject`) with one synthesized ref per
|
|
43
|
+
* base ref whose collection has a registered satellite. `registry` may be
|
|
44
|
+
* `null` (no satellite ever declared in this vault) — returns `refs`
|
|
45
|
+
* unchanged, byte-identical to pre-#591 behaviour.
|
|
46
|
+
*/
|
|
47
|
+
export declare function expandRefsWithSatellites(refs: readonly SubjectRef[], registry: SatelliteRegistry | null): ReadonlyArray<SubjectRef | SatelliteSubjectRef>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JoinedHandle — the full-record access point for a base↔satellite pair
|
|
3
|
+
* declared with `joined:` (#591, Task 7). Deliberately narrow (spec § The
|
|
4
|
+
* model): get/put/delete/list/describe only, never a `Collection<T>` cast —
|
|
5
|
+
* reactive members (`subscribe`, `live`, …) are simply absent from the
|
|
6
|
+
* returned object, not stubbed.
|
|
7
|
+
*
|
|
8
|
+
* Reads compose under existence authority (spec § Convergence & existence
|
|
9
|
+
* authority, rule 1): the base row alone decides whether a record exists at
|
|
10
|
+
* all — `get`/`list` check it via an undecrypted adapter read
|
|
11
|
+
* (`isBaseLive`/`liveBaseIdSet`) before merging in the satellite side, so a
|
|
12
|
+
* base-absent-or-tombstoned id reads as fully gone even if a satellite
|
|
13
|
+
* envelope still lingers. Writes/deletes delegate wholesale to the Task 6
|
|
14
|
+
* fan-out (`joinedPut`/`pairDelete`), which already holds the pair lock and
|
|
15
|
+
* reverts on partial failure — this module adds no write logic of its own.
|
|
16
|
+
*/
|
|
17
|
+
import type { JoinedHandle, SatelliteSpec } from './types.js';
|
|
18
|
+
import type { FanoutDeps } from './fanout.js';
|
|
19
|
+
export declare function makeJoinedHandle<T extends Record<string, unknown>>(spec: SatelliteSpec, deps: FanoutDeps): JoinedHandle<T>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
+
import type { EnclaveKey } from '../../kernel/enclave/index.js';
|
|
3
|
+
import type { SatelliteSpec } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Persist-or-reconcile the pairing marker in `_schemas/<satellite>`.
|
|
6
|
+
* First declaration writes { base, fieldsHash, joined }; later declarations
|
|
7
|
+
* must match exactly or are refused (R-S9). Lazy imports keep the satellite
|
|
8
|
+
* spine tree-shakeable (config-drift.ts pattern).
|
|
9
|
+
*/
|
|
10
|
+
export declare function ensureSatelliteMarker(store: NoydbStore, vaultName: string, spec: SatelliteSpec, dek: EnclaveKey): Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** The narrow slice of `Collection` the migration pass needs (mirrors `fanout.ts`'s `CollectionHandle` narrowing). */
|
|
2
|
+
export interface SatelliteCekMigrationTarget {
|
|
3
|
+
/** Public config snapshot (`Collection.getConfig()`) — used to confirm the handle is genuinely in per-record-CEK mode before walking. */
|
|
4
|
+
getConfig(): {
|
|
5
|
+
readonly perRecordKeys?: boolean;
|
|
6
|
+
} | undefined;
|
|
7
|
+
_applyCutoverTransform(transform: (doc: Record<string, unknown>) => Record<string, unknown>): Promise<number>;
|
|
8
|
+
}
|
|
9
|
+
export interface SatelliteCekMigrationResult {
|
|
10
|
+
/** Records touched by this call (both freshly minted and already-migrated re-touches on a resumed run). */
|
|
11
|
+
readonly migrated: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Re-encrypt every record in `coll` under a per-record CEK. `coll` must be
|
|
15
|
+
* a collection handle already opened with `perRecordKeys: true` — see the
|
|
16
|
+
* file header for how the caller gets one past R-S7. Throws
|
|
17
|
+
* `SatelliteConfigError` (does NOT proceed) if `coll` is not genuinely in
|
|
18
|
+
* per-record-CEK mode — see the file header's mode-assertion note.
|
|
19
|
+
* Idempotent/resumable: safe to call again after a partial failure. NOT
|
|
20
|
+
* fenced against concurrent writers — see the file header's no-quiesce
|
|
21
|
+
* precondition; run this before the collection serves traffic.
|
|
22
|
+
*
|
|
23
|
+
* @param name The satellite collection's name — used only for the error
|
|
24
|
+
* message below; identical to what the caller passed to `vault.collection()`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function migrateSatelliteCek(name: string, coll: SatelliteCekMigrationTarget): Promise<SatelliteCekMigrationResult>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
+
import type { EnclaveKey } from '../../kernel/enclave/index.js';
|
|
3
|
+
import type { SatelliteSpec } from './types.js';
|
|
4
|
+
import type { SatelliteRegistry } from './registry.js';
|
|
5
|
+
/** Async post-registration: R-S9 marker reconcile + R-S1/R-S5 derivable-schema cross-check. Failures poison, never throw. */
|
|
6
|
+
export declare function postRegister(store: NoydbStore, vaultName: string, spec: SatelliteSpec, getDEK: (collectionName: string) => Promise<EnclaveKey>, baseSchema: unknown, registry: SatelliteRegistry): Promise<void>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { RAW_TARGET } from './raw-target.js';
|
|
2
|
+
import type { SatelliteSpec } from './types.js';
|
|
3
|
+
import type { SatelliteRegistry } from './registry.js';
|
|
4
|
+
export { RAW_TARGET };
|
|
5
|
+
/**
|
|
6
|
+
* Correlates a collection handle's `list()` output with the ids implied by
|
|
7
|
+
* cache-insertion order — `list()` returns bare records (no `id` field
|
|
8
|
+
* unless the caller put one), so ids are recovered positionally against the
|
|
9
|
+
* cache's own key order instead. Read AFTER `target.list()` resolves, so a
|
|
10
|
+
* not-yet-hydrated cache on the first read doesn't race a still-empty key
|
|
11
|
+
* snapshot. Invariant: `list()` must preserve cache-insertion order
|
|
12
|
+
* (collection.ts `list()` maps `[...cache.values()]`) — positional
|
|
13
|
+
* correlation depends on it. Drops any record whose position has no
|
|
14
|
+
* corresponding cache key (should not happen in practice; defensive only).
|
|
15
|
+
* Exported so `joined.ts` (#591, Task 7) can get the same [id, record]
|
|
16
|
+
* correlation for the base side without duplicating this logic.
|
|
17
|
+
*/
|
|
18
|
+
export declare function listWithIds(target: any): Promise<Array<[string, unknown]>>;
|
|
19
|
+
/**
|
|
20
|
+
* Wraps a satellite's real `Collection<T>` in a `Proxy` that enforces
|
|
21
|
+
* existence authority (spec § Convergence & existence authority, rule 1)
|
|
22
|
+
* and R-S6 on top of it. Every member not explicitly overridden below
|
|
23
|
+
* falls through to the real collection unchanged — this is why the full
|
|
24
|
+
* ~50-member surface (describe, count, putMany, …) survives without
|
|
25
|
+
* hand-stubbing. Caches nothing: every call re-checks live base state.
|
|
26
|
+
*/
|
|
27
|
+
export declare function makeSatelliteProxy(target: any, spec: SatelliteSpec, registry: SatelliteRegistry): any;
|
|
28
|
+
/**
|
|
29
|
+
* Wraps a satellite's BASE collection in a `Proxy` whose overrides are
|
|
30
|
+
* `delete` and `deleteMany` — both routed through `pairDelete` (this task) so
|
|
31
|
+
* removing a base record also removes its satellite row, in order, with
|
|
32
|
+
* revert-on-failure. `satellite()` is a thunk, not a resolved handle: at the
|
|
33
|
+
* moment a base is first requested the paired satellite may not exist yet in
|
|
34
|
+
* some call orders, and `fanout.ts` re-resolves + unwraps it lazily per call
|
|
35
|
+
* anyway.
|
|
36
|
+
*/
|
|
37
|
+
export declare function makeBaseProxy(target: any, spec: SatelliteSpec, registry: SatelliteRegistry, satellite: () => unknown): any;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escape hatch: `proxied[RAW_TARGET]` returns the unwrapped collection — no
|
|
3
|
+
* existence check, no pair lock, no fan-out. Needed by callers (`fanout.ts`,
|
|
4
|
+
* a proxy's own internals) that already hold the pair mutex themselves;
|
|
5
|
+
* going back through a proxy's `put`/`delete` would re-enter
|
|
6
|
+
* `registry.withPairLock` on the same base and deadlock (non-reentrant —
|
|
7
|
+
* see `registry.ts:withPairLock`) or recurse forever (the base proxy's
|
|
8
|
+
* `delete` calls `pairDelete`, which must not call back into it).
|
|
9
|
+
*
|
|
10
|
+
* Lives in its own module (not `proxy.ts`) so `fanout.ts` can import it
|
|
11
|
+
* without creating a `proxy.ts` ⇄ `fanout.ts` import cycle — `proxy.ts`
|
|
12
|
+
* imports `pairDelete` from `fanout.ts` for `makeBaseProxy`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const RAW_TARGET: unique symbol;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SatelliteSpec } from './types.js';
|
|
2
|
+
export declare class SatelliteRegistry {
|
|
3
|
+
private readonly byBase;
|
|
4
|
+
private readonly bySat;
|
|
5
|
+
private readonly byJoin;
|
|
6
|
+
private readonly poisoned;
|
|
7
|
+
private readonly locks;
|
|
8
|
+
register(spec: SatelliteSpec): void;
|
|
9
|
+
satelliteOf(base: string): SatelliteSpec | null;
|
|
10
|
+
bySatellite(name: string): SatelliteSpec | null;
|
|
11
|
+
byJoined(name: string): SatelliteSpec | null;
|
|
12
|
+
isPairMember(name: string): boolean;
|
|
13
|
+
allSpecs(): readonly SatelliteSpec[];
|
|
14
|
+
expandNames(names: readonly string[]): string[];
|
|
15
|
+
poison(satellite: string, reason: string): void;
|
|
16
|
+
assertNotPoisoned(satellite: string): void;
|
|
17
|
+
/** Per-base async mutex: chains sections on a stored promise tail. */
|
|
18
|
+
withPairLock<R>(base: string, fn: () => Promise<R>): Promise<R>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CollectionDescription } from '../introspection/describe.js';
|
|
2
|
+
/** One base↔satellite pair. v1: exactly one satellite per base. */
|
|
3
|
+
export interface SatelliteSpec {
|
|
4
|
+
readonly base: string;
|
|
5
|
+
readonly satellite: string;
|
|
6
|
+
readonly fields: readonly string[];
|
|
7
|
+
readonly joined?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
/** Persisted into `_schemas/<satellite>` under `x-satellite` (R-S9 drift guard). */
|
|
10
|
+
export interface PairingMarker {
|
|
11
|
+
readonly base: string;
|
|
12
|
+
readonly fieldsHash: string;
|
|
13
|
+
readonly joined?: string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Lifetime epoch (#597) — an opaque, stable-per-collection-lifetime stamp
|
|
16
|
+
* minted the first time this marker is persisted and carried forward
|
|
17
|
+
* unchanged by every later re-declare of the SAME collection. Optional:
|
|
18
|
+
* markers persisted before this field existed have none. Deliberately
|
|
19
|
+
* excluded from `satelliteMarkersEqual` — see that function's comment.
|
|
20
|
+
* ADDITIVE ONLY today: there is no delete-collection API, so a stale
|
|
21
|
+
* marker on a reused name is unreachable; the epoch-MISMATCH rejection
|
|
22
|
+
* this would enable is a deferred follow-up once name reuse is possible.
|
|
23
|
+
*/
|
|
24
|
+
readonly epoch?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The full-record handle — deliberately NARROW (spec § The model): never a
|
|
28
|
+
* `Collection<T>` cast. `describe()` works (the @noy-db/ui contract);
|
|
29
|
+
* reactive APIs are absent from the type entirely.
|
|
30
|
+
*/
|
|
31
|
+
export interface JoinedHandle<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
32
|
+
get(id: string): Promise<T | null>;
|
|
33
|
+
put(id: string, record: T): Promise<void>;
|
|
34
|
+
delete(id: string): Promise<void>;
|
|
35
|
+
list(): Promise<T[]>;
|
|
36
|
+
describe(): Promise<CollectionDescription>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SatelliteSpec } from './types.js';
|
|
2
|
+
export interface SatelliteDeclarationInput {
|
|
3
|
+
readonly satellite: string;
|
|
4
|
+
readonly satelliteOf: string;
|
|
5
|
+
readonly fields: readonly string[] | undefined;
|
|
6
|
+
readonly joined?: string | undefined;
|
|
7
|
+
/** True when the named base is itself registered as a satellite (R-S3). */
|
|
8
|
+
readonly baseIsSatellite: boolean;
|
|
9
|
+
/** True when the declaring collection (or its base) sets crdtMode (R-S8). */
|
|
10
|
+
readonly crdtMode: boolean;
|
|
11
|
+
/** True when `joined` names an already-declared plain (non-pair) collection (R-S5). */
|
|
12
|
+
readonly joinedCollidesWithCollection: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** Sync declaration refusals R-S3/R-S5/R-S8. Async cross-checks live in registry.ts. */
|
|
15
|
+
export declare function validateSatelliteDeclaration(input: SatelliteDeclarationInput): SatelliteSpec;
|
|
16
|
+
/** Order-insensitive stable hash of the fields list (FNV-1a over the sorted, joined names). */
|
|
17
|
+
export declare function hashFields(fields: readonly string[]): string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema-cutover client registry. Each client keeps a
|
|
3
|
+
* heartbeat doc at `_meta/schema-fence:client:<clientId>` carrying its
|
|
4
|
+
* liveness (`lastSeen`) and the fence generation it has quiesced for
|
|
5
|
+
* (`quiescedAtVersion`). Plaintext envelope, like the fence doc.
|
|
6
|
+
*/
|
|
7
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
8
|
+
export interface ClientDoc {
|
|
9
|
+
readonly clientId: string;
|
|
10
|
+
readonly lastSeen: number;
|
|
11
|
+
readonly quiescedAtVersion: number | null;
|
|
12
|
+
/**
|
|
13
|
+
* Session that owns this writer (one user's writers across vaults). Additive
|
|
14
|
+
* and optional so legacy client docs (written without it) keep parsing;
|
|
15
|
+
* readers default it.
|
|
16
|
+
*/
|
|
17
|
+
readonly sessionId?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function writeClientDoc(store: NoydbStore, vault: string, clientId: string, doc: {
|
|
20
|
+
lastSeen: number;
|
|
21
|
+
quiescedAtVersion: number | null;
|
|
22
|
+
sessionId?: string;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export declare function listClientDocs(store: NoydbStore, vault: string): Promise<ClientDoc[]>;
|
|
25
|
+
/**
|
|
26
|
+
* True when every *active* client (lastSeen within staleMs of now) has
|
|
27
|
+
* `quiescedAtVersion === generation`. Stale clients are ignored. An empty
|
|
28
|
+
* active set is vacuously quiesced.
|
|
29
|
+
*/
|
|
30
|
+
export declare function activeQuiesced(store: NoydbStore, vault: string, opts: {
|
|
31
|
+
generation: number;
|
|
32
|
+
now: number;
|
|
33
|
+
staleMs: number;
|
|
34
|
+
excludeClientId?: string;
|
|
35
|
+
}): Promise<boolean>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Ordered strategy evaluation: first non-`allow` decision wins. */
|
|
2
|
+
import type { SchemaDelta, SchemaUpdateStrategy, UpdateContext, UpdateDecision } from './types.js';
|
|
3
|
+
export declare function evaluateStrategies(delta: SchemaDelta, strategies: readonly SchemaUpdateStrategy[], ctx: UpdateContext): Promise<UpdateDecision>;
|