@requence/event-sourcing 1.4.1 → 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/README.md +6 -5
- 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-3ejt4h7x.js → chunk-2wqpktzp.js} +78 -66
- package/dist/chunk-2wqpktzp.js.map +10 -0
- 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-vvv14qxy.js → chunk-d6jqbrq2.js} +33 -31
- package/dist/{chunk-vvv14qxy.js.map → chunk-d6jqbrq2.js.map} +3 -3
- package/dist/{chunk-vep2byx4.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-mbxxvskx.js.map +10 -0
- package/dist/{chunk-yn2sjcg3.js → chunk-nrhw3kde.js} +57 -8
- package/dist/chunk-nrhw3kde.js.map +10 -0
- package/dist/{chunk-57b88rt5.js → chunk-pcggjrxr.js} +32 -32
- package/dist/{chunk-57b88rt5.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.d.ts +30 -0
- package/dist/createCheckpointApi.d.ts.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.d.ts.map +1 -1
- package/dist/createProcessManager.js +12 -12
- package/dist/createProcessManager.js.map +1 -1
- package/dist/createProjection.d.ts.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.d.ts +14 -3
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +52 -45
- package/dist/memory/index.js.map +3 -3
- package/dist/memory/index.spec.d.ts +2 -0
- package/dist/memory/index.spec.d.ts.map +1 -0
- 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.d.ts +35 -0
- package/dist/surreal/index.d.ts.map +1 -0
- package/dist/surreal/index.js +415 -0
- package/dist/surreal/index.js.map +10 -0
- package/dist/surreal/index.spec.d.ts +2 -0
- package/dist/surreal/index.spec.d.ts.map +1 -0
- package/dist/surreal/schema.d.ts +12 -0
- package/dist/surreal/schema.d.ts.map +1 -0
- package/dist/surreal/schema.js +12 -0
- package/dist/surreal/schema.js.map +9 -0
- package/dist/tests/projectionMultiInstance.spec.d.ts +2 -0
- package/dist/tests/projectionMultiInstance.spec.d.ts.map +1 -0
- package/dist/tests/storageDriverContract.d.ts +19 -0
- package/dist/tests/storageDriverContract.d.ts.map +1 -0
- 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 +19 -10
- package/src/createAggregateRoot.ts +24 -5
- package/src/createCheckpointApi.ts +98 -0
- package/src/createProcessManager.ts +7 -6
- package/src/createProjection.ts +91 -65
- package/src/lock.ts +17 -3
- package/src/memory/index.spec.ts +4 -0
- package/src/memory/index.ts +55 -29
- package/src/redis/redisLock.ts +6 -2
- package/src/surreal/index.spec.ts +152 -0
- package/src/surreal/index.ts +604 -0
- package/src/surreal/schema.ts +68 -0
- package/src/tests/aggregateRoot.spec.ts +48 -3
- package/src/tests/eventStore.spec.ts +1 -3
- package/src/tests/processManagerMultiInstance.spec.ts +18 -7
- package/src/tests/projectionMultiInstance.spec.ts +283 -0
- package/src/tests/storageDriverContract.ts +612 -0
- package/dist/chunk-2fe8jjdc.js +0 -22
- package/dist/chunk-3ejt4h7x.js.map +0 -10
- package/dist/chunk-6q8mr1sg.js +0 -13
- package/dist/chunk-6yrb30rx.js +0 -22
- 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/chunk-vep2byx4.js.map +0 -10
- package/dist/chunk-yn2sjcg3.js.map +0 -10
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/createCheckpointApi.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import z from 'zod/v4'\n\nimport type { LoadEvents } from './createEventStore.ts'\nimport { CheckpointConcurrencyError, ValidationError } from './errors.ts'\nimport type {\n BaseOutputEvent,\n MaybePromise,\n StreamEvents,\n} from './utilityTypes.ts'\n\nconst checkpointSchema = z.object({\n lastEventPosition: z.int(),\n type: z.enum(['projection', 'processManager']),\n name: z.string(),\n metadata: z.record(z.string(), z.any()),\n version: z.int(),\n})\n\nexport type Checkpoint = z.output<typeof checkpointSchema>\n\n/**\n * The outcome of {@link CheckpointApi.claim}: either this instance owns the\n * event and must run its work, or another instance already has it.\n */\nexport type ClaimResult =\n | { claimed: false }\n | { claimed: true; release: () => Promise<void> }\n\nexport type CheckpointMethods = {\n get: (\n type: 'projection' | 'processManager',\n name: string,\n ) => MaybePromise<Checkpoint | null | undefined>\n delete: (\n type: 'projection' | 'processManager',\n name: string,\n ) => MaybePromise<void>\n /**\n * Persist a checkpoint using optimistic concurrency control.\n *\n * The write must only succeed if the currently stored version equals\n * `expectedVersion` (or, when `expectedVersion` is `null`, if no checkpoint\n * exists yet). `checkpoint.version` holds the version to store on success.\n * Return `true` when the write was applied and `false` when it was rejected\n * because another writer had advanced the checkpoint in the meantime.\n */\n upsert: (\n checkpoint: Checkpoint,\n expectedVersion: number | null,\n ) => MaybePromise<boolean>\n}\n\nexport function createCheckpointApi(\n params: CheckpointMethods & {\n loadEvents: LoadEvents\n relatedStreamEvents: StreamEvents[] | null\n name: string\n type: 'processManager' | 'projection'\n apply: (event: BaseOutputEvent) => MaybePromise<void>\n applyAfter?: (event: BaseOutputEvent) => MaybePromise<void>\n },\n) {\n // In-memory view of the persisted checkpoint version. `null` means \"no\n // checkpoint has been written yet\". It is kept in sync with the store on\n // every load/upsert so optimistic-concurrency writes can detect when another\n // instance has advanced the same checkpoint.\n let version: number | null = null\n // The position that goes with `version`. Only {@link CheckpointApi.claim}\n // needs it, to put the cursor back if the work it claimed then fails.\n let position: number | null = null\n\n const api = {\n relatedStreamEvents: params.relatedStreamEvents,\n async clear() {\n await params.delete(params.type, params.name)\n version = null\n position = null\n },\n /**\n * Load the persisted checkpoint and sync the local version. Returns the\n * raw checkpoint (or `null`), so callers can rehydrate their own state\n * (e.g. a process manager reloading its folded state) from it.\n */\n async load() {\n const checkpoint = await params.get(params.type, params.name)\n version = checkpoint?.version ?? null\n position = checkpoint?.lastEventPosition ?? null\n return checkpoint ?? null\n },\n /**\n * Takes ownership of `event` *before* its work runs, so that exactly one\n * instance does that work.\n *\n * Every instance runs its own copy of a projection against shared storage,\n * and each decides what it has already applied from a cursor only it can\n * see. Two instances catching up over the same backlog — or one catching up\n * while the other applies an event it just appended — therefore both reach\n * the same handler. Writing the cursor first, through the same\n * compare-and-swap the ordinary write uses, is what breaks the tie: the\n * loser is told so and skips the event instead of repeating its side\n * effects.\n *\n * Returns `{ claimed: false }` when another writer already covers this\n * position. On success the caller gets a `release` to call if the work then\n * fails, which puts the cursor back so the event is picked up again rather\n * than silently skipped — without it, claiming would turn every failed\n * handler into a lost event.\n */\n async claim(\n event: BaseOutputEvent,\n metadata: Record<string, any> = {},\n ): Promise<ClaimResult> {\n while (true) {\n const expectedVersion = version\n const previousPosition = position\n const nextVersion = (expectedVersion ?? -1) + 1\n\n const committed = await params.upsert(\n {\n lastEventPosition: event.position,\n type: params.type,\n name: params.name,\n metadata,\n version: nextVersion,\n },\n expectedVersion,\n )\n\n if (committed) {\n version = nextVersion\n position = event.position\n\n return {\n claimed: true,\n async release() {\n // Only undo a claim that is still the newest write. Once anything\n // else has moved the cursor, rewinding it would drop that work.\n if (version !== nextVersion) {\n return\n }\n\n if (previousPosition === null) {\n await api.clear()\n return\n }\n\n const restored = await params.upsert(\n {\n lastEventPosition: previousPosition,\n type: params.type,\n name: params.name,\n metadata,\n version: nextVersion + 1,\n },\n nextVersion,\n )\n\n if (restored) {\n version = nextVersion + 1\n position = previousPosition\n }\n },\n }\n }\n\n // Another writer advanced this checkpoint. Refresh our view of it.\n const current = await api.load()\n\n if (current && current.lastEventPosition >= event.position) {\n return { claimed: false }\n }\n }\n },\n /**\n * Persist the checkpoint position (and optional metadata) for the given\n * event.\n *\n * - `'cas'` (compare-and-swap): the write must land on top of the exact\n * version we last observed. If another writer advanced the checkpoint,\n * the local version is refreshed and a {@link CheckpointConcurrencyError}\n * is thrown so the caller can re-fold its state and retry. Used for\n * process managers that fold state into the checkpoint.\n * - `'monotonic'` (default): retries on conflict, skipping the write once\n * the stored position already covers this event. Safe for cursors with\n * no derived state (projections, stateless/after-effect writes).\n */\n async upsert(\n event: BaseOutputEvent,\n metadata: Record<string, any> = {},\n mode: 'cas' | 'monotonic' = 'monotonic',\n ) {\n while (true) {\n const expectedVersion = version\n const nextVersion = (expectedVersion ?? -1) + 1\n const committed = await params.upsert(\n {\n lastEventPosition: event.position,\n type: params.type,\n name: params.name,\n metadata,\n version: nextVersion,\n },\n expectedVersion,\n )\n\n if (committed) {\n version = nextVersion\n position = event.position\n return\n }\n\n // Another writer advanced this checkpoint. Refresh our view of it.\n const current = await api.load()\n\n if (mode === 'cas') {\n throw new CheckpointConcurrencyError(\n params.type,\n params.name,\n expectedVersion,\n )\n }\n\n // monotonic: the stored cursor already covers this event, nothing to do.\n if (current && current.lastEventPosition >= event.position) {\n return\n }\n }\n },\n async rehydrated(\n options: {\n onMetadata?: (metadata: Record<string, any>) => unknown\n getMetadata?: () => Record<string, any>\n onProgress?: (index: number, event: BaseOutputEvent) => void\n } = {},\n ) {\n const checkpoint = await api.load()\n let startPosition = 0\n if (checkpoint) {\n const result = checkpointSchema.safeParse(checkpoint)\n if (!result.success) {\n throw new ValidationError(\n `loaded checkpoint for ${params.type} ${params.name} does not comply with schema`,\n result.error,\n )\n }\n startPosition = checkpoint.lastEventPosition + 1\n options.onMetadata?.(checkpoint.metadata)\n }\n\n const events = params.loadEvents(params.relatedStreamEvents, {\n from: startPosition,\n })\n\n let index = 0\n let lastEvent: BaseOutputEvent | null = null\n for await (const event of events) {\n lastEvent = event\n await params.apply(event)\n index++\n options.onProgress?.(index, event)\n }\n\n if (!lastEvent) {\n return // up to date\n }\n\n if (params.applyAfter) {\n for await (const event of events) {\n await params.applyAfter(event)\n }\n }\n\n await api.upsert(lastEvent, options.getMetadata?.())\n },\n }\n\n return api\n}\n\nexport type CheckpointApi = ReturnType<typeof createCheckpointApi>\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "48393861CC2E414464756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
createEventListener2
|
|
3
|
+
} from "./chunk-06anxtk6.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
withRefreshing2
|
|
6
|
+
} from "./chunk-hmvwn02w.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
buildProcessManagerCreator2
|
|
9
|
+
} from "./chunk-d6jqbrq2.js";
|
|
10
10
|
import {
|
|
11
|
-
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
buildProjectionCreator2
|
|
12
|
+
} from "./chunk-2wqpktzp.js";
|
|
13
13
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} from "./chunk-z388cd25.js";
|
|
14
|
+
lock
|
|
15
|
+
} from "./chunk-j4mwjx07.js";
|
|
17
16
|
import {
|
|
18
|
-
|
|
19
|
-
} from "./chunk-
|
|
17
|
+
createTransaction
|
|
18
|
+
} from "./chunk-9qtjz725.js";
|
|
20
19
|
import {
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
unwrapEvent2,
|
|
21
|
+
wrappedEventBuilder2
|
|
22
|
+
} from "./chunk-zkz6ew8c.js";
|
|
23
23
|
|
|
24
24
|
// src/createEventStore.ts
|
|
25
|
-
function
|
|
25
|
+
function createEventStore2(params) {
|
|
26
26
|
const transaction = createTransaction();
|
|
27
27
|
const { promise: initialized, resolve: resolveInitialized } = Promise.withResolvers();
|
|
28
28
|
const projections = new Map;
|
|
@@ -79,9 +79,9 @@ function createEventStore(params) {
|
|
|
79
79
|
const processedEvents = events.map((rawEvent) => {
|
|
80
80
|
const event = structuredClone(rawEvent);
|
|
81
81
|
if (params.postProcessEvent) {
|
|
82
|
-
const wrappedEvent =
|
|
82
|
+
const wrappedEvent = wrappedEventBuilder2(event);
|
|
83
83
|
const { aggregateRoot } = aggregatRootsByEvents.get(event.type);
|
|
84
|
-
const processedEvent =
|
|
84
|
+
const processedEvent = unwrapEvent2(params.postProcessEvent(wrappedEvent, aggregateRoot));
|
|
85
85
|
Object.assign(event, processedEvent);
|
|
86
86
|
}
|
|
87
87
|
return event;
|
|
@@ -104,13 +104,13 @@ function createEventStore(params) {
|
|
|
104
104
|
});
|
|
105
105
|
aggregateRoot.linkEventStore(loadEvents, appendEvents, emitEvents, transaction, params.lock ?? lock(5000), params.aggregateRootSnapshot);
|
|
106
106
|
}
|
|
107
|
-
const baseCreateProjection =
|
|
107
|
+
const baseCreateProjection = buildProjectionCreator2({
|
|
108
108
|
loadEvents,
|
|
109
109
|
checkpoint: params.checkpoint,
|
|
110
110
|
snapshot: params.projectionSnapshot,
|
|
111
111
|
onReplay: params.onProjectionReplay
|
|
112
112
|
});
|
|
113
|
-
const baseCreateProcessManager =
|
|
113
|
+
const baseCreateProcessManager = buildProcessManagerCreator2({
|
|
114
114
|
loadEvents,
|
|
115
115
|
checkpoint: params.checkpoint,
|
|
116
116
|
onRefresh: params.onProcessManagerRefresh
|
|
@@ -153,36 +153,36 @@ function createEventStore(params) {
|
|
|
153
153
|
if (projections.has(name)) {
|
|
154
154
|
throw new Error(`Projection ${name} is already registered`);
|
|
155
155
|
}
|
|
156
|
-
const
|
|
157
|
-
const internalApi =
|
|
156
|
+
const api = baseCreateProjection(name);
|
|
157
|
+
const internalApi = api;
|
|
158
158
|
internalApi.setRelatedStreamEvents((handlers) => getRelatedStreamEvents(handlers));
|
|
159
159
|
projections.set(name, internalApi);
|
|
160
160
|
if (initializing) {
|
|
161
161
|
internalApi.init(true);
|
|
162
162
|
}
|
|
163
|
-
return
|
|
163
|
+
return api;
|
|
164
164
|
},
|
|
165
165
|
createProcessManager(name, options) {
|
|
166
166
|
if (processManagers.has(name)) {
|
|
167
167
|
throw new Error(`Process Manager ${name} is already registered`);
|
|
168
168
|
}
|
|
169
|
-
const
|
|
170
|
-
const internalApi =
|
|
169
|
+
const api = baseCreateProcessManager(name, options);
|
|
170
|
+
const internalApi = api;
|
|
171
171
|
internalApi.setRelatedStreamEvents((handlers) => getRelatedStreamEvents(handlers));
|
|
172
172
|
processManagers.set(name, internalApi);
|
|
173
173
|
if (initializing) {
|
|
174
174
|
internalApi.init(true);
|
|
175
175
|
}
|
|
176
|
-
return
|
|
176
|
+
return api;
|
|
177
177
|
},
|
|
178
178
|
createEventListener(name) {
|
|
179
179
|
if (eventListeners.has(name)) {
|
|
180
180
|
throw new Error(`Event Listener ${name} is already registered`);
|
|
181
181
|
}
|
|
182
|
-
const
|
|
183
|
-
const internalApi =
|
|
182
|
+
const api = createEventListener2(name);
|
|
183
|
+
const internalApi = api;
|
|
184
184
|
eventListeners.set(name, internalApi);
|
|
185
|
-
return
|
|
185
|
+
return api;
|
|
186
186
|
},
|
|
187
187
|
async isReady() {
|
|
188
188
|
await initialized;
|
|
@@ -202,7 +202,7 @@ function createEventStore(params) {
|
|
|
202
202
|
...replayProjections.map((projection) => projection.beginReplay()),
|
|
203
203
|
...replayProcessManagers.map((processManager) => processManager.beginRefresh())
|
|
204
204
|
]);
|
|
205
|
-
await
|
|
205
|
+
await withRefreshing2(async () => {
|
|
206
206
|
let index = 0;
|
|
207
207
|
for await (const event of loadEvents(null)) {
|
|
208
208
|
index++;
|
|
@@ -245,6 +245,6 @@ function createEventStore(params) {
|
|
|
245
245
|
return api;
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
export {
|
|
248
|
+
export { createEventStore2 };
|
|
249
249
|
|
|
250
|
-
//# debugId=
|
|
250
|
+
//# debugId=45EED805BC72D1C864756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type {\n AggregateRootApi,\n AggregateRootSnapshotMethods,\n AnyAggregateRoot,\n InternalAggregateRootApi,\n} from './createAggregateRoot.ts'\nimport type { CheckpointMethods } from './createCheckpointApi.ts'\nimport {\n type EventListenerApi,\n type InternalEventListener,\n createEventListener,\n} from './createEventListener.ts'\nimport {\n type InternalProcessManager,\n type ProcessManagerApi,\n type ProcessManagerOptions,\n buildProcessManagerCreator,\n} from './createProcessManager.ts'\nimport {\n type InternalProjection,\n type ProjectionApi,\n type ProjectionApiWithSnapshots,\n type ProjectionSnapshotMethods,\n buildProjectionCreator,\n} from './createProjection.ts'\nimport lock, { type LockCreator } from './lock.ts'\nimport { withRefreshing } from './refresh.ts'\nimport createTransaction, { type TransactionOptions } from './transaction.ts'\nimport type {\n BaseInputEvent,\n BaseOutputEvent,\n EventHandlers,\n EventTemplate,\n MaybePromise,\n Stream,\n StreamEvents,\n StreamId,\n StreamIdEvents,\n} from './utilityTypes.ts'\nimport {\n type WrappedEvent,\n unwrapEvent,\n wrappedEventBuilder,\n} from './wrappedEventBuilder.ts'\n\nexport type LoadEvents = (\n select:\n | Stream\n | StreamId\n | Stream[]\n | StreamId[]\n | StreamEvents\n | StreamEvents[]\n | StreamIdEvents\n | StreamIdEvents[]\n | null,\n range?: { from: number; to?: number },\n) => AsyncGenerator<BaseOutputEvent>\n\ntype AppendEvents = (\n streamId: StreamId,\n events: BaseInputEvent[],\n expectedVersion: number,\n) => MaybePromise<BaseOutputEvent[]>\n\nexport type InternalAppendEvents = (\n streamId: StreamId,\n events: BaseInputEvent[],\n expectedVersion: number,\n) => MaybePromise<BaseOutputEvent[]>\n\nexport type EmitEvents = (events: BaseOutputEvent[]) => Promise<void>\n\nexport type EventsFromRoot<Root> =\n Root extends Omit<AggregateRootApi<any, any, infer E>, any> ? E : never\n\nexport type OnProgress = {\n begin?: (projectionName: string) => void\n progress?: (\n projectionName: string,\n index: number,\n event: BaseOutputEvent,\n ) => void\n end?: (projectionName: string) => void\n}\n\ninterface BaseEventStoreParams<Root extends AnyAggregateRoot> {\n loadEvents: LoadEvents\n appendEvents: AppendEvents\n aggregateRoots: Root[]\n checkpoint: CheckpointMethods\n lock?: LockCreator\n projectionSnapshot?: ProjectionSnapshotMethods\n onProjectionReplay?: OnProgress\n onProcessManagerRefresh?: OnProgress\n autoInit?: boolean\n}\n\nexport interface EventStoreParamsWithAggregateRootSnapshots<\n Root extends AnyAggregateRoot,\n> extends BaseEventStoreParams<Root> {\n aggregateRootSnapshot: AggregateRootSnapshotMethods\n postProcessEvent?: (\n event: WrappedEvent<EventsFromRoot<Root>>,\n aggregateRoot: Root,\n ) => WrappedEvent\n}\n\nexport interface EventStoreParamsWithoutAggregateRootSnapshots<\n Root extends AnyAggregateRoot,\n> extends BaseEventStoreParams<Root> {\n aggregateRoots: Root[]\n aggregateRootSnapshot?: never\n postProcessEvent?: (\n event: WrappedEvent<EventsFromRoot<Root>>,\n aggregateRoot: Root,\n ) => WrappedEvent\n}\n\nexport type EventStore<\n Event extends EventTemplate,\n Root extends AnyAggregateRoot,\n SupportsProjectionSnapshots = boolean,\n> = {\n createProjection(\n name: string,\n ): SupportsProjectionSnapshots extends true\n ? ProjectionApiWithSnapshots<Event>\n : ProjectionApi<Event>\n createProcessManager(\n name: string,\n options?: ProcessManagerOptions,\n ): ProcessManagerApi<never, Event>\n createEventListener(name: string): EventListenerApi<Event>\n rebuild: () => Promise<void>\n isReady: () => Promise<void>\n init: () => Promise<EventStore<Event, Root, SupportsProjectionSnapshots>>\n getAggregateRoot<S extends Root['type']>(\n type: S,\n ): Root extends { type: S } ? Root : never\n transaction<T extends () => any>(\n handler: T,\n options?: TransactionOptions,\n ): Promise<Awaited<ReturnType<T>>>\n}\n\nexport function createEventStore<const Root extends AnyAggregateRoot>(\n params: EventStoreParamsWithoutAggregateRootSnapshots<Root>,\n): EventStore<EventsFromRoot<Root>, Root, false>\nexport function createEventStore<const Root extends AnyAggregateRoot>(\n params: EventStoreParamsWithAggregateRootSnapshots<Root>,\n): EventStore<EventsFromRoot<Root>, Root, true>\nexport function createEventStore<const Root extends AnyAggregateRoot>(\n params:\n | EventStoreParamsWithoutAggregateRootSnapshots<Root>\n | EventStoreParamsWithAggregateRootSnapshots<Root>,\n) {\n const transaction = createTransaction()\n const { promise: initialized, resolve: resolveInitialized } =\n Promise.withResolvers<void>()\n const projections = new Map<string, InternalProjection>()\n const processManagers = new Map<string, InternalProcessManager>()\n const eventListeners = new Map<string, InternalEventListener>()\n const aggregatRootsByEvents = new Map<\n string,\n { aggregateRoot: InternalAggregateRootApi; eventType: string }\n >()\n\n let allReplaying = false\n let initializing = false\n\n const assertInitializing = () => {\n if (!initializing && params.autoInit === false) {\n throw new Error(\n 'Cannot emit events because the event store is not initialized. Set autoInit to true, or explicitly call .init() before emitting events.',\n )\n }\n }\n\n let exclusiveEmitEventsChain: Promise<any> = Promise.resolve()\n const emitEvents: EmitEvents = async (events) => {\n const result = exclusiveEmitEventsChain.then(async () => {\n await Promise.all(processManagers.values().map((pm) => pm.beginSession()))\n\n try {\n for (const event of events) {\n await Promise.all(\n [\n ...processManagers.values(),\n ...projections.values(),\n ...eventListeners.values(),\n ].map((listener) => listener.apply(event)),\n )\n }\n\n for (const event of events) {\n await Promise.all(\n [...processManagers.values(), ...eventListeners.values()].map(\n (processManager) => processManager.applyAfter(event),\n ),\n )\n }\n } finally {\n for (const pm of processManagers.values()) {\n pm.endSession()\n }\n }\n })\n\n // Advance the serialization chain but swallow this operation's outcome so a\n // rejection is delivered only to its own caller. Chaining the next op onto a\n // rejected promise would skip its callback and re-propagate the stale error,\n // permanently poisoning every subsequent emit for the life of the process.\n exclusiveEmitEventsChain = result.then(\n () => undefined,\n () => undefined,\n )\n\n return result\n }\n\n const loadEvents: LoadEvents = (select, range) => {\n assertInitializing()\n return params.loadEvents(select, range)\n }\n\n let exclusiveAppendEventsChain: Promise<any> = initialized\n const appendEvents: InternalAppendEvents = async (\n streamId,\n events,\n expectedVersion,\n ) => {\n assertInitializing()\n const result = exclusiveAppendEventsChain.then(async () => {\n if (events.length === 0) {\n return []\n }\n await new Promise((resolve) => setImmediate(resolve)) // edge case for sync setup, see 'can execute after effect' test\n\n const processedEvents = events.map((rawEvent) => {\n const event = structuredClone(rawEvent)\n if (params.postProcessEvent) {\n const wrappedEvent = wrappedEventBuilder(event) as WrappedEvent<any>\n const { aggregateRoot } = aggregatRootsByEvents.get(event.type)!\n const processedEvent = unwrapEvent(\n params.postProcessEvent(\n wrappedEvent,\n aggregateRoot as unknown as Root,\n ),\n )\n Object.assign(event, processedEvent)\n }\n\n return event\n })\n\n return params.appendEvents(streamId, processedEvents, expectedVersion)\n })\n\n // Advance the serialization chain but swallow this operation's outcome so a\n // rejection is delivered only to its own caller. Chaining the next append\n // onto a rejected promise would skip its callback and re-propagate the stale\n // error, permanently poisoning every subsequent append for the life of the\n // process (a single ConcurrencyError would take down all writes).\n exclusiveAppendEventsChain = result.then(\n () => undefined,\n () => undefined,\n )\n\n return result\n }\n\n for (const aggregateRoot of params.aggregateRoots as unknown as InternalAggregateRootApi[]) {\n aggregateRoot.eventTypes.forEach((eventType) => {\n aggregatRootsByEvents.set(eventType, {\n aggregateRoot,\n eventType,\n })\n })\n\n aggregateRoot.linkEventStore(\n loadEvents,\n appendEvents,\n emitEvents,\n transaction,\n params.lock ?? lock(5000),\n params.aggregateRootSnapshot,\n )\n }\n\n const baseCreateProjection = buildProjectionCreator({\n loadEvents,\n checkpoint: params.checkpoint,\n snapshot: params.projectionSnapshot,\n onReplay: params.onProjectionReplay,\n })\n\n const baseCreateProcessManager = buildProcessManagerCreator({\n loadEvents,\n checkpoint: params.checkpoint,\n onRefresh: params.onProcessManagerRefresh,\n })\n\n const getRelatedStreamEvents = (\n handlers: EventHandlers<any>,\n ): StreamEvents[] => {\n const relatedStreamEvents = new Map<string, Set<string>>()\n for (const handlerName of Object.keys(handlers)) {\n const sanitizedHandlerName = handlerName.replace(/^(on|after)/, '')\n if (!aggregatRootsByEvents.has(sanitizedHandlerName)) {\n throw new Error(\n `event handler ${handlerName} has no corresponding event in any aggregate root`,\n )\n }\n const {\n aggregateRoot: { type: aggregateRootName },\n eventType,\n } = aggregatRootsByEvents.get(sanitizedHandlerName)!\n if (!relatedStreamEvents.has(aggregateRootName)) {\n relatedStreamEvents.set(aggregateRootName, new Set())\n }\n relatedStreamEvents.get(aggregateRootName)!.add(eventType)\n }\n\n return Array.from(relatedStreamEvents, ([stream, events]) => ({\n stream,\n events: Array.from(events),\n }))\n }\n\n const initialize = async () => {\n initializing = true\n await Promise.all(\n projections.values().map((projection) => projection.init(true)),\n )\n await Promise.all(\n processManagers\n .values()\n .map((processManager) => processManager.init(true)),\n )\n resolveInitialized()\n }\n setImmediate(() => {\n if (allReplaying || params.autoInit === false) {\n return\n }\n\n initialize()\n })\n\n const api = {\n createProjection(name) {\n if (projections.has(name)) {\n throw new Error(`Projection ${name} is already registered`)\n }\n const api = baseCreateProjection(name)\n const internalApi = api as unknown as InternalProjection\n internalApi.setRelatedStreamEvents((handlers) =>\n getRelatedStreamEvents(handlers),\n )\n projections.set(name, internalApi)\n if (initializing) {\n internalApi.init(true)\n }\n return api\n },\n createProcessManager(name, options) {\n if (processManagers.has(name)) {\n throw new Error(`Process Manager ${name} is already registered`)\n }\n const api = baseCreateProcessManager(name, options)\n\n const internalApi = api as unknown as InternalProcessManager\n internalApi.setRelatedStreamEvents((handlers) =>\n getRelatedStreamEvents(handlers),\n )\n processManagers.set(name, internalApi)\n if (initializing) {\n internalApi.init(true)\n }\n return api\n },\n createEventListener(name) {\n if (eventListeners.has(name)) {\n throw new Error(`Event Listener ${name} is already registered`)\n }\n\n const api = createEventListener(name)\n\n const internalApi = api as unknown as InternalEventListener\n eventListeners.set(name, internalApi)\n return api\n },\n async isReady() {\n await initialized\n await Promise.all([\n ...projections.values().map((projection) => projection.isReady()),\n ...processManagers.values().map((projection) => projection.isReady()),\n ])\n },\n async rebuild() {\n allReplaying = true\n initializing = true\n const replayProjections = Array.from(projections.values()).filter(\n (projection) => projection.canReplay(),\n )\n const replayProcessManagers = Array.from(processManagers.values()).filter(\n (processManager) => processManager.hasState(),\n )\n\n await Promise.all([\n ...replayProjections.map((projection) => projection.init(false)),\n ...replayProcessManagers.map((projection) => projection.init(false)),\n ...replayProjections.map((projection) => projection.beginReplay()),\n ...replayProcessManagers.map((processManager) =>\n processManager.beginRefresh(),\n ),\n ])\n\n await withRefreshing(async () => {\n let index = 0\n for await (const event of loadEvents(null)) {\n index++\n await Promise.all([\n ...replayProjections.map((projection) =>\n projection.progressReplay(index, event),\n ),\n ...replayProcessManagers.map((processManager) =>\n processManager.progressRefresh(index, event, false),\n ),\n ...Array.from(eventListeners.values(), (listener) =>\n listener.apply(event),\n ),\n ])\n await Promise.all([\n ...replayProcessManagers.map((processManager) =>\n processManager.progressRefresh(index, event, true),\n ),\n ...Array.from(eventListeners.values(), (listener) =>\n listener.applyAfter(event),\n ),\n ])\n }\n })\n\n await Promise.all([\n ...replayProjections.map((projection) => projection.endReplay()),\n ...replayProcessManagers.map((processManager) =>\n processManager.endRefresh(),\n ),\n ])\n\n await Promise.all(\n projections.values().map(async (projection) => {\n if (!projection.canReplay()) {\n await projection.init(true)\n }\n }),\n )\n resolveInitialized()\n },\n async init() {\n if (initializing) {\n return api\n }\n await initialize()\n return api\n },\n getAggregateRoot(type) {\n return params.aggregateRoots.find(\n (aggregateRoot) => aggregateRoot.type === type,\n ) as any\n },\n async transaction(handler, options) {\n return transaction.run(handler, options)\n },\n } as EventStore<any, Root>\n\n return api\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAwJO,SAAS,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "45EED805BC72D1C864756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ReplaySkipError2
|
|
3
|
+
} from "./chunk-jw9e0fr0.js";
|
|
4
|
+
|
|
5
|
+
// src/replay.ts
|
|
6
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
|
+
var replayStore = new AsyncLocalStorage;
|
|
8
|
+
function isReplaying2() {
|
|
9
|
+
return replayStore.getStore() ?? false;
|
|
10
|
+
}
|
|
11
|
+
function withReplaying2(handler) {
|
|
12
|
+
return replayStore.run(true, handler);
|
|
13
|
+
}
|
|
14
|
+
function skipReplay2() {
|
|
15
|
+
if (isReplaying2()) {
|
|
16
|
+
throw new ReplaySkipError2;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { isReplaying2, withReplaying2, skipReplay2 };
|
|
21
|
+
|
|
22
|
+
//# debugId=30F69009BD99BFB664756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { AsyncLocalStorage } from 'node:async_hooks'\n\nimport { ReplaySkipError } from './errors.ts'\n\nconst replayStore = new AsyncLocalStorage<boolean>()\n\nexport function isReplaying() {\n return replayStore.getStore() ?? false\n}\n\nexport function withReplaying<T extends () => any>(handler: T) {\n return replayStore.run(true, handler)\n}\n\nexport function skipReplay() {\n if (isReplaying()) {\n throw new ReplaySkipError()\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;AAAA;AAIA,IAAM,cAAc,IAAI;AAEjB,SAAS,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;AAAA;AAIA,IAAM,cAAc,IAAI;AAEjB,SAAS,YAAW,GAAG;AAAA,EAC5B,OAAO,YAAY,SAAS,KAAK;AAAA;AAG5B,SAAS,cAAkC,CAAC,SAAY;AAAA,EAC7D,OAAO,YAAY,IAAI,MAAM,OAAO;AAAA;AAG/B,SAAS,WAAU,GAAG;AAAA,EAC3B,IAAI,aAAY,GAAG;AAAA,IACjB,MAAM,IAAI;AAAA,EACZ;AAAA;",
|
|
8
|
+
"debugId": "30F69009BD99BFB664756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -3,13 +3,13 @@ var eventInternalsSymbol = Symbol.for("event-internals");
|
|
|
3
3
|
function getInternals(event) {
|
|
4
4
|
return event[eventInternalsSymbol];
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function unwrapEvent2(event) {
|
|
7
7
|
return getInternals(event).event;
|
|
8
8
|
}
|
|
9
|
-
async function
|
|
9
|
+
async function handleEventError2(event, error) {
|
|
10
10
|
await getInternals(event).errorHandler?.(error);
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function wrappedEventBuilder2(type, payload) {
|
|
13
13
|
let errorHandler;
|
|
14
14
|
const event = typeof type === "string" ? {
|
|
15
15
|
type,
|
|
@@ -86,6 +86,6 @@ function wrappedEventBuilder(type, payload) {
|
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
export {
|
|
89
|
+
export { unwrapEvent2, handleEventError2, wrappedEventBuilder2 };
|
|
90
90
|
|
|
91
|
-
//# debugId=
|
|
91
|
+
//# debugId=BF97E172CEFE8A9D64756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { z } from 'zod/v4'\n\nimport type { EventValidationError } from './errors.ts'\nimport type {\n BaseInputEvent,\n EventTemplate,\n Max,\n MaybePromise,\n} from './utilityTypes.js'\n\nexport type WrappedEvent<E extends EventTemplate = EventTemplate> = {\n withCausationId(causationId: string | null | undefined): WrappedEvent<E>\n withDefaultCausationId(\n causationId: string | null | undefined,\n ): WrappedEvent<E>\n withCorrelationId(correlationId: string | null | undefined): WrappedEvent<E>\n withDefaultCorrelationId(\n correlationId: string | null | undefined,\n ): WrappedEvent<E>\n withActorId(actorId: string | null | undefined): WrappedEvent<E>\n withDefaultActorId(actorId: string | null | undefined): WrappedEvent<E>\n withMetadata(\n metadata: Record<string, any> | null | undefined,\n ): WrappedEvent<E>\n withDefaultMetadata(\n metadata: Record<string, any> | null | undefined,\n ): WrappedEvent<E>\n withAdditionalMetadata(\n metadata: Record<string, any> | null | undefined,\n ): WrappedEvent<E>\n onValidationError(\n errorHandler: (error: EventValidationError) => MaybePromise<void>,\n ): WrappedEvent<E>\n readonly type: string\n}\n\nconst eventInternalsSymbol = Symbol.for('event-internals')\n\nfunction getInternals(event: WrappedEvent) {\n return (event as any)[eventInternalsSymbol] as {\n event: Omit<BaseInputEvent, 'schemaVersion'>\n errorHandler?: (error: EventValidationError) => MaybePromise<void>\n }\n}\n\nexport function unwrapEvent<E extends EventTemplate = EventTemplate>(\n event: WrappedEvent<E>,\n) {\n return getInternals(event).event as {\n [K in E as K['type']]: Omit<\n BaseInputEvent<K['type'], z.output<K['schema']>>,\n 'schemaVersion'\n >\n }[E['type']]\n}\n\nexport async function handleEventError(\n event: WrappedEvent,\n error: EventValidationError,\n) {\n await getInternals(event).errorHandler?.(error)\n}\n\ntype LatestSchema<\n Event extends EventTemplate,\n LatestVersion = Max<Event['version']>,\n Schema = Event extends { version: LatestVersion } ? Event['schema'] : never,\n> = LatestVersion extends number ? z.input<Schema> : never\n\ntype EventMap<T extends EventTemplate> = {\n [K in T as K['type']]: LatestSchema<K>\n}\n\nexport type WrappedEventBuilder<Event extends EventTemplate> = {\n <\n Type extends Event['type'],\n LatestVersion = Max<\n Event extends { type: Type } ? Event['version'] : never\n >,\n Schema = Event extends { type: Type; version: LatestVersion }\n ? Event['schema']\n : never,\n >(\n ...args: z.input<Schema> extends null\n ? [type: Type, payload?: null]\n : [type: Type, payload: z.input<Schema>]\n ): WrappedEvent\n $inferPayload: EventMap<Event>\n}\n\nexport function wrappedEventBuilder(\n type: string,\n payload: unknown,\n): WrappedEvent\nexport function wrappedEventBuilder(event: BaseInputEvent): WrappedEvent\nexport function wrappedEventBuilder(\n type: string | BaseInputEvent,\n payload?: unknown,\n): WrappedEvent {\n let errorHandler: (error: EventValidationError) => MaybePromise<void>\n const event: Omit<BaseInputEvent, 'schemaVersion'> =\n typeof type === 'string'\n ? {\n type,\n payload: payload ?? null,\n }\n : type\n\n return {\n withCausationId(causationId) {\n if (causationId) {\n event.causationId = causationId\n }\n return this\n },\n withDefaultCausationId(causationId) {\n if (causationId && !event.causationId) {\n event.causationId = causationId\n }\n return this\n },\n withCorrelationId(correlationId) {\n if (correlationId) {\n event.correlationId = correlationId\n }\n return this\n },\n withDefaultCorrelationId(correlationId) {\n if (correlationId && !event.correlationId) {\n event.correlationId = correlationId\n }\n return this\n },\n withActorId(actorId) {\n if (actorId) {\n event.actorId = actorId\n }\n return this\n },\n withDefaultActorId(actorId) {\n if (actorId && !event.actorId) {\n event.actorId = actorId\n }\n return this\n },\n withMetadata(metadata) {\n if (metadata) {\n event.metadata = metadata\n }\n return this\n },\n withDefaultMetadata(metadata) {\n if (metadata && !event.metadata) {\n event.metadata = metadata\n }\n return this\n },\n withAdditionalMetadata(metadata) {\n if (!metadata) {\n return this\n }\n if (!event.metadata) {\n event.metadata = metadata\n } else {\n event.metadata = Object.assign(event.metadata, metadata)\n }\n\n return this\n },\n onValidationError(handler) {\n errorHandler = handler\n return this\n },\n\n get [eventInternalsSymbol]() {\n return { event, errorHandler }\n },\n\n type,\n } as WrappedEvent\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";AAoCA,IAAM,uBAAuB,OAAO,IAAI,iBAAiB;AAEzD,SAAS,YAAY,CAAC,OAAqB;AAAA,EACzC,OAAQ,MAAc;AAAA;AAMjB,SAAS,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";AAoCA,IAAM,uBAAuB,OAAO,IAAI,iBAAiB;AAEzD,SAAS,YAAY,CAAC,OAAqB;AAAA,EACzC,OAAQ,MAAc;AAAA;AAMjB,SAAS,YAAoD,CAClE,OACA;AAAA,EACA,OAAO,aAAa,KAAK,EAAE;AAAA;AAQ7B,eAAsB,iBAAgB,CACpC,OACA,OACA;AAAA,EACA,MAAM,aAAa,KAAK,EAAE,eAAe,KAAK;AAAA;AAmCzC,SAAS,oBAAmB,CACjC,MACA,SACc;AAAA,EACd,IAAI;AAAA,EACJ,MAAM,QACJ,OAAO,SAAS,WACZ;AAAA,IACE;AAAA,IACA,SAAS,WAAW;AAAA,EACtB,IACA;AAAA,EAEN,OAAO;AAAA,IACL,eAAe,CAAC,aAAa;AAAA,MAC3B,IAAI,aAAa;AAAA,QACf,MAAM,cAAc;AAAA,MACtB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,sBAAsB,CAAC,aAAa;AAAA,MAClC,IAAI,eAAe,CAAC,MAAM,aAAa;AAAA,QACrC,MAAM,cAAc;AAAA,MACtB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,iBAAiB,CAAC,eAAe;AAAA,MAC/B,IAAI,eAAe;AAAA,QACjB,MAAM,gBAAgB;AAAA,MACxB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,wBAAwB,CAAC,eAAe;AAAA,MACtC,IAAI,iBAAiB,CAAC,MAAM,eAAe;AAAA,QACzC,MAAM,gBAAgB;AAAA,MACxB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,WAAW,CAAC,SAAS;AAAA,MACnB,IAAI,SAAS;AAAA,QACX,MAAM,UAAU;AAAA,MAClB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,kBAAkB,CAAC,SAAS;AAAA,MAC1B,IAAI,WAAW,CAAC,MAAM,SAAS;AAAA,QAC7B,MAAM,UAAU;AAAA,MAClB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,YAAY,CAAC,UAAU;AAAA,MACrB,IAAI,UAAU;AAAA,QACZ,MAAM,WAAW;AAAA,MACnB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,mBAAmB,CAAC,UAAU;AAAA,MAC5B,IAAI,YAAY,CAAC,MAAM,UAAU;AAAA,QAC/B,MAAM,WAAW;AAAA,MACnB;AAAA,MACA,OAAO;AAAA;AAAA,IAET,sBAAsB,CAAC,UAAU;AAAA,MAC/B,IAAI,CAAC,UAAU;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA,IAAI,CAAC,MAAM,UAAU;AAAA,QACnB,MAAM,WAAW;AAAA,MACnB,EAAO;AAAA,QACL,MAAM,WAAW,OAAO,OAAO,MAAM,UAAU,QAAQ;AAAA;AAAA,MAGzD,OAAO;AAAA;AAAA,IAET,iBAAiB,CAAC,SAAS;AAAA,MACzB,eAAe;AAAA,MACf,OAAO;AAAA;AAAA,SAGJ,qBAAqB,GAAG;AAAA,MAC3B,OAAO,EAAE,OAAO,aAAa;AAAA;AAAA,IAG/B;AAAA,EACF;AAAA;",
|
|
8
|
+
"debugId": "BF97E172CEFE8A9D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
2
|
import type { EmitEvents, InternalAppendEvents, LoadEvents } from './createEventStore.ts';
|
|
3
3
|
import { CommandError } from './errors.ts';
|
|
4
|
-
import type
|
|
4
|
+
import { type LockCreator } from './lock.ts';
|
|
5
5
|
import { type CompleteSnapshotGenerator, type SnapshotGenerator } from './snapshotGenerator.ts';
|
|
6
6
|
import type { Transaction } from './transaction.ts';
|
|
7
7
|
import type { BaseOutputEvent, EventTemplate, Keys, MaybePromise, Merge, OutputEvents, Prettify } from './utilityTypes.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAggregateRoot.d.ts","sourceRoot":"","sources":["../src/createAggregateRoot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,YAAY,EAKb,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"createAggregateRoot.d.ts","sourceRoot":"","sources":["../src/createAggregateRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import"./chunk-
|
|
5
|
-
import"./chunk-
|
|
6
|
-
import"./chunk-
|
|
7
|
-
import"./chunk-
|
|
8
|
-
import"./chunk-
|
|
9
|
-
import"./chunk-
|
|
10
|
-
import"./chunk-
|
|
11
|
-
import"./chunk-
|
|
12
|
-
import"./chunk-
|
|
13
|
-
import"./chunk-
|
|
2
|
+
createAggregateRoot2
|
|
3
|
+
} from "./chunk-f95c3da4.js";
|
|
4
|
+
import"./chunk-c7sytwpp.js";
|
|
5
|
+
import"./chunk-zkz6ew8c.js";
|
|
6
|
+
import"./chunk-d6jqbrq2.js";
|
|
7
|
+
import"./chunk-fpjnk143.js";
|
|
8
|
+
import"./chunk-2wqpktzp.js";
|
|
9
|
+
import"./chunk-tkwe4r0y.js";
|
|
10
|
+
import"./chunk-fxb9fbvz.js";
|
|
11
|
+
import"./chunk-nrhw3kde.js";
|
|
12
|
+
import"./chunk-j4mwjx07.js";
|
|
13
|
+
import"./chunk-hmvwn02w.js";
|
|
14
|
+
import"./chunk-jw9e0fr0.js";
|
|
14
15
|
export {
|
|
15
|
-
createAggregateRoot
|
|
16
|
+
createAggregateRoot2 as createAggregateRoot
|
|
16
17
|
};
|
|
17
18
|
|
|
18
|
-
//# debugId=
|
|
19
|
+
//# debugId=FFF1B1B7B9C6204464756E2164756E21
|
|
@@ -12,6 +12,16 @@ declare const checkpointSchema: z.ZodObject<{
|
|
|
12
12
|
version: z.ZodInt;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
14
|
export type Checkpoint = z.output<typeof checkpointSchema>;
|
|
15
|
+
/**
|
|
16
|
+
* The outcome of {@link CheckpointApi.claim}: either this instance owns the
|
|
17
|
+
* event and must run its work, or another instance already has it.
|
|
18
|
+
*/
|
|
19
|
+
export type ClaimResult = {
|
|
20
|
+
claimed: false;
|
|
21
|
+
} | {
|
|
22
|
+
claimed: true;
|
|
23
|
+
release: () => Promise<void>;
|
|
24
|
+
};
|
|
15
25
|
export type CheckpointMethods = {
|
|
16
26
|
get: (type: 'projection' | 'processManager', name: string) => MaybePromise<Checkpoint | null | undefined>;
|
|
17
27
|
delete: (type: 'projection' | 'processManager', name: string) => MaybePromise<void>;
|
|
@@ -48,6 +58,26 @@ export declare function createCheckpointApi(params: CheckpointMethods & {
|
|
|
48
58
|
metadata: Record<string, any>;
|
|
49
59
|
version: number;
|
|
50
60
|
} | null>;
|
|
61
|
+
/**
|
|
62
|
+
* Takes ownership of `event` *before* its work runs, so that exactly one
|
|
63
|
+
* instance does that work.
|
|
64
|
+
*
|
|
65
|
+
* Every instance runs its own copy of a projection against shared storage,
|
|
66
|
+
* and each decides what it has already applied from a cursor only it can
|
|
67
|
+
* see. Two instances catching up over the same backlog — or one catching up
|
|
68
|
+
* while the other applies an event it just appended — therefore both reach
|
|
69
|
+
* the same handler. Writing the cursor first, through the same
|
|
70
|
+
* compare-and-swap the ordinary write uses, is what breaks the tie: the
|
|
71
|
+
* loser is told so and skips the event instead of repeating its side
|
|
72
|
+
* effects.
|
|
73
|
+
*
|
|
74
|
+
* Returns `{ claimed: false }` when another writer already covers this
|
|
75
|
+
* position. On success the caller gets a `release` to call if the work then
|
|
76
|
+
* fails, which puts the cursor back so the event is picked up again rather
|
|
77
|
+
* than silently skipped — without it, claiming would turn every failed
|
|
78
|
+
* handler into a lost event.
|
|
79
|
+
*/
|
|
80
|
+
claim(event: BaseOutputEvent, metadata?: Record<string, any>): Promise<ClaimResult>;
|
|
51
81
|
/**
|
|
52
82
|
* Persist the checkpoint position (and optional metadata) for the given
|
|
53
83
|
* event.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCheckpointApi.d.ts","sourceRoot":"","sources":["../src/createCheckpointApi.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAA;AAE1B,QAAA,MAAM,gBAAgB;;;;;;;;;iBAMpB,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,CACH,IAAI,EAAE,YAAY,GAAG,gBAAgB,EACrC,IAAI,EAAE,MAAM,KACT,YAAY,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAChD,MAAM,EAAE,CACN,IAAI,EAAE,YAAY,GAAG,gBAAgB,EACrC,IAAI,EAAE,MAAM,KACT,YAAY,CAAC,IAAI,CAAC,CAAA;IACvB;;;;;;;;OAQG;IACH,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,MAAM,GAAG,IAAI,KAC3B,YAAY,CAAC,OAAO,CAAC,CAAA;CAC3B,CAAA;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,GAAG;IAC1B,UAAU,EAAE,UAAU,CAAA;IACtB,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAA;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;IACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;CAC5D;;;
|
|
1
|
+
{"version":3,"file":"createCheckpointApi.d.ts","sourceRoot":"","sources":["../src/createCheckpointApi.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAA;AAE1B,QAAA,MAAM,gBAAgB;;;;;;;;;iBAMpB,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE1D;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAA;AAEnD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,CACH,IAAI,EAAE,YAAY,GAAG,gBAAgB,EACrC,IAAI,EAAE,MAAM,KACT,YAAY,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAChD,MAAM,EAAE,CACN,IAAI,EAAE,YAAY,GAAG,gBAAgB,EACrC,IAAI,EAAE,MAAM,KACT,YAAY,CAAC,IAAI,CAAC,CAAA;IACvB;;;;;;;;OAQG;IACH,MAAM,EAAE,CACN,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,MAAM,GAAG,IAAI,KAC3B,YAAY,CAAC,OAAO,CAAC,CAAA;CAC3B,CAAA;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,GAAG;IAC1B,UAAU,EAAE,UAAU,CAAA;IACtB,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAA;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;IACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;CAC5D;;;IAkBC;;;;OAIG;;;;;;;;IAOH;;;;;;;;;;;;;;;;;;OAkBG;iBAEM,eAAe,aACZ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,WAAW,CAAC;IA8DvB;;;;;;;;;;;;OAYG;kBAEM,eAAe,aACZ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SACvB,KAAK,GAAG,WAAW;yBAwChB;QACP,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAA;QACvD,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;KAC7D;EA4CN;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import"./chunk-
|
|
2
|
+
createCheckpointApi2
|
|
3
|
+
} from "./chunk-nrhw3kde.js";
|
|
4
|
+
import"./chunk-jw9e0fr0.js";
|
|
5
5
|
export {
|
|
6
|
-
createCheckpointApi
|
|
6
|
+
createCheckpointApi2 as createCheckpointApi
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
//# debugId=
|
|
9
|
+
//# debugId=06EA4221A3CCE47F64756E2164756E21
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
2
|
+
getEventListenerInfo2,
|
|
3
|
+
isInsideEventListener2,
|
|
4
|
+
createEventListener2
|
|
5
|
+
} from "./chunk-06anxtk6.js";
|
|
6
6
|
export {
|
|
7
|
-
|
|
8
|
-
getEventListenerInfo,
|
|
9
|
-
|
|
7
|
+
createEventListener2 as createEventListener,
|
|
8
|
+
getEventListenerInfo2 as getEventListenerInfo,
|
|
9
|
+
isInsideEventListener2 as isInsideEventListener
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
//# debugId=
|
|
12
|
+
//# debugId=D487B145AB58307C64756E2164756E21
|
package/dist/createEventStore.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import"./chunk-
|
|
5
|
-
import"./chunk-
|
|
6
|
-
import"./chunk-
|
|
7
|
-
import"./chunk-
|
|
8
|
-
import"./chunk-
|
|
9
|
-
import"./chunk-
|
|
10
|
-
import"./chunk-
|
|
11
|
-
import"./chunk-
|
|
12
|
-
import"./chunk-
|
|
13
|
-
import"./chunk-
|
|
14
|
-
import"./chunk-
|
|
15
|
-
import"./chunk-
|
|
2
|
+
createEventStore2
|
|
3
|
+
} from "./chunk-pcggjrxr.js";
|
|
4
|
+
import"./chunk-06anxtk6.js";
|
|
5
|
+
import"./chunk-zkz6ew8c.js";
|
|
6
|
+
import"./chunk-9qtjz725.js";
|
|
7
|
+
import"./chunk-d6jqbrq2.js";
|
|
8
|
+
import"./chunk-fpjnk143.js";
|
|
9
|
+
import"./chunk-2wqpktzp.js";
|
|
10
|
+
import"./chunk-tkwe4r0y.js";
|
|
11
|
+
import"./chunk-fxb9fbvz.js";
|
|
12
|
+
import"./chunk-nrhw3kde.js";
|
|
13
|
+
import"./chunk-j4mwjx07.js";
|
|
14
|
+
import"./chunk-hmvwn02w.js";
|
|
15
|
+
import"./chunk-jw9e0fr0.js";
|
|
16
16
|
export {
|
|
17
|
-
createEventStore
|
|
17
|
+
createEventStore2 as createEventStore
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
//# debugId=
|
|
20
|
+
//# debugId=409D89EF118CD6A864756E2164756E21
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProcessManager.d.ts","sourceRoot":"","sources":["../src/createProcessManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createProcessManager.d.ts","sourceRoot":"","sources":["../src/createProcessManager.ts"],"names":[],"mappings":"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"}
|