@requence/event-sourcing 1.0.4 → 1.1.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.
Files changed (61) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-2qy4eb4h.js → chunk-04wqxaqs.js} +3 -3
  3. package/dist/{chunk-3t1vzbab.js → chunk-263c07sn.js} +3 -2
  4. package/dist/{chunk-3t1vzbab.js.map → chunk-263c07sn.js.map} +3 -3
  5. package/dist/{chunk-x90g388y.js → chunk-2fe8jjdc.js} +1 -1
  6. package/dist/{chunk-qdczt68t.js → chunk-391m4mfp.js} +14 -2
  7. package/dist/chunk-391m4mfp.js.map +10 -0
  8. package/dist/{chunk-9psg50cb.js → chunk-6yrb30rx.js} +1 -1
  9. package/dist/{chunk-pmfzjavb.js → chunk-8qn1nqnh.js} +1 -1
  10. package/dist/{chunk-crc0araj.js → chunk-r601d5jm.js} +5 -5
  11. package/dist/{chunk-8x4bedr4.js → chunk-smy8mxvr.js} +35 -21
  12. package/dist/chunk-smy8mxvr.js.map +10 -0
  13. package/dist/{chunk-kj36dz26.js → chunk-th14wxh8.js} +4 -4
  14. package/dist/{chunk-zf3x573k.js → chunk-yn2sjcg3.js} +36 -11
  15. package/dist/chunk-yn2sjcg3.js.map +10 -0
  16. package/dist/createAggregateRoot.js +8 -8
  17. package/dist/createCheckpointApi.d.ts +37 -2
  18. package/dist/createCheckpointApi.d.ts.map +1 -1
  19. package/dist/createCheckpointApi.js +2 -2
  20. package/dist/createEventStore.js +8 -8
  21. package/dist/createProcessManager.d.ts.map +1 -1
  22. package/dist/createProcessManager.js +4 -4
  23. package/dist/createProjection.js +5 -5
  24. package/dist/drizzle/index.d.ts.map +1 -1
  25. package/dist/drizzle/index.js +24 -18
  26. package/dist/drizzle/index.js.map +3 -3
  27. package/dist/drizzle/postgres.d.ts +17 -0
  28. package/dist/drizzle/postgres.d.ts.map +1 -1
  29. package/dist/drizzle/postgres.js +1 -1
  30. package/dist/errors.d.ts +6 -0
  31. package/dist/errors.d.ts.map +1 -1
  32. package/dist/errors.js +5 -3
  33. package/dist/errors.js.map +1 -1
  34. package/dist/index.js +13 -11
  35. package/dist/index.js.map +1 -1
  36. package/dist/memory/index.d.ts.map +1 -1
  37. package/dist/memory/index.js +17 -12
  38. package/dist/memory/index.js.map +3 -3
  39. package/dist/refresh.js +2 -2
  40. package/dist/replay.js +2 -2
  41. package/dist/snapshotGenerator.js +2 -2
  42. package/dist/tests/setup.d.ts +1 -0
  43. package/dist/tests/setup.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/createCheckpointApi.ts +86 -10
  46. package/src/createProcessManager.ts +71 -32
  47. package/src/drizzle/index.ts +19 -4
  48. package/src/drizzle/postgres.ts +3 -0
  49. package/src/errors.ts +12 -0
  50. package/src/memory/index.ts +10 -2
  51. package/src/tests/processManagerMultiInstance.spec.ts +86 -3
  52. package/src/tests/setup.ts +12 -2
  53. package/dist/chunk-8x4bedr4.js.map +0 -10
  54. package/dist/chunk-qdczt68t.js.map +0 -10
  55. package/dist/chunk-zf3x573k.js.map +0 -10
  56. /package/dist/{chunk-2qy4eb4h.js.map → chunk-04wqxaqs.js.map} +0 -0
  57. /package/dist/{chunk-x90g388y.js.map → chunk-2fe8jjdc.js.map} +0 -0
  58. /package/dist/{chunk-9psg50cb.js.map → chunk-6yrb30rx.js.map} +0 -0
  59. /package/dist/{chunk-pmfzjavb.js.map → chunk-8qn1nqnh.js.map} +0 -0
  60. /package/dist/{chunk-crc0araj.js.map → chunk-r601d5jm.js.map} +0 -0
  61. /package/dist/{chunk-kj36dz26.js.map → chunk-th14wxh8.js.map} +0 -0
@@ -2,11 +2,11 @@ import {
2
2
  buildProcessManagerCreator,
3
3
  getProcessManagerInfo,
4
4
  isInsideProcessManager
5
- } from "./chunk-8x4bedr4.js";
5
+ } from "./chunk-smy8mxvr.js";
6
6
  import"./chunk-6q8mr1sg.js";
7
- import"./chunk-9psg50cb.js";
8
- import"./chunk-zf3x573k.js";
9
- import"./chunk-qdczt68t.js";
7
+ import"./chunk-6yrb30rx.js";
8
+ import"./chunk-yn2sjcg3.js";
9
+ import"./chunk-391m4mfp.js";
10
10
  export {
11
11
  isInsideProcessManager,
12
12
  getProcessManagerInfo,
@@ -2,11 +2,11 @@ import {
2
2
  buildProjectionCreator,
3
3
  getProjectionInfo,
4
4
  isInsideProjection
5
- } from "./chunk-kj36dz26.js";
6
- import"./chunk-zf3x573k.js";
7
- import"./chunk-pmfzjavb.js";
8
- import"./chunk-x90g388y.js";
9
- import"./chunk-qdczt68t.js";
5
+ } from "./chunk-th14wxh8.js";
6
+ import"./chunk-yn2sjcg3.js";
7
+ import"./chunk-8qn1nqnh.js";
8
+ import"./chunk-2fe8jjdc.js";
9
+ import"./chunk-391m4mfp.js";
10
10
  export {
11
11
  isInsideProjection,
12
12
  getProjectionInfo,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAOjE,OAAO,EAGL,MAAM,EAGP,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EACV,UAAU,EACV,0CAA0C,EAC1C,cAAc,EACd,UAAU,EACX,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACZ,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,eAAe,EAAE,KACtB,YAAY,CAAC,IAAI,CAAC,CAAA;AAEvB,UAAU,uBAAuB,CAAC,IAAI,SAAS,gBAAgB;IAC7D,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7D,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACvF,kBAAkB,CAAC,EAAE,UAAU,CAAA;IAC/B,uBAAuB,CAAC,EAAE,UAAU,CAAA;IACpC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;CACrC;AAqBD,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmBxD;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEvD,wBAAsB,WAAW,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,eAAe,EAC5E,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9B,WAAW,GAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,MAAM,KAAK,WAErD,gBASP;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,gBAAgB,EAAE,EACpE,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,GACT,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,UAAU,CAC3C,cAAc,CAAC,IAAI,CAAC,EACpB,IAAI,EACJ,IAAI,CACL,CAkUA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAOjE,OAAO,EAGL,MAAM,EAGP,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EACV,UAAU,EACV,0CAA0C,EAC1C,cAAc,EACd,UAAU,EACX,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACZ,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,eAAe,EAAE,KACtB,YAAY,CAAC,IAAI,CAAC,CAAA;AAEvB,UAAU,uBAAuB,CAAC,IAAI,SAAS,gBAAgB;IAC7D,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7D,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACvF,kBAAkB,CAAC,EAAE,UAAU,CAAA;IAC/B,uBAAuB,CAAC,EAAE,UAAU,CAAA;IACpC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;CACrC;AAqBD,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmBxD;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEvD,wBAAsB,WAAW,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,eAAe,EAC5E,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9B,WAAW,GAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,MAAM,KAAK,WAErD,gBASP;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,gBAAgB,EAAE,EACpE,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,GACT,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,UAAU,CAC3C,cAAc,CAAC,IAAI,CAAC,EACpB,IAAI,EACJ,IAAI,CACL,CAiVA"}
@@ -4,35 +4,35 @@ import {
4
4
  events,
5
5
  projectionAppliedEvents,
6
6
  projectionSnapshots
7
- } from "../chunk-3t1vzbab.js";
7
+ } from "../chunk-263c07sn.js";
8
8
  import {
9
9
  isStreamEvents,
10
10
  isStreamId
11
11
  } from "../chunk-jd4q8fcf.js";
