@bgord/bun 1.13.0 → 1.14.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/dist/event-finder-noop.adapter.d.ts +9 -0
- package/dist/event-finder-noop.adapter.d.ts.map +1 -0
- package/dist/event-finder-noop.adapter.js +10 -0
- package/dist/event-finder-noop.adapter.js.map +1 -0
- package/dist/event-finder.port.d.ts +6 -0
- package/dist/event-finder.port.d.ts.map +1 -0
- package/dist/event-finder.port.js +2 -0
- package/dist/event-finder.port.js.map +1 -0
- package/dist/event-inserter-noop.adapter.d.ts +6 -0
- package/dist/event-inserter-noop.adapter.d.ts.map +1 -0
- package/dist/event-inserter-noop.adapter.js +6 -0
- package/dist/event-inserter-noop.adapter.js.map +1 -0
- package/dist/event-inserter.port.d.ts +5 -0
- package/dist/event-inserter.port.d.ts.map +1 -0
- package/dist/event-inserter.port.js +2 -0
- package/dist/event-inserter.port.js.map +1 -0
- package/dist/event-revision-assigner.adapter.d.ts +7 -0
- package/dist/event-revision-assigner.adapter.d.ts.map +1 -0
- package/dist/event-revision-assigner.adapter.js +7 -0
- package/dist/event-revision-assigner.adapter.js.map +1 -0
- package/dist/event-revision-assigner.port.d.ts +5 -0
- package/dist/event-revision-assigner.port.d.ts.map +1 -0
- package/dist/event-revision-assigner.port.js +2 -0
- package/dist/event-revision-assigner.port.js.map +1 -0
- package/dist/event-serializer-collecting.adapter.d.ts +8 -0
- package/dist/event-serializer-collecting.adapter.d.ts.map +1 -0
- package/dist/event-serializer-collecting.adapter.js +13 -0
- package/dist/event-serializer-collecting.adapter.js.map +1 -0
- package/dist/event-serializer-json.adapter.d.ts +6 -0
- package/dist/event-serializer-json.adapter.d.ts.map +1 -0
- package/dist/event-serializer-json.adapter.js +9 -0
- package/dist/event-serializer-json.adapter.js.map +1 -0
- package/dist/event-serializer.port.d.ts +5 -0
- package/dist/event-serializer.port.d.ts.map +1 -0
- package/dist/event-serializer.port.js +2 -0
- package/dist/event-serializer.port.js.map +1 -0
- package/dist/event-store-collecting.adapter.d.ts +10 -0
- package/dist/event-store-collecting.adapter.d.ts.map +1 -0
- package/dist/event-store-collecting.adapter.js +11 -0
- package/dist/event-store-collecting.adapter.js.map +1 -0
- package/dist/event-store-dispatching.adapter.d.ts +17 -0
- package/dist/event-store-dispatching.adapter.d.ts.map +1 -0
- package/dist/event-store-dispatching.adapter.js +15 -0
- package/dist/event-store-dispatching.adapter.js.map +1 -0
- package/dist/event-store-noop.adapter.d.ts +9 -0
- package/dist/event-store-noop.adapter.d.ts.map +1 -0
- package/dist/event-store-noop.adapter.js +9 -0
- package/dist/event-store-noop.adapter.js.map +1 -0
- package/dist/event-store.adapter.d.ts +20 -0
- package/dist/event-store.adapter.d.ts.map +1 -0
- package/dist/event-store.adapter.js +27 -0
- package/dist/event-store.adapter.js.map +1 -0
- package/dist/event-store.port.d.ts +8 -0
- package/dist/event-store.port.d.ts.map +1 -0
- package/dist/event-store.port.js +2 -0
- package/dist/event-store.port.js.map +1 -0
- package/dist/event-validator-registry-zod.adapter.d.ts +24 -0
- package/dist/event-validator-registry-zod.adapter.d.ts.map +1 -0
- package/dist/event-validator-registry-zod.adapter.js +25 -0
- package/dist/event-validator-registry-zod.adapter.js.map +1 -0
- package/dist/event-validator-registry.port.d.ts +7 -0
- package/dist/event-validator-registry.port.d.ts.map +1 -0
- package/dist/event-validator-registry.port.js +2 -0
- package/dist/event-validator-registry.port.js.map +1 -0
- package/dist/event.types.d.ts +13 -14
- package/dist/event.types.d.ts.map +1 -1
- package/dist/index.d.ts +21 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -7
- package/dist/index.js.map +1 -1
- package/dist/message-handler-bare.strategy.d.ts +8 -0
- package/dist/message-handler-bare.strategy.d.ts.map +1 -0
- package/dist/message-handler-bare.strategy.js +6 -0
- package/dist/message-handler-bare.strategy.js.map +1 -0
- package/dist/message-handler-noop.strategy.d.ts +8 -0
- package/dist/message-handler-noop.strategy.d.ts.map +1 -0
- package/dist/message-handler-noop.strategy.js +6 -0
- package/dist/message-handler-noop.strategy.js.map +1 -0
- package/dist/message-handler-with-logger.strategy.d.ts +17 -0
- package/dist/message-handler-with-logger.strategy.d.ts.map +1 -0
- package/dist/{event-handler-with-logger.strategy.js → message-handler-with-logger.strategy.js} +7 -7
- package/dist/message-handler-with-logger.strategy.js.map +1 -0
- package/dist/message-handler.strategy.d.ts +7 -0
- package/dist/message-handler.strategy.d.ts.map +1 -0
- package/dist/message-handler.strategy.js +2 -0
- package/dist/message-handler.strategy.js.map +1 -0
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts +2 -2
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts.map +1 -1
- package/dist/modules/system/services/passage-of-time-hourly.service.d.ts +2 -2
- package/dist/modules/system/services/passage-of-time-hourly.service.d.ts.map +1 -1
- package/dist/modules/system/services/passage-of-time-minute.service.d.ts +2 -2
- package/dist/modules/system/services/passage-of-time-minute.service.d.ts.map +1 -1
- package/dist/security-countermeasure-ban.strategy.d.ts +2 -2
- package/dist/security-countermeasure-ban.strategy.d.ts.map +1 -1
- package/dist/sse-hono.handler.js +1 -1
- package/dist/sse-hono.handler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/readme.md +20 -7
- package/src/event-finder-noop.adapter.ts +14 -0
- package/src/event-finder.port.ts +9 -0
- package/src/event-inserter-noop.adapter.ts +10 -0
- package/src/event-inserter.port.ts +5 -0
- package/src/event-revision-assigner.adapter.ts +13 -0
- package/src/event-revision-assigner.port.ts +8 -0
- package/src/event-serializer-collecting.adapter.ts +19 -0
- package/src/event-serializer-json.adapter.ts +11 -0
- package/src/event-serializer.port.ts +4 -0
- package/src/event-store-collecting.adapter.ts +21 -0
- package/src/event-store-dispatching.adapter.ts +29 -0
- package/src/event-store-noop.adapter.ts +17 -0
- package/src/event-store.adapter.ts +49 -0
- package/src/event-store.port.ts +12 -0
- package/src/event-validator-registry-zod.adapter.ts +47 -0
- package/src/event-validator-registry.port.ts +7 -0
- package/src/event.types.ts +12 -15
- package/src/index.ts +21 -7
- package/src/message-handler-bare.strategy.ts +11 -0
- package/src/message-handler-noop.strategy.ts +11 -0
- package/src/message-handler-with-logger.strategy.ts +32 -0
- package/src/message-handler.strategy.ts +8 -0
- package/src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts +2 -2
- package/src/modules/system/services/passage-of-time-hourly.service.ts +2 -2
- package/src/modules/system/services/passage-of-time-minute.service.ts +2 -2
- package/src/security-countermeasure-ban.strategy.ts +2 -2
- package/src/sse-hono.handler.ts +1 -1
- package/dist/dispatching-event-store.d.ts +0 -15
- package/dist/dispatching-event-store.d.ts.map +0 -1
- package/dist/dispatching-event-store.js +0 -16
- package/dist/dispatching-event-store.js.map +0 -1
- package/dist/event-handler-bare.strategy.d.ts +0 -6
- package/dist/event-handler-bare.strategy.d.ts.map +0 -1
- package/dist/event-handler-bare.strategy.js +0 -6
- package/dist/event-handler-bare.strategy.js.map +0 -1
- package/dist/event-handler-noop.strategy.d.ts +0 -6
- package/dist/event-handler-noop.strategy.d.ts.map +0 -1
- package/dist/event-handler-noop.strategy.js +0 -6
- package/dist/event-handler-noop.strategy.js.map +0 -1
- package/dist/event-handler-with-logger.strategy.d.ts +0 -15
- package/dist/event-handler-with-logger.strategy.d.ts.map +0 -1
- package/dist/event-handler-with-logger.strategy.js.map +0 -1
- package/dist/event-handler.strategy.d.ts +0 -5
- package/dist/event-handler.strategy.d.ts.map +0 -1
- package/dist/event-handler.strategy.js +0 -2
- package/dist/event-handler.strategy.js.map +0 -1
- package/dist/event-store-like.types.d.ts +0 -5
- package/dist/event-store-like.types.d.ts.map +0 -1
- package/dist/event-store-like.types.js +0 -2
- package/dist/event-store-like.types.js.map +0 -1
- package/dist/event-store.d.ts +0 -22
- package/dist/event-store.d.ts.map +0 -1
- package/dist/event-store.js +0 -37
- package/dist/event-store.js.map +0 -1
- package/src/dispatching-event-store.ts +0 -34
- package/src/event-handler-bare.strategy.ts +0 -8
- package/src/event-handler-noop.strategy.ts +0 -8
- package/src/event-handler-with-logger.strategy.ts +0 -29
- package/src/event-handler.strategy.ts +0 -5
- package/src/event-store-like.types.ts +0 -5
- package/src/event-store.ts +0 -64
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { EventStore as BaseStore } from "./event-store";
|
|
2
|
-
export class DispatchingEventStore extends BaseStore {
|
|
3
|
-
publisher;
|
|
4
|
-
static EMPTY_STREAM_REVISION = -1;
|
|
5
|
-
constructor(config, publisher) {
|
|
6
|
-
super(config);
|
|
7
|
-
this.publisher = publisher;
|
|
8
|
-
}
|
|
9
|
-
async save(_events) {
|
|
10
|
-
const events = await super.save(_events);
|
|
11
|
-
await Promise.all(events.map((event) => this.publisher.emit(event)));
|
|
12
|
-
return events;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
// Stryker restore all
|
|
16
|
-
//# sourceMappingURL=dispatching-event-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatching-event-store.js","sourceRoot":"","sources":["../src/dispatching-event-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAIxD,MAAM,OAAO,qBAA4D,SAAQ,SAAoB;IAahF;IAZnB,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAElC,YACE,MAQC,EACgB,SAA2C;QAE5D,KAAK,CAAC,MAAM,CAAC,CAAC;QAFG,cAAS,GAAT,SAAS,CAAkC;IAG9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA0C;QACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,MAAM,CAAC;IAChB,CAAC;;AAEH,sBAAsB"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
2
|
-
import type { Message } from "./message.types";
|
|
3
|
-
export declare class EventHandlerBareStrategy implements EventHandlerStrategy {
|
|
4
|
-
handle<Event extends Message>(handler: (event: Event) => Promise<void>): (event: Event) => Promise<void>;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=event-handler-bare.strategy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-bare.strategy.d.ts","sourceRoot":"","sources":["../src/event-handler-bare.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,MAAM,CAAC,KAAK,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IACtD,OAAO,KAAK;CAE7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-bare.strategy.js","sourceRoot":"","sources":["../src/event-handler-bare.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACnC,MAAM,CAAwB,OAAwC;QACpE,OAAO,KAAK,EAAE,KAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
2
|
-
import type { Message } from "./message.types";
|
|
3
|
-
export declare class EventHandlerNoopStrategy implements EventHandlerStrategy {
|
|
4
|
-
handle<Event extends Message>(_handler: (event: Event) => Promise<void>): (_event: Event) => Promise<void>;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=event-handler-noop.strategy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-noop.strategy.d.ts","sourceRoot":"","sources":["../src/event-handler-noop.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,MAAM,CAAC,KAAK,SAAS,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IACvD,QAAQ,KAAK;CAE9B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-noop.strategy.js","sourceRoot":"","sources":["../src/event-handler-noop.strategy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACnC,MAAM,CAAwB,QAAyC;QACrE,OAAO,KAAK,EAAE,MAAa,EAAE,EAAE,GAAE,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ClockPort } from "./clock.port";
|
|
2
|
-
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
3
|
-
import type { LoggerPort } from "./logger.port";
|
|
4
|
-
import type { Message } from "./message.types";
|
|
5
|
-
type Dependencies = {
|
|
6
|
-
Logger: LoggerPort;
|
|
7
|
-
Clock: ClockPort;
|
|
8
|
-
};
|
|
9
|
-
export declare class EventHandlerWithLoggerStrategy implements EventHandlerStrategy {
|
|
10
|
-
private readonly deps;
|
|
11
|
-
constructor(deps: Dependencies);
|
|
12
|
-
handle<Event extends Message>(handler: (event: Event) => Promise<void>): (event: Event) => Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=event-handler-with-logger.strategy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-with-logger.strategy.d.ts","sourceRoot":"","sources":["../src/event-handler-with-logger.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAE7D,qBAAa,8BAA+B,YAAW,oBAAoB;IAC7D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C,MAAM,CAAC,KAAK,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IACtD,OAAO,KAAK;CAgB7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler-with-logger.strategy.js","sourceRoot":"","sources":["../src/event-handler-with-logger.strategy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,MAAM,CAAwB,OAAwC;QACpE,OAAO,KAAK,EAAE,KAAY,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrB,OAAO,EAAE,WAAW,KAAK,CAAC,IAAI,sBAAsB;oBACpD,SAAS,EAAE,OAAO;oBAClB,SAAS,EAAE,eAAe;oBAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE;oBACzD,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.strategy.d.ts","sourceRoot":"","sources":["../src/event-handler.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1G"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.strategy.js","sourceRoot":"","sources":["../src/event-handler.strategy.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-store-like.types.d.ts","sourceRoot":"","sources":["../src/event-store-like.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,OAAO,IAAI;IAClD,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-store-like.types.js","sourceRoot":"","sources":["../src/event-store-like.types.ts"],"names":[],"mappings":""}
|
package/dist/event-store.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type * as z from "zod/v4";
|
|
2
|
-
import type { GenericEventSchema, GenericParsedEventSchema } from "./event.types";
|
|
3
|
-
import type { EventStreamType } from "./event-stream.vo";
|
|
4
|
-
export type EventNameType = z.infer<GenericEventSchema["shape"]["name"]>;
|
|
5
|
-
type FindEventsHandler = (stream: EventStreamType, acceptedEventsNames: ReadonlyArray<EventNameType>) => Promise<ReadonlyArray<z.infer<GenericEventSchema>>>;
|
|
6
|
-
type InserterEventsHandler = (events: ReadonlyArray<z.infer<GenericParsedEventSchema>>) => Promise<ReadonlyArray<z.infer<GenericParsedEventSchema>>>;
|
|
7
|
-
type Config = {
|
|
8
|
-
finder: FindEventsHandler;
|
|
9
|
-
inserter: InserterEventsHandler;
|
|
10
|
-
};
|
|
11
|
-
export declare class EventStore<AllEvents extends GenericEventSchema> {
|
|
12
|
-
private readonly config;
|
|
13
|
-
constructor(config: Config);
|
|
14
|
-
static EMPTY_STREAM_REVISION: number;
|
|
15
|
-
find<AcceptedEvents extends ReadonlyArray<AllEvents>>(acceptedEvents: AcceptedEvents, stream: EventStreamType): Promise<ReadonlyArray<z.infer<AcceptedEvents[number]>>>;
|
|
16
|
-
save(events: ReadonlyArray<z.infer<AllEvents>>): Promise<ReadonlyArray<z.infer<AllEvents>>>;
|
|
17
|
-
}
|
|
18
|
-
export declare class EventStoreSaveUniqueStream extends Error {
|
|
19
|
-
constructor();
|
|
20
|
-
}
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=event-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,KAAK,iBAAiB,GAAG,CACvB,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,aAAa,CAAC,aAAa,CAAC,KAC9C,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAEzD,KAAK,qBAAqB,GAAG,CAC3B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,KACrD,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAE/D,KAAK,MAAM,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE7E,qBAAa,UAAU,CAAC,SAAS,SAAS,kBAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,MAAM,CAAC,qBAAqB,SAAM;IAE5B,IAAI,CAAC,cAAc,SAAS,aAAa,CAAC,SAAS,CAAC,EACxD,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAWpD,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;CAkBlG;AAED,qBAAa,0BAA2B,SAAQ,KAAK;;CAKpD"}
|
package/dist/event-store.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export class EventStore {
|
|
2
|
-
config;
|
|
3
|
-
constructor(config) {
|
|
4
|
-
this.config = config;
|
|
5
|
-
}
|
|
6
|
-
static EMPTY_STREAM_REVISION = -1;
|
|
7
|
-
async find(acceptedEvents, stream) {
|
|
8
|
-
const acceptedEventsNames = acceptedEvents.map((event) => event.shape.name.value);
|
|
9
|
-
const rows = await this.config.finder(stream, acceptedEventsNames);
|
|
10
|
-
return rows
|
|
11
|
-
.map((row) => ({ ...row, payload: JSON.parse(row.payload) }))
|
|
12
|
-
.map((row) => acceptedEvents.find((event) => event.shape.name.value === row.name)?.parse(row))
|
|
13
|
-
.filter((event) => event !== undefined);
|
|
14
|
-
}
|
|
15
|
-
async save(events) {
|
|
16
|
-
if (!events[0])
|
|
17
|
-
return [];
|
|
18
|
-
const stream = events[0].stream;
|
|
19
|
-
if (!events.every((event) => event.stream === stream))
|
|
20
|
-
throw new EventStoreSaveUniqueStream();
|
|
21
|
-
// The returned variable has the `revision` fields added by the inserter,
|
|
22
|
-
// but we need to re-parse it to keep the contract.
|
|
23
|
-
const processed = await this.config.inserter(events.map((event) => ({ ...event, payload: JSON.stringify(event.payload) })));
|
|
24
|
-
return processed.map((event) => ({
|
|
25
|
-
...event,
|
|
26
|
-
payload: JSON.parse(event.payload),
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export class EventStoreSaveUniqueStream extends Error {
|
|
31
|
-
constructor() {
|
|
32
|
-
super();
|
|
33
|
-
Object.setPrototypeOf(this, EventStoreSaveUniqueStream.prototype);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
// Stryker restore all
|
|
37
|
-
//# sourceMappingURL=event-store.js.map
|
package/dist/event-store.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,IAAI,CACR,cAA8B,EAC9B,MAAuB;QAEvB,MAAM,mBAAmB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAEnE,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aAC7F,MAAM,CAAC,CAAC,KAAK,EAA4C,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAyC;QAClD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;YAAE,MAAM,IAAI,0BAA0B,EAAE,CAAC;QAE9F,yEAAyE;QACzE,mDAAmD;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC9E,CAAC;QAEF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;SACnC,CAAC,CAA8B,CAAC;IACnC,CAAC;;AAGH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;QACE,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;CACF;AACD,sBAAsB"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// Stryker disable all
|
|
2
|
-
import type * as z from "zod/v4";
|
|
3
|
-
import type { GenericEventSchema, GenericParsedEventSchema } from "./event.types";
|
|
4
|
-
import { EventStore as BaseStore } from "./event-store";
|
|
5
|
-
import type { EventStreamType } from "./event-stream.vo";
|
|
6
|
-
import type { EventBusPort } from "./message-bus.port";
|
|
7
|
-
|
|
8
|
-
export class DispatchingEventStore<AllEvents extends GenericEventSchema> extends BaseStore<AllEvents> {
|
|
9
|
-
static EMPTY_STREAM_REVISION = -1;
|
|
10
|
-
|
|
11
|
-
constructor(
|
|
12
|
-
config: {
|
|
13
|
-
finder: (
|
|
14
|
-
stream: EventStreamType,
|
|
15
|
-
names: ReadonlyArray<string>,
|
|
16
|
-
) => Promise<ReadonlyArray<z.infer<GenericEventSchema>>>;
|
|
17
|
-
inserter: (
|
|
18
|
-
events: ReadonlyArray<z.infer<GenericParsedEventSchema>>,
|
|
19
|
-
) => Promise<ReadonlyArray<z.infer<GenericParsedEventSchema>>>;
|
|
20
|
-
},
|
|
21
|
-
private readonly publisher: EventBusPort<z.infer<AllEvents>>,
|
|
22
|
-
) {
|
|
23
|
-
super(config);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async save(_events: ReadonlyArray<z.infer<AllEvents>>): Promise<ReadonlyArray<z.infer<AllEvents>>> {
|
|
27
|
-
const events = await super.save(_events);
|
|
28
|
-
|
|
29
|
-
await Promise.all(events.map((event) => this.publisher.emit(event)));
|
|
30
|
-
|
|
31
|
-
return events;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// Stryker restore all
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
2
|
-
import type { Message } from "./message.types";
|
|
3
|
-
|
|
4
|
-
export class EventHandlerBareStrategy implements EventHandlerStrategy {
|
|
5
|
-
handle<Event extends Message>(handler: (event: Event) => Promise<void>) {
|
|
6
|
-
return async (event: Event) => handler(event);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
2
|
-
import type { Message } from "./message.types";
|
|
3
|
-
|
|
4
|
-
export class EventHandlerNoopStrategy implements EventHandlerStrategy {
|
|
5
|
-
handle<Event extends Message>(_handler: (event: Event) => Promise<void>) {
|
|
6
|
-
return async (_event: Event) => {};
|
|
7
|
-
}
|
|
8
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { ClockPort } from "./clock.port";
|
|
2
|
-
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
3
|
-
import type { LoggerPort } from "./logger.port";
|
|
4
|
-
import type { Message } from "./message.types";
|
|
5
|
-
import { Stopwatch } from "./stopwatch.service";
|
|
6
|
-
|
|
7
|
-
type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
|
|
8
|
-
|
|
9
|
-
export class EventHandlerWithLoggerStrategy implements EventHandlerStrategy {
|
|
10
|
-
constructor(private readonly deps: Dependencies) {}
|
|
11
|
-
|
|
12
|
-
handle<Event extends Message>(handler: (event: Event) => Promise<void>) {
|
|
13
|
-
return async (event: Event) => {
|
|
14
|
-
const duration = new Stopwatch(this.deps);
|
|
15
|
-
|
|
16
|
-
try {
|
|
17
|
-
await handler(event);
|
|
18
|
-
} catch (error) {
|
|
19
|
-
this.deps.Logger.error({
|
|
20
|
-
message: `Unknown ${event.name} event handler error`,
|
|
21
|
-
component: "infra",
|
|
22
|
-
operation: "event_handler",
|
|
23
|
-
metadata: { name: event.name, duration: duration.stop() },
|
|
24
|
-
error,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
package/src/event-store.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// Stryker disable all
|
|
2
|
-
import type * as z from "zod/v4";
|
|
3
|
-
import type { GenericEventSchema, GenericParsedEventSchema } from "./event.types";
|
|
4
|
-
import type { EventStreamType } from "./event-stream.vo";
|
|
5
|
-
|
|
6
|
-
export type EventNameType = z.infer<GenericEventSchema["shape"]["name"]>;
|
|
7
|
-
|
|
8
|
-
type FindEventsHandler = (
|
|
9
|
-
stream: EventStreamType,
|
|
10
|
-
acceptedEventsNames: ReadonlyArray<EventNameType>,
|
|
11
|
-
) => Promise<ReadonlyArray<z.infer<GenericEventSchema>>>;
|
|
12
|
-
|
|
13
|
-
type InserterEventsHandler = (
|
|
14
|
-
events: ReadonlyArray<z.infer<GenericParsedEventSchema>>,
|
|
15
|
-
) => Promise<ReadonlyArray<z.infer<GenericParsedEventSchema>>>;
|
|
16
|
-
|
|
17
|
-
type Config = { finder: FindEventsHandler; inserter: InserterEventsHandler };
|
|
18
|
-
|
|
19
|
-
export class EventStore<AllEvents extends GenericEventSchema> {
|
|
20
|
-
constructor(private readonly config: Config) {}
|
|
21
|
-
|
|
22
|
-
static EMPTY_STREAM_REVISION = -1;
|
|
23
|
-
|
|
24
|
-
async find<AcceptedEvents extends ReadonlyArray<AllEvents>>(
|
|
25
|
-
acceptedEvents: AcceptedEvents,
|
|
26
|
-
stream: EventStreamType,
|
|
27
|
-
): Promise<ReadonlyArray<z.infer<AcceptedEvents[number]>>> {
|
|
28
|
-
const acceptedEventsNames = acceptedEvents.map((event) => event.shape.name.value);
|
|
29
|
-
|
|
30
|
-
const rows = await this.config.finder(stream, acceptedEventsNames);
|
|
31
|
-
|
|
32
|
-
return rows
|
|
33
|
-
.map((row) => ({ ...row, payload: JSON.parse(row.payload) }))
|
|
34
|
-
.map((row) => acceptedEvents.find((event) => event.shape.name.value === row.name)?.parse(row))
|
|
35
|
-
.filter((event): event is z.infer<AcceptedEvents[number]> => event !== undefined);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
async save(events: ReadonlyArray<z.infer<AllEvents>>): Promise<ReadonlyArray<z.infer<AllEvents>>> {
|
|
39
|
-
if (!events[0]) return [];
|
|
40
|
-
|
|
41
|
-
const stream = events[0].stream;
|
|
42
|
-
|
|
43
|
-
if (!events.every((event) => event.stream === stream)) throw new EventStoreSaveUniqueStream();
|
|
44
|
-
|
|
45
|
-
// The returned variable has the `revision` fields added by the inserter,
|
|
46
|
-
// but we need to re-parse it to keep the contract.
|
|
47
|
-
const processed = await this.config.inserter(
|
|
48
|
-
events.map((event) => ({ ...event, payload: JSON.stringify(event.payload) })),
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
return processed.map((event) => ({
|
|
52
|
-
...event,
|
|
53
|
-
payload: JSON.parse(event.payload),
|
|
54
|
-
})) as Array<z.infer<AllEvents>>;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export class EventStoreSaveUniqueStream extends Error {
|
|
59
|
-
constructor() {
|
|
60
|
-
super();
|
|
61
|
-
Object.setPrototypeOf(this, EventStoreSaveUniqueStream.prototype);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// Stryker restore all
|