@ddd-ts/event-sourcing-esdb 0.0.0-alpha2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,26 @@
1
+ import { EventStoreDBClient } from "@eventstore/db-client";
2
+ import { EsAggregate, Event, Competitor, EsChange, EsFact, EventStore, Follower, ProjectedStreamConfiguration } from "@ddd-ts/event-sourcing";
3
+ import { Constructor } from "@ddd-ts/types";
4
+ export declare class ESDBEventStore extends EventStore {
5
+ client: EventStoreDBClient;
6
+ namespace: string;
7
+ constructor();
8
+ private readonly subscriptions;
9
+ close(): Promise<void>;
10
+ clear(): Promise<void>;
11
+ private getAggregateStreamName;
12
+ appendToAggregateStream(AGGREGATE: Constructor<EsAggregate<any, any>>, id: {
13
+ toString(): string;
14
+ }, changes: EsChange[], expectedRevision: bigint): Promise<void>;
15
+ readAggregateStream(AGGREGATE: Constructor<EsAggregate<{
16
+ toString(): string;
17
+ }, Event[]>, any[]>, id: {
18
+ toString(): string;
19
+ }, from?: bigint): AsyncIterable<EsFact>;
20
+ private getProjectedStreamName;
21
+ private ensureProjectedStream;
22
+ readProjectedStream(config: ProjectedStreamConfiguration, from?: bigint): AsyncIterable<EsFact>;
23
+ followProjectedStream(AGGREGATE: ProjectedStreamConfiguration, from?: bigint): Promise<Follower>;
24
+ competeForProjectedStream(AGGREGATE: ProjectedStreamConfiguration, competitionName: string): Promise<Competitor>;
25
+ }
26
+ //# sourceMappingURL=esdb.event-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esdb.event-store.d.ts","sourceRoot":"","sources":["../src/esdb.event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAa,MAAM,uBAAuB,CAAC;AACtE,OAAO,EACL,WAAW,EACX,KAAK,EAIL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;;IAUlB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAEzD,KAAK;IAKL,KAAK;IAIX,OAAO,CAAC,sBAAsB;IAOxB,uBAAuB,CAC3B,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC7C,EAAE,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,EAC1B,OAAO,EAAE,QAAQ,EAAE,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IAcT,mBAAmB,CACxB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAC3E,EAAE,EAAE;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ,aAAa,CAAC,MAAM,CAAC;IAmBxB,OAAO,CAAC,sBAAsB;YAIhB,qBAAqB;IA4C5B,mBAAmB,CACxB,MAAM,EAAE,4BAA4B,EACpC,IAAI,CAAC,EAAE,MAAM,GACZ,aAAa,CAAC,MAAM,CAAC;IAwBlB,qBAAqB,CACzB,SAAS,EAAE,4BAA4B,EACvC,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;IAoCpB,yBAAyB,CACvB,SAAS,EAAE,4BAA4B,EACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC;CAwEvB"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ESDBEventStore = void 0;
4
+ const db_client_1 = require("@eventstore/db-client");
5
+ const event_sourcing_1 = require("@ddd-ts/event-sourcing");
6
+ process.env.DEBUG = "esdb:*";
7
+ class ESDBEventStore extends event_sourcing_1.EventStore {
8
+ client;
9
+ namespace;
10
+ constructor() {
11
+ super();
12
+ this.namespace = Math.random().toString().substring(2, 8);
13
+ this.client = new db_client_1.EventStoreDBClient({ endpoint: { address: "localhost", port: 2113 } }, { insecure: true });
14
+ }
15
+ subscriptions = new Set();
16
+ async close() {
17
+ await Promise.all([...this.subscriptions.values()].map((s) => s()));
18
+ this.client.dispose();
19
+ }
20
+ async clear() {
21
+ this.namespace = Math.random().toString().substring(2, 8);
22
+ }
23
+ getAggregateStreamName(AGGREGATE, id) {
24
+ return this.namespace + "." + AGGREGATE.name + "-" + id;
25
+ }
26
+ async appendToAggregateStream(AGGREGATE, id, changes, expectedRevision) {
27
+ const r = expectedRevision === -1n ? "no_stream" : expectedRevision;
28
+ const events = changes.map((c) => (0, db_client_1.jsonEvent)({ id: c.id, type: c.type, data: c.payload }));
29
+ const streamName = this.getAggregateStreamName(AGGREGATE, id.toString());
30
+ await this.client.appendToStream(streamName, events, {
31
+ expectedRevision: r,
32
+ });
33
+ }
34
+ async *readAggregateStream(AGGREGATE, id, from) {
35
+ const streamName = this.getAggregateStreamName(AGGREGATE, id.toString());
36
+ for await (const event of this.client.readStream(streamName, {
37
+ fromRevision: from,
38
+ })) {
39
+ if (!event.event) {
40
+ throw new Error("no event");
41
+ }
42
+ yield {
43
+ id: event.event.id,
44
+ payload: event.event.data,
45
+ type: event.event.type,
46
+ revision: event.event.revision,
47
+ };
48
+ }
49
+ }
50
+ getProjectedStreamName(AGGREGATE) {
51
+ return "$ce-" + this.namespace + "." + AGGREGATE.name;
52
+ }
53
+ async ensureProjectedStream(config) {
54
+ if (config.length === 1) {
55
+ return this.getProjectedStreamName(config[0]);
56
+ }
57
+ const projectionNameSuffix = config
58
+ .map((a) => a.name)
59
+ .sort()
60
+ .join("-");
61
+ const stableProjectionName = this.namespace + "." + "pj-" + projectionNameSuffix;
62
+ const streams = config.map((a) => this.getProjectedStreamName(a));
63
+ const query = `
64
+ fromStreams(${streams
65
+ .map((s) => `'${s}'`)
66
+ .join(", ")}).when({ $any: function(state, event) { linkTo('${stableProjectionName}', event) }})
67
+ `;
68
+ await this.client.createProjection(stableProjectionName, query, {
69
+ emitEnabled: true,
70
+ });
71
+ let status;
72
+ let attempts = 0;
73
+ do {
74
+ status = await this.client.getProjectionStatus(stableProjectionName);
75
+ if (status.progress < 100) {
76
+ await new Promise((resolve) => setTimeout(resolve, 200));
77
+ }
78
+ attempts++;
79
+ if (attempts > 20) {
80
+ throw new Error("projection not stable");
81
+ }
82
+ } while (status.progress < 100);
83
+ return stableProjectionName;
84
+ }
85
+ async *readProjectedStream(config, from) {
86
+ const stream = await this.ensureProjectedStream(config);
87
+ for await (const event of this.client.readStream(stream, {
88
+ fromRevision: from,
89
+ resolveLinkTos: true,
90
+ direction: "forwards",
91
+ })) {
92
+ if (!event.event) {
93
+ throw new Error("no event");
94
+ }
95
+ if (!event.link) {
96
+ throw new Error("no link");
97
+ }
98
+ yield {
99
+ id: event.event.id,
100
+ payload: event.event.data,
101
+ type: event.event.type,
102
+ revision: event.link.revision,
103
+ };
104
+ }
105
+ }
106
+ async followProjectedStream(AGGREGATE, from = 0n) {
107
+ const streamName = await this.ensureProjectedStream(AGGREGATE);
108
+ const position = from - 1n;
109
+ const fromRevision = position < 0n ? "start" : position;
110
+ const stream = this.client.subscribeToStream(streamName, {
111
+ fromRevision,
112
+ resolveLinkTos: true,
113
+ });
114
+ const hook = async () => void stream.destroy();
115
+ this.subscriptions.add(hook);
116
+ const mapped = (0, event_sourcing_1.map)(stream, (e) => {
117
+ if (!e.event) {
118
+ throw new Error("no event");
119
+ }
120
+ if (!e.link) {
121
+ throw new Error("no link");
122
+ }
123
+ return {
124
+ id: e.event.id,
125
+ payload: e.event.data,
126
+ type: e.event.type,
127
+ revision: e.link.revision,
128
+ };
129
+ });
130
+ return (0, event_sourcing_1.closeable)(mapped, async () => {
131
+ await stream.unsubscribe();
132
+ this.subscriptions.delete(hook);
133
+ });
134
+ }
135
+ competeForProjectedStream(AGGREGATE, competitionName) {
136
+ throw new Error("Method not implemented.");
137
+ }
138
+ }
139
+ exports.ESDBEventStore = ESDBEventStore;
140
+ //# sourceMappingURL=esdb.event-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esdb.event-store.js","sourceRoot":"","sources":["../src/esdb.event-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=esdb.event-store.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esdb.event-store.spec.d.ts","sourceRoot":"","sources":["../src/esdb.event-store.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tests_1 = require("@ddd-ts/tests");
4
+ const esdb_event_store_1 = require("./esdb.event-store");
5
+ describe("ESDBEventStore", () => {
6
+ (0, tests_1.EsAggregateStoreSuite)(new esdb_event_store_1.ESDBEventStore());
7
+ });
8
+ //# sourceMappingURL=esdb.event-store.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esdb.event-store.spec.js","sourceRoot":"","sources":["../src/esdb.event-store.spec.ts"],"names":[],"mappings":";;AAAA,yCAAsD;AACtD,yDAAoD;AAEpD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,6BAAqB,EAAC,IAAI,iCAAc,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ESDBEventStore } from "./esdb.event-store";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ESDBEventStore = void 0;
4
+ var esdb_event_store_1 = require("./esdb.event-store");
5
+ Object.defineProperty(exports, "ESDBEventStore", { enumerable: true, get: function () { return esdb_event_store_1.ESDBEventStore; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAA3C,kHAAA,cAAc,OAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bank.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bank.spec.d.ts","sourceRoot":"","sources":["../../src/test/bank.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tests_1 = require("@ddd-ts/tests");
4
+ const esdb_event_store_1 = require("../esdb.event-store");
5
+ const event_sourcing_inmemory_1 = require("@ddd-ts/event-sourcing-inmemory");
6
+ const event_sourcing_1 = require("@ddd-ts/event-sourcing");
7
+ const store_inmemory_1 = require("@ddd-ts/store-inmemory");
8
+ describe("EventSourcingESDB", () => {
9
+ const es = new esdb_event_store_1.ESDBEventStore();
10
+ const database = new store_inmemory_1.InMemoryDatabase();
11
+ const checkpoint = new event_sourcing_inmemory_1.InMemoryCheckpoint(database);
12
+ const transaction = new store_inmemory_1.InMemoryTransactionPerformer(database);
13
+ (0, tests_1.BankSuite)(es, checkpoint, transaction, (serializer, name) => {
14
+ const store = new store_inmemory_1.InMemoryStore(name, database, serializer);
15
+ return store;
16
+ }, (AGGREGATE, serializer, eventSerializers) => {
17
+ const persistor = class extends (0, event_sourcing_1.EsAggregatePersistorWithSnapshots)(AGGREGATE) {
18
+ };
19
+ const snapshotter = new event_sourcing_inmemory_1.InMemorySnapshotter(database, serializer);
20
+ return new persistor(es, eventSerializers, snapshotter);
21
+ });
22
+ });
23
+ //# sourceMappingURL=bank.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bank.spec.js","sourceRoot":"","sources":["../../src/test/bank.spec.ts"],"names":[],"mappings":";;AAAA,yCAA0C;AAC1C,0DAAqD;AAErD,6EAGyC;AACzC,2DAA2E;AAC3E,2DAIgC;AAEhC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,MAAM,EAAE,GAAG,IAAI,iCAAc,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,iCAAgB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,4CAAkB,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,6CAA4B,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAA,iBAAS,EACP,EAAE,EACF,UAAU,EACV,WAAW,EACX,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,gBAAgB,EAAE,EAAE;QAC1C,MAAM,SAAS,GAAG,KAAM,SAAQ,IAAA,kDAAiC,EAC/D,SAAS,CACV;SAAI,CAAC;QACN,MAAM,WAAW,GAAG,IAAI,6CAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClE,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@ddd-ts/event-sourcing-esdb",
3
+ "version": "0.0.0-alpha2.1",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "license": "MIT",
7
+ "scripts": {
8
+ "pretest": "docker compose -f docker/docker-compose.yml up -d",
9
+ "wait": "sh -c 'until curl --silent localhost:2113/health; do sleep 1; done;'",
10
+ "test": "jest --config node_modules/@ddd-ts/tools/jest.config.ts",
11
+ "posttest": "docker compose -f docker/docker-compose.yml down",
12
+ "build": "tsc"
13
+ },
14
+ "dependencies": {
15
+ "@ddd-ts/event-sourcing": "0.0.0-alpha2.1",
16
+ "@eventstore/db-client": "^5.0.0"
17
+ },
18
+ "devDependencies": {
19
+ "@ddd-ts/event-sourcing-inmemory": "0.0.0-alpha2.1",
20
+ "@ddd-ts/store-inmemory": "0.0.0-alpha2.1",
21
+ "@ddd-ts/tests": "0.0.0-alpha2.1",
22
+ "@ddd-ts/tools": "0.0.0-alpha2.1",
23
+ "@ddd-ts/types": "0.0.0-alpha2.1",
24
+ "@types/jest": "^29.5.1"
25
+ }
26
+ }