12
12
  import {
13
13
  createEventStore
14
- } from "../chunk-2qy4eb4h.js";
14
+ } from "../chunk-04wqxaqs.js";
15
15
  import"../chunk-gq80tgvf.js";
16
16
  import {
17
17
  createAggregateRoot
18
- } from "../chunk-crc0araj.js";
19
- import"../chunk-8x4bedr4.js";
18
+ } from "../chunk-r601d5jm.js";
19
+ import"../chunk-smy8mxvr.js";
20
20
  import {
21
21
  extendTypes,
22
22
  superjson
23
23
  } from "../chunk-6q8mr1sg.js";
24
- import"../chunk-9psg50cb.js";
24
+ import"../chunk-6yrb30rx.js";
25
25
  import"../chunk-tfy01fah.js";
26
- import"../chunk-kj36dz26.js";
27
- import"../chunk-zf3x573k.js";
28
- import"../chunk-pmfzjavb.js";
26
+ import"../chunk-th14wxh8.js";
27
+ import"../chunk-yn2sjcg3.js";
28
+ import"../chunk-8qn1nqnh.js";
29
29
  import"../chunk-ty9bhdvx.js";
30
30
  import"../chunk-z388cd25.js";
31
31
  import"../chunk-24xjphpk.js";
32
- import"../chunk-x90g388y.js";
32
+ import"../chunk-2fe8jjdc.js";
33
33
  import {
34
34
  ConcurrencyError
35
- } from "../chunk-qdczt68t.js";
35
+ } from "../chunk-391m4mfp.js";
36
36
 
37
37
  // src/drizzle/index.ts
