@schorts/shared-kernel 5.2.5 → 5.4.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.
- package/README.md +2 -1
- package/dist/cjs/event-bus/dead-letter-store.js +3 -0
- package/dist/cjs/event-bus/dead-letter-store.js.map +1 -0
- package/dist/cjs/event-bus/in-memory/async-in-memory-dead-letter-store.js +17 -0
- package/dist/cjs/event-bus/in-memory/async-in-memory-dead-letter-store.js.map +1 -0
- package/dist/cjs/event-bus/in-memory/async-in-memory-event-bus.js +15 -6
- package/dist/cjs/event-bus/in-memory/async-in-memory-event-bus.js.map +1 -1
- package/dist/cjs/event-bus/in-memory/async-in-memory-event-store.js +25 -0
- package/dist/cjs/event-bus/in-memory/async-in-memory-event-store.js.map +1 -0
- package/dist/cjs/event-bus/in-memory/in-memory-dead-letter-store.js +17 -0
- package/dist/cjs/event-bus/in-memory/in-memory-dead-letter-store.js.map +1 -0
- package/dist/cjs/event-bus/in-memory/index.js +5 -3
- package/dist/cjs/event-bus/in-memory/index.js.map +1 -1
- package/dist/cjs/event-bus/index.js.map +1 -1
- package/dist/cjs/logger/console-logger.js +23 -1
- package/dist/cjs/logger/console-logger.js.map +1 -1
- package/dist/esm/event-bus/dead-letter-store.js +3 -0
- package/dist/esm/event-bus/dead-letter-store.js.map +1 -0
- package/dist/esm/event-bus/in-memory/async-in-memory-dead-letter-store.js +17 -0
- package/dist/esm/event-bus/in-memory/async-in-memory-dead-letter-store.js.map +1 -0
- package/dist/esm/event-bus/in-memory/async-in-memory-event-bus.js +15 -6
- package/dist/esm/event-bus/in-memory/async-in-memory-event-bus.js.map +1 -1
- package/dist/esm/event-bus/in-memory/async-in-memory-event-store.js +25 -0
- package/dist/esm/event-bus/in-memory/async-in-memory-event-store.js.map +1 -0
- package/dist/esm/event-bus/in-memory/in-memory-dead-letter-store.js +17 -0
- package/dist/esm/event-bus/in-memory/in-memory-dead-letter-store.js.map +1 -0
- package/dist/esm/event-bus/in-memory/index.js +5 -3
- package/dist/esm/event-bus/in-memory/index.js.map +1 -1
- package/dist/esm/event-bus/index.js.map +1 -1
- package/dist/esm/logger/console-logger.js +23 -1
- package/dist/esm/logger/console-logger.js.map +1 -1
- package/dist/types/event-bus/dead-letter-store.d.ts +10 -0
- package/dist/types/event-bus/dead-letter-store.d.ts.map +1 -0
- package/dist/types/event-bus/event-store.d.ts +5 -5
- package/dist/types/event-bus/event-store.d.ts.map +1 -1
- package/dist/types/event-bus/in-memory/async-in-memory-dead-letter-store.d.ts +12 -0
- package/dist/types/event-bus/in-memory/async-in-memory-dead-letter-store.d.ts.map +1 -0
- package/dist/types/event-bus/in-memory/async-in-memory-event-bus.d.ts +3 -1
- package/dist/types/event-bus/in-memory/async-in-memory-event-bus.d.ts.map +1 -1
- package/dist/types/event-bus/in-memory/async-in-memory-event-store.d.ts +11 -0
- package/dist/types/event-bus/in-memory/async-in-memory-event-store.d.ts.map +1 -0
- package/dist/types/event-bus/in-memory/in-memory-dead-letter-store.d.ts +12 -0
- package/dist/types/event-bus/in-memory/in-memory-dead-letter-store.d.ts.map +1 -0
- package/dist/types/event-bus/in-memory/index.d.ts +2 -1
- package/dist/types/event-bus/in-memory/index.d.ts.map +1 -1
- package/dist/types/event-bus/index.d.ts +1 -0
- package/dist/types/event-bus/index.d.ts.map +1 -1
- package/dist/types/logger/console-logger.d.ts +2 -0
- package/dist/types/logger/console-logger.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,6 +39,7 @@ npm install @schorts/shared-kernel --save
|
|
|
39
39
|
- **DomainEventRegistry:** Centralized registry for hydrating polymorphic domain events from serialized primitives.
|
|
40
40
|
- **EventSubscriber:** Interface for subscribing to specific event types with clean, type-safe handlers.
|
|
41
41
|
- **InMemoryEventStore:** Simple event store for tracking and replaying events, with retry metadata and bounded requeue support.
|
|
42
|
+
- **DeadLetterStore / InMemoryDeadLetterStore:** Dedicated store for capturing events that failed after max retries. Provides inspection (all()), clearing, and replay support.
|
|
42
43
|
|
|
43
44
|
### 🧭 CQRS (Command Query Responsibility Segregation)
|
|
44
45
|
- **Command / CommandHandler:** Define write-side operations that encapsulate intent and state changes. Handlers execute domain logic for commands like CreateUserCommand or SendReportCommand.
|
|
@@ -105,7 +106,7 @@ Translation keys are centralized in registries for discoverability and tooling,
|
|
|
105
106
|
### 📣 Logger
|
|
106
107
|
|
|
107
108
|
- **Logger:** Abstract base class for structured, context-aware logging across environments. Supports scoped logging via child() method, enabling per-module or per-request diagnostics. Each method (log, info, debug, warn, error) accepts optional context metadata and variadic arguments for flexible message composition.
|
|
108
|
-
- **ConsoleLogger:** Concrete implementation
|
|
109
|
+
- **ConsoleLogger:** Concrete implementation with log levels (LOG, INFO, DEBUG, WARN, ERROR) and contextual metadata injection (e.g., timestamps, custom context). Provides consistent filtering and structured output across environments.
|
|
109
110
|
- **ScopedLogger:** Internal utility class returned by Logger.child(). Merges base context with per-call context, enabling nested, composable logging scopes.
|
|
110
111
|
|
|
111
112
|
### 📈 Telemetry
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead-letter-store.js","sourceRoot":"","sources":["../../../src/event-bus/dead-letter-store.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AsyncInMemoryDeadLetterStore = void 0;
|
|
4
|
+
class AsyncInMemoryDeadLetterStore {
|
|
5
|
+
failed = [];
|
|
6
|
+
async add(primitives, reason) {
|
|
7
|
+
this.failed.push({ primitives, reason });
|
|
8
|
+
}
|
|
9
|
+
async all() {
|
|
10
|
+
return [...this.failed];
|
|
11
|
+
}
|
|
12
|
+
async clear() {
|
|
13
|
+
this.failed.length = 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AsyncInMemoryDeadLetterStore = AsyncInMemoryDeadLetterStore;
|
|
17
|
+
//# sourceMappingURL=async-in-memory-dead-letter-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-in-memory-dead-letter-store.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-dead-letter-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,4BAA4B;IACtB,MAAM,GAAiE,EAAE,CAAC;IAE3F,KAAK,CAAC,GAAG,CAAC,UAAiC,EAAE,MAAc;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAdD,oEAcC"}
|
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AsyncInMemoryEventBus = void 0;
|
|
4
4
|
const domain_events_1 = require("../../domain-events");
|
|
5
|
-
const
|
|
5
|
+
const async_in_memory_event_store_1 = require("./async-in-memory-event-store");
|
|
6
6
|
class AsyncInMemoryEventBus {
|
|
7
7
|
subscribers = new Map();
|
|
8
8
|
store;
|
|
9
9
|
maxRetries;
|
|
10
|
-
|
|
10
|
+
deadLetterStore;
|
|
11
|
+
constructor(store = new async_in_memory_event_store_1.AsyncInMemoryEventStore(), maxRetries = 3, deadLetterStore) {
|
|
11
12
|
this.store = store;
|
|
12
13
|
this.maxRetries = maxRetries;
|
|
14
|
+
this.deadLetterStore = deadLetterStore;
|
|
13
15
|
}
|
|
14
16
|
subscribe(eventName, subscriber) {
|
|
15
17
|
if (!this.subscribers.has(eventName)) {
|
|
@@ -37,16 +39,23 @@ class AsyncInMemoryEventBus {
|
|
|
37
39
|
this.store.requeue(updatedPrimitives);
|
|
38
40
|
this.publish(domain_events_1.DomainEventRegistry.create(updatedPrimitives));
|
|
39
41
|
}
|
|
40
|
-
else {
|
|
41
|
-
|
|
42
|
+
else if (this.deadLetterStore) {
|
|
43
|
+
const reason = `Exceeded max retries (${this.maxRetries})`;
|
|
44
|
+
this.deadLetterStore.add(primitives, reason);
|
|
45
|
+
console.warn(`Event ${event.id} moved to DLQ: ${reason}`);
|
|
42
46
|
}
|
|
43
47
|
};
|
|
44
48
|
for (const sub of subs) {
|
|
45
|
-
|
|
49
|
+
try {
|
|
50
|
+
await sub.handle(event);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
event.requeue?.();
|
|
54
|
+
}
|
|
46
55
|
}
|
|
47
56
|
}
|
|
48
57
|
async replay() {
|
|
49
|
-
const events = this.store.all();
|
|
58
|
+
const events = await this.store.all();
|
|
50
59
|
for (const primitives of events) {
|
|
51
60
|
const event = domain_events_1.DomainEventRegistry.create(primitives);
|
|
52
61
|
await this.dispatch(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-in-memory-event-bus.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-bus.ts"],"names":[],"mappings":";;;AAAA,uDAAuE;AACvE
|
|
1
|
+
{"version":3,"file":"async-in-memory-event-bus.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AsyncInMemoryEventStore = void 0;
|
|
4
|
+
class AsyncInMemoryEventStore {
|
|
5
|
+
events = [];
|
|
6
|
+
async save(primitives) {
|
|
7
|
+
this.events.push(primitives);
|
|
8
|
+
}
|
|
9
|
+
async all() {
|
|
10
|
+
return [...this.events];
|
|
11
|
+
}
|
|
12
|
+
async delete(id) {
|
|
13
|
+
const index = this.events.findIndex(e => e.id === id);
|
|
14
|
+
if (index !== -1)
|
|
15
|
+
this.events.splice(index, 1);
|
|
16
|
+
}
|
|
17
|
+
async requeue(primitives) {
|
|
18
|
+
this.events.push(primitives);
|
|
19
|
+
}
|
|
20
|
+
async clear() {
|
|
21
|
+
this.events.length = 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.AsyncInMemoryEventStore = AsyncInMemoryEventStore;
|
|
25
|
+
//# sourceMappingURL=async-in-memory-event-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-in-memory-event-store.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,uBAAuB;IACjB,MAAM,GAA4B,EAAE,CAAC;IAEtD,KAAK,CAAC,IAAI,CAAC,UAAiC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAiC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAxBD,0DAwBC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryDeadLetterStore = void 0;
|
|
4
|
+
class InMemoryDeadLetterStore {
|
|
5
|
+
failed = [];
|
|
6
|
+
add(primitives, reason) {
|
|
7
|
+
this.failed.push({ primitives, reason });
|
|
8
|
+
}
|
|
9
|
+
all() {
|
|
10
|
+
return [...this.failed];
|
|
11
|
+
}
|
|
12
|
+
clear() {
|
|
13
|
+
this.failed.length = 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.InMemoryDeadLetterStore = InMemoryDeadLetterStore;
|
|
17
|
+
//# sourceMappingURL=in-memory-dead-letter-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-dead-letter-store.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/in-memory-dead-letter-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,uBAAuB;IACjB,MAAM,GAAiE,EAAE,CAAC;IAE3F,GAAG,CAAC,UAAiC,EAAE,MAAc;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAdD,0DAcC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AsyncInMemoryEventBus = exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
3
|
+
exports.AsyncInMemoryDeadLetterStore = exports.AsyncInMemoryEventBus = exports.AsyncInMemoryEventStore = void 0;
|
|
4
|
+
var async_in_memory_event_store_1 = require("./async-in-memory-event-store");
|
|
5
|
+
Object.defineProperty(exports, "AsyncInMemoryEventStore", { enumerable: true, get: function () { return async_in_memory_event_store_1.AsyncInMemoryEventStore; } });
|
|
6
6
|
var async_in_memory_event_bus_1 = require("./async-in-memory-event-bus");
|
|
7
7
|
Object.defineProperty(exports, "AsyncInMemoryEventBus", { enumerable: true, get: function () { return async_in_memory_event_bus_1.AsyncInMemoryEventBus; } });
|
|
8
|
+
var async_in_memory_dead_letter_store_1 = require("./async-in-memory-dead-letter-store");
|
|
9
|
+
Object.defineProperty(exports, "AsyncInMemoryDeadLetterStore", { enumerable: true, get: function () { return async_in_memory_dead_letter_store_1.AsyncInMemoryDeadLetterStore; } });
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/index.ts"],"names":[],"mappings":";;;AAAA,6EAAwE;AAA/D,sIAAA,uBAAuB,OAAA;AAChC,yEAAmE;AAA1D,kIAAA,qBAAqB,OAAA;AAC9B,yFAAmF;AAA1E,iJAAA,4BAA4B,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,8CAA4B"}
|
|
@@ -2,25 +2,47 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConsoleLogger = void 0;
|
|
4
4
|
const _1 = require("./");
|
|
5
|
+
const LOG_LEVELS = {
|
|
6
|
+
ERROR: 5,
|
|
7
|
+
WARN: 4,
|
|
8
|
+
DEBUG: 3,
|
|
9
|
+
INFO: 2,
|
|
10
|
+
LOG: 1,
|
|
11
|
+
};
|
|
5
12
|
class ConsoleLogger extends _1.Logger {
|
|
13
|
+
level;
|
|
14
|
+
constructor(level = "ERROR") {
|
|
15
|
+
super();
|
|
16
|
+
this.level = level;
|
|
17
|
+
}
|
|
6
18
|
log(context, ...args) {
|
|
19
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["LOG"])
|
|
20
|
+
return;
|
|
7
21
|
console.log(this.context(context), ...args);
|
|
8
22
|
}
|
|
9
23
|
info(context, ...args) {
|
|
24
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["INFO"])
|
|
25
|
+
return;
|
|
10
26
|
console.info(this.context(context), ...args);
|
|
11
27
|
}
|
|
12
28
|
debug(context, ...args) {
|
|
29
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["DEBUG"])
|
|
30
|
+
return;
|
|
13
31
|
console.debug(this.context(context), ...args);
|
|
14
32
|
}
|
|
15
33
|
warn(context, ...args) {
|
|
34
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["WARN"])
|
|
35
|
+
return;
|
|
16
36
|
console.warn(this.context(context), ...args);
|
|
17
37
|
}
|
|
18
38
|
error(context, ...args) {
|
|
39
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["ERROR"])
|
|
40
|
+
return;
|
|
19
41
|
console.error(this.context(context), ...args);
|
|
20
42
|
}
|
|
21
43
|
context(customContext) {
|
|
22
44
|
return {
|
|
23
|
-
timestamp:
|
|
45
|
+
timestamp: Date.now(),
|
|
24
46
|
...customContext,
|
|
25
47
|
};
|
|
26
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../../src/logger/console-logger.ts"],"names":[],"mappings":";;;AAAA,yBAA4B;AAE5B,MAAa,aAAc,SAAQ,SAAM;
|
|
1
|
+
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../../src/logger/console-logger.ts"],"names":[],"mappings":";;;AAAA,yBAA4B;AAE5B,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAa,aAAc,SAAQ,SAAM;IAEpB;IADnB,YACmB,QAAqD,OAAO;QAE7E,KAAK,EAAE,CAAC;QAFS,UAAK,GAAL,KAAK,CAAuD;IAG/E,CAAC;IAED,GAAG,CAAC,OAAiC,EAAE,GAAG,IAAW;QACnD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO;QAEvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,OAAiC,EAAE,GAAG,IAAW;QACpD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAiC,EAAE,GAAG,IAAW;QACrD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QAEzD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,OAAiC,EAAE,GAAG,IAAW;QACpD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAiC,EAAE,GAAG,IAAW;QACrD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QAEzD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,OAAO,CAAC,aAAuC;QACrD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,aAAa;SACjB,CAAC;IACJ,CAAC;CACF;AA3CD,sCA2CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead-letter-store.js","sourceRoot":"","sources":["../../../src/event-bus/dead-letter-store.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AsyncInMemoryDeadLetterStore = void 0;
|
|
4
|
+
class AsyncInMemoryDeadLetterStore {
|
|
5
|
+
failed = [];
|
|
6
|
+
async add(primitives, reason) {
|
|
7
|
+
this.failed.push({ primitives, reason });
|
|
8
|
+
}
|
|
9
|
+
async all() {
|
|
10
|
+
return [...this.failed];
|
|
11
|
+
}
|
|
12
|
+
async clear() {
|
|
13
|
+
this.failed.length = 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AsyncInMemoryDeadLetterStore = AsyncInMemoryDeadLetterStore;
|
|
17
|
+
//# sourceMappingURL=async-in-memory-dead-letter-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-in-memory-dead-letter-store.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-dead-letter-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,4BAA4B;IACtB,MAAM,GAAiE,EAAE,CAAC;IAE3F,KAAK,CAAC,GAAG,CAAC,UAAiC,EAAE,MAAc;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAdD,oEAcC"}
|
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AsyncInMemoryEventBus = void 0;
|
|
4
4
|
const domain_events_1 = require("../../domain-events");
|
|
5
|
-
const
|
|
5
|
+
const async_in_memory_event_store_1 = require("./async-in-memory-event-store");
|
|
6
6
|
class AsyncInMemoryEventBus {
|
|
7
7
|
subscribers = new Map();
|
|
8
8
|
store;
|
|
9
9
|
maxRetries;
|
|
10
|
-
|
|
10
|
+
deadLetterStore;
|
|
11
|
+
constructor(store = new async_in_memory_event_store_1.AsyncInMemoryEventStore(), maxRetries = 3, deadLetterStore) {
|
|
11
12
|
this.store = store;
|
|
12
13
|
this.maxRetries = maxRetries;
|
|
14
|
+
this.deadLetterStore = deadLetterStore;
|
|
13
15
|
}
|
|
14
16
|
subscribe(eventName, subscriber) {
|
|
15
17
|
if (!this.subscribers.has(eventName)) {
|
|
@@ -37,16 +39,23 @@ class AsyncInMemoryEventBus {
|
|
|
37
39
|
this.store.requeue(updatedPrimitives);
|
|
38
40
|
this.publish(domain_events_1.DomainEventRegistry.create(updatedPrimitives));
|
|
39
41
|
}
|
|
40
|
-
else {
|
|
41
|
-
|
|
42
|
+
else if (this.deadLetterStore) {
|
|
43
|
+
const reason = `Exceeded max retries (${this.maxRetries})`;
|
|
44
|
+
this.deadLetterStore.add(primitives, reason);
|
|
45
|
+
console.warn(`Event ${event.id} moved to DLQ: ${reason}`);
|
|
42
46
|
}
|
|
43
47
|
};
|
|
44
48
|
for (const sub of subs) {
|
|
45
|
-
|
|
49
|
+
try {
|
|
50
|
+
await sub.handle(event);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
event.requeue?.();
|
|
54
|
+
}
|
|
46
55
|
}
|
|
47
56
|
}
|
|
48
57
|
async replay() {
|
|
49
|
-
const events = this.store.all();
|
|
58
|
+
const events = await this.store.all();
|
|
50
59
|
for (const primitives of events) {
|
|
51
60
|
const event = domain_events_1.DomainEventRegistry.create(primitives);
|
|
52
61
|
await this.dispatch(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-in-memory-event-bus.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-bus.ts"],"names":[],"mappings":";;;AAAA,uDAAuE;AACvE
|
|
1
|
+
{"version":3,"file":"async-in-memory-event-bus.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AsyncInMemoryEventStore = void 0;
|
|
4
|
+
class AsyncInMemoryEventStore {
|
|
5
|
+
events = [];
|
|
6
|
+
async save(primitives) {
|
|
7
|
+
this.events.push(primitives);
|
|
8
|
+
}
|
|
9
|
+
async all() {
|
|
10
|
+
return [...this.events];
|
|
11
|
+
}
|
|
12
|
+
async delete(id) {
|
|
13
|
+
const index = this.events.findIndex(e => e.id === id);
|
|
14
|
+
if (index !== -1)
|
|
15
|
+
this.events.splice(index, 1);
|
|
16
|
+
}
|
|
17
|
+
async requeue(primitives) {
|
|
18
|
+
this.events.push(primitives);
|
|
19
|
+
}
|
|
20
|
+
async clear() {
|
|
21
|
+
this.events.length = 0;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.AsyncInMemoryEventStore = AsyncInMemoryEventStore;
|
|
25
|
+
//# sourceMappingURL=async-in-memory-event-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-in-memory-event-store.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,uBAAuB;IACjB,MAAM,GAA4B,EAAE,CAAC;IAEtD,KAAK,CAAC,IAAI,CAAC,UAAiC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAiC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAxBD,0DAwBC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryDeadLetterStore = void 0;
|
|
4
|
+
class InMemoryDeadLetterStore {
|
|
5
|
+
failed = [];
|
|
6
|
+
add(primitives, reason) {
|
|
7
|
+
this.failed.push({ primitives, reason });
|
|
8
|
+
}
|
|
9
|
+
all() {
|
|
10
|
+
return [...this.failed];
|
|
11
|
+
}
|
|
12
|
+
clear() {
|
|
13
|
+
this.failed.length = 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.InMemoryDeadLetterStore = InMemoryDeadLetterStore;
|
|
17
|
+
//# sourceMappingURL=in-memory-dead-letter-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-dead-letter-store.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/in-memory-dead-letter-store.ts"],"names":[],"mappings":";;;AAGA,MAAa,uBAAuB;IACjB,MAAM,GAAiE,EAAE,CAAC;IAE3F,GAAG,CAAC,UAAiC,EAAE,MAAc;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAdD,0DAcC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AsyncInMemoryEventBus = exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
3
|
+
exports.AsyncInMemoryDeadLetterStore = exports.AsyncInMemoryEventBus = exports.AsyncInMemoryEventStore = void 0;
|
|
4
|
+
var async_in_memory_event_store_1 = require("./async-in-memory-event-store");
|
|
5
|
+
Object.defineProperty(exports, "AsyncInMemoryEventStore", { enumerable: true, get: function () { return async_in_memory_event_store_1.AsyncInMemoryEventStore; } });
|
|
6
6
|
var async_in_memory_event_bus_1 = require("./async-in-memory-event-bus");
|
|
7
7
|
Object.defineProperty(exports, "AsyncInMemoryEventBus", { enumerable: true, get: function () { return async_in_memory_event_bus_1.AsyncInMemoryEventBus; } });
|
|
8
|
+
var async_in_memory_dead_letter_store_1 = require("./async-in-memory-dead-letter-store");
|
|
9
|
+
Object.defineProperty(exports, "AsyncInMemoryDeadLetterStore", { enumerable: true, get: function () { return async_in_memory_dead_letter_store_1.AsyncInMemoryDeadLetterStore; } });
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/index.ts"],"names":[],"mappings":";;;AAAA,6EAAwE;AAA/D,sIAAA,uBAAuB,OAAA;AAChC,yEAAmE;AAA1D,kIAAA,qBAAqB,OAAA;AAC9B,yFAAmF;AAA1E,iJAAA,4BAA4B,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,8CAA4B"}
|
|
@@ -2,25 +2,47 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConsoleLogger = void 0;
|
|
4
4
|
const _1 = require("./");
|
|
5
|
+
const LOG_LEVELS = {
|
|
6
|
+
ERROR: 5,
|
|
7
|
+
WARN: 4,
|
|
8
|
+
DEBUG: 3,
|
|
9
|
+
INFO: 2,
|
|
10
|
+
LOG: 1,
|
|
11
|
+
};
|
|
5
12
|
class ConsoleLogger extends _1.Logger {
|
|
13
|
+
level;
|
|
14
|
+
constructor(level = "ERROR") {
|
|
15
|
+
super();
|
|
16
|
+
this.level = level;
|
|
17
|
+
}
|
|
6
18
|
log(context, ...args) {
|
|
19
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["LOG"])
|
|
20
|
+
return;
|
|
7
21
|
console.log(this.context(context), ...args);
|
|
8
22
|
}
|
|
9
23
|
info(context, ...args) {
|
|
24
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["INFO"])
|
|
25
|
+
return;
|
|
10
26
|
console.info(this.context(context), ...args);
|
|
11
27
|
}
|
|
12
28
|
debug(context, ...args) {
|
|
29
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["DEBUG"])
|
|
30
|
+
return;
|
|
13
31
|
console.debug(this.context(context), ...args);
|
|
14
32
|
}
|
|
15
33
|
warn(context, ...args) {
|
|
34
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["WARN"])
|
|
35
|
+
return;
|
|
16
36
|
console.warn(this.context(context), ...args);
|
|
17
37
|
}
|
|
18
38
|
error(context, ...args) {
|
|
39
|
+
if (LOG_LEVELS[this.level] < LOG_LEVELS["ERROR"])
|
|
40
|
+
return;
|
|
19
41
|
console.error(this.context(context), ...args);
|
|
20
42
|
}
|
|
21
43
|
context(customContext) {
|
|
22
44
|
return {
|
|
23
|
-
timestamp:
|
|
45
|
+
timestamp: Date.now(),
|
|
24
46
|
...customContext,
|
|
25
47
|
};
|
|
26
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../../src/logger/console-logger.ts"],"names":[],"mappings":";;;AAAA,yBAA4B;AAE5B,MAAa,aAAc,SAAQ,SAAM;
|
|
1
|
+
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../../src/logger/console-logger.ts"],"names":[],"mappings":";;;AAAA,yBAA4B;AAE5B,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;CACP,CAAC;AAEF,MAAa,aAAc,SAAQ,SAAM;IAEpB;IADnB,YACmB,QAAqD,OAAO;QAE7E,KAAK,EAAE,CAAC;QAFS,UAAK,GAAL,KAAK,CAAuD;IAG/E,CAAC;IAED,GAAG,CAAC,OAAiC,EAAE,GAAG,IAAW;QACnD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO;QAEvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,OAAiC,EAAE,GAAG,IAAW;QACpD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAiC,EAAE,GAAG,IAAW;QACrD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QAEzD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,OAAiC,EAAE,GAAG,IAAW;QACpD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAiC,EAAE,GAAG,IAAW;QACrD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QAEzD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,OAAO,CAAC,aAAuC;QACrD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,aAAa;SACjB,CAAC;IACJ,CAAC;CACF;AA3CD,sCA2CC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEventPrimitives } from "../domain-events";
|
|
2
|
+
export interface DeadLetterStore {
|
|
3
|
+
add(primitives: DomainEventPrimitives, reason: string): Promise<void>;
|
|
4
|
+
all(): Promise<Array<{
|
|
5
|
+
primitives: DomainEventPrimitives;
|
|
6
|
+
reason: string;
|
|
7
|
+
}>>;
|
|
8
|
+
clear(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=dead-letter-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead-letter-store.d.ts","sourceRoot":"","sources":["../../../src/event-bus/dead-letter-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,EAAE,qBAAqB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC7E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DomainEventPrimitives } from "../domain-events";
|
|
2
2
|
export interface EventStore {
|
|
3
|
-
save(primitives: DomainEventPrimitives): void
|
|
4
|
-
all(): DomainEventPrimitives[]
|
|
5
|
-
delete(id: string): void
|
|
6
|
-
requeue(primitives: DomainEventPrimitives): void
|
|
7
|
-
clear(): void
|
|
3
|
+
save(primitives: DomainEventPrimitives): Promise<void>;
|
|
4
|
+
all(): Promise<DomainEventPrimitives[]>;
|
|
5
|
+
delete(id: string): Promise<void>;
|
|
6
|
+
requeue(primitives: DomainEventPrimitives): Promise<void>;
|
|
7
|
+
clear(): Promise<void>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=event-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../../src/event-bus/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../../src/event-bus/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,GAAG,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DeadLetterStore } from "../dead-letter-store";
|
|
2
|
+
import { DomainEventPrimitives } from "../../domain-events";
|
|
3
|
+
export declare class AsyncInMemoryDeadLetterStore implements DeadLetterStore {
|
|
4
|
+
private readonly failed;
|
|
5
|
+
add(primitives: DomainEventPrimitives, reason: string): Promise<void>;
|
|
6
|
+
all(): Promise<Array<{
|
|
7
|
+
primitives: DomainEventPrimitives;
|
|
8
|
+
reason: string;
|
|
9
|
+
}>>;
|
|
10
|
+
clear(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=async-in-memory-dead-letter-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-in-memory-dead-letter-store.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-dead-letter-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,4BAA6B,YAAW,eAAe;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoE;IAErF,GAAG,CAAC,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,EAAE,qBAAqB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -2,11 +2,13 @@ import { DomainEvent } from "../../domain-events";
|
|
|
2
2
|
import { EventStore } from "../event-store";
|
|
3
3
|
import { EventSubscriber } from "../event-subscriber";
|
|
4
4
|
import { EventBus } from "../event-bus";
|
|
5
|
+
import { DeadLetterStore } from "../dead-letter-store";
|
|
5
6
|
export declare class AsyncInMemoryEventBus implements EventBus {
|
|
6
7
|
private readonly subscribers;
|
|
7
8
|
private readonly store;
|
|
8
9
|
private readonly maxRetries;
|
|
9
|
-
|
|
10
|
+
private readonly deadLetterStore;
|
|
11
|
+
constructor(store?: EventStore, maxRetries?: number, deadLetterStore?: DeadLetterStore);
|
|
10
12
|
subscribe<Event extends DomainEvent>(eventName: string, subscriber: EventSubscriber<Event>): void;
|
|
11
13
|
publish<Event extends DomainEvent>(event: Event): Promise<void>;
|
|
12
14
|
private dispatch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-in-memory-event-bus.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"async-in-memory-event-bus.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,qBAAsB,YAAW,QAAQ;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;gBAG5D,KAAK,GAAE,UAA0C,EACjD,UAAU,SAAI,EACd,eAAe,CAAC,EAAE,eAAe;IAOnC,SAAS,CAAC,KAAK,SAAS,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI;IAQ3F,OAAO,CAAC,KAAK,SAAS,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;YAQvD,QAAQ;IAkChB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAS9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomainEventPrimitives } from "../../domain-events";
|
|
2
|
+
import { EventStore } from "../event-store";
|
|
3
|
+
export declare class AsyncInMemoryEventStore implements EventStore {
|
|
4
|
+
private readonly events;
|
|
5
|
+
save(primitives: DomainEventPrimitives): Promise<void>;
|
|
6
|
+
all(): Promise<DomainEventPrimitives[]>;
|
|
7
|
+
delete(id: string): Promise<void>;
|
|
8
|
+
requeue(primitives: DomainEventPrimitives): Promise<void>;
|
|
9
|
+
clear(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=async-in-memory-event-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-in-memory-event-store.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/async-in-memory-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,qBAAa,uBAAwB,YAAW,UAAU;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEhD,IAAI,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,GAAG,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAIvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DeadLetterStore } from "../dead-letter-store";
|
|
2
|
+
import { DomainEventPrimitives } from "../../domain-events";
|
|
3
|
+
export declare class InMemoryDeadLetterStore implements DeadLetterStore {
|
|
4
|
+
private readonly failed;
|
|
5
|
+
add(primitives: DomainEventPrimitives, reason: string): void;
|
|
6
|
+
all(): Array<{
|
|
7
|
+
primitives: DomainEventPrimitives;
|
|
8
|
+
reason: string;
|
|
9
|
+
}>;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=in-memory-dead-letter-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-dead-letter-store.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/in-memory-dead-letter-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoE;IAE3F,GAAG,CAAC,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5D,GAAG,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,qBAAqB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAInE,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { AsyncInMemoryEventStore } from "./async-in-memory-event-store";
|
|
2
2
|
export { AsyncInMemoryEventBus } from "./async-in-memory-event-bus";
|
|
3
|
+
export { AsyncInMemoryDeadLetterStore } from "./async-in-memory-dead-letter-store";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { EventSubscriber } from "./event-subscriber";
|
|
2
2
|
export type { EventStore } from "./event-store";
|
|
3
3
|
export type { EventBus } from "./event-bus";
|
|
4
|
+
export type { DeadLetterStore } from "./dead-letter-store";
|
|
4
5
|
export * from "./in-memory";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/event-bus/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/event-bus/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,cAAc,aAAa,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Logger } from "./";
|
|
2
2
|
export declare class ConsoleLogger extends Logger {
|
|
3
|
+
private readonly level;
|
|
4
|
+
constructor(level?: "LOG" | "ERROR" | "WARN" | "INFO" | "DEBUG");
|
|
3
5
|
log(context?: Record<string, unknown>, ...args: any[]): void;
|
|
4
6
|
info(context?: Record<string, unknown>, ...args: any[]): void;
|
|
5
7
|
debug(context?: Record<string, unknown>, ...args: any[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/console-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/console-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAU5B,qBAAa,aAAc,SAAQ,MAAM;IAErC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,GAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAiB;IAK/E,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5D,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7D,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM9D,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7D,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM9D,OAAO,CAAC,OAAO;CAMhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schorts/shared-kernel",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "A modular, type-safe foundation for building expressive, maintainable applications. This package provides core abstractions for domain modeling, HTTP integration, authentication, state management, and more — designed to be framework-agnostic and highly extensible.",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|