@requence/event-sourcing 1.5.0 → 1.5.1
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/{chunk-24xjphpk.js → chunk-06anxtk6.js} +6 -6
- package/dist/{chunk-24xjphpk.js.map → chunk-06anxtk6.js.map} +2 -2
- package/dist/{chunk-263c07sn.js → chunk-1mr4cwpw.js} +8 -8
- package/dist/{chunk-263c07sn.js.map → chunk-1mr4cwpw.js.map} +2 -2
- package/dist/{chunk-zznvzvnv.js → chunk-2wqpktzp.js} +31 -31
- package/dist/{chunk-zznvzvnv.js.map → chunk-2wqpktzp.js.map} +2 -2
- package/dist/{chunk-dgzw1nj9.js → chunk-467qtkth.js} +8 -3
- package/dist/chunk-467qtkth.js.map +10 -0
- package/dist/chunk-6dn6wxg7.js +11 -0
- package/dist/{chunk-jd4q8fcf.js.map → chunk-6dn6wxg7.js.map} +2 -2
- package/dist/{chunk-pc1q4se9.js → chunk-9qtjz725.js} +2 -2
- package/dist/{chunk-pc1q4se9.js.map → chunk-9qtjz725.js.map} +2 -2
- package/dist/{chunk-tfy01fah.js → chunk-c7sytwpp.js} +4 -4
- package/dist/{chunk-tfy01fah.js.map → chunk-c7sytwpp.js.map} +2 -2
- package/dist/{chunk-kqh3q3fj.js → chunk-d6jqbrq2.js} +29 -29
- package/dist/{chunk-kqh3q3fj.js.map → chunk-d6jqbrq2.js.map} +2 -2
- package/dist/{chunk-7akf01zj.js → chunk-f95c3da4.js} +77 -64
- package/dist/chunk-f95c3da4.js.map +10 -0
- package/dist/chunk-fpjnk143.js +13 -0
- package/dist/{chunk-6q8mr1sg.js.map → chunk-fpjnk143.js.map} +2 -2
- package/dist/{chunk-8qn1nqnh.js → chunk-fxb9fbvz.js} +9 -9
- package/dist/{chunk-8qn1nqnh.js.map → chunk-fxb9fbvz.js.map} +2 -2
- package/dist/chunk-hmvwn02w.js +22 -0
- package/dist/{chunk-6yrb30rx.js.map → chunk-hmvwn02w.js.map} +2 -2
- package/dist/{chunk-ty9bhdvx.js → chunk-j4mwjx07.js} +5 -3
- package/dist/chunk-j4mwjx07.js.map +10 -0
- package/dist/{chunk-391m4mfp.js → chunk-jw9e0fr0.js} +13 -13
- package/dist/{chunk-391m4mfp.js.map → chunk-jw9e0fr0.js.map} +2 -2
- package/dist/chunk-mbxxvskx.js +67 -0
- package/dist/{chunk-ak901ckt.js.map → chunk-mbxxvskx.js.map} +2 -2
- package/dist/{chunk-3251p253.js → chunk-nrhw3kde.js} +8 -8
- package/dist/{chunk-3251p253.js.map → chunk-nrhw3kde.js.map} +2 -2
- package/dist/{chunk-8edc30gz.js → chunk-pcggjrxr.js} +32 -32
- package/dist/{chunk-8edc30gz.js.map → chunk-pcggjrxr.js.map} +2 -2
- package/dist/chunk-tkwe4r0y.js +22 -0
- package/dist/{chunk-2fe8jjdc.js.map → chunk-tkwe4r0y.js.map} +2 -2
- package/dist/{chunk-z388cd25.js → chunk-zkz6ew8c.js} +5 -5
- package/dist/{chunk-z388cd25.js.map → chunk-zkz6ew8c.js.map} +2 -2
- package/dist/createAggregateRoot.d.ts +1 -1
- package/dist/createAggregateRoot.d.ts.map +1 -1
- package/dist/createAggregateRoot.js +15 -14
- package/dist/createAggregateRoot.js.map +1 -1
- package/dist/createCheckpointApi.js +5 -5
- package/dist/createCheckpointApi.js.map +1 -1
- package/dist/createEventListener.js +8 -8
- package/dist/createEventListener.js.map +1 -1
- package/dist/createEventStore.js +16 -16
- package/dist/createEventStore.js.map +1 -1
- package/dist/createProcessManager.js +12 -12
- package/dist/createProcessManager.js.map +1 -1
- package/dist/createProjection.js +12 -12
- package/dist/createProjection.js.map +1 -1
- package/dist/drizzle/index.js +132 -132
- package/dist/drizzle/index.js.map +2 -2
- package/dist/drizzle/postgres.js +14 -14
- package/dist/drizzle/postgres.js.map +1 -1
- package/dist/errors.js +24 -24
- package/dist/errors.js.map +1 -1
- package/dist/index.js +63 -63
- package/dist/index.js.map +1 -1
- package/dist/lock.d.ts +11 -3
- package/dist/lock.d.ts.map +1 -1
- package/dist/lock.js +4 -2
- package/dist/lock.js.map +1 -1
- package/dist/memory/index.js +31 -31
- package/dist/memory/index.js.map +2 -2
- package/dist/redis/index.js +5 -4
- package/dist/redis/index.js.map +1 -1
- package/dist/redis/redisLock.d.ts +1 -1
- package/dist/redis/redisLock.d.ts.map +1 -1
- package/dist/redis/redisLock.js +5 -4
- package/dist/redis/redisLock.js.map +1 -1
- package/dist/refresh.js +9 -9
- package/dist/refresh.js.map +1 -1
- package/dist/replay.js +9 -9
- package/dist/replay.js.map +1 -1
- package/dist/snapshotGenerator.js +2 -2
- package/dist/superjson.js +8 -8
- package/dist/superjson.js.map +1 -1
- package/dist/surreal/index.js +73 -73
- package/dist/surreal/index.js.map +2 -2
- package/dist/surreal/schema.js +8 -8
- package/dist/surreal/schema.js.map +1 -1
- package/dist/transaction.js +1 -1
- package/dist/utils.js +6 -6
- package/dist/utils.js.map +1 -1
- package/dist/wrappedEventBuilder.js +8 -8
- package/dist/wrappedEventBuilder.js.map +1 -1
- package/package.json +1 -1
- package/src/createAggregateRoot.ts +22 -2
- package/src/lock.ts +17 -3
- package/src/redis/redisLock.ts +6 -2
- package/src/tests/aggregateRoot.spec.ts +42 -0
- package/dist/chunk-2fe8jjdc.js +0 -22
- package/dist/chunk-6q8mr1sg.js +0 -13
- package/dist/chunk-6yrb30rx.js +0 -22
- package/dist/chunk-7akf01zj.js.map +0 -10
- package/dist/chunk-ak901ckt.js +0 -67
- package/dist/chunk-dgzw1nj9.js.map +0 -10
- package/dist/chunk-jd4q8fcf.js +0 -11
- package/dist/chunk-ty9bhdvx.js.map +0 -10
package/dist/index.js
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "./chunk-
|
|
2
|
+
isStreamId2,
|
|
3
|
+
isStreamEvents2
|
|
4
|
+
} from "./chunk-6dn6wxg7.js";
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
} from "./chunk-
|
|
6
|
+
createEventStore2
|
|
7
|
+
} from "./chunk-pcggjrxr.js";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import"./chunk-z388cd25.js";
|
|
9
|
+
getEventListenerInfo2,
|
|
10
|
+
isInsideEventListener2
|
|
11
|
+
} from "./chunk-06anxtk6.js";
|
|
13
12
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import"./chunk-
|
|
13
|
+
createAggregateRoot2
|
|
14
|
+
} from "./chunk-f95c3da4.js";
|
|
15
|
+
import"./chunk-c7sytwpp.js";
|
|
16
|
+
import"./chunk-zkz6ew8c.js";
|
|
17
|
+
import"./chunk-9qtjz725.js";
|
|
18
18
|
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import"./chunk-
|
|
19
|
+
getProcessManagerInfo2,
|
|
20
|
+
isInsideProcessManager2
|
|
21
|
+
} from "./chunk-d6jqbrq2.js";
|
|
22
|
+
import"./chunk-fpjnk143.js";
|
|
23
23
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} from "./chunk-
|
|
24
|
+
getProjectionInfo2,
|
|
25
|
+
isInsideProjection2
|
|
26
|
+
} from "./chunk-2wqpktzp.js";
|
|
27
27
|
import {
|
|
28
|
-
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import"./chunk-
|
|
28
|
+
skipReplay2
|
|
29
|
+
} from "./chunk-tkwe4r0y.js";
|
|
30
|
+
import"./chunk-fxb9fbvz.js";
|
|
31
|
+
import"./chunk-nrhw3kde.js";
|
|
32
|
+
import"./chunk-j4mwjx07.js";
|
|
31
33
|
import {
|
|
32
|
-
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import"./chunk-3251p253.js";
|
|
35
|
-
import"./chunk-pc1q4se9.js";
|
|
34
|
+
skipRefreshing2
|
|
35
|
+
} from "./chunk-hmvwn02w.js";
|
|
36
36
|
import {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
} from "./chunk-
|
|
37
|
+
ConcurrencyError2,
|
|
38
|
+
CheckpointConcurrencyError2,
|
|
39
|
+
ValidationError2,
|
|
40
|
+
EventValidationError2,
|
|
41
|
+
InfiniteLoopError2,
|
|
42
|
+
CommandError2,
|
|
43
|
+
ProjectionReplayLoopError2,
|
|
44
|
+
RefreshingSkipError2,
|
|
45
|
+
ReplaySkipError2,
|
|
46
|
+
ProjectionEventHandlerExecutionError2,
|
|
47
|
+
ProcessManagerEventHandlerExecutionError2
|
|
48
|
+
} from "./chunk-jw9e0fr0.js";
|
|
49
49
|
export {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
createAggregateRoot,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
50
|
+
CheckpointConcurrencyError2 as CheckpointConcurrencyError,
|
|
51
|
+
CommandError2 as CommandError,
|
|
52
|
+
ConcurrencyError2 as ConcurrencyError,
|
|
53
|
+
EventValidationError2 as EventValidationError,
|
|
54
|
+
InfiniteLoopError2 as InfiniteLoopError,
|
|
55
|
+
ProcessManagerEventHandlerExecutionError2 as ProcessManagerEventHandlerExecutionError,
|
|
56
|
+
ProjectionEventHandlerExecutionError2 as ProjectionEventHandlerExecutionError,
|
|
57
|
+
ProjectionReplayLoopError2 as ProjectionReplayLoopError,
|
|
58
|
+
RefreshingSkipError2 as RefreshingSkipError,
|
|
59
|
+
ReplaySkipError2 as ReplaySkipError,
|
|
60
|
+
ValidationError2 as ValidationError,
|
|
61
|
+
createAggregateRoot2 as createAggregateRoot,
|
|
62
|
+
createEventStore2 as createEventStore,
|
|
63
|
+
getEventListenerInfo2 as getEventListenerInfo,
|
|
64
|
+
getProcessManagerInfo2 as getProcessManagerInfo,
|
|
65
|
+
getProjectionInfo2 as getProjectionInfo,
|
|
66
|
+
isInsideEventListener2 as isInsideEventListener,
|
|
67
|
+
isInsideProcessManager2 as isInsideProcessManager,
|
|
68
|
+
isInsideProjection2 as isInsideProjection,
|
|
69
|
+
isStreamEvents2 as isStreamEvents,
|
|
70
|
+
isStreamId2 as isStreamId,
|
|
71
|
+
skipRefreshing2 as skipRefreshing,
|
|
72
|
+
skipReplay2 as skipReplay
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
//# debugId=
|
|
75
|
+
//# debugId=EA0AA82B164EF71064756E2164756E21
|
package/dist/index.js.map
CHANGED
package/dist/lock.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const DEFAULT_LOCK_TTL = 5000;
|
|
2
|
+
export type Lock = {
|
|
3
|
+
/** Moves the expiry to `ttl` from now (default: half the lock's TTL). */
|
|
2
4
|
extend(ttl?: number): Promise<boolean>;
|
|
3
5
|
release(): Promise<void>;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* The TTL the lock was taken with. The aggregate root keeps a replay's lock
|
|
8
|
+
* alive at a quarter of it, and assumes {@link DEFAULT_LOCK_TTL} without it.
|
|
9
|
+
*/
|
|
10
|
+
ttl?: number;
|
|
11
|
+
};
|
|
12
|
+
export type LockCreator = (key: string | string[]) => Promise<Lock>;
|
|
13
|
+
export default function lock(defaultTtl?: number): LockCreator;
|
|
6
14
|
//# sourceMappingURL=lock.d.ts.map
|
package/dist/lock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAEA,MAAM,
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC,MAAM,MAAM,IAAI,GAAG;IACjB,yEAAyE;IACzE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnE,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,UAAU,SAAmB,GAAG,WAAW,CAsDvE"}
|
package/dist/lock.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
+
DEFAULT_LOCK_TTL2,
|
|
2
3
|
lock
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-j4mwjx07.js";
|
|
4
5
|
export {
|
|
6
|
+
DEFAULT_LOCK_TTL2 as DEFAULT_LOCK_TTL,
|
|
5
7
|
lock as default
|
|
6
8
|
};
|
|
7
9
|
|
|
8
|
-
//# debugId=
|
|
10
|
+
//# debugId=FAC60E1734CE87E364756E2164756E21
|
package/dist/lock.js.map
CHANGED
package/dist/memory/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
+
import"../chunk-06anxtk6.js";
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
ConcurrencyError2
|
|
4
|
+
} from "../chunk-jw9e0fr0.js";
|
|
5
|
+
import"../chunk-nrhw3kde.js";
|
|
6
|
+
import"../chunk-hmvwn02w.js";
|
|
7
|
+
import"../chunk-fpjnk143.js";
|
|
8
|
+
import"../chunk-d6jqbrq2.js";
|
|
9
|
+
import"../chunk-tkwe4r0y.js";
|
|
10
|
+
import"../chunk-fxb9fbvz.js";
|
|
11
|
+
import"../chunk-2wqpktzp.js";
|
|
12
|
+
import"../chunk-j4mwjx07.js";
|
|
13
|
+
import"../chunk-9qtjz725.js";
|
|
14
|
+
import"../chunk-zkz6ew8c.js";
|
|
5
15
|
import {
|
|
6
|
-
|
|
7
|
-
} from "../chunk-
|
|
16
|
+
createEventStore2
|
|
17
|
+
} from "../chunk-pcggjrxr.js";
|
|
18
|
+
import"../chunk-c7sytwpp.js";
|
|
8
19
|
import {
|
|
9
|
-
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import"../chunk-ty9bhdvx.js";
|
|
12
|
-
import"../chunk-z388cd25.js";
|
|
13
|
-
import"../chunk-24xjphpk.js";
|
|
14
|
-
import"../chunk-tfy01fah.js";
|
|
15
|
-
import"../chunk-zznvzvnv.js";
|
|
16
|
-
import"../chunk-8qn1nqnh.js";
|
|
17
|
-
import"../chunk-kqh3q3fj.js";
|
|
18
|
-
import"../chunk-6yrb30rx.js";
|
|
19
|
-
import"../chunk-6q8mr1sg.js";
|
|
20
|
-
import"../chunk-2fe8jjdc.js";
|
|
21
|
-
import"../chunk-3251p253.js";
|
|
22
|
-
import"../chunk-pc1q4se9.js";
|
|
20
|
+
createAggregateRoot2
|
|
21
|
+
} from "../chunk-f95c3da4.js";
|
|
23
22
|
import {
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
isStreamId2,
|
|
24
|
+
isStreamEvents2
|
|
25
|
+
} from "../chunk-6dn6wxg7.js";
|
|
26
26
|
|
|
27
27
|
// src/memory/index.ts
|
|
28
28
|
function createMemoryStorage(params) {
|
|
@@ -38,9 +38,9 @@ function createMemoryStorage(params) {
|
|
|
38
38
|
let eventTypes = null;
|
|
39
39
|
if (select) {
|
|
40
40
|
const selects = Array.isArray(select) ? select : [select];
|
|
41
|
-
streamTypes = selects.map((
|
|
42
|
-
streamIds = selects.map((
|
|
43
|
-
eventTypes = selects.flatMap((
|
|
41
|
+
streamTypes = selects.map((select) => select.stream);
|
|
42
|
+
streamIds = selects.map((select) => isStreamId2(select) ? select.id : null).filter(Boolean);
|
|
43
|
+
eventTypes = selects.flatMap((select) => isStreamEvents2(select) ? select.events : []);
|
|
44
44
|
}
|
|
45
45
|
const filteredEvents = events.filter((event) => {
|
|
46
46
|
if (streamTypes?.length && !streamTypes.includes(event.streamType)) {
|
|
@@ -68,7 +68,7 @@ function createMemoryStorage(params) {
|
|
|
68
68
|
const lastEvent = events.findLast((e) => e.streamId === id && e.streamType === stream);
|
|
69
69
|
const currentVersion = lastEvent?.streamVersion ?? 0;
|
|
70
70
|
if (currentVersion !== expectedVersion) {
|
|
71
|
-
throw new
|
|
71
|
+
throw new ConcurrencyError2({ id, stream }, expectedVersion, currentVersion);
|
|
72
72
|
}
|
|
73
73
|
const extendedEvents = newEvents.map((event, index) => ({
|
|
74
74
|
...event,
|
|
@@ -163,7 +163,7 @@ function createMemoryStorage(params) {
|
|
|
163
163
|
}
|
|
164
164
|
};
|
|
165
165
|
}
|
|
166
|
-
function
|
|
166
|
+
function createEventStore({
|
|
167
167
|
aggregateRoots,
|
|
168
168
|
postProcessEvent,
|
|
169
169
|
onProjectionReplay,
|
|
@@ -173,7 +173,7 @@ function createEventStore2({
|
|
|
173
173
|
lock
|
|
174
174
|
}) {
|
|
175
175
|
const storage = createMemoryStorage({ onEventsAppended });
|
|
176
|
-
return
|
|
176
|
+
return createEventStore2({
|
|
177
177
|
aggregateRoots,
|
|
178
178
|
postProcessEvent,
|
|
179
179
|
onProjectionReplay,
|
|
@@ -184,9 +184,9 @@ function createEventStore2({
|
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
export {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
187
|
+
createAggregateRoot2 as createAggregateRoot,
|
|
188
|
+
createEventStore,
|
|
189
|
+
createMemoryStorage
|
|
190
190
|
};
|
|
191
191
|
|
|
192
|
-
//# debugId=
|
|
192
|
+
//# debugId=75FA3DEA7CD7B46C64756E2164756E21
|
package/dist/memory/index.js.map
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type {\n AggregateRootSnapshotMethods,\n AnyAggregateRoot,\n} from '../createAggregateRoot.ts'\nimport type { Checkpoint, CheckpointMethods } from '../createCheckpointApi.ts'\nimport type { ProjectionSnapshotMethods } from '../createProjection.ts'\nimport {\n type AggregateRootSnapshot,\n ConcurrencyError,\n type Event,\n type ProjectionSnapshot,\n createEventStore as createBaseEventStore,\n isStreamEvents,\n isStreamId,\n} from '../index.ts'\nimport type {\n EventStore,\n EventStoreParamsWithAggregateRootSnapshots,\n EventsFromRoot,\n LoadEvents,\n OnProgress,\n} from '../createEventStore.ts'\nimport type { LockCreator } from '../lock.ts'\nimport type {\n BaseInputEvent,\n BaseOutputEvent,\n MaybePromise,\n StreamId,\n} from '../utilityTypes.js'\n\nexport { createAggregateRoot } from '../index.ts'\n\nexport type OnEventsAppended = (events: BaseOutputEvent[]) => MaybePromise<void>\n\ninterface MemoryEventStoreParams<Root extends AnyAggregateRoot> {\n aggregateRoots: Root[]\n autoInit?: boolean\n lock?: LockCreator\n postProcessEvent?: EventStoreParamsWithAggregateRootSnapshots<Root>['postProcessEvent']\n onProjectionReplay?: OnProgress\n onProcessManagerRefresh?: OnProgress\n onEventsAppended?: OnEventsAppended\n}\n\nexport function createMemoryStorage(params?: {\n onEventsAppended?: OnEventsAppended\n}): {\n loadEvents: LoadEvents\n appendEvents: (\n streamId: StreamId,\n events: BaseInputEvent[],\n expectedVersion: number,\n ) => BaseOutputEvent[]\n checkpoint: CheckpointMethods\n projectionSnapshot: ProjectionSnapshotMethods\n aggregateRootSnapshot: AggregateRootSnapshotMethods\n} {\n const events: Event[] = []\n const checkpoints = new Set<Checkpoint>()\n const aggregateRootSnapshots = new Map<string, AggregateRootSnapshot>()\n const projectionSnapshots = new Set<ProjectionSnapshot>()\n const projectionAppliedCount = new Map<string, number>()\n\n return {\n async *loadEvents(select, range) {\n let streamTypes: string[] | null = null\n let streamIds: string[] | null = null\n let eventTypes: string[] | null = null\n\n if (select) {\n const selects = Array.isArray(select) ? select : [select]\n streamTypes = selects.map((select) => select.stream)\n streamIds = selects\n .map((select) => (isStreamId(select) ? select.id : null))\n .filter(Boolean) as string[]\n eventTypes = selects.flatMap((select) =>\n isStreamEvents(select) ? select.events : [],\n )\n }\n\n const filteredEvents = events.filter((event) => {\n if (streamTypes?.length && !streamTypes.includes(event.streamType)) {\n return false\n }\n\n if (streamIds?.length && !streamIds.includes(event.streamId)) {\n return false\n }\n\n if (eventTypes?.length && !eventTypes.includes(event.type)) {\n return false\n }\n\n if (range?.from && event.position < range.from) {\n return false\n }\n\n if (range?.to && event.position > range.to) {\n return false\n }\n\n return true\n })\n\n for (const event of filteredEvents) {\n yield event\n }\n },\n\n appendEvents({ id, stream }, newEvents, expectedVersion) {\n const lastEvent = events.findLast(\n (e) => e.streamId === id && e.streamType === stream,\n )\n\n const currentVersion = lastEvent?.streamVersion ?? 0\n\n if (currentVersion !== expectedVersion) {\n throw new ConcurrencyError(\n { id, stream },\n expectedVersion,\n currentVersion,\n )\n }\n\n const extendedEvents: Event[] = newEvents.map((event, index) => ({\n ...event,\n createdAt: new Date(),\n position: events.length + index,\n streamId: id,\n streamType: stream,\n streamVersion: expectedVersion + index + 1,\n }))\n\n events.push(...extendedEvents)\n params?.onEventsAppended?.(extendedEvents)\n return extendedEvents\n },\n\n checkpoint: {\n get(type, name) {\n for (const checkpoint of checkpoints) {\n if (checkpoint.type === type && checkpoint.name === name) {\n return checkpoint\n }\n }\n },\n upsert(checkpoint, expectedVersion) {\n let persisted: Checkpoint | undefined\n for (const c of checkpoints) {\n if (c.type === checkpoint.type && c.name === checkpoint.name) {\n persisted = c\n break\n }\n }\n\n if (persisted) {\n // Compare-and-swap: reject the write when another writer advanced the\n // checkpoint, or when the caller expected to create a fresh one.\n if (\n expectedVersion === null ||\n persisted.version !== expectedVersion\n ) {\n return false\n }\n persisted.lastEventPosition = checkpoint.lastEventPosition\n persisted.metadata = checkpoint.metadata\n persisted.version = checkpoint.version\n } else {\n checkpoints.add({ ...checkpoint })\n }\n\n return true\n },\n delete(type, name) {\n for (const checkpoint of checkpoints) {\n if (checkpoint.type === type && checkpoint.name === name) {\n checkpoints.delete(checkpoint)\n }\n }\n },\n },\n\n projectionSnapshot: {\n put(snapshot) {\n projectionSnapshots.add(snapshot)\n },\n get(select) {\n return Array.from(projectionSnapshots)\n .toReversed()\n .find(\n (snapshot) =>\n snapshot.projectionId === select.id &&\n snapshot.projectionType === select.projection,\n )\n },\n delete(target, fromPosition) {\n for (const snapshot of projectionSnapshots) {\n if (target.id && snapshot.projectionId !== target.id) {\n continue\n }\n\n if (snapshot.projectionType !== target.projection) {\n continue\n }\n\n if (fromPosition && snapshot.lastEventPosition < fromPosition) {\n continue\n }\n\n projectionSnapshots.delete(snapshot)\n }\n },\n incrementAppliedCount(select) {\n const key = `${select.projection}-${select.id}`\n const nextCount = (projectionAppliedCount.get(key) ?? 0) + 1\n projectionAppliedCount.set(key, nextCount)\n return nextCount\n },\n },\n\n aggregateRootSnapshot: {\n put(snapshot) {\n aggregateRootSnapshots.set(\n `${snapshot.streamType}:${snapshot.streamId}`,\n snapshot,\n )\n },\n get(select) {\n return aggregateRootSnapshots.get(`${select.stream}:${select.id}`)\n },\n delete(target, fromStreamVersion) {\n const key = `${target.stream}:${target.id}`\n const snapshot = aggregateRootSnapshots.get(key)\n if (snapshot && snapshot.streamVersion > fromStreamVersion) {\n aggregateRootSnapshots.delete(key)\n }\n },\n },\n }\n}\n\nexport function createEventStore<const Root extends AnyAggregateRoot>({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n onEventsAppended,\n autoInit,\n lock,\n}: MemoryEventStoreParams<Root>): EventStore<EventsFromRoot<Root>, Root, true> {\n const storage = createMemoryStorage({ onEventsAppended })\n\n return createBaseEventStore({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n autoInit,\n lock,\n ...storage,\n }) as any\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CO,SAAS,mBAAmB,CAAC,QAYlC;AAAA,EACA,MAAM,SAAkB,CAAC;AAAA,EACzB,MAAM,cAAc,IAAI;AAAA,EACxB,MAAM,yBAAyB,IAAI;AAAA,EACnC,MAAM,sBAAsB,IAAI;AAAA,EAChC,MAAM,yBAAyB,IAAI;AAAA,EAEnC,OAAO;AAAA,WACE,UAAU,CAAC,QAAQ,OAAO;AAAA,MAC/B,IAAI,cAA+B;AAAA,MACnC,IAAI,YAA6B;AAAA,MACjC,IAAI,aAA8B;AAAA,MAElC,IAAI,QAAQ;AAAA,QACV,MAAM,UAAU,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AAAA,QACxD,cAAc,QAAQ,IAAI,CAAC,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "75FA3DEA7CD7B46C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/redis/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import"../chunk-j4mwjx07.js";
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
redisLock2
|
|
4
|
+
} from "../chunk-467qtkth.js";
|
|
4
5
|
export {
|
|
5
|
-
redisLock
|
|
6
|
+
redisLock2 as redisLock
|
|
6
7
|
};
|
|
7
8
|
|
|
8
|
-
//# debugId=
|
|
9
|
+
//# debugId=85C4E8BEEDB0EDE964756E2164756E21
|
package/dist/redis/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redisLock.d.ts","sourceRoot":"","sources":["../../src/redis/redisLock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"redisLock.d.ts","sourceRoot":"","sources":["../../src/redis/redisLock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAkB/D,wBAAgB,SAAS,CACvB,MAAM,EAAE,KAAK,EACb,UAAU,SAAmB,GAC5B,WAAW,CAyCb"}
|
package/dist/redis/redisLock.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunk-
|
|
2
|
+
redisLock2
|
|
3
|
+
} from "../chunk-467qtkth.js";
|
|
4
|
+
import"../chunk-j4mwjx07.js";
|
|
4
5
|
export {
|
|
5
|
-
redisLock
|
|
6
|
+
redisLock2 as redisLock
|
|
6
7
|
};
|
|
7
8
|
|
|
8
|
-
//# debugId=
|
|
9
|
+
//# debugId=38415CDDB88DF46764756E2164756E21
|
package/dist/refresh.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import"./chunk-
|
|
2
|
+
isRefreshing2,
|
|
3
|
+
withRefreshing2,
|
|
4
|
+
skipRefreshing2
|
|
5
|
+
} from "./chunk-hmvwn02w.js";
|
|
6
|
+
import"./chunk-jw9e0fr0.js";
|
|
7
7
|
export {
|
|
8
|
-
|
|
9
|
-
skipRefreshing,
|
|
10
|
-
|
|
8
|
+
isRefreshing2 as isRefreshing,
|
|
9
|
+
skipRefreshing2 as skipRefreshing,
|
|
10
|
+
withRefreshing2 as withRefreshing
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
//# debugId=
|
|
13
|
+
//# debugId=DC49AF3D54401EE464756E2164756E21
|
package/dist/refresh.js.map
CHANGED
package/dist/replay.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import"./chunk-
|
|
2
|
+
isReplaying2,
|
|
3
|
+
withReplaying2,
|
|
4
|
+
skipReplay2
|
|
5
|
+
} from "./chunk-tkwe4r0y.js";
|
|
6
|
+
import"./chunk-jw9e0fr0.js";
|
|
7
7
|
export {
|
|
8
|
-
|
|
9
|
-
skipReplay,
|
|
10
|
-
|
|
8
|
+
isReplaying2 as isReplaying,
|
|
9
|
+
skipReplay2 as skipReplay,
|
|
10
|
+
withReplaying2 as withReplaying
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
//# debugId=
|
|
13
|
+
//# debugId=59E388C382E482FC64756E2164756E21
|
package/dist/replay.js.map
CHANGED
package/dist/superjson.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
2
|
+
superjson2,
|
|
3
|
+
extendTypes2,
|
|
4
|
+
clone2
|
|
5
|
+
} from "./chunk-fpjnk143.js";
|
|
6
6
|
export {
|
|
7
|
-
|
|
8
|
-
extendTypes,
|
|
9
|
-
|
|
7
|
+
clone2 as clone,
|
|
8
|
+
extendTypes2 as extendTypes,
|
|
9
|
+
superjson2 as superjson
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
//# debugId=
|
|
12
|
+
//# debugId=C91B9A123E8B879B64756E2164756E21
|