38
38
  import {
@@ -183,26 +183,32 @@ function createEventStore2({
183
183
  }
184
184
  },
185
185
  checkpoint: {
186
- async upsert(checkpoint) {
187
- await db().insert(checkpoints).values({
186
+ async upsert(checkpoint, expectedVersion) {
187
+ const metadata = superjson.stringify(checkpoint.metadata);
188
+ const committed = await db().insert(checkpoints).values({
188
189
  lastEventPosition: checkpoint.lastEventPosition,
189
190
  name: checkpoint.name,
190
191
  type: checkpoint.type,
191
- metadata: superjson.stringify(checkpoint.metadata)
192
+ metadata,
193
+ version: checkpoint.version
192
194
  }).onConflictDoUpdate({
193
195
  target: [checkpoints.type, checkpoints.name],
194
196
  set: {
195
197
  lastEventPosition: checkpoint.lastEventPosition,
196
- metadata: superjson.stringify(checkpoint.metadata)
197
- }
198
- });
198
+ metadata,
199
+ version: checkpoint.version
200
+ },
201
+ setWhere: expectedVersion === null ? sql`false` : eq(checkpoints.version, expectedVersion)
202
+ }).returning({ version: checkpoints.version });
203
+ return committed.length > 0;
199
204
  },
200
205
  async get(type, name) {
201
206
  const [checkpoint] = await db().select({
202
207
  type: checkpoints.type,
203
208
  name: checkpoints.name,
204
209
  lastEventPosition: checkpoints.lastEventPosition,
205
- metadata: checkpoints.metadata
210
+ metadata: checkpoints.metadata,
211
+ version: checkpoints.version
206
212
  }).from(checkpoints).where(and(eq(checkpoints.type, type), eq(checkpoints.name, name)));
207
213
  if (!checkpoint) {
208
214
  return null;
@@ -322,4 +328,4 @@ export {
322
328
  createAggregateRoot
323
329
  };
324
330
 
325
- //# debugId=378A42D2C9F4676F64756E2164756E21
331
+ //# debugId=78B2853DBC2855F264756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/drizzle/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n type SQL,\n and,\n asc,\n desc,\n eq,\n gt,\n inArray,\n lte,\n sql,\n} from 'drizzle-orm'\nimport type { PgDatabase } from 'drizzle-orm/pg-core'\n\nimport type { AnyAggregateRoot } from '../createAggregateRoot.ts'\nimport {\n ConcurrencyError,\n createEventStore as createBaseEventStore,\n isStreamEvents,\n isStreamId,\n} from '../index.ts'\nimport {\n aggregateRootSnapshots,\n checkpoints,\n events,\n projectionAppliedEvents,\n projectionSnapshots,\n} from './postgres.ts'\nimport type {\n EventStore,\n EventStoreParamsWithAggregateRootSnapshots,\n EventsFromRoot,\n OnProgress,\n} from '../createEventStore.ts'\nimport { superjson } from '../superjson.ts'\nimport type {\n BaseOutputEvent,\n MaybePromise,\n OutputEvent,\n} from '../utilityTypes.js'\n\nexport { createAggregateRoot } from '../index.ts'\nexport { extendTypes } from '../superjson.ts'\n\nexport type OnEventsAppendend = (\n events: BaseOutputEvent[],\n) => MaybePromise<void>\n\ninterface DrizzleEventStoreParams<Root extends AnyAggregateRoot> {\n database: PgDatabase<any, any> | (() => PgDatabase<any, any>)\n aggregateRoots: Root[]\n autoInit?: boolean\n postProcessEvent?: EventStoreParamsWithAggregateRootSnapshots<Root>['postProcessEvent']\n onProjectionReplay?: OnProgress\n onProcessManagerRefresh?: OnProgress\n onEventsAppended?: OnEventsAppendend\n}\n\nfunction isPgUniqueViolation(\n err: unknown,\n): err is { cause: { code: string; constraint?: string } } {\n if (typeof err !== 'object' || err === null) {\n return false\n }\n\n const cause = (err as any).cause\n if (typeof cause !== 'object' || cause === null) {\n return false\n }\n\n if (cause.code !== '23505') {\n return false\n }\n\n return true\n}\n\nfunction createEventsQuery(database: PgDatabase<any, any>) {\n return database\n .select({\n position: events.position,\n type: events.type,\n schemaVersion: events.schemaVersion,\n payload: events.payload,\n streamId: events.streamId,\n streamType: events.streamType,\n streamVersion: events.streamVersion,\n createdAt: events.createdAt,\n actorId: events.actorId,\n correlationId: events.correlationId,\n causationId: events.causationId,\n metadata: events.metadata,\n })\n .from(events)\n .orderBy(asc(events.position))\n .$dynamic()\n}\n\ntype EventsQuery = ReturnType<typeof createEventsQuery>\n\nexport async function fetchEvents<E extends OutputEvent<any> = BaseOutputEvent>(\n database: PgDatabase<any, any>,\n modifyQuery: (query: EventsQuery, table: typeof events) => EventsQuery = (\n q,\n ) => q,\n) {\n const resolvedEvents = await modifyQuery(createEventsQuery(database), events)\n\n return resolvedEvents.map((resolvedEvent) => ({\n ...resolvedEvent,\n payload: superjson.parse(resolvedEvent.payload),\n metadata: superjson.deserialize(resolvedEvent.metadata),\n })) as E[]\n}\n\nexport function createEventStore<const Root extends AnyAggregateRoot>({\n database,\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n onEventsAppended,\n autoInit,\n}: DrizzleEventStoreParams<Root>): EventStore<\n EventsFromRoot<Root>,\n Root,\n true\n> {\n const db = () => (typeof database === 'function' ? database() : database)\n\n return createBaseEventStore({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n autoInit,\n async *loadEvents(select, range) {\n const conditions = [] as SQL[]\n\n if (select) {\n const selects = Array.isArray(select) ? select : [select]\n const streamTypes = selects.map((select) => select.stream)\n const streamIds = selects\n .map((select) => (isStreamId(select) ? select.id : null))\n .filter(Boolean) as string[]\n const eventTypes = selects.flatMap((select) =>\n isStreamEvents(select) ? select.events : [],\n )\n conditions.push(inArray(events.streamType, streamTypes))\n\n if (streamIds.length > 0) {\n conditions.push(inArray(events.streamId, streamIds))\n }\n\n if (eventTypes.length > 0) {\n conditions.push(inArray(events.type, eventTypes))\n }\n }\n let lastPosition = 0\n\n if (range?.from) {\n lastPosition = range.from - 1\n }\n\n if (range?.to) {\n conditions.push(lte(events.position, range.to))\n }\n\n const chunkSize = 50\n\n while (true) {\n const resolvedEvents = await db()\n .select({\n position: events.position,\n type: events.type,\n schemaVersion: events.schemaVersion,\n payload: events.payload,\n streamId: events.streamId,\n streamType: events.streamType,\n streamVersion: events.streamVersion,\n createdAt: events.createdAt,\n actorId: events.actorId,\n correlationId: events.correlationId,\n causationId: events.causationId,\n metadata: events.metadata,\n })\n .from(events)\n .where(and(...conditions, gt(events.position, lastPosition)))\n .limit(chunkSize)\n .orderBy(asc(events.position))\n\n if (resolvedEvents.length === 0) {\n break\n }\n\n for (const resolvedEvent of resolvedEvents) {\n yield {\n ...resolvedEvent,\n payload: superjson.parse(resolvedEvent.payload),\n metadata: superjson.deserialize(resolvedEvent.metadata),\n }\n lastPosition = resolvedEvent.position\n }\n }\n },\n async appendEvents(streamId, newEvents, expectedVersion) {\n const mappedEvents = newEvents.map((event, index) => ({\n streamId: streamId.id,\n streamType: streamId.stream,\n streamVersion: expectedVersion + 1 + index,\n type: event.type,\n payload: superjson.stringify(event.payload),\n metadata: superjson.serialize(event.metadata),\n causationId: event.causationId,\n actorId: event.actorId,\n correlationId: event.correlationId,\n schemaVersion: event.schemaVersion,\n }))\n\n try {\n const persistedEvents = await db()\n .insert(events)\n .values(mappedEvents)\n .returning()\n\n const resolvedEvents = persistedEvents\n .map((persistendEvent) => ({\n ...persistendEvent,\n payload: superjson.parse(persistendEvent.payload),\n metadata: superjson.deserialize<\n Record<string, unknown> | undefined\n >(persistendEvent.metadata),\n }))\n .toSorted((eventA, eventB) => eventA.position - eventB.position)\n\n onEventsAppended?.(resolvedEvents)\n\n return resolvedEvents\n } catch (error) {\n if (isPgUniqueViolation(error)) {\n const [lastStreamEvent] = await db()\n .select({\n streamVersion: events.streamVersion,\n })\n .from(events)\n .where(\n and(\n eq(events.streamId, streamId.id),\n eq(events.streamType, streamId.stream),\n ),\n )\n .orderBy(desc(events.position))\n .limit(1)\n\n const currentVersion = lastStreamEvent?.streamVersion ?? 0\n throw new ConcurrencyError(streamId, expectedVersion, currentVersion)\n }\n throw error\n }\n },\n checkpoint: {\n async upsert(checkpoint) {\n await db()\n .insert(checkpoints)\n .values({\n lastEventPosition: checkpoint.lastEventPosition,\n name: checkpoint.name,\n type: checkpoint.type,\n metadata: superjson.stringify(checkpoint.metadata),\n })\n .onConflictDoUpdate({\n target: [checkpoints.type, checkpoints.name],\n set: {\n lastEventPosition: checkpoint.lastEventPosition,\n metadata: superjson.stringify(checkpoint.metadata),\n },\n })\n },\n async get(type, name) {\n const [checkpoint] = await db()\n .select({\n type: checkpoints.type,\n name: checkpoints.name,\n lastEventPosition: checkpoints.lastEventPosition,\n metadata: checkpoints.metadata,\n })\n .from(checkpoints)\n .where(and(eq(checkpoints.type, type), eq(checkpoints.name, name)))\n\n if (!checkpoint) {\n return null\n }\n\n return {\n ...checkpoint,\n metadata: superjson.parse(checkpoint.metadata),\n }\n },\n async delete(type, name) {\n await db()\n .delete(checkpoints)\n .where(and(eq(checkpoints.type, type), eq(checkpoints.name, name)))\n },\n },\n\n projectionSnapshot: {\n async put(snapshot) {\n await db()\n .insert(projectionSnapshots)\n .values({\n lastEventPosition: snapshot.lastEventPosition,\n projectionId: snapshot.projectionId,\n projectionType: snapshot.projectionType,\n schemaVersion: snapshot.schemaVersion,\n state: superjson.stringify(snapshot.state),\n metadata: superjson.stringify(snapshot.metadata),\n })\n },\n async get(select) {\n const [snapshot] = await db()\n .select({\n projectionId: projectionSnapshots.projectionId,\n projectionType: projectionSnapshots.projectionType,\n state: projectionSnapshots.state,\n lastEventPosition: projectionSnapshots.lastEventPosition,\n schemaVersion: projectionSnapshots.schemaVersion,\n createdAt: projectionSnapshots.createdAt,\n metadata: projectionSnapshots.metadata,\n })\n .from(projectionSnapshots)\n .where(\n and(\n eq(projectionSnapshots.projectionId, select.id),\n eq(projectionSnapshots.projectionType, select.projection),\n ),\n )\n .orderBy(desc(projectionSnapshots.lastEventPosition))\n\n if (!snapshot) {\n return null\n }\n\n return {\n ...snapshot,\n state: superjson.parse(snapshot.state),\n metadata: super.parse(snapshot.metadata),\n }\n },\n async delete(target, fromPosition) {\n const conditions = [\n eq(projectionSnapshots.projectionType, target.projection),\n ]\n\n if (target.id) {\n conditions.push(eq(projectionSnapshots.projectionId, target.id))\n }\n\n if (fromPosition) {\n conditions.push(\n gt(projectionSnapshots.lastEventPosition, fromPosition),\n )\n }\n\n await db()\n .delete(projectionSnapshots)\n .where(and(...conditions))\n },\n async incrementAppliedCount(select) {\n const [applied] = await db()\n .insert(projectionAppliedEvents)\n .values({\n projectionId: select.id,\n projectionType: select.projection,\n appliedEvents: 1,\n })\n .onConflictDoUpdate({\n target: [\n projectionAppliedEvents.projectionId,\n projectionAppliedEvents.projectionType,\n ],\n set: {\n appliedEvents: sql`${projectionAppliedEvents.appliedEvents} + 1`,\n },\n })\n .returning({\n appliedEvents: projectionAppliedEvents.appliedEvents,\n })\n\n return applied.appliedEvents\n },\n },\n aggregateRootSnapshot: {\n async put(snapshot) {\n await db()\n .insert(aggregateRootSnapshots)\n .values({\n lastEventPosition: snapshot.lastEventPosition,\n schemaVersion: snapshot.schemaVersion,\n state: superjson.stringify(snapshot.state),\n streamId: snapshot.streamId,\n streamType: snapshot.streamType,\n streamVersion: snapshot.streamVersion,\n metadata: superjson.stringify(snapshot.metadata),\n })\n },\n async get(select) {\n const [snapshot] = await db()\n .select({\n streamId: aggregateRootSnapshots.streamId,\n streamType: aggregateRootSnapshots.streamType,\n streamVersion: aggregateRootSnapshots.streamVersion,\n schemaVersion: aggregateRootSnapshots.schemaVersion,\n state: aggregateRootSnapshots.state,\n createdAt: aggregateRootSnapshots.createdAt,\n lastEventPosition: aggregateRootSnapshots.lastEventPosition,\n metadata: aggregateRootSnapshots.metadata,\n })\n .from(aggregateRootSnapshots)\n .where(\n and(\n eq(aggregateRootSnapshots.streamId, select.id),\n eq(aggregateRootSnapshots.streamType, select.stream),\n ),\n )\n .orderBy(desc(aggregateRootSnapshots.streamVersion))\n\n if (!snapshot) {\n return null\n }\n\n return {\n ...snapshot,\n state: superjson.parse(snapshot.state),\n metadata: superjson.parse(snapshot.metadata),\n }\n },\n async delete(target, fromStreamVersion) {\n await db()\n .delete(aggregateRootSnapshots)\n .where(\n and(\n eq(aggregateRootSnapshots.streamId, target.id),\n eq(aggregateRootSnapshots.streamType, target.stream),\n gt(aggregateRootSnapshots.streamVersion, fromStreamVersion),\n ),\n )\n },\n },\n }) as any\n}\n"
5
+ "import {\n type SQL,\n and,\n asc,\n desc,\n eq,\n gt,\n inArray,\n lte,\n sql,\n} from 'drizzle-orm'\nimport type { PgDatabase } from 'drizzle-orm/pg-core'\n\nimport type { AnyAggregateRoot } from '../createAggregateRoot.ts'\nimport {\n ConcurrencyError,\n createEventStore as createBaseEventStore,\n isStreamEvents,\n isStreamId,\n} from '../index.ts'\nimport {\n aggregateRootSnapshots,\n checkpoints,\n events,\n projectionAppliedEvents,\n projectionSnapshots,\n} from './postgres.ts'\nimport type {\n EventStore,\n EventStoreParamsWithAggregateRootSnapshots,\n EventsFromRoot,\n OnProgress,\n} from '../createEventStore.ts'\nimport { superjson } from '../superjson.ts'\nimport type {\n BaseOutputEvent,\n MaybePromise,\n OutputEvent,\n} from '../utilityTypes.js'\n\nexport { createAggregateRoot } from '../index.ts'\nexport { extendTypes } from '../superjson.ts'\n\nexport type OnEventsAppendend = (\n events: BaseOutputEvent[],\n) => MaybePromise<void>\n\ninterface DrizzleEventStoreParams<Root extends AnyAggregateRoot> {\n database: PgDatabase<any, any> | (() => PgDatabase<any, any>)\n aggregateRoots: Root[]\n autoInit?: boolean\n postProcessEvent?: EventStoreParamsWithAggregateRootSnapshots<Root>['postProcessEvent']\n onProjectionReplay?: OnProgress\n onProcessManagerRefresh?: OnProgress\n onEventsAppended?: OnEventsAppendend\n}\n\nfunction isPgUniqueViolation(\n err: unknown,\n): err is { cause: { code: string; constraint?: string } } {\n if (typeof err !== 'object' || err === null) {\n return false\n }\n\n const cause = (err as any).cause\n if (typeof cause !== 'object' || cause === null) {\n return false\n }\n\n if (cause.code !== '23505') {\n return false\n }\n\n return true\n}\n\nfunction createEventsQuery(database: PgDatabase<any, any>) {\n return database\n .select({\n position: events.position,\n type: events.type,\n schemaVersion: events.schemaVersion,\n payload: events.payload,\n streamId: events.streamId,\n streamType: events.streamType,\n streamVersion: events.streamVersion,\n createdAt: events.createdAt,\n actorId: events.actorId,\n correlationId: events.correlationId,\n causationId: events.causationId,\n metadata: events.metadata,\n })\n .from(events)\n .orderBy(asc(events.position))\n .$dynamic()\n}\n\ntype EventsQuery = ReturnType<typeof createEventsQuery>\n\nexport async function fetchEvents<E extends OutputEvent<any> = BaseOutputEvent>(\n database: PgDatabase<any, any>,\n modifyQuery: (query: EventsQuery, table: typeof events) => EventsQuery = (\n q,\n ) => q,\n) {\n const resolvedEvents = await modifyQuery(createEventsQuery(database), events)\n\n return resolvedEvents.map((resolvedEvent) => ({\n ...resolvedEvent,\n payload: superjson.parse(resolvedEvent.payload),\n metadata: superjson.deserialize(resolvedEvent.metadata),\n })) as E[]\n}\n\nexport function createEventStore<const Root extends AnyAggregateRoot>({\n database,\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n onEventsAppended,\n autoInit,\n}: DrizzleEventStoreParams<Root>): EventStore<\n EventsFromRoot<Root>,\n Root,\n true\n> {\n const db = () => (typeof database === 'function' ? database() : database)\n\n return createBaseEventStore({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n autoInit,\n async *loadEvents(select, range) {\n const conditions = [] as SQL[]\n\n if (select) {\n const selects = Array.isArray(select) ? select : [select]\n const streamTypes = selects.map((select) => select.stream)\n const streamIds = selects\n .map((select) => (isStreamId(select) ? select.id : null))\n .filter(Boolean) as string[]\n const eventTypes = selects.flatMap((select) =>\n isStreamEvents(select) ? select.events : [],\n )\n conditions.push(inArray(events.streamType, streamTypes))\n\n if (streamIds.length > 0) {\n conditions.push(inArray(events.streamId, streamIds))\n }\n\n if (eventTypes.length > 0) {\n conditions.push(inArray(events.type, eventTypes))\n }\n }\n let lastPosition = 0\n\n if (range?.from) {\n lastPosition = range.from - 1\n }\n\n if (range?.to) {\n conditions.push(lte(events.position, range.to))\n }\n\n const chunkSize = 50\n\n while (true) {\n const resolvedEvents = await db()\n .select({\n position: events.position,\n type: events.type,\n schemaVersion: events.schemaVersion,\n payload: events.payload,\n streamId: events.streamId,\n streamType: events.streamType,\n streamVersion: events.streamVersion,\n createdAt: events.createdAt,\n actorId: events.actorId,\n correlationId: events.correlationId,\n causationId: events.causationId,\n metadata: events.metadata,\n })\n .from(events)\n .where(and(...conditions, gt(events.position, lastPosition)))\n .limit(chunkSize)\n .orderBy(asc(events.position))\n\n if (resolvedEvents.length === 0) {\n break\n }\n\n for (const resolvedEvent of resolvedEvents) {\n yield {\n ...resolvedEvent,\n payload: superjson.parse(resolvedEvent.payload),\n metadata: superjson.deserialize(resolvedEvent.metadata),\n }\n lastPosition = resolvedEvent.position\n }\n }\n },\n async appendEvents(streamId, newEvents, expectedVersion) {\n const mappedEvents = newEvents.map((event, index) => ({\n streamId: streamId.id,\n streamType: streamId.stream,\n streamVersion: expectedVersion + 1 + index,\n type: event.type,\n payload: superjson.stringify(event.payload),\n metadata: superjson.serialize(event.metadata),\n causationId: event.causationId,\n actorId: event.actorId,\n correlationId: event.correlationId,\n schemaVersion: event.schemaVersion,\n }))\n\n try {\n const persistedEvents = await db()\n .insert(events)\n .values(mappedEvents)\n .returning()\n\n const resolvedEvents = persistedEvents\n .map((persistendEvent) => ({\n ...persistendEvent,\n payload: superjson.parse(persistendEvent.payload),\n metadata: superjson.deserialize<\n Record<string, unknown> | undefined\n >(persistendEvent.metadata),\n }))\n .toSorted((eventA, eventB) => eventA.position - eventB.position)\n\n onEventsAppended?.(resolvedEvents)\n\n return resolvedEvents\n } catch (error) {\n if (isPgUniqueViolation(error)) {\n const [lastStreamEvent] = await db()\n .select({\n streamVersion: events.streamVersion,\n })\n .from(events)\n .where(\n and(\n eq(events.streamId, streamId.id),\n eq(events.streamType, streamId.stream),\n ),\n )\n .orderBy(desc(events.position))\n .limit(1)\n\n const currentVersion = lastStreamEvent?.streamVersion ?? 0\n throw new ConcurrencyError(streamId, expectedVersion, currentVersion)\n }\n throw error\n }\n },\n checkpoint: {\n async upsert(checkpoint, expectedVersion) {\n const metadata = superjson.stringify(checkpoint.metadata)\n // Compare-and-swap: on an existing row the DO UPDATE only fires when\n // the stored version still matches `expectedVersion`. A `null`\n // expectation means \"insert only\" — if the row already exists the\n // guard fails and no row is returned, signalling a conflict.\n const committed = await db()\n .insert(checkpoints)\n .values({\n lastEventPosition: checkpoint.lastEventPosition,\n name: checkpoint.name,\n type: checkpoint.type,\n metadata,\n version: checkpoint.version,\n })\n .onConflictDoUpdate({\n target: [checkpoints.type, checkpoints.name],\n set: {\n lastEventPosition: checkpoint.lastEventPosition,\n metadata,\n version: checkpoint.version,\n },\n setWhere:\n expectedVersion === null\n ? sql`false`\n : eq(checkpoints.version, expectedVersion),\n })\n .returning({ version: checkpoints.version })\n\n return committed.length > 0\n },\n async get(type, name) {\n const [checkpoint] = await db()\n .select({\n type: checkpoints.type,\n name: checkpoints.name,\n lastEventPosition: checkpoints.lastEventPosition,\n metadata: checkpoints.metadata,\n version: checkpoints.version,\n })\n .from(checkpoints)\n .where(and(eq(checkpoints.type, type), eq(checkpoints.name, name)))\n\n if (!checkpoint) {\n return null\n }\n\n return {\n ...checkpoint,\n metadata: superjson.parse(checkpoint.metadata),\n }\n },\n async delete(type, name) {\n await db()\n .delete(checkpoints)\n .where(and(eq(checkpoints.type, type), eq(checkpoints.name, name)))\n },\n },\n\n projectionSnapshot: {\n async put(snapshot) {\n await db()\n .insert(projectionSnapshots)\n .values({\n lastEventPosition: snapshot.lastEventPosition,\n projectionId: snapshot.projectionId,\n projectionType: snapshot.projectionType,\n schemaVersion: snapshot.schemaVersion,\n state: superjson.stringify(snapshot.state),\n metadata: superjson.stringify(snapshot.metadata),\n })\n },\n async get(select) {\n const [snapshot] = await db()\n .select({\n projectionId: projectionSnapshots.projectionId,\n projectionType: projectionSnapshots.projectionType,\n state: projectionSnapshots.state,\n lastEventPosition: projectionSnapshots.lastEventPosition,\n schemaVersion: projectionSnapshots.schemaVersion,\n createdAt: projectionSnapshots.createdAt,\n metadata: projectionSnapshots.metadata,\n })\n .from(projectionSnapshots)\n .where(\n and(\n eq(projectionSnapshots.projectionId, select.id),\n eq(projectionSnapshots.projectionType, select.projection),\n ),\n )\n .orderBy(desc(projectionSnapshots.lastEventPosition))\n\n if (!snapshot) {\n return null\n }\n\n return {\n ...snapshot,\n state: superjson.parse(snapshot.state),\n metadata: super.parse(snapshot.metadata),\n }\n },\n async delete(target, fromPosition) {\n const conditions = [\n eq(projectionSnapshots.projectionType, target.projection),\n ]\n\n if (target.id) {\n conditions.push(eq(projectionSnapshots.projectionId, target.id))\n }\n\n if (fromPosition) {\n conditions.push(\n gt(projectionSnapshots.lastEventPosition, fromPosition),\n )\n }\n\n await db()\n .delete(projectionSnapshots)\n .where(and(...conditions))\n },\n async incrementAppliedCount(select) {\n const [applied] = await db()\n .insert(projectionAppliedEvents)\n .values({\n projectionId: select.id,\n projectionType: select.projection,\n appliedEvents: 1,\n })\n .onConflictDoUpdate({\n target: [\n projectionAppliedEvents.projectionId,\n projectionAppliedEvents.projectionType,\n ],\n set: {\n appliedEvents: sql`${projectionAppliedEvents.appliedEvents} + 1`,\n },\n })\n .returning({\n appliedEvents: projectionAppliedEvents.appliedEvents,\n })\n\n return applied.appliedEvents\n },\n },\n aggregateRootSnapshot: {\n async put(snapshot) {\n await db()\n .insert(aggregateRootSnapshots)\n .values({\n lastEventPosition: snapshot.lastEventPosition,\n schemaVersion: snapshot.schemaVersion,\n state: superjson.stringify(snapshot.state),\n streamId: snapshot.streamId,\n streamType: snapshot.streamType,\n streamVersion: snapshot.streamVersion,\n metadata: superjson.stringify(snapshot.metadata),\n })\n },\n async get(select) {\n const [snapshot] = await db()\n .select({\n streamId: aggregateRootSnapshots.streamId,\n streamType: aggregateRootSnapshots.streamType,\n streamVersion: aggregateRootSnapshots.streamVersion,\n schemaVersion: aggregateRootSnapshots.schemaVersion,\n state: aggregateRootSnapshots.state,\n createdAt: aggregateRootSnapshots.createdAt,\n lastEventPosition: aggregateRootSnapshots.lastEventPosition,\n metadata: aggregateRootSnapshots.metadata,\n })\n .from(aggregateRootSnapshots)\n .where(\n and(\n eq(aggregateRootSnapshots.streamId, select.id),\n eq(aggregateRootSnapshots.streamType, select.stream),\n ),\n )\n .orderBy(desc(aggregateRootSnapshots.streamVersion))\n\n if (!snapshot) {\n return null\n }\n\n return {\n ...snapshot,\n state: superjson.parse(snapshot.state),\n metadata: superjson.parse(snapshot.metadata),\n }\n },\n async delete(target, fromStreamVersion) {\n await db()\n .delete(aggregateRootSnapshots)\n .where(\n and(\n eq(aggregateRootSnapshots.streamId, target.id),\n eq(aggregateRootSnapshots.streamType, target.stream),\n gt(aggregateRootSnapshots.streamVersion, fromStreamVersion),\n ),\n )\n },\n },\n }) as any\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "378A42D2C9F4676F64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "78B2853DBC2855F264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -622,6 +622,23 @@ export declare const checkpoints: import("drizzle-orm/pg-core").PgTableWithColum
622
622
  identity: undefined;
623
623
  generated: undefined;
624
624
  }, {}, {}>;
625
+ version: import("drizzle-orm/pg-core").PgColumn<{
626
+ name: "version";
627
+ tableName: "checkpoints";
628
+ dataType: "number";
629
+ columnType: "PgBigInt53";
630
+ data: number;
631
+ driverParam: string | number;
632
+ notNull: true;
633
+ hasDefault: true;
634
+ isPrimaryKey: false;
635
+ isAutoincrement: false;
636
+ hasRuntimeDefault: false;
637
+ enumValues: undefined;
638
+ baseColumn: never;
639
+ identity: undefined;
640
+ generated: undefined;
641
+ }, {}, {}>;
625
642
  };
626
643
  dialect: "pg";
627
644
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/drizzle/postgres.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,eAAO,MAAM,aAAa,0DAA6B,CAAA;AAEvD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BlB,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlC,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavB,CAAA;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnC,CAAA"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/drizzle/postgres.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,eAAO,MAAM,aAAa,0DAA6B,CAAA;AAEvD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BlB,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlC,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB,CAAA;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnC,CAAA"}
@@ -5,7 +5,7 @@ import {
5
5
  events,
6
6
  projectionAppliedEvents,
7
7
  projectionSnapshots
8
- } from "../chunk-3t1vzbab.js";
8
+ } from "../chunk-263c07sn.js";
9
9
  export {
10
10
  projectionSnapshots,
11
11
  projectionAppliedEvents,
package/dist/errors.d.ts CHANGED
@@ -6,6 +6,12 @@ export declare class ConcurrencyError extends Error {
6
6
  id: string;
7
7
  }, expectedVersion: number, actualVersion: number);
