effect-dynamodb 1.10.0 → 1.12.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/DynamoClient.d.ts +88 -5
- package/dist/DynamoClient.d.ts.map +1 -1
- package/dist/DynamoClient.js +158 -4
- package/dist/DynamoClient.js.map +1 -1
- package/dist/Entity.d.ts +35 -17
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +499 -9
- package/dist/Entity.js.map +1 -1
- package/dist/EventStore.d.ts +242 -35
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +516 -72
- package/dist/EventStore.js.map +1 -1
- package/dist/Table.d.ts +78 -0
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +153 -0
- package/dist/Table.js.map +1 -1
- package/dist/Transaction.d.ts +3 -18
- package/dist/Transaction.d.ts.map +1 -1
- package/dist/Transaction.js +13 -74
- package/dist/Transaction.js.map +1 -1
- package/dist/VectorSearchEmulation.d.ts +101 -0
- package/dist/VectorSearchEmulation.d.ts.map +1 -0
- package/dist/VectorSearchEmulation.js +290 -0
- package/dist/VectorSearchEmulation.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/BoundCrud.d.ts +62 -48
- package/dist/internal/BoundCrud.d.ts.map +1 -1
- package/dist/internal/BoundCrud.js +7 -1
- package/dist/internal/BoundCrud.js.map +1 -1
- package/dist/internal/BoundVectorQuery.d.ts +130 -0
- package/dist/internal/BoundVectorQuery.d.ts.map +1 -0
- package/dist/internal/BoundVectorQuery.js +257 -0
- package/dist/internal/BoundVectorQuery.js.map +1 -0
- package/dist/internal/EntityCombinators.d.ts +16 -0
- package/dist/internal/EntityCombinators.d.ts.map +1 -1
- package/dist/internal/EntityCombinators.js +25 -1
- package/dist/internal/EntityCombinators.js.map +1 -1
- package/dist/internal/EntityOps.d.ts +19 -6
- package/dist/internal/EntityOps.d.ts.map +1 -1
- package/dist/internal/EntityOps.js +5 -2
- package/dist/internal/EntityOps.js.map +1 -1
- package/dist/internal/TransactWriteOps.d.ts +50 -0
- package/dist/internal/TransactWriteOps.d.ts.map +1 -0
- package/dist/internal/TransactWriteOps.js +102 -0
- package/dist/internal/TransactWriteOps.js.map +1 -0
- package/dist/internal/TransactableOps.d.ts +1 -1
- package/dist/internal/TransactableOps.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/EventStore.d.ts
CHANGED
|
@@ -5,17 +5,20 @@
|
|
|
5
5
|
* - `Decider` type for command-event-state modeling
|
|
6
6
|
* - `makeStream` factory for creating event streams bound to a Table
|
|
7
7
|
* - Core operations: `append`, `read`, `readFrom`, `currentVersion`
|
|
8
|
-
* -
|
|
8
|
+
* - Snapshot primitives: `writeSnapshot`, `readSnapshot`
|
|
9
|
+
* - `commandHandler` combinator for read-decide-append cycle (snapshot-aware,
|
|
10
|
+
* with an optional `VersionConflict` retry policy)
|
|
9
11
|
* - `fold` / `foldFrom` helpers for state reconstruction
|
|
10
12
|
*
|
|
11
13
|
* Built on the existing library primitives (DynamoSchema, KeyComposer, Query,
|
|
12
14
|
* DynamoClient, Marshaller).
|
|
13
15
|
*/
|
|
14
|
-
import { TransactionCancelled, ValidationError, VersionConflict } from "@effect-dynamodb/schema/Errors.js";
|
|
15
|
-
import { Effect, Schema } from "effect";
|
|
16
|
+
import { AdditionalItemConditionFailed, AppendTooLarge, DuplicateCommand, TransactionCancelled, ValidationError, VersionConflict } from "@effect-dynamodb/schema/Errors.js";
|
|
17
|
+
import { type Duration, Effect, Option, Pipeable, Schedule, Schema } from "effect";
|
|
16
18
|
import { DynamoClient, type DynamoClientError } from "./DynamoClient.js";
|
|
19
|
+
import { type TransactWriteOp } from "./internal/TransactWriteOps.js";
|
|
17
20
|
import * as Query from "./Query.js";
|
|
18
|
-
import type
|
|
21
|
+
import { type Table, type TableConfig } from "./Table.js";
|
|
19
22
|
/**
|
|
20
23
|
* A Decider encodes the command-event-state triad for an aggregate.
|
|
21
24
|
*
|
|
@@ -30,15 +33,25 @@ export interface Decider<State, Command, Event, E = never> {
|
|
|
30
33
|
}
|
|
31
34
|
/**
|
|
32
35
|
* A persisted event read from a stream, enriched with stream metadata.
|
|
36
|
+
*
|
|
37
|
+
* @typeParam A - The decoded event type
|
|
38
|
+
* @typeParam M - The decoded metadata type (defaults to an untyped record for
|
|
39
|
+
* streams without a metadata schema)
|
|
33
40
|
*/
|
|
34
|
-
export interface StreamEvent<A> {
|
|
41
|
+
export interface StreamEvent<A, M = Record<string, unknown> | undefined> {
|
|
35
42
|
readonly streamId: string;
|
|
36
43
|
readonly version: number;
|
|
37
44
|
readonly eventType: string;
|
|
38
45
|
readonly data: A;
|
|
39
|
-
readonly metadata:
|
|
46
|
+
readonly metadata: M;
|
|
40
47
|
readonly timestamp: string;
|
|
41
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Metadata type carried on {@link StreamEvent} for a stream: the decoded
|
|
51
|
+
* metadata schema type when the stream declares one, an untyped record
|
|
52
|
+
* otherwise (events may carry metadata written outside the typed API).
|
|
53
|
+
*/
|
|
54
|
+
export type StreamMetadata<TMetadata> = [TMetadata] extends [undefined] ? Record<string, unknown> | undefined : TMetadata | undefined;
|
|
42
55
|
/** Result of appending events to a stream. */
|
|
43
56
|
export interface AppendResult<A> {
|
|
44
57
|
readonly version: number;
|
|
@@ -48,6 +61,84 @@ export interface AppendResult<A> {
|
|
|
48
61
|
export interface CommandHandlerResult<State, Event> extends AppendResult<Event> {
|
|
49
62
|
readonly state: State;
|
|
50
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* A persisted fold of a stream, up to and including `asOfVersion`.
|
|
66
|
+
*
|
|
67
|
+
* Snapshots are a cache, never history — there is exactly one per stream and it
|
|
68
|
+
* is overwritten in place. The event stream remains the source of truth, so a
|
|
69
|
+
* snapshot can always be discarded and rebuilt.
|
|
70
|
+
*/
|
|
71
|
+
export interface Snapshot<State> {
|
|
72
|
+
readonly state: State;
|
|
73
|
+
readonly asOfVersion: number;
|
|
74
|
+
readonly timestamp: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Snapshot configuration accepted by {@link makeStream}.
|
|
78
|
+
*
|
|
79
|
+
* - `schema` — the state codec. Snapshot state round-trips through it
|
|
80
|
+
* (`Schema.encodeUnknownEffect` on write, `Schema.decodeUnknownEffect` on
|
|
81
|
+
* read), so transforming schemas work.
|
|
82
|
+
* - `every` — optional auto-snapshot cadence for {@link commandHandler}: after a
|
|
83
|
+
* successful append, write a fresh snapshot once at least this many events
|
|
84
|
+
* have accumulated since the last one. Must be a positive integer.
|
|
85
|
+
*/
|
|
86
|
+
export interface SnapshotConfig<TSchema extends Schema.Top = Schema.Top> {
|
|
87
|
+
readonly schema: TSchema;
|
|
88
|
+
readonly every?: number | undefined;
|
|
89
|
+
}
|
|
90
|
+
/** The runtime snapshot settings exposed on a stream. */
|
|
91
|
+
export interface SnapshotSettings {
|
|
92
|
+
readonly every: number | undefined;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Command-dedup configuration for a single {@link EventStream.append} call.
|
|
96
|
+
*
|
|
97
|
+
* When present, `append` writes a sentinel item guarded by
|
|
98
|
+
* `attribute_not_exists(pk)` into the same transaction as the events. A replayed
|
|
99
|
+
* `commandId` therefore cancels the whole transaction and surfaces as
|
|
100
|
+
* `DuplicateCommand` — the events are never written twice.
|
|
101
|
+
*
|
|
102
|
+
* The sentinel is co-located in the stream's own partition, so `commandId`
|
|
103
|
+
* uniqueness is scoped to the stream (which is what "have I already applied this
|
|
104
|
+
* command to this aggregate?" asks). It is invisible to `read` / `readFrom` /
|
|
105
|
+
* `currentVersion`, which filter on the event entity type.
|
|
106
|
+
*
|
|
107
|
+
* **Casing:** the sentinel sort key is composed with the schema's casing (default
|
|
108
|
+
* `"lowercase"`), so command ids that differ only in case collide. Use
|
|
109
|
+
* case-insensitively-unique ids (UUID / ULID). The raw id is stored as the
|
|
110
|
+
* `commandId` attribute regardless.
|
|
111
|
+
*/
|
|
112
|
+
export interface AppendIdempotency {
|
|
113
|
+
/** Caller-supplied identifier for this command delivery. */
|
|
114
|
+
readonly commandId: string;
|
|
115
|
+
/**
|
|
116
|
+
* Optional expiry for the sentinel, written to the table's TTL attribute
|
|
117
|
+
* (honours `TableConfig.ttlAttributeName`). Set it to the longest window over
|
|
118
|
+
* which your infrastructure can replay a command. Omitted → sentinels are
|
|
119
|
+
* permanent, which is the safe direction.
|
|
120
|
+
*/
|
|
121
|
+
readonly ttl?: Duration.Duration | string;
|
|
122
|
+
}
|
|
123
|
+
/** Options accepted by {@link EventStream.append}. */
|
|
124
|
+
export interface AppendOptions<TMetadata> {
|
|
125
|
+
/** Per-append metadata, validated against the stream's metadata schema when configured. */
|
|
126
|
+
readonly metadata?: TMetadata;
|
|
127
|
+
/**
|
|
128
|
+
* Caller-owned transact items committed atomically with the events — the same
|
|
129
|
+
* op union `Transaction.transactWrite` accepts (`EntityPut`, `EntityDelete`,
|
|
130
|
+
* `Transaction.check(...)`).
|
|
131
|
+
*
|
|
132
|
+
* Conditional failures on these items are reported as
|
|
133
|
+
* `AdditionalItemConditionFailed` (carrying the 0-based indices into this
|
|
134
|
+
* array), never as `VersionConflict`.
|
|
135
|
+
*/
|
|
136
|
+
readonly additionalItems?: ReadonlyArray<TransactWriteOp>;
|
|
137
|
+
/** Opt in to exactly-once command processing — see {@link AppendIdempotency}. */
|
|
138
|
+
readonly idempotency?: AppendIdempotency;
|
|
139
|
+
}
|
|
140
|
+
/** Error channel of {@link EventStream.append}. */
|
|
141
|
+
export type AppendError = VersionConflict | DuplicateCommand | AdditionalItemConditionFailed | AppendTooLarge | DynamoClientError | ValidationError | TransactionCancelled;
|
|
51
142
|
type StreamIdInput<T extends ReadonlyArray<string>> = {
|
|
52
143
|
readonly [K in T[number]]: string;
|
|
53
144
|
};
|
|
@@ -59,30 +150,55 @@ export type EventStreamTypeId = typeof EventStreamTypeId;
|
|
|
59
150
|
* Created via {@link makeStream}. Operations are called directly on the stream:
|
|
60
151
|
* `MatchEvents.append(...)`, `MatchEvents.read(...)`, `MatchEvents.query.events(...)`.
|
|
61
152
|
*/
|
|
62
|
-
export interface EventStream<TEvent, TStreamIdFields extends ReadonlyArray<string>, TMetadata> {
|
|
153
|
+
export interface EventStream<TEvent, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState = never> extends Pipeable.Pipeable {
|
|
63
154
|
readonly [EventStreamTypeId]: EventStreamTypeId;
|
|
64
155
|
readonly streamName: string;
|
|
65
156
|
readonly eventSchema: Schema.Top;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
readonly
|
|
157
|
+
/**
|
|
158
|
+
* Present iff the stream was created with a `snapshot` config. Its presence
|
|
159
|
+
* is what switches {@link commandHandler} onto the snapshot-aware read path.
|
|
160
|
+
*/
|
|
161
|
+
readonly snapshotConfig: SnapshotSettings | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Write (or overwrite) this stream's snapshot.
|
|
164
|
+
*
|
|
165
|
+
* Monotonic: a snapshot at an equal or newer `asOfVersion` already present is
|
|
166
|
+
* left alone and the write reports success. Dies with `[EDD-9026]` on a
|
|
167
|
+
* stream declared without a `snapshot` config (unreachable via the types —
|
|
168
|
+
* `TState` is `never` there, so no value can be supplied).
|
|
169
|
+
*/
|
|
170
|
+
readonly writeSnapshot: (streamId: StreamIdInput<TStreamIdFields>, state: TState, asOfVersion: number) => Effect.Effect<void, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
|
|
171
|
+
/**
|
|
172
|
+
* Read this stream's snapshot, if one has been written.
|
|
173
|
+
*
|
|
174
|
+
* A snapshot that fails to decode through the configured state schema fails
|
|
175
|
+
* with `ValidationError` — it is never silently discarded, because that would
|
|
176
|
+
* hide state-schema evolution bugs.
|
|
177
|
+
*/
|
|
178
|
+
readonly readSnapshot: (streamId: StreamIdInput<TStreamIdFields>) => Effect.Effect<Option.Option<Snapshot<TState>>, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
|
|
179
|
+
readonly append: (streamId: StreamIdInput<TStreamIdFields>, events: ReadonlyArray<TEvent>, expectedVersion: number, options?: AppendOptions<TMetadata> | undefined) => Effect.Effect<AppendResult<TEvent>, AppendError, DynamoClient | TableConfig>;
|
|
180
|
+
readonly read: (streamId: StreamIdInput<TStreamIdFields>) => Effect.Effect<ReadonlyArray<StreamEvent<TEvent, StreamMetadata<TMetadata>>>, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
|
|
181
|
+
readonly readFrom: (streamId: StreamIdInput<TStreamIdFields>, afterVersion: number) => Effect.Effect<ReadonlyArray<StreamEvent<TEvent, StreamMetadata<TMetadata>>>, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
|
|
71
182
|
readonly currentVersion: (streamId: StreamIdInput<TStreamIdFields>) => Effect.Effect<number, DynamoClientError | ValidationError, DynamoClient | TableConfig>;
|
|
72
183
|
readonly query: {
|
|
73
|
-
readonly events: (streamId: StreamIdInput<TStreamIdFields>) => Query.Query<StreamEvent<TEvent
|
|
184
|
+
readonly events: (streamId: StreamIdInput<TStreamIdFields>) => Query.Query<StreamEvent<TEvent, StreamMetadata<TMetadata>>>;
|
|
74
185
|
};
|
|
75
186
|
}
|
|
76
187
|
/**
|
|
77
188
|
* Create an EventStream bound to a Table.
|
|
78
189
|
*
|
|
190
|
+
* Define event schemas with `Schema.TaggedClass` (not plain `Schema.Class`):
|
|
191
|
+
* stored events are decoded through a `Schema.Union` of the event schemas, and
|
|
192
|
+
* without a declared `_tag` field the union discriminates structurally — two
|
|
193
|
+
* event types with identical fields would mis-decode as each other.
|
|
194
|
+
*
|
|
79
195
|
* @example
|
|
80
196
|
* ```typescript
|
|
81
|
-
* class MatchStarted extends Schema.
|
|
197
|
+
* class MatchStarted extends Schema.TaggedClass<MatchStarted>()("MatchStarted", {
|
|
82
198
|
* venue: Schema.String,
|
|
83
199
|
* }) {}
|
|
84
200
|
*
|
|
85
|
-
* class InningsCompleted extends Schema.
|
|
201
|
+
* class InningsCompleted extends Schema.TaggedClass<InningsCompleted>()("InningsCompleted", {
|
|
86
202
|
* innings: Schema.Number,
|
|
87
203
|
* runs: Schema.Number,
|
|
88
204
|
* }) {}
|
|
@@ -94,16 +210,32 @@ export interface EventStream<TEvent, TStreamIdFields extends ReadonlyArray<strin
|
|
|
94
210
|
* streamId: { composite: ["matchId"] },
|
|
95
211
|
* })
|
|
96
212
|
* ```
|
|
213
|
+
*
|
|
214
|
+
* Opt into snapshots by declaring a state schema:
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* ```typescript
|
|
218
|
+
* const MatchEvents = EventStore.makeStream({
|
|
219
|
+
* table: EventsTable,
|
|
220
|
+
* streamName: "Match",
|
|
221
|
+
* events: [MatchStarted, InningsCompleted],
|
|
222
|
+
* streamId: { composite: ["matchId"] },
|
|
223
|
+
* snapshot: { schema: MatchStateSchema, every: 100 },
|
|
224
|
+
* })
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @throws `[EDD-9027]` when `snapshot.every` is not a positive integer.
|
|
97
228
|
*/
|
|
98
229
|
export declare const makeStream: <const TEvents extends ReadonlyArray<Schema.Top>, TTable extends Table, const TStreamName extends string, const TStreamId extends {
|
|
99
230
|
readonly composite: ReadonlyArray<string>;
|
|
100
|
-
}, TMetadata extends Schema.Top | undefined = undefined>(config: {
|
|
231
|
+
}, TMetadata extends Schema.Top | undefined = undefined, TSnapshot extends SnapshotConfig | undefined = undefined>(config: {
|
|
101
232
|
readonly table: TTable;
|
|
102
233
|
readonly streamName: TStreamName;
|
|
103
234
|
readonly events: TEvents;
|
|
104
235
|
readonly streamId: TStreamId;
|
|
105
236
|
readonly metadata?: TMetadata;
|
|
106
|
-
|
|
237
|
+
readonly snapshot?: TSnapshot;
|
|
238
|
+
}) => EventStream<Schema.Schema.Type<TEvents[number]>, TStreamId["composite"], TMetadata extends Schema.Top ? Schema.Schema.Type<TMetadata> : undefined, TSnapshot extends SnapshotConfig<infer TStateSchema> ? Schema.Schema.Type<TStateSchema> : never>;
|
|
107
239
|
/**
|
|
108
240
|
* An EventStream whose operations have `DynamoClient` and `TableConfig` already
|
|
109
241
|
* resolved, so all methods return `Effect<A, E, never>`.
|
|
@@ -124,18 +256,22 @@ export declare const makeStream: <const TEvents extends ReadonlyArray<Schema.Top
|
|
|
124
256
|
* }) {}
|
|
125
257
|
* ```
|
|
126
258
|
*/
|
|
127
|
-
export interface BoundEventStream<TEvent, TStreamIdFields extends ReadonlyArray<string>, TMetadata> {
|
|
259
|
+
export interface BoundEventStream<TEvent, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState = never> extends Pipeable.Pipeable {
|
|
128
260
|
readonly [EventStreamTypeId]: EventStreamTypeId;
|
|
129
261
|
readonly streamName: string;
|
|
130
262
|
readonly eventSchema: Schema.Top;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
readonly
|
|
135
|
-
|
|
263
|
+
/** See {@link EventStream.snapshotConfig}. */
|
|
264
|
+
readonly snapshotConfig: SnapshotSettings | undefined;
|
|
265
|
+
/** See {@link EventStream.writeSnapshot}. */
|
|
266
|
+
readonly writeSnapshot: (streamId: StreamIdInput<TStreamIdFields>, state: TState, asOfVersion: number) => Effect.Effect<void, DynamoClientError | ValidationError, never>;
|
|
267
|
+
/** See {@link EventStream.readSnapshot}. */
|
|
268
|
+
readonly readSnapshot: (streamId: StreamIdInput<TStreamIdFields>) => Effect.Effect<Option.Option<Snapshot<TState>>, DynamoClientError | ValidationError, never>;
|
|
269
|
+
readonly append: (streamId: StreamIdInput<TStreamIdFields>, events: ReadonlyArray<TEvent>, expectedVersion: number, options?: AppendOptions<TMetadata> | undefined) => Effect.Effect<AppendResult<TEvent>, AppendError, never>;
|
|
270
|
+
readonly read: (streamId: StreamIdInput<TStreamIdFields>) => Effect.Effect<ReadonlyArray<StreamEvent<TEvent, StreamMetadata<TMetadata>>>, DynamoClientError | ValidationError, never>;
|
|
271
|
+
readonly readFrom: (streamId: StreamIdInput<TStreamIdFields>, afterVersion: number) => Effect.Effect<ReadonlyArray<StreamEvent<TEvent, StreamMetadata<TMetadata>>>, DynamoClientError | ValidationError, never>;
|
|
136
272
|
readonly currentVersion: (streamId: StreamIdInput<TStreamIdFields>) => Effect.Effect<number, DynamoClientError | ValidationError, never>;
|
|
137
273
|
readonly query: {
|
|
138
|
-
readonly events: (streamId: StreamIdInput<TStreamIdFields>) => Query.Query<StreamEvent<TEvent
|
|
274
|
+
readonly events: (streamId: StreamIdInput<TStreamIdFields>) => Query.Query<StreamEvent<TEvent, StreamMetadata<TMetadata>>>;
|
|
139
275
|
};
|
|
140
276
|
/** Escape hatch: provide DynamoClient | TableConfig to an arbitrary effect. */
|
|
141
277
|
readonly provide: <A, E>(effect: Effect.Effect<A, E, DynamoClient | TableConfig>) => Effect.Effect<A, E, never>;
|
|
@@ -154,13 +290,60 @@ export interface BoundEventStream<TEvent, TStreamIdFields extends ReadonlyArray<
|
|
|
154
290
|
* yield* stream.append({ matchId: "m-1" }, [event], 0) // R = never
|
|
155
291
|
* ```
|
|
156
292
|
*/
|
|
157
|
-
export declare const bind: <TEvent, TStreamIdFields extends ReadonlyArray<string>, TMetadata>(stream: EventStream<TEvent, TStreamIdFields, TMetadata>) => Effect.Effect<BoundEventStream<TEvent, TStreamIdFields, TMetadata>, never, DynamoClient | TableConfig>;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
293
|
+
export declare const bind: <TEvent, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState>(stream: EventStream<TEvent, TStreamIdFields, TMetadata, TState>) => Effect.Effect<BoundEventStream<TEvent, TStreamIdFields, TMetadata, TState>, never, DynamoClient | TableConfig>;
|
|
294
|
+
/**
|
|
295
|
+
* Handler-level configuration for {@link commandHandler}.
|
|
296
|
+
*
|
|
297
|
+
* `idempotency` carries the policy that is fixed for the handler; the
|
|
298
|
+
* `commandId` that identifies one delivery can only be per-call and lives in the
|
|
299
|
+
* handler's own options.
|
|
300
|
+
*/
|
|
301
|
+
export interface CommandHandlerOptions {
|
|
302
|
+
/**
|
|
303
|
+
* Retry policy applied to `VersionConflict` **only**.
|
|
304
|
+
*
|
|
305
|
+
* The retried unit is the entire read–decide–append cycle, so every attempt
|
|
306
|
+
* decides against freshly read state — a blind re-append of stale events is
|
|
307
|
+
* impossible by construction. Snapshot reads participate: a retried attempt
|
|
308
|
+
* re-reads the snapshot and its delta.
|
|
309
|
+
*
|
|
310
|
+
* A number `n` is shorthand for `Schedule.recurs(n)` (n retries *after* the
|
|
311
|
+
* initial attempt). Omit for the default: no retry.
|
|
312
|
+
*
|
|
313
|
+
* `DuplicateCommand` is deliberately NOT retried — it is terminal.
|
|
314
|
+
*/
|
|
315
|
+
readonly retry?: number | Schedule.Schedule<unknown, VersionConflict> | undefined;
|
|
316
|
+
/** Opt in to exactly-once command processing — see {@link AppendIdempotency}. */
|
|
317
|
+
readonly idempotency?: {
|
|
318
|
+
readonly ttl?: Duration.Duration | string;
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
/** Per-call options accepted by a handler produced by {@link commandHandler}. */
|
|
322
|
+
export interface CommandOptions<TMetadata> {
|
|
162
323
|
readonly metadata?: TMetadata;
|
|
163
|
-
|
|
324
|
+
/**
|
|
325
|
+
* Identifier for this command delivery. Required when the handler was created
|
|
326
|
+
* with `idempotency`; a replayed id fails with `DuplicateCommand`.
|
|
327
|
+
*/
|
|
328
|
+
readonly commandId?: string;
|
|
329
|
+
/** Caller-owned transact items committed atomically with the produced events. */
|
|
330
|
+
readonly additionalItems?: ReadonlyArray<TransactWriteOp>;
|
|
331
|
+
}
|
|
332
|
+
/** Per-call options when the handler was created with `idempotency` — `commandId` is required. */
|
|
333
|
+
export interface IdempotentCommandOptions<TMetadata> extends CommandOptions<TMetadata> {
|
|
334
|
+
readonly commandId: string;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Options arity: configuring `idempotency` makes the handler's options parameter
|
|
338
|
+
* required (and `commandId` within it non-optional), so a missing `commandId`
|
|
339
|
+
* is a compile error rather than a silent downgrade to at-least-once.
|
|
340
|
+
*/
|
|
341
|
+
type CommandOptionsArgs<TMetadata, TConfig extends CommandHandlerOptions | undefined> = TConfig extends {
|
|
342
|
+
readonly idempotency: object;
|
|
343
|
+
} ? [options: IdempotentCommandOptions<TMetadata>] : [options?: CommandOptions<TMetadata> | undefined];
|
|
344
|
+
type CommandHandlerErrors<E> = E | VersionConflict | DuplicateCommand | AdditionalItemConditionFailed | AppendTooLarge | DynamoClientError | ValidationError | TransactionCancelled;
|
|
345
|
+
type CommandHandler<State, Command, TEvent, E, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TConfig extends CommandHandlerOptions | undefined = undefined> = (streamId: StreamIdInput<TStreamIdFields>, command: Command, ...options: CommandOptionsArgs<TMetadata, TConfig>) => Effect.Effect<CommandHandlerResult<State, TEvent>, CommandHandlerErrors<E>, DynamoClient | TableConfig>;
|
|
346
|
+
type BoundCommandHandler<State, Command, TEvent, E, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TConfig extends CommandHandlerOptions | undefined = undefined> = (streamId: StreamIdInput<TStreamIdFields>, command: Command, ...options: CommandOptionsArgs<TMetadata, TConfig>) => Effect.Effect<CommandHandlerResult<State, TEvent>, CommandHandlerErrors<E>, never>;
|
|
164
347
|
/**
|
|
165
348
|
* Create a command handler that reads, decides, and appends atomically.
|
|
166
349
|
*
|
|
@@ -176,15 +359,39 @@ type BoundCommandHandler<State, Command, TEvent, E, TStreamIdFields extends Read
|
|
|
176
359
|
*
|
|
177
360
|
* // Data-last (pipe)
|
|
178
361
|
* const handle = stream.pipe(EventStore.commandHandler(decider))
|
|
362
|
+
*
|
|
363
|
+
* // Retry the full read-decide-append cycle on VersionConflict
|
|
364
|
+
* const handle = EventStore.commandHandler(decider, stream, { retry: 3 })
|
|
365
|
+
* const handle2 = stream.pipe(EventStore.commandHandler(decider, { retry: 3 }))
|
|
366
|
+
*
|
|
367
|
+
* // Exactly-once command processing — `commandId` becomes required per call
|
|
368
|
+
* const handle = EventStore.commandHandler(decider, stream, {
|
|
369
|
+
* idempotency: { ttl: Duration.days(1) },
|
|
370
|
+
* })
|
|
371
|
+
* yield* handle({ matchId: "m-1" }, command, { commandId: "cmd-7f3a" })
|
|
179
372
|
* ```
|
|
373
|
+
*
|
|
374
|
+
* When the stream declares a `snapshot` config, each invocation reads the
|
|
375
|
+
* snapshot and folds only the events after it, instead of replaying the stream
|
|
376
|
+
* from the beginning. With `snapshot.every` set, a fresh snapshot is written
|
|
377
|
+
* (best-effort) after a successful append once the cadence threshold is crossed.
|
|
378
|
+
*
|
|
379
|
+
* Without `idempotency`, command processing is **at-least-once**: a retry after
|
|
380
|
+
* an acked-but-lost response re-runs `decide` and appends again.
|
|
381
|
+
*
|
|
382
|
+
* Note: this is a hand-rolled dual rather than `Function.dual` — the data
|
|
383
|
+
* argument (`stream`) is the *second* parameter, which `Function.dual` cannot
|
|
384
|
+
* express, and its numeric-arity form would silently drop the trailing options
|
|
385
|
+
* (`retry`, `idempotency`) that both forms depend on. Dispatch is on the
|
|
386
|
+
* `EventStreamTypeId` brand of the second argument.
|
|
180
387
|
*/
|
|
181
388
|
export declare const commandHandler: {
|
|
182
|
-
<State, Command, TEvent, E>(decider: Decider<State, Command, TEvent, E
|
|
183
|
-
<TStreamIdFields extends ReadonlyArray<string>, TMetadata>(stream: BoundEventStream<TEvent, TStreamIdFields, TMetadata>): BoundCommandHandler<State, Command, TEvent, E, TStreamIdFields, TMetadata>;
|
|
184
|
-
<TStreamIdFields extends ReadonlyArray<string>, TMetadata>(stream: EventStream<TEvent, TStreamIdFields, TMetadata>): CommandHandler<State, Command, TEvent, E, TStreamIdFields, TMetadata>;
|
|
389
|
+
<State, Command, TEvent, E, const TConfig extends CommandHandlerOptions | undefined = undefined>(decider: Decider<State, Command, TEvent, E>, options?: TConfig): {
|
|
390
|
+
<TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState extends State>(stream: BoundEventStream<TEvent, TStreamIdFields, TMetadata, TState>): BoundCommandHandler<State, Command, TEvent, E, TStreamIdFields, TMetadata, TConfig>;
|
|
391
|
+
<TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState extends State>(stream: EventStream<TEvent, TStreamIdFields, TMetadata, TState>): CommandHandler<State, Command, TEvent, E, TStreamIdFields, TMetadata, TConfig>;
|
|
185
392
|
};
|
|
186
|
-
<State, Command, TEvent, E, TStreamIdFields extends ReadonlyArray<string>, TMetadata>(decider: Decider<State, Command, TEvent, E>, stream: BoundEventStream<TEvent, TStreamIdFields, TMetadata
|
|
187
|
-
<State, Command, TEvent, E, TStreamIdFields extends ReadonlyArray<string>, TMetadata>(decider: Decider<State, Command, TEvent, E>, stream: EventStream<TEvent, TStreamIdFields, TMetadata
|
|
393
|
+
<State, Command, TEvent, E, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState extends State, const TConfig extends CommandHandlerOptions | undefined = undefined>(decider: Decider<State, Command, TEvent, E>, stream: BoundEventStream<TEvent, TStreamIdFields, TMetadata, TState>, options?: TConfig): BoundCommandHandler<State, Command, TEvent, E, TStreamIdFields, TMetadata, TConfig>;
|
|
394
|
+
<State, Command, TEvent, E, TStreamIdFields extends ReadonlyArray<string>, TMetadata, TState extends State, const TConfig extends CommandHandlerOptions | undefined = undefined>(decider: Decider<State, Command, TEvent, E>, stream: EventStream<TEvent, TStreamIdFields, TMetadata, TState>, options?: TConfig): CommandHandler<State, Command, TEvent, E, TStreamIdFields, TMetadata, TConfig>;
|
|
188
395
|
};
|
|
189
396
|
/**
|
|
190
397
|
* Reconstruct state from events by folding through a decider's `evolve` function.
|
package/dist/EventStore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventStore.d.ts","sourceRoot":"","sources":["../src/EventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAEL,oBAAoB,EACpB,eAAe,EACf,eAAe,EAChB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAY,MAAM,EAAY,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAExE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAMpD;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK;IACvD,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3F,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAA;IACtD,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAMD,8CAA8C;AAC9C,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CAClC;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAE,SAAQ,YAAY,CAAC,KAAK,CAAC;IAC7E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB;AAMD,KAAK,aAAa,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,IAAI;IACpD,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;CAClC,CAAA;AAMD,QAAA,MAAM,iBAAiB,EAAE,OAAO,MAAkD,CAAA;AAClF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAMxD;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM,EAAE,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS;IAC3F,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAA;IAEhC,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,SAAS,KACpD,MAAM,CAAC,MAAM,CAChB,YAAY,CAAC,MAAM,CAAC,EACpB,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC5E,YAAY,GAAG,WAAW,CAC3B,CAAA;IAED,QAAQ,CAAC,IAAI,EAAE,CACb,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,KACrC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAClC,iBAAiB,GAAG,eAAe,EACnC,YAAY,GAAG,WAAW,CAC3B,CAAA;IAED,QAAQ,CAAC,QAAQ,EAAE,CACjB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,YAAY,EAAE,MAAM,KACjB,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAClC,iBAAiB,GAAG,eAAe,EACnC,YAAY,GAAG,WAAW,CAC3B,CAAA;IAED,QAAQ,CAAC,cAAc,EAAE,CACvB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,KACrC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAAE,YAAY,GAAG,WAAW,CAAC,CAAA;IAE3F,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAChG,CAAA;CACF;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,CAAC,OAAO,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAC/C,MAAM,SAAS,KAAK,EACpB,KAAK,CAAC,WAAW,SAAS,MAAM,EAChC,KAAK,CAAC,SAAS,SAAS;IAAE,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,EACrE,SAAS,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,EACpD,QAAQ;IACR,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAC9B,KAAG,WAAW,CACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACnC,SAAS,CAAC,WAAW,CAAC,EACtB,SAAS,SAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CA4QzE,CAAA;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB,CAC/B,MAAM,EACN,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7C,SAAS;IAET,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAA;IAEhC,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,SAAS,KACpD,MAAM,CAAC,MAAM,CAChB,YAAY,CAAC,MAAM,CAAC,EACpB,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAC5E,KAAK,CACN,CAAA;IAED,QAAQ,CAAC,IAAI,EAAE,CACb,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,KACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,GAAG,eAAe,EAAE,KAAK,CAAC,CAAA;IAElG,QAAQ,CAAC,QAAQ,EAAE,CACjB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,YAAY,EAAE,MAAM,KACjB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,GAAG,eAAe,EAAE,KAAK,CAAC,CAAA;IAElG,QAAQ,CAAC,cAAc,EAAE,CACvB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,KACrC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAAE,KAAK,CAAC,CAAA;IAEtE,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAChG,CAAA;IAED,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,KACpD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;CAChC;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,EAAE,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EACnF,QAAQ,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,KACtD,MAAM,CAAC,MAAM,CACd,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,EACpD,KAAK,EACL,YAAY,GAAG,WAAW,CAoBxB,CAAA;AAMJ,KAAK,cAAc,CACjB,KAAK,EACL,OAAO,EACP,MAAM,EACN,CAAC,EACD,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7C,SAAS,IACP,CACF,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,KACpD,MAAM,CAAC,MAAM,CAChB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EACnC,CAAC,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAChF,YAAY,GAAG,WAAW,CAC3B,CAAA;AAED,KAAK,mBAAmB,CACtB,KAAK,EACL,OAAO,EACP,MAAM,EACN,CAAC,EACD,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7C,SAAS,IACP,CACF,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,KACpD,MAAM,CAAC,MAAM,CAChB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EACnC,CAAC,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAChF,KAAK,CACN,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,EAAE;IAE3B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EACxB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,GAC1C;QACD,CAAC,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EACvD,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,GAC3D,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;QAC7E,CAAC,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EACvD,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,GACtD,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;KACzE,CAAA;IAGD,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAClF,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAC3C,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,GAC3D,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;IAG7E,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAClF,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAC3C,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,GACtD,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;CAgDzE,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;IACxF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CAUrF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CAAC,CAAC,EACA,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACpC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACT,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACpC,CAAC,CAAA;CAcL,CAAA"}
|
|
1
|
+
{"version":3,"file":"EventStore.d.ts","sourceRoot":"","sources":["../src/EventStore.ts"],"names":[],"mappings":"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"}
|