@optimystic/db-core 0.14.1 → 0.16.3
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/src/blocks/block-store.d.ts +18 -1
- package/dist/src/blocks/block-store.d.ts.map +1 -1
- package/dist/src/blocks/helpers.d.ts +2 -2
- package/dist/src/blocks/helpers.d.ts.map +1 -1
- package/dist/src/blocks/helpers.js +2 -2
- package/dist/src/blocks/helpers.js.map +1 -1
- package/dist/src/btree/btree.d.ts +27 -6
- package/dist/src/btree/btree.d.ts.map +1 -1
- package/dist/src/btree/btree.js +104 -61
- package/dist/src/btree/btree.js.map +1 -1
- package/dist/src/chain/chain.d.ts.map +1 -1
- package/dist/src/chain/chain.js +11 -1
- package/dist/src/chain/chain.js.map +1 -1
- package/dist/src/cluster/index.d.ts +1 -0
- package/dist/src/cluster/index.d.ts.map +1 -1
- package/dist/src/cluster/index.js +1 -0
- package/dist/src/cluster/index.js.map +1 -1
- package/dist/src/cluster/membership.d.ts +49 -0
- package/dist/src/cluster/membership.d.ts.map +1 -0
- package/dist/src/cluster/membership.js +75 -0
- package/dist/src/cluster/membership.js.map +1 -0
- package/dist/src/cluster/structs.d.ts +50 -1
- package/dist/src/cluster/structs.d.ts.map +1 -1
- package/dist/src/cluster/structs.js +9 -1
- package/dist/src/cluster/structs.js.map +1 -1
- package/dist/src/cohort-topic/addressing.d.ts +8 -2
- package/dist/src/cohort-topic/addressing.d.ts.map +1 -1
- package/dist/src/cohort-topic/addressing.js +11 -3
- package/dist/src/cohort-topic/addressing.js.map +1 -1
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.d.ts +13 -7
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.d.ts.map +1 -1
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.js +17 -6
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.js.map +1 -1
- package/dist/src/cohort-topic/antidos/replay-guard.d.ts +17 -0
- package/dist/src/cohort-topic/antidos/replay-guard.d.ts.map +1 -1
- package/dist/src/cohort-topic/antidos/replay-guard.js +33 -0
- package/dist/src/cohort-topic/antidos/replay-guard.js.map +1 -1
- package/dist/src/cohort-topic/antidos/topic-budget.d.ts +7 -0
- package/dist/src/cohort-topic/antidos/topic-budget.d.ts.map +1 -1
- package/dist/src/cohort-topic/antidos/topic-budget.js +8 -2
- package/dist/src/cohort-topic/antidos/topic-budget.js.map +1 -1
- package/dist/src/cohort-topic/coldstart.d.ts +34 -14
- package/dist/src/cohort-topic/coldstart.d.ts.map +1 -1
- package/dist/src/cohort-topic/coldstart.js +25 -11
- package/dist/src/cohort-topic/coldstart.js.map +1 -1
- package/dist/src/cohort-topic/gossip/bus.d.ts +12 -1
- package/dist/src/cohort-topic/gossip/bus.d.ts.map +1 -1
- package/dist/src/cohort-topic/gossip/bus.js +27 -1
- package/dist/src/cohort-topic/gossip/bus.js.map +1 -1
- package/dist/src/cohort-topic/gossip/view.d.ts +8 -0
- package/dist/src/cohort-topic/gossip/view.d.ts.map +1 -1
- package/dist/src/cohort-topic/gossip/view.js +17 -1
- package/dist/src/cohort-topic/gossip/view.js.map +1 -1
- package/dist/src/cohort-topic/member-engine.d.ts +10 -3
- package/dist/src/cohort-topic/member-engine.d.ts.map +1 -1
- package/dist/src/cohort-topic/member-engine.js +29 -14
- package/dist/src/cohort-topic/member-engine.js.map +1 -1
- package/dist/src/cohort-topic/membership/publisher.d.ts +14 -7
- package/dist/src/cohort-topic/membership/publisher.d.ts.map +1 -1
- package/dist/src/cohort-topic/membership/publisher.js +15 -27
- package/dist/src/cohort-topic/membership/publisher.js.map +1 -1
- package/dist/src/cohort-topic/membership/verifier.d.ts +35 -0
- package/dist/src/cohort-topic/membership/verifier.d.ts.map +1 -1
- package/dist/src/cohort-topic/membership/verifier.js +88 -3
- package/dist/src/cohort-topic/membership/verifier.js.map +1 -1
- package/dist/src/cohort-topic/promotion.d.ts +7 -0
- package/dist/src/cohort-topic/promotion.d.ts.map +1 -1
- package/dist/src/cohort-topic/promotion.js +16 -2
- package/dist/src/cohort-topic/promotion.js.map +1 -1
- package/dist/src/cohort-topic/registration/renewal.d.ts +18 -0
- package/dist/src/cohort-topic/registration/renewal.d.ts.map +1 -1
- package/dist/src/cohort-topic/registration/renewal.js +54 -0
- package/dist/src/cohort-topic/registration/renewal.js.map +1 -1
- package/dist/src/cohort-topic/registration/types.d.ts +12 -0
- package/dist/src/cohort-topic/registration/types.d.ts.map +1 -1
- package/dist/src/cohort-topic/registration/types.js +14 -0
- package/dist/src/cohort-topic/registration/types.js.map +1 -1
- package/dist/src/cohort-topic/service.d.ts +4 -3
- package/dist/src/cohort-topic/service.d.ts.map +1 -1
- package/dist/src/cohort-topic/service.js +38 -12
- package/dist/src/cohort-topic/service.js.map +1 -1
- package/dist/src/cohort-topic/sig/payloads.d.ts +23 -7
- package/dist/src/cohort-topic/sig/payloads.d.ts.map +1 -1
- package/dist/src/cohort-topic/sig/payloads.js +22 -6
- package/dist/src/cohort-topic/sig/payloads.js.map +1 -1
- package/dist/src/cohort-topic/traffic.d.ts +6 -0
- package/dist/src/cohort-topic/traffic.d.ts.map +1 -1
- package/dist/src/cohort-topic/traffic.js +16 -1
- package/dist/src/cohort-topic/traffic.js.map +1 -1
- package/dist/src/cohort-topic/walk.d.ts +22 -7
- package/dist/src/cohort-topic/walk.d.ts.map +1 -1
- package/dist/src/cohort-topic/walk.js +78 -18
- package/dist/src/cohort-topic/walk.js.map +1 -1
- package/dist/src/cohort-topic/wire/codec.d.ts +3 -1
- package/dist/src/cohort-topic/wire/codec.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/codec.js +7 -1
- package/dist/src/cohort-topic/wire/codec.js.map +1 -1
- package/dist/src/cohort-topic/wire/index.d.ts +1 -1
- package/dist/src/cohort-topic/wire/index.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/index.js +1 -1
- package/dist/src/cohort-topic/wire/index.js.map +1 -1
- package/dist/src/cohort-topic/wire/payloads.d.ts +5 -4
- package/dist/src/cohort-topic/wire/payloads.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/payloads.js +14 -5
- package/dist/src/cohort-topic/wire/payloads.js.map +1 -1
- package/dist/src/cohort-topic/wire/primitives.d.ts +65 -0
- package/dist/src/cohort-topic/wire/primitives.d.ts.map +1 -0
- package/dist/src/cohort-topic/wire/primitives.js +173 -0
- package/dist/src/cohort-topic/wire/primitives.js.map +1 -0
- package/dist/src/cohort-topic/wire/types.d.ts +132 -5
- package/dist/src/cohort-topic/wire/types.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/validate.d.ts +15 -5
- package/dist/src/cohort-topic/wire/validate.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/validate.js +146 -123
- package/dist/src/cohort-topic/wire/validate.js.map +1 -1
- package/dist/src/collection/collection.d.ts +23 -12
- package/dist/src/collection/collection.d.ts.map +1 -1
- package/dist/src/collection/collection.js +111 -35
- package/dist/src/collection/collection.js.map +1 -1
- package/dist/src/collection/struct.d.ts +37 -2
- package/dist/src/collection/struct.d.ts.map +1 -1
- package/dist/src/collection/struct.js +16 -1
- package/dist/src/collection/struct.js.map +1 -1
- package/dist/src/collections/tree/tree.d.ts +18 -1
- package/dist/src/collections/tree/tree.d.ts.map +1 -1
- package/dist/src/collections/tree/tree.js +36 -6
- package/dist/src/collections/tree/tree.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/log/log.d.ts +26 -3
- package/dist/src/log/log.d.ts.map +1 -1
- package/dist/src/log/log.js +34 -7
- package/dist/src/log/log.js.map +1 -1
- package/dist/src/log/struct.d.ts +5 -4
- package/dist/src/log/struct.d.ts.map +1 -1
- package/dist/src/log/struct.js.map +1 -1
- package/dist/src/matchmaking/wire.d.ts +2 -1
- package/dist/src/matchmaking/wire.d.ts.map +1 -1
- package/dist/src/matchmaking/wire.js +13 -92
- package/dist/src/matchmaking/wire.js.map +1 -1
- package/dist/src/network/i-key-network.d.ts +9 -0
- package/dist/src/network/i-key-network.d.ts.map +1 -1
- package/dist/src/network/i-repo.d.ts +8 -0
- package/dist/src/network/i-repo.d.ts.map +1 -1
- package/dist/src/network/struct.d.ts +10 -0
- package/dist/src/network/struct.d.ts.map +1 -1
- package/dist/src/reactivity/push-state.d.ts.map +1 -1
- package/dist/src/reactivity/push-state.js +4 -33
- package/dist/src/reactivity/push-state.js.map +1 -1
- package/dist/src/reactivity/wire-validate.d.ts +7 -22
- package/dist/src/reactivity/wire-validate.d.ts.map +1 -1
- package/dist/src/reactivity/wire-validate.js +7 -73
- package/dist/src/reactivity/wire-validate.js.map +1 -1
- package/dist/src/reactivity/wire.js +3 -3
- package/dist/src/reactivity/wire.js.map +1 -1
- package/dist/src/testing/async-wait.d.ts +23 -0
- package/dist/src/testing/async-wait.d.ts.map +1 -0
- package/dist/src/testing/async-wait.js +42 -0
- package/dist/src/testing/async-wait.js.map +1 -0
- package/dist/src/testing/index.d.ts +3 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +3 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/test-transactor.d.ts +44 -0
- package/dist/src/testing/test-transactor.d.ts.map +1 -0
- package/dist/src/testing/test-transactor.js +423 -0
- package/dist/src/testing/test-transactor.js.map +1 -0
- package/dist/src/transaction/actions-engine.d.ts +6 -3
- package/dist/src/transaction/actions-engine.d.ts.map +1 -1
- package/dist/src/transaction/actions-engine.js +8 -7
- package/dist/src/transaction/actions-engine.js.map +1 -1
- package/dist/src/transaction/coordinator.d.ts +43 -22
- package/dist/src/transaction/coordinator.d.ts.map +1 -1
- package/dist/src/transaction/coordinator.js +443 -178
- package/dist/src/transaction/coordinator.js.map +1 -1
- package/dist/src/transaction/errors.d.ts +82 -0
- package/dist/src/transaction/errors.d.ts.map +1 -0
- package/dist/src/transaction/errors.js +93 -0
- package/dist/src/transaction/errors.js.map +1 -0
- package/dist/src/transaction/index.d.ts +6 -3
- package/dist/src/transaction/index.d.ts.map +1 -1
- package/dist/src/transaction/index.js +4 -2
- package/dist/src/transaction/index.js.map +1 -1
- package/dist/src/transaction/operations-hash.d.ts +119 -0
- package/dist/src/transaction/operations-hash.d.ts.map +1 -0
- package/dist/src/transaction/operations-hash.js +180 -0
- package/dist/src/transaction/operations-hash.js.map +1 -0
- package/dist/src/transaction/read-dependency-collector.d.ts +43 -0
- package/dist/src/transaction/read-dependency-collector.d.ts.map +1 -0
- package/dist/src/transaction/read-dependency-collector.js +69 -0
- package/dist/src/transaction/read-dependency-collector.js.map +1 -0
- package/dist/src/transaction/session.d.ts +12 -3
- package/dist/src/transaction/session.d.ts.map +1 -1
- package/dist/src/transaction/session.js +35 -9
- package/dist/src/transaction/session.js.map +1 -1
- package/dist/src/transaction/transaction.d.ts +162 -1
- package/dist/src/transaction/transaction.d.ts.map +1 -1
- package/dist/src/transaction/transaction.js +85 -3
- package/dist/src/transaction/transaction.js.map +1 -1
- package/dist/src/transaction/validator.d.ts +3 -11
- package/dist/src/transaction/validator.d.ts.map +1 -1
- package/dist/src/transaction/validator.js +69 -28
- package/dist/src/transaction/validator.js.map +1 -1
- package/dist/src/transactor/network-transactor.d.ts +35 -0
- package/dist/src/transactor/network-transactor.d.ts.map +1 -1
- package/dist/src/transactor/network-transactor.js +146 -40
- package/dist/src/transactor/network-transactor.js.map +1 -1
- package/dist/src/transactor/transactor-source.d.ts +19 -5
- package/dist/src/transactor/transactor-source.d.ts.map +1 -1
- package/dist/src/transactor/transactor-source.js +43 -11
- package/dist/src/transactor/transactor-source.js.map +1 -1
- package/dist/src/transform/atomic-proxy.d.ts +35 -5
- package/dist/src/transform/atomic-proxy.d.ts.map +1 -1
- package/dist/src/transform/atomic-proxy.js +39 -7
- package/dist/src/transform/atomic-proxy.js.map +1 -1
- package/dist/src/transform/cache-source.d.ts +36 -5
- package/dist/src/transform/cache-source.d.ts.map +1 -1
- package/dist/src/transform/cache-source.js +84 -8
- package/dist/src/transform/cache-source.js.map +1 -1
- package/dist/src/transform/helpers.d.ts.map +1 -1
- package/dist/src/transform/helpers.js +8 -2
- package/dist/src/transform/helpers.js.map +1 -1
- package/dist/src/transform/tracker.d.ts +17 -2
- package/dist/src/transform/tracker.d.ts.map +1 -1
- package/dist/src/transform/tracker.js +66 -11
- package/dist/src/transform/tracker.js.map +1 -1
- package/dist/src/utility/backoff.d.ts +48 -0
- package/dist/src/utility/backoff.d.ts.map +1 -0
- package/dist/src/utility/backoff.js +60 -0
- package/dist/src/utility/backoff.js.map +1 -0
- package/dist/src/utility/pending.d.ts +1 -0
- package/dist/src/utility/pending.d.ts.map +1 -1
- package/dist/src/utility/pending.js +3 -1
- package/dist/src/utility/pending.js.map +1 -1
- package/package.json +4 -4
- package/src/blocks/block-store.ts +19 -1
- package/src/blocks/helpers.ts +3 -3
- package/src/btree/btree.ts +108 -63
- package/src/chain/chain.ts +11 -1
- package/src/cluster/index.ts +1 -0
- package/src/cluster/membership.ts +85 -0
- package/src/cluster/structs.ts +51 -1
- package/src/cohort-topic/addressing.ts +12 -4
- package/src/cohort-topic/antidos/bootstrap-evidence.ts +21 -9
- package/src/cohort-topic/antidos/replay-guard.ts +37 -0
- package/src/cohort-topic/antidos/topic-budget.ts +17 -2
- package/src/cohort-topic/coldstart.ts +48 -15
- package/src/cohort-topic/gossip/bus.ts +39 -2
- package/src/cohort-topic/gossip/view.ts +26 -1
- package/src/cohort-topic/member-engine.ts +36 -15
- package/src/cohort-topic/membership/publisher.ts +25 -33
- package/src/cohort-topic/membership/verifier.ts +119 -3
- package/src/cohort-topic/promotion.ts +23 -2
- package/src/cohort-topic/registration/renewal.ts +73 -1
- package/src/cohort-topic/registration/types.ts +15 -0
- package/src/cohort-topic/service.ts +41 -15
- package/src/cohort-topic/sig/payloads.ts +29 -9
- package/src/cohort-topic/traffic.ts +23 -1
- package/src/cohort-topic/walk.ts +95 -24
- package/src/cohort-topic/wire/codec.ts +12 -0
- package/src/cohort-topic/wire/index.ts +2 -0
- package/src/cohort-topic/wire/payloads.ts +14 -5
- package/src/cohort-topic/wire/primitives.ts +188 -0
- package/src/cohort-topic/wire/types.ts +136 -4
- package/src/cohort-topic/wire/validate.ts +168 -134
- package/src/collection/collection.ts +123 -40
- package/src/collection/struct.ts +44 -2
- package/src/collections/tree/tree.ts +42 -5
- package/src/index.ts +1 -0
- package/src/log/log.ts +37 -9
- package/src/log/struct.ts +5 -4
- package/src/matchmaking/wire.ts +25 -102
- package/src/network/i-key-network.ts +10 -0
- package/src/network/i-repo.ts +8 -0
- package/src/network/struct.ts +10 -0
- package/src/reactivity/push-state.ts +4 -37
- package/src/reactivity/wire-validate.ts +7 -81
- package/src/reactivity/wire.ts +3 -3
- package/src/testing/async-wait.ts +65 -0
- package/src/testing/index.ts +2 -0
- package/src/testing/test-transactor.ts +468 -0
- package/src/transaction/actions-engine.ts +8 -6
- package/src/transaction/coordinator.ts +498 -229
- package/src/transaction/errors.ts +91 -0
- package/src/transaction/index.ts +23 -3
- package/src/transaction/operations-hash.ts +196 -0
- package/src/transaction/read-dependency-collector.ts +78 -0
- package/src/transaction/session.ts +37 -9
- package/src/transaction/transaction.ts +211 -4
- package/src/transaction/validator.ts +73 -48
- package/src/transactor/network-transactor.ts +164 -49
- package/src/transactor/transactor-source.ts +47 -12
- package/src/transform/atomic-proxy.ts +92 -49
- package/src/transform/cache-source.ts +87 -9
- package/src/transform/helpers.ts +8 -2
- package/src/transform/tracker.ts +69 -11
- package/src/utility/backoff.ts +95 -0
- package/src/utility/pending.ts +3 -1
- package/src/transaction/context.ts +0 -103
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-state.js","sourceRoot":"","sources":["../../../src/reactivity/push-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAClJ,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"push-state.js","sourceRoot":"","sources":["../../../src/reactivity/push-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,27 +2,12 @@
|
|
|
2
2
|
* Reactivity — shared wire-validation primitives.
|
|
3
3
|
*
|
|
4
4
|
* The reactivity message codecs ({@link import("./wire.js")}, {@link import("./push-state.js")},
|
|
5
|
-
* {@link import("./backfill.js")}, {@link import("./resume.js")}
|
|
6
|
-
* validated V1 shapes with the same structural checks
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* {@link import("./backfill.js")}, {@link import("./resume.js")}, plus checkpoint / rotation / recover)
|
|
6
|
+
* decode untrusted JSON into validated V1 shapes with the same structural checks the rest of the
|
|
7
|
+
* substrate uses. Those generic primitives now live in one place —
|
|
8
|
+
* {@link import("../cohort-topic/wire/primitives.js")} — so a hardening tweak lands once; this module is
|
|
9
|
+
* a thin re-export kept so the reactivity codecs import from a sibling path. Every helper throws
|
|
10
|
+
* {@link CohortWireError} on a defect (base64url byte fields, finite/integer numbers, `v: 1`).
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
export declare function failWire(message: string): never;
|
|
12
|
-
/** Narrow `value` to a plain object (not null, not an array), or throw. */
|
|
13
|
-
export declare function asObject(value: unknown, what: string): Record<string, unknown>;
|
|
14
|
-
/** Require `obj.v === 1`. */
|
|
15
|
-
export declare function requireV1(obj: Record<string, unknown>, what: string): void;
|
|
16
|
-
/** Require `obj[key]` to be a string; returns it. */
|
|
17
|
-
export declare function reqString(obj: Record<string, unknown>, key: string, what: string): string;
|
|
18
|
-
/** Require `obj[key]` to be a boolean; returns it. */
|
|
19
|
-
export declare function reqBoolean(obj: Record<string, unknown>, key: string, what: string): boolean;
|
|
20
|
-
/** Require `obj[key]` to be a finite number; returns it. */
|
|
21
|
-
export declare function reqFiniteNumber(obj: Record<string, unknown>, key: string, what: string): number;
|
|
22
|
-
/** Require `obj[key]` to be an integer `>= min` (and `<= max` when supplied); returns it. */
|
|
23
|
-
export declare function reqIntInRange(obj: Record<string, unknown>, key: string, what: string, min: number, max?: number): number;
|
|
24
|
-
/** Assert a base64url string decodes cleanly; returns it unchanged. */
|
|
25
|
-
export declare function b64urlField(value: string, key: string, what: string): string;
|
|
26
|
-
/** Require `value` to be an array of strings; returns it (callers map each element through {@link b64urlField}). */
|
|
27
|
-
export declare function reqStringArray(value: unknown, key: string, what: string): string[];
|
|
12
|
+
export * from "../cohort-topic/wire/primitives.js";
|
|
28
13
|
//# sourceMappingURL=wire-validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-validate.d.ts","sourceRoot":"","sources":["../../../src/reactivity/wire-validate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wire-validate.d.ts","sourceRoot":"","sources":["../../../src/reactivity/wire-validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,oCAAoC,CAAC"}
|
|
@@ -2,78 +2,12 @@
|
|
|
2
2
|
* Reactivity — shared wire-validation primitives.
|
|
3
3
|
*
|
|
4
4
|
* The reactivity message codecs ({@link import("./wire.js")}, {@link import("./push-state.js")},
|
|
5
|
-
* {@link import("./backfill.js")}, {@link import("./resume.js")}
|
|
6
|
-
* validated V1 shapes with the same structural checks
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* {@link import("./backfill.js")}, {@link import("./resume.js")}, plus checkpoint / rotation / recover)
|
|
6
|
+
* decode untrusted JSON into validated V1 shapes with the same structural checks the rest of the
|
|
7
|
+
* substrate uses. Those generic primitives now live in one place —
|
|
8
|
+
* {@link import("../cohort-topic/wire/primitives.js")} — so a hardening tweak lands once; this module is
|
|
9
|
+
* a thin re-export kept so the reactivity codecs import from a sibling path. Every helper throws
|
|
10
|
+
* {@link CohortWireError} on a defect (base64url byte fields, finite/integer numbers, `v: 1`).
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
import { CohortWireError } from "../cohort-topic/wire/validate.js";
|
|
12
|
-
/** Throw a {@link CohortWireError} with `message`. */
|
|
13
|
-
export function failWire(message) {
|
|
14
|
-
throw new CohortWireError(message);
|
|
15
|
-
}
|
|
16
|
-
/** Narrow `value` to a plain object (not null, not an array), or throw. */
|
|
17
|
-
export function asObject(value, what) {
|
|
18
|
-
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
19
|
-
failWire(`${what}: expected an object`);
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
}
|
|
23
|
-
/** Require `obj.v === 1`. */
|
|
24
|
-
export function requireV1(obj, what) {
|
|
25
|
-
if (obj["v"] !== 1) {
|
|
26
|
-
failWire(`${what}: expected v === 1, got ${JSON.stringify(obj["v"])}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/** Require `obj[key]` to be a string; returns it. */
|
|
30
|
-
export function reqString(obj, key, what) {
|
|
31
|
-
const value = obj[key];
|
|
32
|
-
if (typeof value !== "string") {
|
|
33
|
-
failWire(`${what}: field "${key}" must be a string`);
|
|
34
|
-
}
|
|
35
|
-
return value;
|
|
36
|
-
}
|
|
37
|
-
/** Require `obj[key]` to be a boolean; returns it. */
|
|
38
|
-
export function reqBoolean(obj, key, what) {
|
|
39
|
-
const value = obj[key];
|
|
40
|
-
if (typeof value !== "boolean") {
|
|
41
|
-
failWire(`${what}: field "${key}" must be a boolean`);
|
|
42
|
-
}
|
|
43
|
-
return value;
|
|
44
|
-
}
|
|
45
|
-
/** Require `obj[key]` to be a finite number; returns it. */
|
|
46
|
-
export function reqFiniteNumber(obj, key, what) {
|
|
47
|
-
const value = obj[key];
|
|
48
|
-
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
49
|
-
failWire(`${what}: field "${key}" must be a finite number`);
|
|
50
|
-
}
|
|
51
|
-
return value;
|
|
52
|
-
}
|
|
53
|
-
/** Require `obj[key]` to be an integer `>= min` (and `<= max` when supplied); returns it. */
|
|
54
|
-
export function reqIntInRange(obj, key, what, min, max) {
|
|
55
|
-
const value = reqFiniteNumber(obj, key, what);
|
|
56
|
-
if (!Number.isInteger(value) || value < min || (max !== undefined && value > max)) {
|
|
57
|
-
const bound = max === undefined ? `>= ${min}` : `in ${min}..${max}`;
|
|
58
|
-
failWire(`${what}: field "${key}" must be an integer ${bound}, got ${value}`);
|
|
59
|
-
}
|
|
60
|
-
return value;
|
|
61
|
-
}
|
|
62
|
-
/** Assert a base64url string decodes cleanly; returns it unchanged. */
|
|
63
|
-
export function b64urlField(value, key, what) {
|
|
64
|
-
try {
|
|
65
|
-
b64urlToBytes(value);
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
failWire(`${what}: field "${key}" is not valid base64url`);
|
|
69
|
-
}
|
|
70
|
-
return value;
|
|
71
|
-
}
|
|
72
|
-
/** Require `value` to be an array of strings; returns it (callers map each element through {@link b64urlField}). */
|
|
73
|
-
export function reqStringArray(value, key, what) {
|
|
74
|
-
if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string")) {
|
|
75
|
-
failWire(`${what}: field "${key}" must be an array of strings`);
|
|
76
|
-
}
|
|
77
|
-
return value;
|
|
78
|
-
}
|
|
12
|
+
export * from "../cohort-topic/wire/primitives.js";
|
|
79
13
|
//# sourceMappingURL=wire-validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-validate.js","sourceRoot":"","sources":["../../../src/reactivity/wire-validate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wire-validate.js","sourceRoot":"","sources":["../../../src/reactivity/wire-validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,oCAAoC,CAAC"}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* base64url block ids verbatim. The `BackfillV1` / `ResumeV1` codecs belong to the sibling tickets.
|
|
23
23
|
*/
|
|
24
24
|
import { decodeCohortMessage, encodeCohortMessage, DEFAULT_MAX_MESSAGE_BYTES, } from "../cohort-topic/wire/codec.js";
|
|
25
|
-
import { asObject, b64urlField, failWire as fail,
|
|
25
|
+
import { asObject, b64urlField, failWire as fail, reqBool, reqFiniteNumber, reqIntInRange, reqString, reqStringArray, requireV1, } from "./wire-validate.js";
|
|
26
26
|
const utf8Encoder = new TextEncoder();
|
|
27
27
|
const utf8Decoder = new TextDecoder("utf-8", { fatal: true });
|
|
28
28
|
/** Ceiling for an opaque subscribe app payload, guarding decode allocation. */
|
|
@@ -86,7 +86,7 @@ export function validateNotificationV1(value) {
|
|
|
86
86
|
const what = "NotificationV1";
|
|
87
87
|
const obj = asObject(value, what);
|
|
88
88
|
requireV1(obj, what);
|
|
89
|
-
const signers = reqStringArray(obj
|
|
89
|
+
const signers = reqStringArray(obj, "signers", what);
|
|
90
90
|
const out = {
|
|
91
91
|
v: 1,
|
|
92
92
|
collectionId: b64urlField(reqString(obj, "collectionId", what), "collectionId", what),
|
|
@@ -104,7 +104,7 @@ export function validateNotificationV1(value) {
|
|
|
104
104
|
out.rotationHint = validateRotationHint(obj["rotationHint"], `${what}.rotationHint`);
|
|
105
105
|
}
|
|
106
106
|
if (obj["invalidation"] !== undefined) {
|
|
107
|
-
out.invalidation =
|
|
107
|
+
out.invalidation = reqBool(obj, "invalidation", what);
|
|
108
108
|
}
|
|
109
109
|
if (obj["invalidatedActionId"] !== undefined) {
|
|
110
110
|
out.invalidatedActionId = reqString(obj, "invalidatedActionId", what);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/reactivity/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,IAAI,IAAI,EAChB,
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/reactivity/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface WaitForOptions {
|
|
2
|
+
/** Upper bound before the poll gives up. Default 2_000. */
|
|
3
|
+
timeoutMs?: number;
|
|
4
|
+
/** Poll cadence. Default 10. */
|
|
5
|
+
intervalMs?: number;
|
|
6
|
+
/** Included in the thrown message so a failure says WHAT never became true. */
|
|
7
|
+
description?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Real-time sleep. Retain ONLY for residual cases a condition poll cannot cover. */
|
|
10
|
+
export declare const delay: (ms: number) => Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Poll `predicate` until it returns true or `timeoutMs` elapses; throws on timeout.
|
|
13
|
+
* `predicate` may be sync or async; a thrown/rejected predicate propagates immediately.
|
|
14
|
+
* `undefined` is treated as `false` (not ready yet).
|
|
15
|
+
*/
|
|
16
|
+
export declare function waitFor(predicate: () => boolean | Promise<boolean>, opts?: WaitForOptions): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Poll `fn` until it returns a non-undefined value or `timeoutMs` elapses; throws on timeout.
|
|
19
|
+
* `undefined` means "not ready yet" — callers needing to wait for an actual `undefined`
|
|
20
|
+
* should use `waitFor` on a separate flag.
|
|
21
|
+
*/
|
|
22
|
+
export declare function waitForValue<T>(fn: () => T | undefined | Promise<T | undefined>, opts?: WaitForOptions): Promise<T>;
|
|
23
|
+
//# sourceMappingURL=async-wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-wait.d.ts","sourceRoot":"","sources":["../../../src/testing/async-wait.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAK9B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qFAAqF;AACrF,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACG,CAAC;AAEnD;;;;GAIG;AACH,wBAAsB,OAAO,CAC5B,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAC3C,IAAI,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAChD,IAAI,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,CAAC,CAAC,CAeZ"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Real-time sleep. Retain ONLY for residual cases a condition poll cannot cover. */
|
|
2
|
+
export const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
3
|
+
/**
|
|
4
|
+
* Poll `predicate` until it returns true or `timeoutMs` elapses; throws on timeout.
|
|
5
|
+
* `predicate` may be sync or async; a thrown/rejected predicate propagates immediately.
|
|
6
|
+
* `undefined` is treated as `false` (not ready yet).
|
|
7
|
+
*/
|
|
8
|
+
export async function waitFor(predicate, opts) {
|
|
9
|
+
const { timeoutMs = 2_000, intervalMs = 10, description } = opts ?? {};
|
|
10
|
+
const deadline = Date.now() + timeoutMs;
|
|
11
|
+
for (;;) {
|
|
12
|
+
if (await predicate())
|
|
13
|
+
return;
|
|
14
|
+
if (Date.now() >= deadline) {
|
|
15
|
+
throw new Error(description
|
|
16
|
+
? `waitFor timed out after ${timeoutMs}ms: ${description}`
|
|
17
|
+
: `waitFor timed out after ${timeoutMs}ms`);
|
|
18
|
+
}
|
|
19
|
+
await delay(intervalMs);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Poll `fn` until it returns a non-undefined value or `timeoutMs` elapses; throws on timeout.
|
|
24
|
+
* `undefined` means "not ready yet" — callers needing to wait for an actual `undefined`
|
|
25
|
+
* should use `waitFor` on a separate flag.
|
|
26
|
+
*/
|
|
27
|
+
export async function waitForValue(fn, opts) {
|
|
28
|
+
const { timeoutMs = 2_000, intervalMs = 10, description } = opts ?? {};
|
|
29
|
+
const deadline = Date.now() + timeoutMs;
|
|
30
|
+
for (;;) {
|
|
31
|
+
const value = await fn();
|
|
32
|
+
if (value !== undefined)
|
|
33
|
+
return value;
|
|
34
|
+
if (Date.now() >= deadline) {
|
|
35
|
+
throw new Error(description
|
|
36
|
+
? `waitForValue timed out after ${timeoutMs}ms: ${description}`
|
|
37
|
+
: `waitForValue timed out after ${timeoutMs}ms`);
|
|
38
|
+
}
|
|
39
|
+
await delay(intervalMs);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=async-wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-wait.js","sourceRoot":"","sources":["../../../src/testing/async-wait.ts"],"names":[],"mappings":"AAaA,qFAAqF;AACrF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAClD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,SAA2C,EAC3C,IAAqB;IAErB,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC;QACT,IAAI,MAAM,SAAS,EAAE;YAAE,OAAO;QAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACd,WAAW;gBACV,CAAC,CAAC,2BAA2B,SAAS,OAAO,WAAW,EAAE;gBAC1D,CAAC,CAAC,2BAA2B,SAAS,IAAI,CAC3C,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,EAAgD,EAChD,IAAqB;IAErB,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC;QACT,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACd,WAAW;gBACV,CAAC,CAAC,gCAAgC,SAAS,OAAO,WAAW,EAAE;gBAC/D,CAAC,CAAC,gCAAgC,SAAS,IAAI,CAChD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ITransactor, type GetBlockResults, type ActionBlocks, type BlockActionStatus, type PendResult, type CommitResult, type PendRequest, type BlockId, type CommitRequest, type BlockGets, type ActionId, type ActionTransforms, type ClusterNomineesResult } from "../index.js";
|
|
2
|
+
export declare class TestTransactor implements ITransactor {
|
|
3
|
+
private blocks;
|
|
4
|
+
available: boolean;
|
|
5
|
+
private getLocks;
|
|
6
|
+
constructor();
|
|
7
|
+
get(blockGets: BlockGets): Promise<GetBlockResults>;
|
|
8
|
+
getStatus(actionRefs: ActionBlocks[]): Promise<BlockActionStatus[]>;
|
|
9
|
+
pend(request: PendRequest): Promise<PendResult>;
|
|
10
|
+
cancel(actionRef: ActionBlocks): Promise<void>;
|
|
11
|
+
commit(request: CommitRequest): Promise<CommitResult>;
|
|
12
|
+
reset(): void;
|
|
13
|
+
getPendingActions(): Map<ActionId, ActionTransforms>;
|
|
14
|
+
getCommittedActions(): Map<ActionId, ActionTransforms>;
|
|
15
|
+
setAvailable(available: boolean): void;
|
|
16
|
+
checkAvailable(): void;
|
|
17
|
+
/** Optional method for querying cluster nominees (used in GATHER phase for multi-collection transactions) */
|
|
18
|
+
queryClusterNominees?: (blockId: BlockId) => Promise<ClusterNomineesResult>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Wraps a {@link TestTransactor} and forces its commit phase to fail a bounded (or unbounded)
|
|
22
|
+
* number of times before delegating, so tests can exercise the sync retry / backoff / give-up
|
|
23
|
+
* path deterministically. pend/get/getStatus/cancel delegate unchanged, so the pend→commit→cancel
|
|
24
|
+
* round-trip runs exactly as in production.
|
|
25
|
+
*/
|
|
26
|
+
export declare class FlakyCommitTransactor implements ITransactor {
|
|
27
|
+
private readonly inner;
|
|
28
|
+
private readonly failFirstN;
|
|
29
|
+
private readonly reason;
|
|
30
|
+
/** Number of commit() calls observed so far (across success and forced failure). */
|
|
31
|
+
commitAttempts: number;
|
|
32
|
+
/**
|
|
33
|
+
* @param inner delegate transactor
|
|
34
|
+
* @param failFirstN number of initial commit() calls to fail; Infinity to always fail
|
|
35
|
+
* @param reason the StaleFailure.reason returned on a forced failure
|
|
36
|
+
*/
|
|
37
|
+
constructor(inner: TestTransactor, failFirstN: number, reason?: string);
|
|
38
|
+
get(b: BlockGets): Promise<GetBlockResults>;
|
|
39
|
+
getStatus(a: ActionBlocks[]): Promise<BlockActionStatus[]>;
|
|
40
|
+
pend(r: PendRequest): Promise<PendResult>;
|
|
41
|
+
cancel(a: ActionBlocks): Promise<void>;
|
|
42
|
+
commit(request: CommitRequest): Promise<CommitResult>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=test-transactor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-transactor.d.ts","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAe,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAwD,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAmB7V,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,MAAM,CAAkC;IACjD,SAAS,UAAQ;IACjB,OAAO,CAAC,QAAQ,CAA2C;;IAIpD,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAoGnD,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAanE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAuG/C,MAAM,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAuG3D,KAAK;IAIL,iBAAiB,IAAI,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAepD,mBAAmB,IAAI,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAsBvD,YAAY,CAAC,SAAS,EAAE,OAAO;IAI/B,cAAc;IAMd,6GAA6G;IAC7G,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC5E;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IAUvD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXxB,oFAAoF;IACpF,cAAc,SAAK;IAEnB;;;;OAIG;gBAEe,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,SAAiB;IAGzC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAC3C,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1D,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,MAAM,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAO3D"}
|