@ddd-ts/event-sourcing-inmemory 0.0.13 → 0.0.14

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.
@@ -1,9 +1,15 @@
1
1
  import { type AggregateStreamId, type IChange } from "@ddd-ts/core";
2
+ import type { InMemoryTransaction } from "@ddd-ts/store-inmemory";
2
3
  export declare class InMemoryEventStore {
3
4
  private streams;
4
5
  close(): Promise<void>;
5
6
  clear(): Promise<void>;
6
- append(streamId: AggregateStreamId, changes: IChange[], expectedRevision: number): Promise<void>;
7
+ bulkAppend(toAppend: {
8
+ streamId: AggregateStreamId;
9
+ changes: IChange[];
10
+ expectedRevision: number;
11
+ }[], trx?: InMemoryTransaction): Promise<void>;
12
+ append(streamId: AggregateStreamId, changes: IChange[], expectedRevision: number, trx?: InMemoryTransaction): Promise<void>;
7
13
  read(streamId: AggregateStreamId, from?: number): AsyncGenerator<import("@ddd-ts/core").IFact, void, unknown>;
8
14
  }
9
15
  //# sourceMappingURL=in-memory.event-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.event-store.d.ts","sourceRoot":"","sources":["../../src/event-store/in-memory.event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACb,MAAM,cAAc,CAAC;AAGtB,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA6B;IAEtC,KAAK;IAIL,KAAK;IAIL,MAAM,CACV,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAAE,EAClB,gBAAgB,EAAE,MAAM;IAuBnB,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,SAAI;CAUlD"}