8
8
  }
9
+ export declare class CheckpointConcurrencyError extends Error {
10
+ readonly checkpointType: 'projection' | 'processManager';
11
+ readonly name: string;
12
+ readonly expectedVersion: number | null;
13
+ constructor(checkpointType: 'projection' | 'processManager', name: string, expectedVersion: number | null);
14
+ }
9
15
  export declare class ValidationError extends Error {
10
16
  readonly zodError: z.ZodError;
11
17
  constructor(message: string, zodError: z.ZodError);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAErE,qBAAa,gBAAiB,SAAQ,KAAK;gBAEvC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EACxC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM;CAMxB;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBADpC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,CAAC,CAAC,QAAQ;CAIvC;AAED,qBAAa,oBAAqB,SAAQ,eAAe;CAAG;AAE5D,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,qBAAa,YAAY,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,KAAK;aAEpC,iBAAiB,EAAE,MAAM;aACzB,WAAW,EAAE,MAAM;aACnB,QAAQ,EAAE,MAAM;aAChB,aAAa,EAAE,CAAC;gBAHhB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,CAAC;CAMnC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;aAGhC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;aAClD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;gBAFvC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAClD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;CAI1C;AAED,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAE7C,qBAAa,oCAAoC,CAC/C,CAAC,SAAS,KAAK,CACf,SAAQ,KAAK;aAEK,UAAU,EAAE,MAAM;aAClB,YAAY,EAAE,MAAM;aACpB,KAAK,EAAE,eAAe;aACtB,aAAa,EAAE,CAAC;gBAHhB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,CAAC;CAMnC;AAED,qBAAa,wCAAwC,CACnD,CAAC,SAAS,KAAK,CACf,SAAQ,KAAK;aAEK,cAAc,EAAE,MAAM;aACtB,YAAY,EAAE,MAAM;aACpB,KAAK,EAAE,eAAe;aACtB,aAAa,EAAE,CAAC;gBAHhB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,CAAC;CAMnC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAErE,qBAAa,gBAAiB,SAAQ,KAAK;gBAEvC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EACxC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM;CAMxB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;aAEjC,cAAc,EAAE,YAAY,GAAG,gBAAgB;aAC/C,IAAI,EAAE,MAAM;aACZ,eAAe,EAAE,MAAM,GAAG,IAAI;gBAF9B,cAAc,EAAE,YAAY,GAAG,gBAAgB,EAC/C,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GAAG,IAAI;CAMjD;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBADpC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,CAAC,CAAC,QAAQ;CAIvC;AAED,qBAAa,oBAAqB,SAAQ,eAAe;CAAG;AAE5D,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,qBAAa,YAAY,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,KAAK;aAEpC,iBAAiB,EAAE,MAAM;aACzB,WAAW,EAAE,MAAM;aACnB,QAAQ,EAAE,MAAM;aAChB,aAAa,EAAE,CAAC;gBAHhB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,CAAC;CAMnC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;aAGhC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;aAClD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;gBAFvC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAClD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;CAI1C;AAED,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAE7C,qBAAa,oCAAoC,CAC/C,CAAC,SAAS,KAAK,CACf,SAAQ,KAAK;aAEK,UAAU,EAAE,MAAM;aAClB,YAAY,EAAE,MAAM;aACpB,KAAK,EAAE,eAAe;aACtB,aAAa,EAAE,CAAC;gBAHhB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,CAAC;CAMnC;AAED,qBAAa,wCAAwC,CACnD,CAAC,SAAS,KAAK,CACf,SAAQ,KAAK;aAEK,cAAc,EAAE,MAAM;aACtB,YAAY,EAAE,MAAM;aACpB,KAAK,EAAE,eAAe;aACtB,aAAa,EAAE,CAAC;gBAHhB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,CAAC;CAMnC"}
package/dist/errors.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import {
2
+ CheckpointConcurrencyError,
2
3
  CommandError,
3
4
  ConcurrencyError,
4
5
  EventValidationError,
@@ -9,7 +10,7 @@ import {
9
10
  RefreshingSkipError,
10
11
  ReplaySkipError,
11
12
  ValidationError
12
- } from "./chunk-qdczt68t.js";
13
+ } from "./chunk-391m4mfp.js";
13
14
  export {
14
15
  ValidationError,
15
16
  ReplaySkipError,
@@ -20,7 +21,8 @@ export {
20
21
  InfiniteLoopError,
21
22
  EventValidationError,
22
23
  ConcurrencyError,
23
- CommandError
24
+ CommandError,
25
+ CheckpointConcurrencyError
24
26
  };
25
27
 
26
- //# debugId=42D38D47B374FF0964756E2164756E21
28
+ //# debugId=1EBB5F2728E5435464756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "42D38D47B374FF0964756E2164756E21",
7
+ "debugId": "1EBB5F2728E5435464756E2164756E21",
8
8
  "names": []
9
9
  }
package/dist/index.js CHANGED
@@ -4,26 +4,26 @@ import {
4
4
  } from "./chunk-jd4q8fcf.js";
5
5
  import {
6
6
  createEventStore
7
- } from "./chunk-2qy4eb4h.js";
7
+ } from "./chunk-04wqxaqs.js";
8
8
  import"./chunk-gq80tgvf.js";
