@spine-event-engine/storage 2.0.0-snapshot.22 → 2.0.0-snapshot.24
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/README.md +7 -0
- package/REFERENCE.md +131 -7
- package/dist/entity/agent-execution-record-spec.d.ts +87 -0
- package/dist/entity/agent-execution-record-spec.d.ts.map +1 -0
- package/dist/entity/agent-execution-record-spec.js +230 -0
- package/dist/entity/agent-execution-record-spec.js.map +1 -0
- package/dist/entity/agent-execution-sizes.d.ts +30 -0
- package/dist/entity/agent-execution-sizes.d.ts.map +1 -0
- package/dist/entity/agent-execution-sizes.js +51 -0
- package/dist/entity/agent-execution-sizes.js.map +1 -0
- package/dist/entity/agent-execution-transitions.d.ts +72 -0
- package/dist/entity/agent-execution-transitions.d.ts.map +1 -0
- package/dist/entity/agent-execution-transitions.js +165 -0
- package/dist/entity/agent-execution-transitions.js.map +1 -0
- package/dist/entity/agent-execution-values.d.ts +143 -0
- package/dist/entity/agent-execution-values.d.ts.map +1 -0
- package/dist/entity/agent-execution-values.js +251 -0
- package/dist/entity/agent-execution-values.js.map +1 -0
- package/dist/entity/agent-execution.d.ts +235 -0
- package/dist/entity/agent-execution.d.ts.map +1 -0
- package/dist/entity/agent-execution.js +15 -0
- package/dist/entity/agent-execution.js.map +1 -0
- package/dist/entity/agent-history-conformance.d.ts +78 -0
- package/dist/entity/agent-history-conformance.d.ts.map +1 -0
- package/dist/entity/agent-history-conformance.js +493 -0
- package/dist/entity/agent-history-conformance.js.map +1 -0
- package/dist/entity/agent-history-provider-page.d.ts +39 -0
- package/dist/entity/agent-history-provider-page.d.ts.map +1 -0
- package/dist/entity/agent-history-provider-page.js +82 -0
- package/dist/entity/agent-history-provider-page.js.map +1 -0
- package/dist/entity/agent-history-record-spec.d.ts +79 -0
- package/dist/entity/agent-history-record-spec.d.ts.map +1 -0
- package/dist/entity/agent-history-record-spec.js +147 -0
- package/dist/entity/agent-history-record-spec.js.map +1 -0
- package/dist/entity/agent-history.d.ts +196 -0
- package/dist/entity/agent-history.d.ts.map +1 -0
- package/dist/entity/agent-history.js +136 -0
- package/dist/entity/agent-history.js.map +1 -0
- package/dist/event/event-store.d.ts +41 -35
- package/dist/event/event-store.d.ts.map +1 -1
- package/dist/event/event-store.js +149 -144
- package/dist/event/event-store.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/agent-execution.d.ts +51 -0
- package/dist/internal/agent-execution.d.ts.map +1 -0
- package/dist/internal/agent-execution.js +53 -0
- package/dist/internal/agent-execution.js.map +1 -0
- package/dist/internal/agent-history.d.ts +48 -0
- package/dist/internal/agent-history.d.ts.map +1 -0
- package/dist/internal/agent-history.js +52 -0
- package/dist/internal/agent-history.js.map +1 -0
- package/dist/internal/entity-commit.d.ts +30 -11
- package/dist/internal/entity-commit.d.ts.map +1 -1
- package/dist/internal/entity-commit.js +45 -2
- package/dist/internal/entity-commit.js.map +1 -1
- package/dist/internal/entity-history.d.ts +11 -0
- package/dist/internal/entity-history.d.ts.map +1 -1
- package/dist/internal/entity-history.js +10 -0
- package/dist/internal/entity-history.js.map +1 -1
- package/dist/internal/event-store.d.ts +1 -1
- package/dist/internal/event-store.d.ts.map +1 -1
- package/dist/internal/event-store.js +1 -1
- package/dist/internal/event-store.js.map +1 -1
- package/dist/internal/tenancy.d.ts +87 -1
- package/dist/internal/tenancy.d.ts.map +1 -1
- package/dist/internal/tenancy.js +39 -0
- package/dist/internal/tenancy.js.map +1 -1
- package/dist/memory/agent-execution-head-index.d.ts +52 -0
- package/dist/memory/agent-execution-head-index.d.ts.map +1 -0
- package/dist/memory/agent-execution-head-index.js +91 -0
- package/dist/memory/agent-execution-head-index.js.map +1 -0
- package/dist/memory/agent-history-index.d.ts +49 -0
- package/dist/memory/agent-history-index.d.ts.map +1 -0
- package/dist/memory/agent-history-index.js +239 -0
- package/dist/memory/agent-history-index.js.map +1 -0
- package/dist/memory/agent-history-mutation-queue.d.ts +17 -0
- package/dist/memory/agent-history-mutation-queue.d.ts.map +1 -0
- package/dist/memory/agent-history-mutation-queue.js +31 -0
- package/dist/memory/agent-history-mutation-queue.js.map +1 -0
- package/dist/memory/in-memory-agent-execution.d.ts +21 -0
- package/dist/memory/in-memory-agent-execution.d.ts.map +1 -0
- package/dist/memory/in-memory-agent-execution.js +587 -0
- package/dist/memory/in-memory-agent-execution.js.map +1 -0
- package/dist/memory/in-memory-agent-history.d.ts +21 -0
- package/dist/memory/in-memory-agent-history.d.ts.map +1 -0
- package/dist/memory/in-memory-agent-history.js +133 -0
- package/dist/memory/in-memory-agent-history.js.map +1 -0
- package/dist/memory/in-memory-entity-commit.d.ts +107 -28
- package/dist/memory/in-memory-entity-commit.d.ts.map +1 -1
- package/dist/memory/in-memory-entity-commit.js +198 -286
- package/dist/memory/in-memory-entity-commit.js.map +1 -1
- package/dist/memory/in-memory-entity-history.d.ts +1 -1
- package/dist/memory/in-memory-entity-history.d.ts.map +1 -1
- package/dist/memory/in-memory-entity-history.js.map +1 -1
- package/dist/memory/in-memory-storage-backend.d.ts +18 -0
- package/dist/memory/in-memory-storage-backend.d.ts.map +1 -1
- package/dist/memory/in-memory-storage-backend.js +71 -0
- package/dist/memory/in-memory-storage-backend.js.map +1 -1
- package/dist/memory/in-memory-storage-factory.d.ts +38 -3
- package/dist/memory/in-memory-storage-factory.d.ts.map +1 -1
- package/dist/memory/in-memory-storage-factory.js +146 -10
- package/dist/memory/in-memory-storage-factory.js.map +1 -1
- package/dist/memory/tenant-records.d.ts +1 -1
- package/dist/memory/tenant-records.d.ts.map +1 -1
- package/dist/memory/tenant-records.js +3 -2
- package/dist/memory/tenant-records.js.map +1 -1
- package/dist/provider.d.ts +0 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +0 -1
- package/dist/provider.js.map +1 -1
- package/dist/record/record-query.d.ts +10 -2
- package/dist/record/record-query.d.ts.map +1 -1
- package/dist/record/record-query.js +9 -0
- package/dist/record/record-query.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/internal/delivery-cleanup.d.ts +0 -99
- package/dist/internal/delivery-cleanup.d.ts.map +0 -1
- package/dist/internal/delivery-cleanup.js +0 -38
- package/dist/internal/delivery-cleanup.js.map +0 -1
- package/dist/memory/memory-delivery-cleanup.d.ts +0 -32
- package/dist/memory/memory-delivery-cleanup.d.ts.map +0 -1
- package/dist/memory/memory-delivery-cleanup.js +0 -61
- package/dist/memory/memory-delivery-cleanup.js.map +0 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { Event, EventId, TenantId } from "@spine-event-engine/proto";
|
|
2
2
|
import type { RecordQuery } from "../record/record-query.js";
|
|
3
3
|
import { RecordSpec } from "../record/record-spec.js";
|
|
4
|
-
import type {
|
|
4
|
+
import type { StorageGroup } from "../record/storage-group.js";
|
|
5
5
|
import type { StorageFactory } from "../storage/storage-factory.js";
|
|
6
6
|
/**
|
|
7
7
|
* Framework event store backed by record storage.
|
|
8
8
|
*
|
|
9
|
-
* Snapshots input
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* Snapshots input Events and rejects missing, blank, or repeated IDs within a
|
|
10
|
+
* batch. Immutable append accepts identical complete stored Events and leaves
|
|
11
|
+
* completed prefixes when a later insert fails. Admission methods reject every
|
|
12
|
+
* existing ID, including an identical Event.
|
|
12
13
|
*/
|
|
13
14
|
export declare class EventStore {
|
|
14
15
|
#private;
|
|
@@ -17,8 +18,9 @@ export declare class EventStore {
|
|
|
17
18
|
*
|
|
18
19
|
* @param context Specifies the storage context.
|
|
19
20
|
* @param factory Creates the backing record storage.
|
|
21
|
+
* @param group Selects a separate Event record family when supplied.
|
|
20
22
|
*/
|
|
21
|
-
constructor(context: EventStoreContext, factory: StorageFactory);
|
|
23
|
+
constructor(context: EventStoreContext, factory: StorageFactory, group?: StorageGroup);
|
|
22
24
|
/**
|
|
23
25
|
* Returns whether this Event Store still accepts operations.
|
|
24
26
|
*
|
|
@@ -30,15 +32,17 @@ export declare class EventStore {
|
|
|
30
32
|
*/
|
|
31
33
|
close(): void;
|
|
32
34
|
/**
|
|
33
|
-
* Validates
|
|
35
|
+
* Validates strict new admission without storing an Event. An identical
|
|
36
|
+
* existing Event still rejects; this precheck does not reserve its ID.
|
|
34
37
|
*
|
|
35
38
|
* @param event Supplies the event to validate.
|
|
36
39
|
* @returns Completes when the event is accepted.
|
|
37
40
|
*/
|
|
38
41
|
accept(event: Event): Promise<void>;
|
|
39
42
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
43
|
+
* Checks strict new admission, runs caller acceptance, then atomically inserts
|
|
44
|
+
* under one captured context. Competing callbacks may both run, but only one
|
|
45
|
+
* absent-slot insertion can succeed.
|
|
42
46
|
*
|
|
43
47
|
* @param event Supplies the event to accept.
|
|
44
48
|
* @param onAccepted Runs after uniqueness validation and before append.
|
|
@@ -46,26 +50,21 @@ export declare class EventStore {
|
|
|
46
50
|
*/
|
|
47
51
|
acceptThenAppend(event: Event, onAccepted: OnEventAccepted): Promise<Event>;
|
|
48
52
|
/**
|
|
49
|
-
* Writes one
|
|
53
|
+
* Writes one complete Event, accepting an identical immutable retry without
|
|
54
|
+
* overwriting it. A conflicting Event at the same ID rejects.
|
|
50
55
|
*
|
|
51
56
|
* @param event Supplies the event to append.
|
|
52
57
|
* @returns Completes when the event is appended.
|
|
53
58
|
*/
|
|
54
59
|
append(event: Event): Promise<void>;
|
|
55
60
|
/**
|
|
56
|
-
* Writes generated
|
|
61
|
+
* Writes generated Events in order, accepting identical immutable retries.
|
|
62
|
+
* A later failure retains the completed prefix for retry with the same IDs.
|
|
57
63
|
*
|
|
58
64
|
* @param events Supplies the events to append.
|
|
59
65
|
* @returns Completes when the events are appended.
|
|
60
66
|
*/
|
|
61
67
|
appendAll(events: Iterable<Event>): Promise<void>;
|
|
62
|
-
/**
|
|
63
|
-
* Writes generated Spine events and returns a one-shot rollback token.
|
|
64
|
-
*
|
|
65
|
-
* @param events Supplies the events to append.
|
|
66
|
-
* @returns Resolves to the rollback token for this append.
|
|
67
|
-
*/
|
|
68
|
-
appendAllWithRollback(events: Iterable<Event>): Promise<EventRollback>;
|
|
69
68
|
/**
|
|
70
69
|
* Reads persisted events through the underlying record-storage query seam.
|
|
71
70
|
*
|
|
@@ -73,9 +72,33 @@ export declare class EventStore {
|
|
|
73
72
|
* @returns Resolves to matching events.
|
|
74
73
|
*/
|
|
75
74
|
read(query?: RecordQuery<EventId>): Promise<readonly Event[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Writes strictly new Events after caller acceptance.
|
|
77
|
+
*
|
|
78
|
+
* @param records Supplies validated Event snapshots.
|
|
79
|
+
* @param context Selects their storage boundary.
|
|
80
|
+
* @returns Completion after every strict insertion.
|
|
81
|
+
*/
|
|
76
82
|
private appendUnique;
|
|
77
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Writes captured immutable Events, accepting identical stored retries.
|
|
85
|
+
*
|
|
86
|
+
* @param records Supplies ordered Event snapshots.
|
|
87
|
+
* @param context Selects their single storage boundary.
|
|
88
|
+
* @returns Completion after every immutable Event is confirmed.
|
|
89
|
+
*/
|
|
90
|
+
private appendImmutable;
|
|
91
|
+
/**
|
|
92
|
+
* Checks strict admission without writing an Event.
|
|
93
|
+
*
|
|
94
|
+
* @param ids Supplies IDs that must be absent.
|
|
95
|
+
* @param context Selects the storage boundary.
|
|
96
|
+
* @returns Completion when no ID is stored.
|
|
97
|
+
*/
|
|
78
98
|
private checkUnique;
|
|
99
|
+
/**
|
|
100
|
+
* Rejects operations after this Event Store closes.
|
|
101
|
+
*/
|
|
79
102
|
private requireOpen;
|
|
80
103
|
}
|
|
81
104
|
/**
|
|
@@ -115,23 +138,6 @@ export type EventStoreContext = {
|
|
|
115
138
|
* @returns Completes after caller acceptance finishes.
|
|
116
139
|
*/
|
|
117
140
|
export type OnEventAccepted = (event: Event) => Promise<void> | void;
|
|
118
|
-
/**
|
|
119
|
-
* One-shot rollback token scoped to one successful event-store append.
|
|
120
|
-
*/
|
|
121
|
-
export interface EventRollback {
|
|
122
|
-
/**
|
|
123
|
-
* Deletes the events appended by the operation that created this token.
|
|
124
|
-
* @returns Completes when the events are deleted.
|
|
125
|
-
*/
|
|
126
|
-
rollback(): Promise<void>;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Provider-only coordination access for the Event Store context lock.
|
|
130
|
-
* @internal
|
|
131
|
-
*/
|
|
132
|
-
export declare const eventStoreAccess: {
|
|
133
|
-
readonly withLock: <T>(factory: StorageFactory, context: StorageContext, work: () => Promise<T>) => Promise<T>;
|
|
134
|
-
};
|
|
135
141
|
/**
|
|
136
142
|
* Provides the canonical event-store record layout to provider-only internals.
|
|
137
143
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../src/event/event-store.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAK1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../src/event/event-store.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAK1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE;;;;;;;GAOG;AACH,qBAAa,UAAU;;IAqBrB;;;;;;OAMG;gBACS,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,YAAY;IAMrF;;;;OAIG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzC;;;;;;;;OAQG;IACG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAUjF;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvD;;;;;OAKG;IACG,IAAI,CAAC,KAAK,GAAE,WAAW,CAAC,OAAO,CAAM,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;IAcvE;;;;;;OAMG;YACW,YAAY;IAa1B;;;;;;OAMG;YACW,eAAe;IAW7B;;;;;;OAMG;YACW,WAAW;IAYzB;;OAEG;IACH,OAAO,CAAC,WAAW;CAGpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;CAC7B,GACD;IAGE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEN;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAmNrE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAgB1D,CAAC"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
12
|
* the License.
|
|
13
13
|
*/
|
|
14
|
-
import { clone, create, ScalarType } from "@bufbuild/protobuf";
|
|
14
|
+
import { clone, create, equals, ScalarType } from "@bufbuild/protobuf";
|
|
15
15
|
import { TimestampSchema } from "@bufbuild/protobuf/wkt";
|
|
16
16
|
import { EventIdSchema, EventSchema, TenantIdSchema } from "@spine-event-engine/proto";
|
|
17
17
|
import { RecordColumn } from "../record/record-column.js";
|
|
@@ -21,23 +21,39 @@ import { TenantBoundary } from "../internal/tenancy.js";
|
|
|
21
21
|
/**
|
|
22
22
|
* Framework event store backed by record storage.
|
|
23
23
|
*
|
|
24
|
-
* Snapshots input
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* Snapshots input Events and rejects missing, blank, or repeated IDs within a
|
|
25
|
+
* batch. Immutable append accepts identical complete stored Events and leaves
|
|
26
|
+
* completed prefixes when a later insert fails. Admission methods reject every
|
|
27
|
+
* existing ID, including an identical Event.
|
|
27
28
|
*/
|
|
28
29
|
export class EventStore {
|
|
30
|
+
/**
|
|
31
|
+
* Selected Event Store context.
|
|
32
|
+
*/
|
|
29
33
|
#context;
|
|
34
|
+
/**
|
|
35
|
+
* Opens Event record-family handles.
|
|
36
|
+
*/
|
|
30
37
|
#factory;
|
|
38
|
+
/**
|
|
39
|
+
* Optional record family selector independent of the diagnostic context name.
|
|
40
|
+
*/
|
|
41
|
+
#group;
|
|
42
|
+
/**
|
|
43
|
+
* Whether this Event Store accepts operations.
|
|
44
|
+
*/
|
|
31
45
|
#open = true;
|
|
32
46
|
/**
|
|
33
47
|
* Creates an event store for one storage context.
|
|
34
48
|
*
|
|
35
49
|
* @param context Specifies the storage context.
|
|
36
50
|
* @param factory Creates the backing record storage.
|
|
51
|
+
* @param group Selects a separate Event record family when supplied.
|
|
37
52
|
*/
|
|
38
|
-
constructor(context, factory) {
|
|
53
|
+
constructor(context, factory, group) {
|
|
39
54
|
this.#context = EventContexts.base(context);
|
|
40
55
|
this.#factory = factory;
|
|
56
|
+
this.#group = group;
|
|
41
57
|
}
|
|
42
58
|
/**
|
|
43
59
|
* Returns whether this Event Store still accepts operations.
|
|
@@ -54,7 +70,8 @@ export class EventStore {
|
|
|
54
70
|
this.#open = false;
|
|
55
71
|
}
|
|
56
72
|
/**
|
|
57
|
-
* Validates
|
|
73
|
+
* Validates strict new admission without storing an Event. An identical
|
|
74
|
+
* existing Event still rejects; this precheck does not reserve its ID.
|
|
58
75
|
*
|
|
59
76
|
* @param event Supplies the event to validate.
|
|
60
77
|
* @returns Completes when the event is accepted.
|
|
@@ -65,8 +82,9 @@ export class EventStore {
|
|
|
65
82
|
await this.checkUnique([EventIds.require(record)], context);
|
|
66
83
|
}
|
|
67
84
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
85
|
+
* Checks strict new admission, runs caller acceptance, then atomically inserts
|
|
86
|
+
* under one captured context. Competing callbacks may both run, but only one
|
|
87
|
+
* absent-slot insertion can succeed.
|
|
70
88
|
*
|
|
71
89
|
* @param event Supplies the event to accept.
|
|
72
90
|
* @param onAccepted Runs after uniqueness validation and before append.
|
|
@@ -81,17 +99,19 @@ export class EventStore {
|
|
|
81
99
|
return clone(EventSchema, record);
|
|
82
100
|
}
|
|
83
101
|
/**
|
|
84
|
-
* Writes one
|
|
102
|
+
* Writes one complete Event, accepting an identical immutable retry without
|
|
103
|
+
* overwriting it. A conflicting Event at the same ID rejects.
|
|
85
104
|
*
|
|
86
105
|
* @param event Supplies the event to append.
|
|
87
106
|
* @returns Completes when the event is appended.
|
|
88
107
|
*/
|
|
89
108
|
async append(event) {
|
|
90
109
|
const record = clone(EventSchema, event);
|
|
91
|
-
await this.
|
|
110
|
+
await this.appendImmutable([record], EventContexts.snapshotForEvent(this.#context, record));
|
|
92
111
|
}
|
|
93
112
|
/**
|
|
94
|
-
* Writes generated
|
|
113
|
+
* Writes generated Events in order, accepting identical immutable retries.
|
|
114
|
+
* A later failure retains the completed prefix for retry with the same IDs.
|
|
95
115
|
*
|
|
96
116
|
* @param events Supplies the events to append.
|
|
97
117
|
* @returns Completes when the events are appended.
|
|
@@ -99,34 +119,9 @@ export class EventStore {
|
|
|
99
119
|
async appendAll(events) {
|
|
100
120
|
const records = [...events].map((event) => clone(EventSchema, event));
|
|
101
121
|
if (records.length > 0) {
|
|
102
|
-
await this.
|
|
122
|
+
await this.appendImmutable(records, EventContexts.batch(this.#context, records));
|
|
103
123
|
}
|
|
104
124
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Writes generated Spine events and returns a one-shot rollback token.
|
|
107
|
-
*
|
|
108
|
-
* @param events Supplies the events to append.
|
|
109
|
-
* @returns Resolves to the rollback token for this append.
|
|
110
|
-
*/
|
|
111
|
-
async appendAllWithRollback(events) {
|
|
112
|
-
const records = [...events].map((event) => clone(EventSchema, event));
|
|
113
|
-
const ids = records.map((record) => EventIds.require(record));
|
|
114
|
-
const context = records.length === 0 ? undefined : EventContexts.batch(this.#context, records);
|
|
115
|
-
if (context !== undefined) {
|
|
116
|
-
await this.appendUnique(records, context);
|
|
117
|
-
}
|
|
118
|
-
let used = false;
|
|
119
|
-
return Object.freeze({
|
|
120
|
-
rollback: async () => {
|
|
121
|
-
if (used) {
|
|
122
|
-
throw new Error("Event rollback token has already been used.");
|
|
123
|
-
}
|
|
124
|
-
used = true;
|
|
125
|
-
if (context !== undefined)
|
|
126
|
-
await this.deleteIds(ids, context);
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
125
|
/**
|
|
131
126
|
* Reads persisted events through the underlying record-storage query seam.
|
|
132
127
|
*
|
|
@@ -135,7 +130,7 @@ export class EventStore {
|
|
|
135
130
|
*/
|
|
136
131
|
async read(query = {}) {
|
|
137
132
|
this.requireOpen();
|
|
138
|
-
const storage = this.#factory.createRecordStorage(EventContexts.snapshot(this.#context), eventStoreRecordSpec);
|
|
133
|
+
const storage = this.#factory.createRecordStorage(EventContexts.snapshot(this.#context), eventStoreRecordSpec, this.#group);
|
|
139
134
|
try {
|
|
140
135
|
return await storage.query(query);
|
|
141
136
|
}
|
|
@@ -143,104 +138,79 @@ export class EventStore {
|
|
|
143
138
|
storage.close();
|
|
144
139
|
}
|
|
145
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Writes strictly new Events after caller acceptance.
|
|
143
|
+
*
|
|
144
|
+
* @param records Supplies validated Event snapshots.
|
|
145
|
+
* @param context Selects their storage boundary.
|
|
146
|
+
* @returns Completion after every strict insertion.
|
|
147
|
+
*/
|
|
146
148
|
async appendUnique(records, context) {
|
|
147
149
|
this.requireOpen();
|
|
148
150
|
const ids = records.map((record) => EventIds.require(record));
|
|
149
151
|
EventIds.rejectDuplicates(ids);
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
});
|
|
152
|
+
const storage = this.#factory.createRecordStorage(context, eventStoreRecordSpec, this.#group);
|
|
153
|
+
try {
|
|
154
|
+
await EventIds.insertUnique(storage, records);
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
storage.close();
|
|
158
|
+
}
|
|
159
159
|
}
|
|
160
|
-
|
|
160
|
+
/**
|
|
161
|
+
* Writes captured immutable Events, accepting identical stored retries.
|
|
162
|
+
*
|
|
163
|
+
* @param records Supplies ordered Event snapshots.
|
|
164
|
+
* @param context Selects their single storage boundary.
|
|
165
|
+
* @returns Completion after every immutable Event is confirmed.
|
|
166
|
+
*/
|
|
167
|
+
async appendImmutable(records, context) {
|
|
161
168
|
this.requireOpen();
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
storage.close();
|
|
171
|
-
}
|
|
172
|
-
});
|
|
169
|
+
EventIds.rejectDuplicates(records.map((record) => EventIds.require(record)));
|
|
170
|
+
const storage = this.#factory.createRecordStorage(context, eventStoreRecordSpec, this.#group);
|
|
171
|
+
try {
|
|
172
|
+
await EventIds.insertImmutable(storage, records);
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
storage.close();
|
|
176
|
+
}
|
|
173
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Checks strict admission without writing an Event.
|
|
180
|
+
*
|
|
181
|
+
* @param ids Supplies IDs that must be absent.
|
|
182
|
+
* @param context Selects the storage boundary.
|
|
183
|
+
* @returns Completion when no ID is stored.
|
|
184
|
+
*/
|
|
174
185
|
async checkUnique(ids, context) {
|
|
175
186
|
this.requireOpen();
|
|
176
187
|
EventIds.rejectDuplicates(ids);
|
|
177
|
-
|
|
178
|
-
const storage = this.#factory.createRecordStorage(context, eventStoreRecordSpec);
|
|
179
|
-
try {
|
|
180
|
-
await EventIds.rejectStored(storage, ids);
|
|
181
|
-
}
|
|
182
|
-
finally {
|
|
183
|
-
storage.close();
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
requireOpen() {
|
|
188
|
-
if (!this.#open)
|
|
189
|
-
throw new Error("EventStore is closed.");
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
const EventStoreLocks = Object.freeze({
|
|
193
|
-
queues: new WeakMap(),
|
|
194
|
-
async withLock(factory, context, work) {
|
|
195
|
-
const queues = this.queueMap(factory);
|
|
196
|
-
const key = EventContexts.key(context);
|
|
197
|
-
const previous = queues.get(key) ?? Promise.resolve();
|
|
198
|
-
const next = previous.then(work, work);
|
|
199
|
-
const stored = next.then(() => undefined, () => undefined);
|
|
200
|
-
queues.set(key, stored);
|
|
188
|
+
const storage = this.#factory.createRecordStorage(context, eventStoreRecordSpec, this.#group);
|
|
201
189
|
try {
|
|
202
|
-
|
|
190
|
+
await EventIds.rejectStored(storage, ids);
|
|
203
191
|
}
|
|
204
192
|
finally {
|
|
205
|
-
|
|
206
|
-
queues.delete(key);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
queueMap(factory) {
|
|
211
|
-
let queues = this.queues.get(factory);
|
|
212
|
-
if (queues === undefined) {
|
|
213
|
-
queues = new Map();
|
|
214
|
-
this.queues.set(factory, queues);
|
|
193
|
+
storage.close();
|
|
215
194
|
}
|
|
216
|
-
|
|
217
|
-
},
|
|
218
|
-
});
|
|
219
|
-
/**
|
|
220
|
-
* Provider-only coordination access for the Event Store context lock.
|
|
221
|
-
* @internal
|
|
222
|
-
*/
|
|
223
|
-
export const eventStoreAccess = Object.freeze({
|
|
224
|
-
// prettier-ignore
|
|
195
|
+
}
|
|
225
196
|
/**
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
* @param factory The factory that owns the Event Store records.
|
|
229
|
-
* @param context The Event Store context to serialize.
|
|
230
|
-
* @param work The operation to run while holding the lock.
|
|
231
|
-
* @returns The operation result.
|
|
197
|
+
* Rejects operations after this Event Store closes.
|
|
232
198
|
*/
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
199
|
+
requireOpen() {
|
|
200
|
+
if (!this.#open)
|
|
201
|
+
throw new Error("EventStore is closed.");
|
|
202
|
+
}
|
|
203
|
+
}
|
|
237
204
|
/**
|
|
238
205
|
* Validates event IDs before record-store operations.
|
|
239
206
|
*/
|
|
240
207
|
const EventIds = {
|
|
241
208
|
// prettier-ignore
|
|
242
209
|
/**
|
|
243
|
-
*
|
|
210
|
+
* Validates that an Event has a non-blank ID.
|
|
211
|
+
*
|
|
212
|
+
* @param event Supplies the Event envelope.
|
|
213
|
+
* @returns Its validated ID.
|
|
244
214
|
*/
|
|
245
215
|
require(event) {
|
|
246
216
|
if (event.id === undefined)
|
|
@@ -252,6 +222,10 @@ const EventIds = {
|
|
|
252
222
|
},
|
|
253
223
|
/**
|
|
254
224
|
* Rejects IDs that already exist in storage.
|
|
225
|
+
*
|
|
226
|
+
* @param storage Reads existing Events.
|
|
227
|
+
* @param ids Supplies IDs that must be absent.
|
|
228
|
+
* @returns Completion when no ID exists.
|
|
255
229
|
*/
|
|
256
230
|
async rejectStored(storage, ids) {
|
|
257
231
|
if ((await storage.index({ ids })).length > 0) {
|
|
@@ -259,42 +233,53 @@ const EventIds = {
|
|
|
259
233
|
}
|
|
260
234
|
},
|
|
261
235
|
/**
|
|
262
|
-
*
|
|
236
|
+
* Writes each strictly new Event, retaining a completed prefix on failure.
|
|
237
|
+
*
|
|
238
|
+
* @param storage Supplies atomic record insertion.
|
|
239
|
+
* @param records Supplies accepted Event snapshots.
|
|
240
|
+
* @returns Completion after every new Event is stored.
|
|
263
241
|
*/
|
|
264
242
|
async insertUnique(storage, records) {
|
|
265
243
|
if (!storage.atomicCompareAndSet) {
|
|
266
244
|
throw new Error("EventStore requires atomic record compare-and-set.");
|
|
267
245
|
}
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
if (!(await storage.compareAndSet(id, undefined, record))) {
|
|
273
|
-
throw new Error("EventStore requires unique event IDs.");
|
|
274
|
-
}
|
|
275
|
-
inserted.push({ id, record });
|
|
246
|
+
for (const record of records) {
|
|
247
|
+
const id = EventIds.require(record);
|
|
248
|
+
if (!(await storage.compareAndSet(id, undefined, record))) {
|
|
249
|
+
throw new Error("EventStore requires unique event IDs.");
|
|
276
250
|
}
|
|
277
251
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
252
|
+
},
|
|
253
|
+
/**
|
|
254
|
+
* Writes immutable Events or confirms complete equality at the same ID.
|
|
255
|
+
*
|
|
256
|
+
* @param storage Supplies atomic single-record insertion and reads.
|
|
257
|
+
* @param records Supplies ordered Event snapshots.
|
|
258
|
+
* @returns Completion after each Event is present unchanged.
|
|
259
|
+
*/
|
|
260
|
+
async insertImmutable(storage, records) {
|
|
261
|
+
if (!storage.atomicCompareAndSet)
|
|
262
|
+
throw new Error("EventStore requires atomic record compare-and-set.");
|
|
263
|
+
for (const record of records) {
|
|
264
|
+
const id = EventIds.require(record);
|
|
265
|
+
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
266
|
+
if (await storage.compareAndSet(id, undefined, record))
|
|
267
|
+
break;
|
|
268
|
+
const stored = await storage.read(id);
|
|
269
|
+
if (stored !== undefined) {
|
|
270
|
+
if (!equals(EventSchema, stored, record))
|
|
271
|
+
throw new Error("EventStore requires unique event IDs.");
|
|
272
|
+
break;
|
|
288
273
|
}
|
|
274
|
+
if (attempt === 1)
|
|
275
|
+
throw new Error("EventStore immutable insert could not confirm its ID.");
|
|
289
276
|
}
|
|
290
|
-
if (failures.length > 0) {
|
|
291
|
-
throw new AggregateError([error, ...failures], "EventStore append rollback failed.");
|
|
292
|
-
}
|
|
293
|
-
throw error;
|
|
294
277
|
}
|
|
295
278
|
},
|
|
296
279
|
/**
|
|
297
280
|
* Rejects repeated IDs within one append operation.
|
|
281
|
+
*
|
|
282
|
+
* @param ids Supplies the IDs in the operation.
|
|
298
283
|
*/
|
|
299
284
|
rejectDuplicates(ids) {
|
|
300
285
|
const seen = new Set();
|
|
@@ -306,12 +291,15 @@ const EventIds = {
|
|
|
306
291
|
},
|
|
307
292
|
};
|
|
308
293
|
/**
|
|
309
|
-
* Captures tenant-aware event-store contexts
|
|
294
|
+
* Captures tenant-aware event-store contexts.
|
|
310
295
|
*/
|
|
311
296
|
const EventContexts = {
|
|
312
297
|
// prettier-ignore
|
|
313
298
|
/**
|
|
314
299
|
* Captures one storage context.
|
|
300
|
+
*
|
|
301
|
+
* @param context Supplies context and optional default tenant.
|
|
302
|
+
* @returns An immutable context snapshot.
|
|
315
303
|
*/
|
|
316
304
|
base(context) {
|
|
317
305
|
return context.multitenant
|
|
@@ -324,6 +312,12 @@ const EventContexts = {
|
|
|
324
312
|
})
|
|
325
313
|
: Object.freeze({ name: context.name, multitenant: false });
|
|
326
314
|
},
|
|
315
|
+
/**
|
|
316
|
+
* Returns a complete storage context for a read.
|
|
317
|
+
*
|
|
318
|
+
* @param context Supplies an explicit default tenant when required.
|
|
319
|
+
* @returns A complete tenant-scoped storage context.
|
|
320
|
+
*/
|
|
327
321
|
snapshot(context) {
|
|
328
322
|
if (!context.multitenant)
|
|
329
323
|
return Object.freeze({ name: context.name, multitenant: false });
|
|
@@ -339,6 +333,10 @@ const EventContexts = {
|
|
|
339
333
|
},
|
|
340
334
|
/**
|
|
341
335
|
* Captures one context using an event envelope tenant when present.
|
|
336
|
+
*
|
|
337
|
+
* @param context Supplies the Event Store default boundary.
|
|
338
|
+
* @param event Supplies an optional envelope tenant.
|
|
339
|
+
* @returns The Event's complete storage context.
|
|
342
340
|
*/
|
|
343
341
|
snapshotForEvent(context, event) {
|
|
344
342
|
if (!context.multitenant)
|
|
@@ -352,6 +350,13 @@ const EventContexts = {
|
|
|
352
350
|
tenantId,
|
|
353
351
|
});
|
|
354
352
|
},
|
|
353
|
+
/**
|
|
354
|
+
* Returns one tenant boundary for every Event in a batch.
|
|
355
|
+
*
|
|
356
|
+
* @param context Supplies the Event Store default boundary.
|
|
357
|
+
* @param events Supplies the complete Event batch.
|
|
358
|
+
* @returns Their shared storage context.
|
|
359
|
+
*/
|
|
355
360
|
batch(context, events) {
|
|
356
361
|
const first = events[0];
|
|
357
362
|
if (first === undefined)
|
|
@@ -366,6 +371,9 @@ const EventContexts = {
|
|
|
366
371
|
},
|
|
367
372
|
/**
|
|
368
373
|
* Reads an explicit tenant from an event envelope.
|
|
374
|
+
*
|
|
375
|
+
* @param event Supplies the envelope origin.
|
|
376
|
+
* @returns Its tenant when present.
|
|
369
377
|
*/
|
|
370
378
|
readEventTenant(event) {
|
|
371
379
|
switch (event.context?.origin.case) {
|
|
@@ -379,16 +387,13 @@ const EventContexts = {
|
|
|
379
387
|
},
|
|
380
388
|
/**
|
|
381
389
|
* Converts a typed tenant ID to its storage-scope value.
|
|
390
|
+
*
|
|
391
|
+
* @param tenantId Supplies the optional tenant ID.
|
|
392
|
+
* @returns An independent tenant ID when present.
|
|
382
393
|
*/
|
|
383
394
|
tenantValue(tenantId) {
|
|
384
395
|
return tenantId === undefined ? undefined : clone(TenantIdSchema, tenantId);
|
|
385
396
|
},
|
|
386
|
-
/**
|
|
387
|
-
* Creates a deterministic key for a context-scoped append lock.
|
|
388
|
-
*/
|
|
389
|
-
key(context) {
|
|
390
|
-
return TenantBoundary.of(context).key;
|
|
391
|
-
},
|
|
392
397
|
};
|
|
393
398
|
/**
|
|
394
399
|
* Provides the canonical event-store record layout to provider-only internals.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../../src/event/event-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,OAAO,UAAU;IACZ,QAAQ,CAAoB;IAC5B,QAAQ,CAAiB;IAClC,KAAK,GAAG,IAAI,CAAC;IAEb;;;;;OAKG;IACH,YAAY,OAA0B,EAAE,OAAuB;QAC7D,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAY;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtE,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAY,EAAE,UAA2B;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtE,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAY;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEzC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,MAAuB;QACrC,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAEtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAuB;QACjD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC;gBACZ,IAAI,OAAO,KAAK,SAAS;oBAAE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,QAA8B,EAAE;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAC/C,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EACrC,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAyB,EAAE,OAAuB;QAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,GAAuB,EAAE,OAAuB;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAuB,EAAE,OAAuB;QACxE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC5D,CAAC;CACF;AA+DD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,IAAI,OAAO,EAAuD;IAE1E,KAAK,CAAC,QAAQ,CACZ,OAAuB,EACvB,OAAuB,EACvB,IAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,OAAuB;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAMzB,MAAM,CAAC,MAAM,CAAC;IAChB,kBAAkB;IAElB;;;;;;;OAOG;IACH,QAAQ,CACN,OAAuB,EACvB,OAAuB,EACvB,IAAsB;QAEtB,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,QAAQ,GAAG;IACf,kBAAkB;IAElB;;OAEG;IACH,OAAO,CAAC,KAAY;QAClB,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,OAAsC,EACtC,GAAuB;QAEvB,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,OAAsC,EACtC,OAAyB;QAEzB,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,QAAQ,GAAuD,EAAE,CAAC;QACxE,IAAI,CAAC;YACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;oBAC1D,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;wBAC1D,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,EAAE,oCAAoC,CAAC,CAAC;YACvF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAuB;QACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACjF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,kBAAkB;IAElB;;OAEG;IACH,IAAI,CAAC,OAA0B;QAC7B,OAAO,OAAO,CAAC,WAAW;YACxB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;aAC3D,CAAC;YACJ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ,CAAC,OAA0B;QACjC,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAChC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAA0B,EAAE,KAAY;QACvD,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;QAC1E,IAAI,QAAQ,KAAK,SAAS;YACxB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,OAAO,aAAa,CAAC,QAAQ,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAA0B,EAAE,MAAwB;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG;gBAC/E,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAY;QAC1B,QAAQ,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,eAAe;gBAClB,OAAO,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxE,KAAK,aAAa;gBAChB,OAAO,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACtF;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAA8B;QACxC,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAuB;QACzB,OAAO,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;IACxC,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,IAAI,UAAU,CAAiB;IAC7F,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,OAAO,EAAE;QACP,IAAI,YAAY,CACd,SAAS,EACT,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,CAC/D;QACD,IAAI,YAAY,CACd,MAAM,EACN,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAClC;KACF;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../../src/event/event-store.ts"],"names":[],"mappings":"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"}
|