Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

ontologic

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ontologic - npm Package Compare versions

Comparing version
1.1.0
to
1.2.0
+9
dist/event-bus/connectors/in-memory/index.d.ts
import { IListenerConnector, IPublisherConnector } from "../interfaces";
export * from "./listener";
export * from "./publisher";
export declare class InMemoryConnectors {
listener: IListenerConnector;
publisher: IPublisherConnector;
constructor();
}
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/connectors/in-memory/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAExE,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,qBAAa,kBAAkB;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,mBAAmB,CAAC;;CAOhC"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.InMemoryConnectors = void 0;
const node_events_1 = require("node:events");
const listener_1 = require("./listener");
const publisher_1 = require("./publisher");
__exportStar(require("./listener"), exports);
__exportStar(require("./publisher"), exports);
class InMemoryConnectors {
listener;
publisher;
constructor() {
const eventEmitter = new node_events_1.EventEmitter({ captureRejections: true });
this.listener = new listener_1.InMemoryListenerConnector(eventEmitter);
this.publisher = new publisher_1.InMemoryPublisherConnector(eventEmitter);
}
}
exports.InMemoryConnectors = InMemoryConnectors;
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/event-bus/connectors/in-memory/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,yCAAuD;AACvD,2CAAyD;AAGzD,6CAA2B;AAC3B,8CAA4B;AAE5B,MAAa,kBAAkB;IAC7B,QAAQ,CAAqB;IAC7B,SAAS,CAAsB;IAE/B;QACE,MAAM,YAAY,GAAiB,IAAI,0BAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,GAAG,IAAI,oCAAyB,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,sCAA0B,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;CACF;AATD,gDASC"}
import { EventEmitter } from "node:events";
import { IListenerConnector, ReceivedMessage } from "../interfaces";
export declare class InMemoryListenerConnector implements IListenerConnector {
#private;
constructor(eventEmitter: EventEmitter);
onMessage(handler: (message: ReceivedMessage) => Promise<void>): void;
get status(): "STARTED" | "STOPPED";
start(): Promise<void>;
stop(): Promise<void>;
onError(handler: (error: unknown) => void): void;
}
//# sourceMappingURL=listener.d.ts.map
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/connectors/in-memory/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,yBAA0B,YAAW,kBAAkB;;gBAMtD,YAAY,EAAE,YAAY;IAKtC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC;IAI9D,IAAI,MAAM,IAAG,SAAS,GAAC,SAAS,CAE/B;IAED,KAAK;IAyBL,IAAI;IAMJ,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAC,OAAO,KAAK,IAAI,GAAG,IAAI;CAIhD"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InMemoryListenerConnector = void 0;
class InMemoryListenerConnector {
#status;
#eventEmitter;
#handler;
constructor(eventEmitter) {
this.#status = "STOPPED";
this.#eventEmitter = eventEmitter;
}
onMessage(handler) {
this.#handler = handler;
}
get status() {
return this.#status;
}
start() {
if (this.#status === 'STARTED') {
return Promise.resolve();
}
if (!this.#handler) {
throw new Error("[InMemoryListenerConnector]: Cannot start if no handler has been registered. Use onMessage() before start()");
}
const handler = this.#handler;
this.#eventEmitter.on("message", async (message) => {
await handler({
content: message.content,
name: message.name,
ack: async () => { },
nack: async () => { },
});
});
this.#status = "STARTED";
return Promise.resolve();
}
stop() {
this.#status = "STOPPED";
this.#eventEmitter.removeAllListeners("message");
return Promise.resolve();
}
onError(handler) {
this.#eventEmitter.on('error', handler);
}
}
exports.InMemoryListenerConnector = InMemoryListenerConnector;
//# sourceMappingURL=listener.js.map
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../../src/event-bus/connectors/in-memory/listener.ts"],"names":[],"mappings":";;;AAGA,MAAa,yBAAyB;IAEpC,OAAO,CAAsB;IAC7B,aAAa,CAAe;IAC5B,QAAQ,CAAgD;IAExD,YAAY,YAA0B;QACpC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,OAAoD;QAC5D,IAAI,CAAC,QAAQ,GAAE,OAAO,CAAA;IACxB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAA;QAChI,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAwC,EAAE,EAAE;YAClF,MAAM,OAAO,CAAC;gBACZ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAC,KAAK,IAAI,EAAE,GAAE,CAAC;gBAClB,IAAI,EAAC,KAAK,IAAI,EAAE,GAAE,CAAC;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QAExB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,OAAgC;QACtC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CAEF;AAtDD,8DAsDC"}
import { EventEmitter } from "node:events";
import { IPublisherConnector } from "../interfaces";
export declare class InMemoryPublisherConnector implements IPublisherConnector {
#private;
constructor(eventEmitter: EventEmitter);
publish(name: string, message: string): Promise<void>;
get status(): "STARTED" | "STOPPED";
start(): Promise<void>;
stop(): Promise<void>;
onError(handler: (error: unknown) => void): void;
}
//# sourceMappingURL=publisher.d.ts.map
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../../src/event-bus/connectors/in-memory/publisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,qBAAa,0BAA2B,YAAW,mBAAmB;;gBAKxD,YAAY,EAAE,YAAY;IAKtC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,IAAI,MAAM,IAAG,SAAS,GAAC,SAAS,CAE/B;IAED,KAAK;IAKL,IAAI;IAKJ,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAC,OAAO,KAAK,IAAI,GAAG,IAAI;CAIhD"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InMemoryPublisherConnector = void 0;
class InMemoryPublisherConnector {
#status;
#eventEmitter;
constructor(eventEmitter) {
this.#status = "STOPPED";
this.#eventEmitter = eventEmitter;
}
publish(name, message) {
this.#eventEmitter.emit('message', { name, content: message });
return Promise.resolve();
}
get status() {
return this.#status;
}
start() {
this.#status = "STARTED";
return Promise.resolve();
}
stop() {
this.#status = "STOPPED";
return Promise.resolve();
}
onError(handler) {
this.#eventEmitter.on('error', handler);
}
}
exports.InMemoryPublisherConnector = InMemoryPublisherConnector;
//# sourceMappingURL=publisher.js.map
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../../src/event-bus/connectors/in-memory/publisher.ts"],"names":[],"mappings":";;;AAIA,MAAa,0BAA0B;IAErC,OAAO,CAAsB;IAC7B,aAAa,CAAe;IAE5B,YAAY,YAA0B;QACpC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAAe;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,OAAgC;QACtC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CAEF;AAjCD,gEAiCC"}
export * from "./in-memory";
export * from "./interfaces";
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/event-bus/connectors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./in-memory"), exports);
__exportStar(require("./interfaces"), exports);
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-bus/connectors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,+CAA6B"}
export interface IListenerConnector {
onMessage(handler: (message: ReceivedMessage) => Promise<void>): void;
status: "STARTED" | "STOPPED";
start(): Promise<void>;
stop(): Promise<void>;
onError(handler: (error: unknown) => void): void;
}
export interface IPublisherConnector {
publish(name: string, message: string, options?: {
orderingKey?: string;
}): Promise<void>;
status: "STARTED" | "STOPPED";
start(): Promise<void>;
stop(): Promise<void>;
onError(handler: (error: unknown) => void): void;
}
export interface ReceivedMessage {
name: string;
content: string;
ack(): Promise<void>;
nack(): Promise<void>;
}
//# sourceMappingURL=interfaces.d.ts.map
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/event-bus/connectors/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAC,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAC,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=interfaces.js.map
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/event-bus/connectors/interfaces.ts"],"names":[],"mappings":""}
import { IListenerConnector } from "./connectors/interfaces";
import { EventHandler, IDomainEventBusListener } from "./interfaces";
import { DomainEventInterface } from "../domainEvent";
export declare class DomainEventBusListener<Event extends DomainEventInterface> implements IDomainEventBusListener<Event> {
#private;
constructor(params: {
listenerConnector: IListenerConnector;
options: {
validator: (event: unknown) => Event;
};
});
listenTo<EventName extends Event["name"]>(eventName: EventName | '*', handler: EventHandler<Extract<Event, {
name: EventName;
}>>): void;
start(): Promise<void>;
stop(): Promise<void>;
status(): "STARTED" | "STOPPED";
onError(handler: (error: unknown) => void): void;
}
//# sourceMappingURL=listener.d.ts.map
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/event-bus/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAkB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItD,qBAAa,sBAAsB,CAAC,KAAK,SAAS,oBAAoB,CACpE,YAAW,uBAAuB,CAAC,KAAK,CAAC;;gBAM7B,MAAM,EAAE;QAClB,iBAAiB,EAAE,kBAAkB,CAAC;QACtC,OAAO,EAAE;YAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;SAAE,CAAA;KACnD;IAkBD,QAAQ,CAAC,SAAS,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC,GAAG,IAAI;IAIhI,KAAK;IAoCL,IAAI;IAIV,MAAM;IAIN,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;CAIjD"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DomainEventBusListener = void 0;
const node_events_1 = require("node:events");
const validateMetadata_1 = require("./validateMetadata");
class DomainEventBusListener {
#listenerConnector;
#eventHandlersMap;
#eventEmitter;
#validator;
constructor(params) {
const { listenerConnector, options } = params;
if (!listenerConnector) {
throw new Error("[DomainEventBusListener] Must have a listener connector");
}
this.#listenerConnector = listenerConnector;
this.#eventHandlersMap = new Map();
this.#eventEmitter = new node_events_1.EventEmitter({
captureRejections: true
});
this.#validator = options.validator;
}
listenTo(eventName, handler) {
this.#eventHandlersMap.set(eventName, handler);
}
async start() {
if (this.#eventHandlersMap.size === 0) {
throw new Error("[DomainEventBusListener]: Cannot start the listener if you have no listener registered. Use listenTo() before start()");
}
this.#listenerConnector.onMessage(async (message) => {
const eventHandler = this.#eventHandlersMap.get(message.name) ??
this.#eventHandlersMap.get("*");
if (!eventHandler) {
this.#eventEmitter.emit("error", new Error("[DomainEventBusListener]: No event handler found"));
await message.nack();
return;
}
const parsedMessage = JSON.parse(message.content);
const { event, metadata } = parsedMessage;
let eventToHandle = event;
eventToHandle = this.#validator(event);
const validatedMetadata = (0, validateMetadata_1.validateMetadata)(metadata);
try {
await eventHandler(eventToHandle, validatedMetadata);
await message.ack();
}
catch {
await message.nack();
}
});
await this.#listenerConnector.start();
}
async stop() {
await this.#listenerConnector.stop();
}
status() {
return this.#listenerConnector.status;
}
onError(handler) {
this.#listenerConnector.onError(handler);
this.#eventEmitter.on("error", handler);
}
}
exports.DomainEventBusListener = DomainEventBusListener;
//# sourceMappingURL=listener.js.map
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/event-bus/listener.ts"],"names":[],"mappings":";;;AAGA,6CAA2C;AAC3C,yDAAsD;AAEtD,MAAa,sBAAsB;IAEjC,kBAAkB,CAAoB;IACtC,iBAAiB,CAAgD;IACjE,aAAa,CAAe;IAC5B,UAAU,CAA6B;IAEvC,YAAY,MAGX;QACC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAA4C,CAAA;QAC5E,IAAI,CAAC,aAAa,GAAG,IAAI,0BAAY,CAAC;YACpC,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAA;IACrC,CAAC;IAED,QAAQ,CAAkC,SAAyB,EAAE,OAA0D;QAC7H,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,OAA8B,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC,CAAA;QAC1I,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,OAAwB,EAAC,EAAE;YAClE,MAAM,YAAY,GAChB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;gBAChG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;YAE1C,IAAI,aAAa,GAAG,KAAK,CAAC;YAExB,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEzC,MAAM,iBAAiB,GAAG,IAAA,mCAAgB,EAAC,QAAQ,CAAC,CAAA;YAEpD,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;gBACrD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,OAAiC;QACvC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;CACF;AAhFD,wDAgFC"}
import { IPublisherConnector } from "./connectors/interfaces";
import { IDomainEventBusPublisher } from "./interfaces";
import { DomainEventInterface } from "../domainEvent";
export declare class DomainEventBusPublisher<Event extends DomainEventInterface> implements IDomainEventBusPublisher<Event> {
#private;
constructor(params: {
publisherConnector: IPublisherConnector;
options?: {
validator?: (event: unknown) => Event;
};
});
publish(event: Event, metadata: {
id: string;
offset?: number;
createdAt: string;
}, options?: {
orderingKey?: string;
}): Promise<void>;
start(): Promise<void>;
stop(): Promise<void>;
status(): "STARTED" | "STOPPED";
onError(handler: (error: unknown) => void): void;
}
//# sourceMappingURL=publisher.d.ts.map
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/event-bus/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,qBAAa,uBAAuB,CAAC,KAAK,SAAS,oBAAoB,CACrE,YAAW,wBAAwB,CAAC,KAAK,CAAC;;gBAK9B,MAAM,EAAE;QAClB,kBAAkB,EAAE,mBAAmB,CAAC;QACxC,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;SAAE,CAAA;KACrD;IAgBK,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,EAAC,MAAM,CAAC;QACV,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,OAAO,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB;IAkBG,KAAK;IAIL,IAAI;IAIV,MAAM;IAIN,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;CAGjD"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DomainEventBusPublisher = void 0;
const validateMetadata_1 = require("./validateMetadata");
class DomainEventBusPublisher {
#publisherConnector;
#validator;
constructor(params) {
const { publisherConnector, options } = params;
if (!publisherConnector) {
throw new Error("[DomainEventBusPublisher] Must have a publisher connector");
}
this.#publisherConnector = publisherConnector;
if (options?.validator) {
this.#validator = options.validator;
}
}
async publish(event, metadata, options) {
const validatedMetadata = (0, validateMetadata_1.validateMetadata)(metadata);
let eventToPublish = event;
if (this.#validator) {
eventToPublish = this.#validator(event);
}
const message = {
event: eventToPublish,
metadata: validatedMetadata,
};
await this.#publisherConnector.publish(event.name, JSON.stringify(message), options);
}
async start() {
await this.#publisherConnector.start();
}
async stop() {
await this.#publisherConnector.stop();
}
status() {
return this.#publisherConnector.status;
}
onError(handler) {
this.#publisherConnector.onError(handler);
}
}
exports.DomainEventBusPublisher = DomainEventBusPublisher;
//# sourceMappingURL=publisher.js.map
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/event-bus/publisher.ts"],"names":[],"mappings":";;;AAGA,yDAAsD;AAEtD,MAAa,uBAAuB;IAGlC,mBAAmB,CAAsB;IACzC,UAAU,CAA8B;IAExC,YAAY,MAGX;QACC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAE9C,IAAG,OAAO,EAAE,SAAS,EAAC,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAA;QACrC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,QAI3B,EAAE,OAEA;QAED,MAAM,iBAAiB,GAAG,IAAA,mCAAgB,EAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE,iBAAiB;SAC5B,CAAA;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,OAAiC;QACvC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAhED,0DAgEC"}
import { EventMetadata } from "../repository";
export declare function validateMetadata(metadata: unknown): EventMetadata;
//# sourceMappingURL=validateMetadata.d.ts.map
{"version":3,"file":"validateMetadata.d.ts","sourceRoot":"","sources":["../../src/event-bus/validateMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,CAqCjE"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateMetadata = validateMetadata;
function validateMetadata(metadata) {
if (!metadata) {
throw new Error("Null or undefined event metadata");
}
if (typeof metadata !== 'object') {
throw new Error("Invalid Metadata");
}
const typedMetadata = metadata;
if (typeof typedMetadata.id !== 'string') {
throw new Error("Invalid Metadata: id is not a string");
}
if (typedMetadata.id.length === 0) {
throw new Error("Invalid Metadata: id is an empty string");
}
if (typeof typedMetadata.createdAt !== "string") {
throw new Error("Invalid Metadata: createdAt is not a string");
}
if (!isExactISODateTime(typedMetadata.createdAt)) {
throw new Error("Invalid Metadata: createdAt is not a valid ISO date time string");
}
if (typedMetadata.offset !== undefined) {
if (typeof typedMetadata.offset !== "number") {
throw new Error("Invalid Metadata: offset is neither a number or undefined");
}
if (!Number.isFinite(typedMetadata.offset)) {
throw new Error("Invalid Metadata: offset must be a finite number");
}
}
return typedMetadata;
}
function isExactISODateTime(value) {
const match = value.match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(Z|([+-]\d{2}:\d{2}))$/);
if (!match)
return false;
const [_, y, m, d, h, min, s] = match;
const date = new Date(value);
return (!isNaN(date.getTime()) &&
date.getUTCFullYear() === Number(y) &&
date.getUTCMonth() + 1 === Number(m) &&
date.getUTCDate() === Number(d) &&
date.getUTCHours() === Number(h) &&
date.getUTCMinutes() === Number(min) &&
date.getUTCSeconds() === Number(s));
}
//# sourceMappingURL=validateMetadata.js.map
{"version":3,"file":"validateMetadata.js","sourceRoot":"","sources":["../../src/event-bus/validateMetadata.ts"],"names":[],"mappings":";;AAEA,4CAqCC;AArCD,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,IAAG,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAG,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,aAAa,GAAG,QAAyB,CAAC;IAEhD,IAAI,OAAO,aAAa,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,aAAa,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAGD,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CACvB,gFAAgF,CACjF,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;IAEtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CACnC,CAAC;AACJ,CAAC"}
+6
-0

@@ -19,3 +19,9 @@ export interface DomainEventInterface {

get payload(): Payload;
toJSON(): {
entityId: string;
name: Name;
version: Version;
payload: Payload;
};
}
//# sourceMappingURL=domainEvent.d.ts.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"domainEvent.d.ts","sourceRoot":"","sources":["../src/domainEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,OAAO,CAAE,YAAW,oBAAoB;;gBAMhG,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAQxF,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
{"version":3,"file":"domainEvent.d.ts","sourceRoot":"","sources":["../src/domainEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,OAAO,CAAE,YAAW,oBAAoB;;gBAMhG,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAQxF,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;CAQ/E"}

@@ -28,4 +28,12 @@ "use strict";

}
toJSON() {
return {
entityId: this.#entityId,
name: this.#name,
version: this.#version,
payload: this.payload,
};
}
}
exports.DomainEvent = DomainEvent;
//# sourceMappingURL=domainEvent.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"domainEvent.js","sourceRoot":"","sources":["../src/domainEvent.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IACtB,SAAS,CAAS;IAClB,KAAK,CAAO;IACZ,QAAQ,CAAU;IAClB,QAAQ,CAAU;IAElB,YAAY,MAA4E;QACtF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC;IACnF,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;CACF;AA7BD,kCA6BC"}
{"version":3,"file":"domainEvent.js","sourceRoot":"","sources":["../src/domainEvent.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IACtB,SAAS,CAAS;IAClB,KAAK,CAAO;IACZ,QAAQ,CAAU;IAClB,QAAQ,CAAU;IAElB,YAAY,MAA4E;QACtF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC;IACnF,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAtCD,kCAsCC"}

@@ -1,2 +0,5 @@

export {};
export * from "./listener";
export * from "./publisher";
export * from "./interfaces";
export * from "./connectors";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":""}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./listener"), exports);
__exportStar(require("./publisher"), exports);
__exportStar(require("./interfaces"), exports);
__exportStar(require("./connectors"), exports);
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":""}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,+CAA6B"}