9
9
  import {
10
10
  createAggregateRoot
11
- } from "./chunk-crc0araj.js";
11
+ } from "./chunk-r601d5jm.js";
12
12
  import {
13
13
  getProcessManagerInfo,
14
14
  isInsideProcessManager
15
- } from "./chunk-8x4bedr4.js";
15
+ } from "./chunk-smy8mxvr.js";
16
16
  import"./chunk-6q8mr1sg.js";
17
17
  import {
18
18
  skipRefreshing
19
- } from "./chunk-9psg50cb.js";
19
+ } from "./chunk-6yrb30rx.js";
20
20
  import"./chunk-tfy01fah.js";
21
21
  import {
22
22
  getProjectionInfo,
23
23
  isInsideProjection
24
- } from "./chunk-kj36dz26.js";
25
- import"./chunk-zf3x573k.js";
26
- import"./chunk-pmfzjavb.js";
24
+ } from "./chunk-th14wxh8.js";
25
+ import"./chunk-yn2sjcg3.js";
26
+ import"./chunk-8qn1nqnh.js";
27
27
  import"./chunk-ty9bhdvx.js";
28
28
  import"./chunk-z388cd25.js";
29
29
  import {
@@ -32,8 +32,9 @@ import {
32
32
  } from "./chunk-24xjphpk.js";
33
33
  import {
34
34
  skipReplay
35
- } from "./chunk-x90g388y.js";
35
+ } from "./chunk-2fe8jjdc.js";
36
36
  import {
37
+ CheckpointConcurrencyError,
37
38
  CommandError,
38
39
  ConcurrencyError,
39
40
  EventValidationError,
@@ -44,7 +45,7 @@ import {
44
45
  RefreshingSkipError,
45
46
  ReplaySkipError,
46
47
  ValidationError
47
- } from "./chunk-qdczt68t.js";
48
+ } from "./chunk-391m4mfp.js";
48
49
  export {
49
50
  skipReplay,
50
51
  skipRefreshing,
@@ -67,7 +68,8 @@ export {
67
68
  InfiniteLoopError,
68
69
  EventValidationError,
69
70
  ConcurrencyError,
70
- CommandError
71
+ CommandError,
72
+ CheckpointConcurrencyError
71
73
  };
72
74
 
73
- //# debugId=2E71FC6F4A344C5C64756E2164756E21
75
+ //# debugId=6C4703510F84795D64756E2164756E21
package/dist/index.js.map CHANGED
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "2E71FC6F4A344C5C64756E2164756E21",
7
+ "debugId": "6C4703510F84795D64756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAWjE,OAAO,KAAK,EACV,UAAU,EACV,0CAA0C,EAC1C,cAAc,EACd,UAAU,EACX,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,eAAe,EAAE,KACtB,YAAY,CAAC,IAAI,CAAC,CAAA;AAEvB,UAAU,sBAAsB,CAAC,IAAI,SAAS,gBAAgB;IAC5D,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACvF,kBAAkB,CAAC,EAAE,UAAU,CAAA;IAC/B,uBAAuB,CAAC,EAAE,UAAU,CAAA;IACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,gBAAgB,EAAE,EACpE,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,GACT,EAAE,sBAAsB,CAAC,IAAI,CAAC,GAAG,UAAU,CAC1C,cAAc,CAAC,IAAI,CAAC,EACpB,IAAI,EACJ,IAAI,CACL,CAkLA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAWjE,OAAO,KAAK,EACV,UAAU,EACV,0CAA0C,EAC1C,cAAc,EACd,UAAU,EACX,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,eAAe,EAAE,KACtB,YAAY,CAAC,IAAI,CAAC,CAAA;AAEvB,UAAU,sBAAsB,CAAC,IAAI,SAAS,gBAAgB;IAC5D,cAAc,EAAE,IAAI,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,0CAA0C,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACvF,kBAAkB,CAAC,EAAE,UAAU,CAAA;IAC/B,uBAAuB,CAAC,EAAE,UAAU,CAAA;IACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,gBAAgB,EAAE,EACpE,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,GACT,EAAE,sBAAsB,CAAC,IAAI,CAAC,GAAG,UAAU,CAC1C,cAAc,CAAC,IAAI,CAAC,EACpB,IAAI,EACJ,IAAI,CACL,CA0LA"}
@@ -4,25 +4,25 @@ import {
4
4
  } from "../chunk-jd4q8fcf.js";