1
+ {"version":3,"file":"in-memory.event-store.d.ts","sourceRoot":"","sources":["../../src/event-store/in-memory.event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACb,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA6B;IAEtC,KAAK;IAIL,KAAK;IAIL,UAAU,CACd,QAAQ,EAAE;QACR,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,EAAE,EACH,GAAG,CAAC,EAAE,mBAAmB;IAOrB,MAAM,CACV,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAAE,EAClB,gBAAgB,EAAE,MAAM,EACxB,GAAG,CAAC,EAAE,mBAAmB;IAuBpB,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,SAAI;CAUlD"}
@@ -11,7 +11,12 @@ class InMemoryEventStore {
11
11
  async clear() {
12
12
  this.streams.clear();
13
13
  }
14
- async append(streamId, changes, expectedRevision) {
14
+ async bulkAppend(toAppend, trx) {
15
+ for (const { streamId, changes, expectedRevision } of toAppend) {
16
+ await this.append(streamId, changes, expectedRevision);
17
+ }
18
+ }
19
+ async append(streamId, changes, expectedRevision, trx) {
15
20
  const streamName = `${streamId.aggregate}-${streamId.id}`;
16
21
  if (!this.streams.has(streamName)) {
17
22
  const stream = new stream_1.Stream();
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.event-store.js","sourceRoot":"","sources":["../../src/event-store/in-memory.event-store.ts"],"names":[],"mappings":";;;AAAA,uCAIsB;AACtB,qCAAkC;AAElC,MAAa,kBAAkB;IACrB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAA2B,EAC3B,OAAkB,EAClB,gBAAwB;QAExB,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAE1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAE7C,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,IAAI,eAAe,KAAK,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,uBAAgB,CACxB,qBAAqB,gBAAgB,aAAa,eAAe,EAAE,CACpE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,QAA2B,EAAE,IAAI,GAAG,CAAC;QAC/C,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAE1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AA/CD,gDA+CC"}
1
+ {"version":3,"file":"in-memory.event-store.js","sourceRoot":"","sources":["../../src/event-store/in-memory.event-store.ts"],"names":[],"mappings":";;;AAAA,uCAIsB;AACtB,qCAAkC;AAGlC,MAAa,kBAAkB;IACrB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,UAAU,CACd,QAIG,EACH,GAAyB;QAEzB,KAAK,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAA2B,EAC3B,OAAkB,EAClB,gBAAwB,EACxB,GAAyB;QAEzB,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAE1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAE7C,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,IAAI,eAAe,KAAK,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,uBAAgB,CACxB,qBAAqB,gBAAgB,aAAa,eAAe,EAAE,CACpE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,QAA2B,EAAE,IAAI,GAAG,CAAC;QAC/C,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAE1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AA7DD,gDA6DC"}
@@ -1,18 +1,120 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  Object.defineProperty(exports, "__esModule", { value: true });
3
9
  const tests_1 = require("@ddd-ts/tests");
4
10
  const in_memory_event_store_1 = require("./in-memory.event-store");
11
+ const core_1 = require("@ddd-ts/core");
5
12
  const in_memory_snapshotter_1 = require("../in-memory.snapshotter");
6
13
  const store_inmemory_1 = require("@ddd-ts/store-inmemory");
7
14
  const in_memory_es_aggregate_store_1 = require("../in-memory.es-aggregate-store");
15
+ const dist_1 = require("../../../shape/dist");
8
16
  describe("InMemoryEventStore", () => {
9
17
  const database = new store_inmemory_1.InMemoryDatabase();
18
+ const transaction = new store_inmemory_1.InMemoryTransactionPerformer(database);
10
19
  const eventStore = new in_memory_event_store_1.InMemoryEventStore();
11
20
  function makeAggregateStore(AGGREGATE, eventSerializer, serializer) {
12
- const snapshotter = new in_memory_snapshotter_1.InMemorySnapshotter(database, serializer);
21
+ const snapshotter = new in_memory_snapshotter_1.InMemorySnapshotter(AGGREGATE.name, database, serializer);
13
22
  const Store = (0, in_memory_es_aggregate_store_1.MakeInMemoryEsAggregateStore)(AGGREGATE);
14
- return new Store(eventStore, eventSerializer, snapshotter);
23
+ return new Store(eventStore, transaction, eventSerializer, snapshotter);
15
24
  }
16
25
  (0, tests_1.EsAggregateStoreSuite)(makeAggregateStore);
26
+ it("should support saveAll with transactions", async () => {
27
+ class MockEventBus {
28
+ off() {
29
+ throw new Error("Method not implemented.");
30
+ }
31
+ on() {
32
+ throw new Error("Method not implemented.");
33
+ }
34
+ events = [];
35
+ publish(event) {
36
+ this.events.push(event);
37
+ return Promise.resolve();
38
+ }
39
+ }
40
+ class AccountOpened extends (0, core_1.EsEvent)("AccountOpened", {
41
+ id: String,
42
+ index: Number,
43
+ registryId: String,
44
+ }) {
45
+ }
46
+ class Account extends (0, core_1.EsAggregate)("Account", {
47
+ events: [AccountOpened],
48
+ state: {
49
+ id: String,
50
+ index: Number,
51
+ balance: Number,
52
+ registryId: String,
53
+ },
54
+ }) {
55
+ static onAccountOpened(event) {
56
+ return new Account({
57
+ id: event.payload.id,
58
+ index: event.payload.index,
59
+ balance: 0,
60
+ registryId: event.payload.registryId,
61
+ });
62
+ }
63
+ static open(registryId, index) {
64
+ return this.new(AccountOpened.new({
65
+ id: Math.random().toString(36).slice(2),
66
+ index,
67
+ registryId,
68
+ }));
69
+ }
70
+ }
71
+ __decorate([
72
+ (0, core_1.On)(AccountOpened)
73
+ ], Account, "onAccountOpened", null);
74
+ class AccountRegistry extends (0, dist_1.Shape)({
75
+ id: String,
76
+ index: Number,
77
+ }) {
78
+ increment(shouldFailInMiddle = false) {
79
+ this.index++;
80
+ if (this.index > 10 && shouldFailInMiddle) {
81
+ throw new Error("Too many accounts");
82
+ }
83
+ return this.index;
84
+ }
85
+ static new() {
86
+ return new AccountRegistry({
87
+ id: Math.random().toString().slice(2),
88
+ index: 0,
89
+ });
90
+ }
91
+ }
92
+ const registryStore = new store_inmemory_1.InMemoryStore("account-registry", database, new ((0, core_1.AutoSerializer)(AccountRegistry, 1))());
93
+ const accountStore = new ((0, in_memory_es_aggregate_store_1.MakeInMemoryEsAggregateStore)(Account))(eventStore, transaction, new core_1.SerializerRegistry().add(AccountOpened, new ((0, core_1.AutoSerializer)(AccountOpened, 1))()), new in_memory_snapshotter_1.InMemorySnapshotter(Account.name, database, new ((0, core_1.AutoSerializer)(Account, 1))()));
94
+ const eventBus = new MockEventBus();
95
+ accountStore.publishEventsTo(eventBus);
96
+ const registry = AccountRegistry.new();
97
+ await registryStore.save(registry);
98
+ let willFailForAttempt = 3;
99
+ await transaction.perform(async (trx) => {
100
+ willFailForAttempt--;
101
+ const reg = await registryStore.load(registry.id, trx);
102
+ const accounts = [...Array(30).keys()].map((i) => Account.open(registry.id, reg.increment(willFailForAttempt === 0)));
103
+ await accountStore.saveAll(accounts, trx);
104
+ await registryStore.save(reg, trx);
105
+ });
106
+ const freshRegistry = await registryStore.load(registry.id);
107
+ expect(freshRegistry.index).toBe(30);
108
+ const result = await accountStore.snapshotter?.filter((a) => a.registryId === registry.id);
109
+ const documents = result;
110
+ expect(documents?.length).toBe(30);
111
+ const indices = documents
112
+ ?.map((doc) => Number(doc.index))
113
+ .sort((a, b) => a - b);
114
+ expect(indices).toEqual([
115
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
116
+ 22, 23, 24, 25, 26, 27, 28, 29, 30,
117
+ ]);
118
+ });
17
119
  });
18
120
  //# sourceMappingURL=in-memory.event-store.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.event-store.spec.js","sourceRoot":"","sources":["../../src/event-store/in-memory.event-store.spec.ts"],"names":[],"mappings":";;AAAA,yCAAsD;AACtD,mEAA6D;AAI7D,oEAA+D;AAC/D,2DAA0D;AAC1D,kFAA+E;AAE/E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,QAAQ,GAAG,IAAI,iCAAgB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,0CAAkB,EAAE,CAAC;IAC5C,SAAS,kBAAkB,CAGzB,SAAY,EACZ,eAAgE,EAChE,UAAwC;QAExC,MAAM,WAAW,GAAG,IAAI,2CAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,IAAA,2DAA4B,EAAC,SAAS,CAAC,CAAC;QAEtD,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IACD,IAAA,6BAAqB,EAAC,kBAAkB,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"in-memory.event-store.spec.js","sourceRoot":"","sources":["../../src/event-store/in-memory.event-store.spec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { HasTrait } from "@ddd-ts/traits";
2
- import { EventSourced, type AggregateStreamId, type IEsAggregateStore, type IEventBus, type Identifiable, type ISerializer } from "@ddd-ts/core";
2
+ import { AggregateStreamId, EventSourced, type IEsAggregateStore, type IEventBus, type Identifiable, type ISerializer } from "@ddd-ts/core";
3
3
  import type { InMemoryEventStore } from "./event-store/in-memory.event-store";
4
4
  import type { InMemorySnapshotter } from "./in-memory.snapshotter";
5
+ import type { InMemoryTransaction, InMemoryTransactionPerformer } from "@ddd-ts/store-inmemory";
5
6
  export declare const MakeInMemoryEsAggregateStore: <A extends Omit<(abstract new (props: {}) => {
6
7
  acknowledgedRevision: number;
7
8
  changes: import("@ddd-ts/core").IEsEvent<string, any>[];
8
- getAggregateStreamId(this: any): any;
9
9
  load(fact: import("@ddd-ts/core").IEsEvent<string, any>): void;
10
10
  apply(change: import("@ddd-ts/core").IEsEvent<string, any>): void;
11
11
  play(event: import("@ddd-ts/core").IEsEvent<string, any>): any;
@@ -13,14 +13,12 @@ export declare const MakeInMemoryEsAggregateStore: <A extends Omit<(abstract new
13
13
  acknowledgeChanges(): void;
14
14
  }) & {
15
15
  events: import("@ddd-ts/types").Constructor<import("@ddd-ts/core").IEsEvent<string, any>>[];
16
- getAggregateStreamId(id: import("@ddd-ts/core").Identifier): AggregateStreamId;
17
16
  instanciate<TH extends import("@ddd-ts/types").Constructor>(this: TH, event: import("@ddd-ts/core").IEsEvent<string, any>): InstanceType<TH>;
18
17
  loadFirst<TH_1 extends import("@ddd-ts/types").Constructor>(this: TH_1, event: import("@ddd-ts/core").IEsEvent<string, any>): InstanceType<TH_1>;
19
18
  "new"<TH_2 extends import("@ddd-ts/types").Constructor>(this: TH_2, event: import("@ddd-ts/core").IEsEvent<string, any>): InstanceType<TH_2>;
20
19
  }, ""> & (new (...args: any[]) => {
21
20
  acknowledgedRevision: number;
22
21
  changes: import("@ddd-ts/core").IEsEvent<string, any>[];
23
- getAggregateStreamId(this: any): any;
24
22
  load(fact: import("@ddd-ts/core").IEsEvent<string, any>): void;
25
23
  apply(change: import("@ddd-ts/core").IEsEvent<string, any>): void;
26
24
  play(event: import("@ddd-ts/core").IEsEvent<string, any>): any;
@@ -31,28 +29,32 @@ export declare const MakeInMemoryEsAggregateStore: <A extends Omit<(abstract new
31
29
  }, ""> & (new (...args: any[]) => {
32
30
  id: import("@ddd-ts/core").Identifier;
33
31
  })>(AGGREGATE: A) => {
34
- new (eventStore: InMemoryEventStore, serializer: ISerializer<InstanceType<A>["changes"][number]>, snapshotter?: InMemorySnapshotter<InstanceType<A>> | undefined): {
32
+ new (eventStore: InMemoryEventStore, transaction: InMemoryTransactionPerformer, serializer: ISerializer<InstanceType<A>["changes"][number]>, snapshotter?: InMemorySnapshotter<InstanceType<A>> | undefined): {
35
33
  loadFirst(event: InstanceType<A>["changes"][number]): InstanceType<A>;
36
34
  getAggregateStreamId(id: InstanceType<A>["id"]): AggregateStreamId;
37
35
  readonly eventStore: InMemoryEventStore;
36
+ readonly transaction: InMemoryTransactionPerformer;
38
37
  readonly serializer: ISerializer<InstanceType<A>["changes"][number]>;
39
38
  readonly snapshotter?: InMemorySnapshotter<InstanceType<A>> | undefined;
40
39
  _publishEventsTo?: IEventBus;
41
40
  publishEventsTo(eventBus: IEventBus): void;
42
- load(id: InstanceType<A>["id"]): Promise<any>;
43
- save(aggregate: InstanceType<A>, attempts?: number): Promise<void>;
41
+ load(id: InstanceType<A>["id"]): Promise<InstanceType<A> | undefined>;
42
+ saveAll(aggregates: InstanceType<A>[], trx?: InMemoryTransaction, attempts?: number): Promise<void>;
43
+ save(aggregate: InstanceType<A>, trx?: InMemoryTransaction, attempts?: number): Promise<void>;
44
44
  };
45
45
  };
46
46
  export declare abstract class InMemoryEsAggregateStore<A extends HasTrait<typeof EventSourced> & HasTrait<typeof Identifiable>> implements IEsAggregateStore<InstanceType<A>> {
47
47
  readonly eventStore: InMemoryEventStore;
48
+ readonly transaction: InMemoryTransactionPerformer;
48
49
  readonly serializer: ISerializer<InstanceType<A>["changes"][number]>;
49
50
  readonly snapshotter?: InMemorySnapshotter<InstanceType<A>> | undefined;
50
- constructor(eventStore: InMemoryEventStore, serializer: ISerializer<InstanceType<A>["changes"][number]>, snapshotter?: InMemorySnapshotter<InstanceType<A>> | undefined);
51
+ constructor(eventStore: InMemoryEventStore, transaction: InMemoryTransactionPerformer, serializer: ISerializer<InstanceType<A>["changes"][number]>, snapshotter?: InMemorySnapshotter<InstanceType<A>> | undefined);
51
52
  abstract getAggregateStreamId(id: InstanceType<A>["id"]): AggregateStreamId;
52
53
  abstract loadFirst(event: InstanceType<A>["changes"][number]): InstanceType<A>;
53
54
  _publishEventsTo?: IEventBus;
54
55
  publishEventsTo(eventBus: IEventBus): void;
55
- load(id: InstanceType<A>["id"]): Promise<any>;
56
- save(aggregate: InstanceType<A>, attempts?: number): Promise<void>;
56
+ load(id: InstanceType<A>["id"]): Promise<InstanceType<A> | undefined>;
57
+ saveAll(aggregates: InstanceType<A>[], trx?: InMemoryTransaction, attempts?: number): Promise<void>;
58
+ save(aggregate: InstanceType<A>, trx?: InMemoryTransaction, attempts?: number): Promise<void>;
57
59
  }
58
60
  //# sourceMappingURL=in-memory.es-aggregate-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.es-aggregate-store.d.ts","sourceRoot":"","sources":["../src/in-memory.es-aggregate-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,eAAO,MAAM,4BAA4B,GAUC,CAAC;;;;;;;;;;;;;;;wBAiG6U,KAAM;;;;;;;;;;;wBAAN,KAAM;;eAjGpV,CAAC,AAP7B;qBAkBkB,kBAAkB;yBAf7B,YAAY,CAIS,CAAC,AAJR,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAI5B,CAAC,AAJ6B,CAAC;iCAI5C,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,iBAAiB;6BAWtC,kBAAkB;;;2BAU7B,SAAS;kCACF,SAAS;;6DAoCoB,OAAO,CAAC,IAAI,CAAC;;CAtDrE,CAAC;AAEF,8BAAsB,wBAAwB,CAC5C,CAAC,SAAS,QAAQ,CAAC,OAAO,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CACvE,YAAW,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAG3B,UAAU,EAAE,kBAAkB;aAC9B,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;aAC3D,WAAW,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAFlD,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAC3D,WAAW,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAA;IAGpE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,iBAAiB;IAC3E,QAAQ,CAAC,SAAS,CAChB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACxC,YAAY,CAAC,CAAC,CAAC;IAElB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,QAAQ,EAAE,SAAS;IAI7B,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAgC9B,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAsCrE"}
1
+ {"version":3,"file":"in-memory.es-aggregate-store.d.ts","sourceRoot":"","sources":["../src/in-memory.es-aggregate-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,iBAAiB,EAEjB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EACV,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,4BAA4B,GAUC,CAAC;;;;;;;;;;;;;wBA6GrC,KAAF;;;;;;;;;;wBAAE,KAAF;;eA7GsC,CAAC,AAP7B;qBAqBkB,kBAAkB,eACjB,4BAA4B;yBAnBxC,YAAY,CAIS,CAAC,AAJR,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAI5B,CAAC,AAJ6B,CAAC;iCAI5C,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,iBAAiB;6BActC,kBAAkB;8BACjB,4BAA4B;;;2BAUxC,SAAS;kCACF,SAAS;;qDAsC3B,mBAAmB,sBAExB,OAAO,CAAC,IAAI,CAAC;+CAQR,mBAAmB,sBAExB,OAAO,CAAC,IAAI,CAAC;;CArEjB,CAAC;AAEF,8BAAsB,wBAAwB,CAC5C,CAAC,SAAS,QAAQ,CAAC,OAAO,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CACvE,YAAW,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAG3B,UAAU,EAAE,kBAAkB;aAC9B,WAAW,EAAE,4BAA4B;aACzC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;aAC3D,WAAW,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAHlD,UAAU,EAAE,kBAAkB,EAC9B,WAAW,EAAE,4BAA4B,EACzC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAC3D,WAAW,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAA;IAGpE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,iBAAiB;IAC3E,QAAQ,CAAC,SAAS,CAChB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACxC,YAAY,CAAC,CAAC,CAAC;IAElB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,QAAQ,EAAE,SAAS;IAI7B,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAgC9B,OAAO,CACX,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAC7B,GAAG,CAAC,EAAE,mBAAmB,EACzB,QAAQ,SAAK,GACZ,OAAO,CAAC,IAAI,CAAC;IAMV,IAAI,CACR,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAC1B,GAAG,CAAC,EAAE,mBAAmB,EACzB,QAAQ,SAAK,GACZ,OAAO,CAAC,IAAI,CAAC;CAuCjB"}
@@ -8,17 +8,22 @@ const MakeInMemoryEsAggregateStore = (AGGREGATE) => {
8
8
  return AGGREGATE.loadFirst(event);
9
9
  }
10
10
  getAggregateStreamId(id) {
11
- return AGGREGATE.getAggregateStreamId(id);
11
+ return new core_1.AggregateStreamId({
12
+ aggregate: AGGREGATE.name,
13
+ id: id.toString(),
14
+ });
12
15
  }
13
16
  };
14
17
  };
15
18
  exports.MakeInMemoryEsAggregateStore = MakeInMemoryEsAggregateStore;
16
19
  class InMemoryEsAggregateStore {
17
20
  eventStore;
21
+ transaction;
18
22
  serializer;
19
23
  snapshotter;
20
- constructor(eventStore, serializer, snapshotter) {
24
+ constructor(eventStore, transaction, serializer, snapshotter) {
21
25
  this.eventStore = eventStore;
26
+ this.transaction = transaction;
22
27
  this.serializer = serializer;
23
28
  this.snapshotter = snapshotter;
24
29
  }
@@ -49,17 +54,19 @@ class InMemoryEsAggregateStore {
49
54
  }
50
55
  return instance;
51
56
  }
52
- async save(aggregate, attempts = 10) {
57
+ async saveAll(aggregates, trx, attempts = 10) {
58
+ for (const aggregate of aggregates) {
59
+ await this.save(aggregate, trx, attempts);
60
+ }
61
+ }
62
+ async save(aggregate, trx, attempts = 10) {
53
63
  const streamId = this.getAggregateStreamId(aggregate.id);
54
64
  const changes = [...aggregate.changes];
55
65
  const serialized = await Promise.all(changes.map((event) => this.serializer.serialize(event)));
56
66
  try {
57
- await this.eventStore.append(streamId, serialized, aggregate.acknowledgedRevision);
67
+ await this.eventStore.append(streamId, serialized, aggregate.acknowledgedRevision, trx);
58
68
  aggregate.acknowledgeChanges();
59
69
  await this.snapshotter?.save(aggregate);
60
- for (const event of changes) {
61
- await this._publishEventsTo?.publish(event);
62
- }
63
70
  }
64
71
  catch (error) {
65
72
  if (error instanceof core_1.ConcurrencyError && attempts > 0) {
@@ -70,10 +77,13 @@ class InMemoryEsAggregateStore {
70
77
  for (const change of changes) {
71
78
  pristine.apply(change);
72
79
  }
73
- return await this.save(pristine, attempts - 1);
80
+ return await this.save(pristine, trx, attempts - 1);
74
81
  }
75
82
  throw error;
76
83
  }
84
+ for (const event of changes) {
85
+ await this._publishEventsTo?.publish(event);
86
+ }
77
87
  }
78
88
  }
79
89
  exports.InMemoryEsAggregateStore = InMemoryEsAggregateStore;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.es-aggregate-store.js","sourceRoot":"","sources":["../src/in-memory.es-aggregate-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory.es-aggregate-store.js","sourceRoot":"","sources":["../src/in-memory.es-aggregate-store.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import { type IEsAggregateStore, type IEventSourced, type IIdentifiable, type ISerializer } from "@ddd-ts/core";
2
- import { InMemoryDatabase } from "@ddd-ts/store-inmemory";
3
- export declare class InMemorySnapshotter<A extends IEventSourced & IIdentifiable> implements IEsAggregateStore<A> {
4
- private readonly db;
5
- readonly serializer: ISerializer<A>;
6
- constructor(db: InMemoryDatabase, serializer: ISerializer<A>);
7
- load(id: A["id"]): Promise<any>;
8
- save(aggregate: A): Promise<void>;
2
+ import { InMemoryDatabase, InMemoryStore } from "@ddd-ts/store-inmemory";
3
+ export declare class InMemorySnapshotter<A extends IEventSourced & IIdentifiable> extends InMemoryStore<A> implements IEsAggregateStore<A> {
4
+ constructor(aggregate: string, db: InMemoryDatabase, serializer: ISerializer<A>);
9
5
  }
10
6
  //# sourceMappingURL=in-memory.snapshotter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.snapshotter.d.ts","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,mBAAmB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CACtE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,EAAE;aACH,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;gBADzB,EAAE,EAAE,gBAAgB,EACrB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAGtC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAY/B,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAOxC"}
1
+ {"version":3,"file":"in-memory.snapshotter.d.ts","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEzE,qBAAa,mBAAmB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CACtE,SAAQ,aAAa,CAAC,CAAC,CACvB,YAAW,iBAAiB,CAAC,CAAC,CAAC;gBAG7B,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,gBAAgB,EACpB,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;CAkB7B"}
@@ -1,27 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemorySnapshotter = void 0;
4
- class InMemorySnapshotter {
5
- db;
6
- serializer;
7
- constructor(db, serializer) {
8
- this.db = db;
9
- this.serializer = serializer;
10
- }
11
- async load(id) {
12
- const snapshot = await this.db.loadLatestSnapshot(id.toString());
13
- if (!snapshot) {
14
- return undefined;
15
- }
16
- const aggregate = await this.serializer.deserialize(snapshot.serialized);
17
- aggregate.acknowledgedRevision = snapshot.revision;
18
- return aggregate;
19
- }
20
- async save(aggregate) {
21
- this.db.save("snapshots", aggregate.id.toString(), {
22
- id: aggregate.id.toString(),
23
- revision: Number(aggregate.acknowledgedRevision),
24
- serialized: await this.serializer.serialize(aggregate),
4
+ const store_inmemory_1 = require("@ddd-ts/store-inmemory");
5
+ class InMemorySnapshotter extends store_inmemory_1.InMemoryStore {
6
+ constructor(aggregate, db, serializer) {
7
+ // super(db, 'snapshots')
8
+ super(`snapshots-${aggregate}`, db, {
9
+ deserialize: async (serialized) => {
10
+ const { revision, ...content } = serialized;
11
+ const instance = await serializer.deserialize(content);
12
+ instance.acknowledgedRevision = Number(revision);
13
+ return instance;
14
+ },
15
+ serialize: async (instance) => {
16
+ return {
17
+ revision: instance.acknowledgedRevision,
18
+ ...(await serializer.serialize(instance)),
19
+ };
20
+ },
25
21
  });
26
22
  }
27
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.snapshotter.js","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":";;;AASA,MAAa,mBAAmB;IAIX;IACD;IAFlB,YACmB,EAAoB,EACrB,UAA0B;QADzB,OAAE,GAAF,EAAE,CAAkB;QACrB,eAAU,GAAV,UAAU,CAAgB;IACzC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,EAAW;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzE,SAAS,CAAC,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAY;QACrB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;YACjD,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;YAChD,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;CACF;AA3BD,kDA2BC"}
1
+ {"version":3,"file":"in-memory.snapshotter.js","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":";;;AAOA,2DAAyE;AAEzE,MAAa,mBACX,SAAQ,8BAAgB;IAGxB,YACE,SAAiB,EACjB,EAAoB,EACpB,UAA0B;QAE1B,yBAAyB;QACzB,KAAK,CAAC,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE;YAClC,WAAW,EAAE,KAAK,EAAE,UAAe,EAAE,EAAE;gBACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC;gBAC5C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvD,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,SAAS,EAAE,KAAK,EAAE,QAAW,EAAE,EAAE;gBAC/B,OAAO;oBACL,QAAQ,EAAE,QAAQ,CAAC,oBAAoB;oBACvC,GAAG,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC1C,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,kDAyBC"}
@@ -9,14 +9,15 @@ const in_memory_es_aggregate_store_1 = require("../in-memory.es-aggregate-store"
9
9
  describe("EventSourcingInMemory", () => {
10
10
  const es = new __1.InMemoryEventStore();
11
11
  const database = new store_inmemory_1.InMemoryDatabase();
12
+ const transaction = new store_inmemory_1.InMemoryTransactionPerformer(database);
12
13
  const eventBus = new core_1.DetachedEventBus();
13
14
  (0, tests_1.BankSuite)(eventBus, (serializer, name) => {
14
15
  const store = new store_inmemory_1.InMemoryStore(name, database, serializer);
15
16
  return store;
16
17
  }, (AGGREGATE, serializer, eventSerializer) => {
17
- const snapshotter = new in_memory_snapshotter_1.InMemorySnapshotter(database, serializer);
18
+ const snapshotter = new in_memory_snapshotter_1.InMemorySnapshotter(AGGREGATE.name, database, serializer);
18
19
  const Store = (0, in_memory_es_aggregate_store_1.MakeInMemoryEsAggregateStore)(AGGREGATE);
19
- const store = new Store(es, eventSerializer, snapshotter);
20
+ const store = new Store(es, transaction, eventSerializer, snapshotter);
20
21
  store.publishEventsTo(eventBus);
21
22
  return store;
22
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bank.spec.js","sourceRoot":"","sources":["../../src/test/bank.spec.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2DAAyE;AACzE,yCAA0C;AAC1C,0BAAwC;AACxC,oEAA+D;AAC/D,kFAA+E;AAE/E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,EAAE,GAAG,IAAI,sBAAkB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,iCAAgB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,uBAAgB,EAAE,CAAC;IAExC,IAAA,iBAAS,EACP,QAAQ,EACR,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAQ,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;QACzC,MAAM,WAAW,GAAG,IAAI,2CAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAA,2DAA4B,EAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"bank.spec.js","sourceRoot":"","sources":["../../src/test/bank.spec.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2DAIgC;AAChC,yCAA0C;AAC1C,0BAAwC;AACxC,oEAA+D;AAC/D,kFAA+E;AAE/E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,EAAE,GAAG,IAAI,sBAAkB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,iCAAgB,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,6CAA4B,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,uBAAgB,EAAE,CAAC;IAExC,IAAA,iBAAS,EACP,QAAQ,EACR,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAQ,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE;QACzC,MAAM,WAAW,GAAG,IAAI,2CAAmB,CACzC,SAAS,CAAC,IAAI,EACd,QAAQ,EACR,UAAU,CACX,CAAC;QACF,MAAM,KAAK,GAAG,IAAA,2DAA4B,EAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QACvE,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-ts/event-sourcing-inmemory",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -9,14 +9,14 @@
9
9
  "build": "tsc"
10
10
  },
11
11
  "dependencies": {
12
- "@ddd-ts/core": "0.0.13",
13
- "@ddd-ts/store-inmemory": "0.0.13",
14
- "@ddd-ts/types": "0.0.13"
12
+ "@ddd-ts/core": "0.0.14",
13
+ "@ddd-ts/store-inmemory": "0.0.14",
14
+ "@ddd-ts/types": "0.0.14"
15
15
  },
16
16
  "devDependencies": {
17
- "@ddd-ts/tests": "0.0.13",
18
- "@ddd-ts/tools": "0.0.13",
19
- "@ddd-ts/traits": "0.0.13",
17
+ "@ddd-ts/tests": "0.0.14",
18
+ "@ddd-ts/tools": "0.0.14",
19
+ "@ddd-ts/traits": "0.0.14",
20
20
  "@types/jest": "^29.5.1",
21
21
  "@types/node": "^20.12.4"
22
22
  }