@@ -1,2 +0,16 @@

export {};
import { DomainEventInterface } from "../domainEvent";
import { EventMetadata } from "../repository";
export interface IDomainEventBusPublisher<Event extends DomainEventInterface> {
start(): void | Promise<void>;
stop(): void | Promise<void>;
publish(event: Event, metadata: EventMetadata): Promise<void>;
}
export interface IDomainEventBusListener<Event extends DomainEventInterface> {
start(): void | Promise<void>;
stop(): void | Promise<void>;
listenTo<EventName extends Event["name"]>(eventName: EventName | '*', handler: EventHandler<Extract<Event, {
name: EventName;
}>>): void;
}
export type EventHandler<Event extends DomainEventInterface> = (event: Event, metadata: EventMetadata) => void | Promise<void>;
//# sourceMappingURL=interfaces.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/event-bus/interfaces.ts"],"names":[],"mappings":""}
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/event-bus/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,WAAW,wBAAwB,CAAC,KAAK,SAAS,oBAAoB;IAC1E,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,uBAAuB,CAAC,KAAK,SAAS,oBAAoB;IACzE,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,QAAQ,CAAC,SAAS,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC,GAAG,IAAI,CAAA;CACvI;AAED,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,oBAAoB,IAAI,CAC7D,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,aAAa,KACpB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}