5
5
  import {
6
6
  createEventStore
7
- } from "../chunk-2qy4eb4h.js";
7
+ } from "../chunk-04wqxaqs.js";
8
8
  import"../chunk-gq80tgvf.js";
9
9
  import {
10
10
  createAggregateRoot
11
- } from "../chunk-crc0araj.js";
12
- import"../chunk-8x4bedr4.js";
11
+ } from "../chunk-r601d5jm.js";
12
+ import"../chunk-smy8mxvr.js";
13
13
  import"../chunk-6q8mr1sg.js";
14
- import"../chunk-9psg50cb.js";
14
+ import"../chunk-6yrb30rx.js";
15
15
  import"../chunk-tfy01fah.js";
16
- import"../chunk-kj36dz26.js";
17
- import"../chunk-zf3x573k.js";
18
- import"../chunk-pmfzjavb.js";
16
+ import"../chunk-th14wxh8.js";
17
+ import"../chunk-yn2sjcg3.js";
18
+ import"../chunk-8qn1nqnh.js";
19
19
  import"../chunk-ty9bhdvx.js";
20
20
  import"../chunk-z388cd25.js";
21
21
  import"../chunk-24xjphpk.js";
22
- import"../chunk-x90g388y.js";
22
+ import"../chunk-2fe8jjdc.js";
23
23
  import {
24
24
  ConcurrencyError
25
- } from "../chunk-qdczt68t.js";
25
+ } from "../chunk-391m4mfp.js";
26
26
 