@@ -7,4 +7,5 @@ export * from "./domainError";

export * from "./domainInvariant";
export * from "./event-bus";
export * from "./inMemoryRepository";
export * from "./switchGuard";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAElC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAE5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}

@@ -23,4 +23,5 @@ "use strict";

__exportStar(require("./domainInvariant"), exports);
__exportStar(require("./event-bus"), exports);
__exportStar(require("./inMemoryRepository"), exports);
__exportStar(require("./switchGuard"), exports);
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,oDAAkC;AAElC,uDAAqC;AACrC,gDAA8B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,oDAAkC;AAClC,8CAA4B;AAE5B,uDAAqC;AACrC,gDAA8B"}

@@ -25,4 +25,5 @@ import { Result } from "../result";

}): Promise<Result<EventWithMetadata[], Error>>;
getEventsAfter(entityId: string, eventId: string, limit?: number): Promise<Result<EventWithMetadata[], Error>>;
on(handler: (entityId: string) => void): void;
}
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inMemoryRepository/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,MAAM,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE9D,qBAAa,kBAAkB,CAC7B,MAAM,SAAS,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5D,YAAW,UAAU,CAAC,MAAM,CAAC;;gBAO3B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,MAAM;IAKxE,SAAS,CAAC,QAAQ,CAAC,KAAK,+CAAsD;IAC9E,SAAS,CAAC,QAAQ,CAAC,UAAU,mCAA0C;IAEjE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAKlD,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IA8B/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;IAU/D,IAAI,CAAC,MAAM,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CACT,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,KAAK,CAAC,CACjE;IAqBD,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;IAa9C,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAG9C"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inMemoryRepository/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,MAAM,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG9D,qBAAa,kBAAkB,CAC7B,MAAM,SAAS,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5D,YAAW,UAAU,CAAC,MAAM,CAAC;;gBAO3B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,MAAM;IAKxE,SAAS,CAAC,QAAQ,CAAC,KAAK,+CAAsD;IAC9E,SAAS,CAAC,QAAQ,CAAC,UAAU,mCAA0C;IAEjE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAKlD,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IA+B/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;IAU/D,IAAI,CAAC,MAAM,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CACT,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,KAAK,CAAC,CACjE;IAqBD,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;IAa9C,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;IAiB9C,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAG9C"}