27
27
  // src/memory/index.ts
28
28
  function createEventStore2({
@@ -102,7 +102,7 @@ function createEventStore2({
102
102
  }
103
103
  }
104
104
  },
105
- upsert(checkpoint) {
105
+ upsert(checkpoint, expectedVersion) {
106
106
  let persisted;
107
107
  for (const c of checkpoints) {
108
108
  if (c.type === checkpoint.type && c.name === checkpoint.name) {
@@ -111,11 +111,16 @@ function createEventStore2({
111
111
  }
112
112
  }
113
113
  if (persisted) {
114
+ if (expectedVersion === null || persisted.version !== expectedVersion) {
115
+ return false;
116
+ }
114
117
  persisted.lastEventPosition = checkpoint.lastEventPosition;
115
118
  persisted.metadata = checkpoint.metadata;
119
+ persisted.version = checkpoint.version;
116
120
  } else {
117
- checkpoints.add(checkpoint);
121
+ checkpoints.add({ ...checkpoint });
118
122
  }
123
+ return true;
119
124
  },
120
125
  delete(type, name) {
121
126
  for (const checkpoint of checkpoints) {
@@ -175,4 +180,4 @@ export {
175
180
  createAggregateRoot
176
181
  };
177
182
 
178
- //# debugId=C07C59508B45971C64756E2164756E21
183
+ //# debugId=DB351FF2D489173564756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/memory/index.ts"],
4
4
  "sourcesContent": [
5
- "import type { AnyAggregateRoot } from '../createAggregateRoot.ts'\nimport type { Checkpoint } from '../createCheckpointApi.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 OnProgress,\n} from '../createEventStore.ts'\nimport type { BaseOutputEvent, MaybePromise } from '../utilityTypes.js'\n\nexport { createAggregateRoot } from '../index.ts'\n\nexport type OnEventsAppended = (\n events: BaseOutputEvent[],\n) => MaybePromise<void>\n\ninterface MemoryEventStoreParams<Root extends AnyAggregateRoot> {\n aggregateRoots: Root[]\n autoInit?: boolean\n postProcessEvent?: EventStoreParamsWithAggregateRootSnapshots<Root>['postProcessEvent']\n onProjectionReplay?: OnProgress\n onProcessManagerRefresh?: OnProgress\n onEventsAppended?: OnEventsAppended\n}\n\nexport function createEventStore<const Root extends AnyAggregateRoot>({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n onEventsAppended,\n autoInit,\n}: MemoryEventStoreParams<Root>): EventStore<\n EventsFromRoot<Root>,\n Root,\n true\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 createBaseEventStore({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n autoInit,\n\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 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) {\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 persisted.lastEventPosition = checkpoint.lastEventPosition\n persisted.metadata = checkpoint.metadata\n } else {\n checkpoints.add(checkpoint)\n }\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 }) as any\n}\n"
5
+ "import type { AnyAggregateRoot } from '../createAggregateRoot.ts'\nimport type { Checkpoint } from '../createCheckpointApi.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 OnProgress,\n} from '../createEventStore.ts'\nimport type { BaseOutputEvent, MaybePromise } from '../utilityTypes.js'\n\nexport { createAggregateRoot } from '../index.ts'\n\nexport type OnEventsAppended = (\n events: BaseOutputEvent[],\n) => MaybePromise<void>\n\ninterface MemoryEventStoreParams<Root extends AnyAggregateRoot> {\n aggregateRoots: Root[]\n autoInit?: boolean\n postProcessEvent?: EventStoreParamsWithAggregateRootSnapshots<Root>['postProcessEvent']\n onProjectionReplay?: OnProgress\n onProcessManagerRefresh?: OnProgress\n onEventsAppended?: OnEventsAppended\n}\n\nexport function createEventStore<const Root extends AnyAggregateRoot>({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n onEventsAppended,\n autoInit,\n}: MemoryEventStoreParams<Root>): EventStore<\n EventsFromRoot<Root>,\n Root,\n true\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 createBaseEventStore({\n aggregateRoots,\n postProcessEvent,\n onProjectionReplay,\n onProcessManagerRefresh,\n autoInit,\n\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 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 (expectedVersion === null || persisted.version !== expectedVersion) {\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 }) as any\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "C07C59508B45971C64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "DB351FF2D489173564756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/refresh.js CHANGED
@@ -2,8 +2,8 @@ import {
2
2
  isRefreshing,
3
3
  skipRefreshing,
4
4
  withRefreshing
5
- } from "./chunk-9psg50cb.js";
6
- import"./chunk-qdczt68t.js";
5
+ } from "./chunk-6yrb30rx.js";
6
+ import"./chunk-391m4mfp.js";
7
7
  export {
8
8
  withRefreshing,
9
9
  skipRefreshing,
package/dist/replay.js CHANGED
@@ -2,8 +2,8 @@ import {
2
2
  isReplaying,
3
3
  skipReplay,
4
4
  withReplaying
5
- } from "./chunk-x90g388y.js";
6
- import"./chunk-qdczt68t.js";
5
+ } from "./chunk-2fe8jjdc.js";
6
+ import"./chunk-391m4mfp.js";
7
7
  export {
8
8
  withReplaying,
9
9
  skipReplay,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createSnapshotGenerator
3
- } from "./chunk-pmfzjavb.js";
4
- import"./chunk-qdczt68t.js";
3
+ } from "./chunk-8qn1nqnh.js";
4
+ import"./chunk-391m4mfp.js";
5
5
  export {
6
6
  createSnapshotGenerator as default
7
7
  };
@@ -45,6 +45,7 @@ export declare function setupEventStore<const Root extends AnyAggregateRoot>(agg
45
45
  type: "projection" | "processManager";
46
46
  name: string;
47
47
  metadata: Record<string, any>;
48
+ version: number;
48
49
  }>;
49
50
  pseudoEventStore: Event[];
50
51
  pseudoAggregateRootSnapshotStore: Map<string, {
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tests/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,EAGL,KAAK,KAAK,EAMX,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;iBAehB,MAAM;gBAGP,MAAM;;;;;;;;;;;;;IAIvB;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,IAAI,SAAS,gBAAgB,EACjE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyL9E"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/tests/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,EAGL,KAAK,KAAK,EAMX,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;iBAehB,MAAM;gBAGP,MAAM;;;;;;;;;;;;;IAIvB;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,IAAI,SAAS,gBAAgB,EACjE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmM9E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@requence/event-sourcing",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "description": "Event sourcing primitives — aggregate roots, projections, process managers, and event listeners",
5
5
  "type": "module",
6
6
  "sideEffects": false,