@@ -6,2 +6,3 @@ "use strict";

const result_1 = require("../result");
const node_crypto_1 = require("node:crypto");
class InMemoryRepository {

@@ -27,6 +28,7 @@ #mapper;

}
const integrationEvents = domainEvents.map((event, index) => {
const eventsWithMetadata = domainEvents.map((event, index) => {
return {
event,
metadata: {
id: (0, node_crypto_1.randomUUID)(),
createdAt: new Date().toISOString(),

@@ -37,3 +39,3 @@ offset: events.length + index,

});
events.push(...integrationEvents);
events.push(...eventsWithMetadata);
this.eventStore.set(entity.id(), events);

@@ -68,2 +70,11 @@ this.#emitter.emit("domainEventsSaved", entity.id());

}
getEventsAfter(entityId, eventId, limit = 50) {
const events = this.eventStore.get(entityId) || [];
const foundPrecedingEventIndex = events.findIndex(event => event.metadata.id === eventId);
if (foundPrecedingEventIndex === -1) {
throw new Error("Unknown event id");
}
const paginatedEvents = events.slice(foundPrecedingEventIndex, foundPrecedingEventIndex + limit);
return Promise.resolve((0, result_1.ok)(paginatedEvents));
}
on(handler) {

@@ -70,0 +81,0 @@ this.#emitter.on("domainEventsSaved", handler);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inMemoryRepository/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inMemoryRepository/index.ts"],"names":[],"mappings":"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"}

@@ -6,7 +6,9 @@ import { Result } from "./result/index";

event: DomainEventInterface;
metadata: {
offset: number;
createdAt: string;
};
metadata: EventMetadata;
}
export interface EventMetadata {
id: string;
offset?: number;
createdAt: string;
}
export interface Repository<Entity extends DomainEntity<ReturnType<Entity["readState"]>>> {

@@ -28,4 +30,5 @@ save(entity: Entity): Promise<Result<void, Error>>;

}): Promise<Result<EventWithMetadata[], Error>>;
getEventsAfter(entityId: string, eventId: string, limit: number): Promise<Result<EventWithMetadata[], Error>>;
on(handler: (entityId: string) => void): void;
}
//# sourceMappingURL=repository.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAA;CACF;AAED,MAAM,WAAW,UAAU,CACzB,MAAM,SAAS,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnD,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,MAAM,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9E,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/C"}
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,UAAU,CACzB,MAAM,SAAS,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnD,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,MAAM,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAE9E,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/C,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAC,KAAK,CAAC,CAAC,CAAC;IAE7G,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/C"}
{
"name": "ontologic",
"version": "1.1.0",
"version": "1.2.0",
"description": "",

@@ -22,2 +22,3 @@ "main": "dist/index.js",

"@vitest/ui": "4.0.18",
"prettier": "^3.8.1",
"typescript": "^5.9.3",

@@ -24,0 +25,0 @@ "vitest": "^4.0.18"