@oyinlola141/lattice-messaging 0.1.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.
Files changed (87) hide show
  1. package/README.md +19 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/dispatcher/dispatcherCore.d.ts +29 -0
  4. package/dist/dispatcher/dispatcherCore.d.ts.map +1 -0
  5. package/dist/dispatcher/dispatcherCore.js +89 -0
  6. package/dist/dispatcher/dispatcherCore.js.map +1 -0
  7. package/dist/dispatcher/dispatcherType.type.d.ts +83 -0
  8. package/dist/dispatcher/dispatcherType.type.d.ts.map +1 -0
  9. package/dist/dispatcher/dispatcherType.type.js +10 -0
  10. package/dist/dispatcher/dispatcherType.type.js.map +1 -0
  11. package/dist/dispatcher/index.d.ts +8 -0
  12. package/dist/dispatcher/index.d.ts.map +1 -0
  13. package/dist/dispatcher/index.js +7 -0
  14. package/dist/dispatcher/index.js.map +1 -0
  15. package/dist/errors/index.d.ts +7 -0
  16. package/dist/errors/index.d.ts.map +1 -0
  17. package/dist/errors/index.js +7 -0
  18. package/dist/errors/index.js.map +1 -0
  19. package/dist/handlerRegistry/handlerRegistryStore.d.ts +32 -0
  20. package/dist/handlerRegistry/handlerRegistryStore.d.ts.map +1 -0
  21. package/dist/handlerRegistry/handlerRegistryStore.js +109 -0
  22. package/dist/handlerRegistry/handlerRegistryStore.js.map +1 -0
  23. package/dist/handlerRegistry/handlerRegistryType.type.d.ts +41 -0
  24. package/dist/handlerRegistry/handlerRegistryType.type.d.ts.map +1 -0
  25. package/dist/handlerRegistry/handlerRegistryType.type.js +11 -0
  26. package/dist/handlerRegistry/handlerRegistryType.type.js.map +1 -0
  27. package/dist/handlerRegistry/index.d.ts +8 -0
  28. package/dist/handlerRegistry/index.d.ts.map +1 -0
  29. package/dist/handlerRegistry/index.js +7 -0
  30. package/dist/handlerRegistry/index.js.map +1 -0
  31. package/dist/index.d.ts +19 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +27 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/message/index.d.ts +8 -0
  36. package/dist/message/index.d.ts.map +1 -0
  37. package/dist/message/index.js +7 -0
  38. package/dist/message/index.js.map +1 -0
  39. package/dist/message/messageFactory.d.ts +36 -0
  40. package/dist/message/messageFactory.d.ts.map +1 -0
  41. package/dist/message/messageFactory.js +106 -0
  42. package/dist/message/messageFactory.js.map +1 -0
  43. package/dist/message/messageType.type.d.ts +99 -0
  44. package/dist/message/messageType.type.d.ts.map +1 -0
  45. package/dist/message/messageType.type.js +11 -0
  46. package/dist/message/messageType.type.js.map +1 -0
  47. package/dist/messageBus/index.d.ts +8 -0
  48. package/dist/messageBus/index.d.ts.map +1 -0
  49. package/dist/messageBus/index.js +7 -0
  50. package/dist/messageBus/index.js.map +1 -0
  51. package/dist/messageBus/messageBusCore.d.ts +36 -0
  52. package/dist/messageBus/messageBusCore.d.ts.map +1 -0
  53. package/dist/messageBus/messageBusCore.js +94 -0
  54. package/dist/messageBus/messageBusCore.js.map +1 -0
  55. package/dist/messageBus/messageBusType.type.d.ts +83 -0
  56. package/dist/messageBus/messageBusType.type.d.ts.map +1 -0
  57. package/dist/messageBus/messageBusType.type.js +10 -0
  58. package/dist/messageBus/messageBusType.type.js.map +1 -0
  59. package/dist/messageContext/index.d.ts +8 -0
  60. package/dist/messageContext/index.d.ts.map +1 -0
  61. package/dist/messageContext/index.js +7 -0
  62. package/dist/messageContext/index.js.map +1 -0
  63. package/dist/messageContext/messageContextType.type.d.ts +52 -0
  64. package/dist/messageContext/messageContextType.type.d.ts.map +1 -0
  65. package/dist/messageContext/messageContextType.type.js +24 -0
  66. package/dist/messageContext/messageContextType.type.js.map +1 -0
  67. package/dist/messageHandler/index.d.ts +8 -0
  68. package/dist/messageHandler/index.d.ts.map +1 -0
  69. package/dist/messageHandler/index.js +7 -0
  70. package/dist/messageHandler/index.js.map +1 -0
  71. package/dist/messageHandler/messageHandlerType.type.d.ts +62 -0
  72. package/dist/messageHandler/messageHandlerType.type.d.ts.map +1 -0
  73. package/dist/messageHandler/messageHandlerType.type.js +18 -0
  74. package/dist/messageHandler/messageHandlerType.type.js.map +1 -0
  75. package/dist/messageMiddleware/index.d.ts +8 -0
  76. package/dist/messageMiddleware/index.d.ts.map +1 -0
  77. package/dist/messageMiddleware/index.js +7 -0
  78. package/dist/messageMiddleware/index.js.map +1 -0
  79. package/dist/messageMiddleware/messageMiddlewarePipeline.d.ts +13 -0
  80. package/dist/messageMiddleware/messageMiddlewarePipeline.d.ts.map +1 -0
  81. package/dist/messageMiddleware/messageMiddlewarePipeline.js +95 -0
  82. package/dist/messageMiddleware/messageMiddlewarePipeline.js.map +1 -0
  83. package/dist/messageMiddleware/messageMiddlewareType.type.d.ts +96 -0
  84. package/dist/messageMiddleware/messageMiddlewareType.type.d.ts.map +1 -0
  85. package/dist/messageMiddleware/messageMiddlewareType.type.js +10 -0
  86. package/dist/messageMiddleware/messageMiddlewareType.type.js.map +1 -0
  87. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageType.type.js","sourceRoot":"","sources":["../../src/message/messageType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @oyinlola141/lattice-messaging/messageBus
3
+ *
4
+ * MessageBus interface and in-memory implementation.
5
+ */
6
+ export type { MessageBusOptions, MessageBus, } from "./messageBusType.type.js";
7
+ export { InMemoryMessageBus, createMessageBus } from "./messageBusCore.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messageBus/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,iBAAiB,EACjB,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @latticejs/messaging/messageBus
3
+ *
4
+ * MessageBus interface and in-memory implementation.
5
+ */
6
+ export { InMemoryMessageBus, createMessageBus } from "./messageBusCore.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messageBus/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * In-memory message bus implementation.
3
+ *
4
+ * @module messageBus/messageBusCore
5
+ */
6
+ import type { Message, MessageInput } from "../message/messageType.type.js";
7
+ import type { MessageHandler, NamedMessageHandler } from "../messageHandler/messageHandlerType.type.js";
8
+ import type { MessageMiddlewareLike } from "../messageMiddleware/messageMiddlewareType.type.js";
9
+ import type { MessageBus, MessageBusOptions } from "./messageBusType.type.js";
10
+ import type { DispatchResult, DispatchOptions } from "../dispatcher/dispatcherType.type.js";
11
+ /** Default in-memory message bus. */
12
+ export declare class InMemoryMessageBus implements MessageBus {
13
+ private readonly dispatcher;
14
+ private readonly registry;
15
+ private readonly defaultTimeout;
16
+ private _disposed;
17
+ constructor(options?: MessageBusOptions);
18
+ private registerGlobalMiddleware;
19
+ dispatch<TPayload, TResult>(message: Message<TPayload>, options?: DispatchOptions<TResult>): Promise<DispatchResult<TResult>>;
20
+ private validateNotDisposed;
21
+ private dispatchWithTimeout;
22
+ send<TPayload, TResult>(input: MessageInput<TPayload>, options?: DispatchOptions<TResult>): Promise<DispatchResult<TResult>>;
23
+ on<TPayload, TResult>(messageType: string, handler: MessageHandler<Message<TPayload>, TResult>, options?: {
24
+ id?: string;
25
+ priority?: number;
26
+ }): void;
27
+ addHandler<TMessage extends Message, TResult>(handler: NamedMessageHandler<TMessage, TResult>): void;
28
+ off(handlerId: string): boolean;
29
+ use<TMessage extends Message = Message, TResult = unknown>(middleware: MessageMiddlewareLike<TMessage, TResult>): void;
30
+ hasHandlers(messageType: string): boolean;
31
+ get handlerCount(): number;
32
+ dispose(): void;
33
+ get disposed(): boolean;
34
+ }
35
+ export declare function createMessageBus(options?: MessageBusOptions): MessageBus;
36
+ //# sourceMappingURL=messageBusCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBusCore.d.ts","sourceRoot":"","sources":["../../src/messageBus/messageBusCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACpB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAO9C,qCAAqC;AACrC,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,SAAS,CAAS;IAE1B,YAAY,OAAO,GAAE,iBAAsB,EAQ1C;IAED,OAAO,CAAC,wBAAwB;IAM1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAC9B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,OAAO,GAAE,eAAe,CAAC,OAAO,CAAM,GACrC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAUlC;IAED,OAAO,CAAC,mBAAmB;YAMb,mBAAmB;IAc3B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAC1B,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC7B,OAAO,GAAE,eAAe,CAAC,OAAO,CAAM,GACrC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAElC;IAED,EAAE,CAAC,QAAQ,EAAE,OAAO,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EACnD,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/C,IAAI,CAON;IAED,UAAU,CAAC,QAAQ,SAAS,OAAO,EAAE,OAAO,EAC1C,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAC9C,IAAI,CAEN;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,GAAG,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACvD,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,GACnD,IAAI,CAEN;IAED,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAExC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,IAAI,IAAI,CAId;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AACD,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAExE"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * In-memory message bus implementation.
3
+ *
4
+ * @module messageBus/messageBusCore
5
+ */
6
+ import { createMessage } from "../message/messageFactory.js";
7
+ import { HandlerRegistryStore } from "../handlerRegistry/handlerRegistryStore.js";
8
+ import { DefaultDispatcher } from "../dispatcher/dispatcherCore.js";
9
+ import { MessageDispatchError } from "@latticejs/errors";
10
+ /** Default in-memory message bus. */
11
+ export class InMemoryMessageBus {
12
+ dispatcher;
13
+ registry;
14
+ defaultTimeout;
15
+ _disposed = false;
16
+ constructor(options = {}) {
17
+ this.registry = new HandlerRegistryStore({
18
+ allowDuplicateHandlerIds: options.allowDuplicateHandlers ?? false,
19
+ allowMultipleHandlers: options.allowMultipleHandlers ?? true,
20
+ });
21
+ this.dispatcher = new DefaultDispatcher(this.registry);
22
+ this.defaultTimeout = options.defaultTimeout ?? 0;
23
+ this.registerGlobalMiddleware(options.middleware);
24
+ }
25
+ registerGlobalMiddleware(middleware) {
26
+ if (middleware !== undefined) {
27
+ for (const mw of middleware)
28
+ this.dispatcher.use(mw);
29
+ }
30
+ }
31
+ async dispatch(message, options = {}) {
32
+ this.validateNotDisposed(message);
33
+ const timeout = options.timeout ?? this.defaultTimeout;
34
+ const dispatchOptions = { ...options, timeout };
35
+ if (timeout > 0) {
36
+ return this.dispatchWithTimeout(message, dispatchOptions);
37
+ }
38
+ return this.dispatcher.dispatch(message, dispatchOptions);
39
+ }
40
+ validateNotDisposed(message) {
41
+ if (this._disposed) {
42
+ throw new MessageDispatchError(message.type, "Message bus has been disposed.");
43
+ }
44
+ }
45
+ async dispatchWithTimeout(message, options) {
46
+ const controller = new AbortController();
47
+ const timeoutId = setTimeout(() => controller.abort(), options.timeout ?? 0);
48
+ try {
49
+ const result = await this.dispatcher.dispatch(message, { ...options, signal: controller.signal });
50
+ return result;
51
+ }
52
+ finally {
53
+ clearTimeout(timeoutId);
54
+ }
55
+ }
56
+ async send(input, options = {}) {
57
+ return this.dispatch(createMessage(input), options);
58
+ }
59
+ on(messageType, handler, options = {}) {
60
+ const id = options.id ?? `handler:${messageType}:${Date.now()}`;
61
+ const namedHandler = {
62
+ id, name: id, handler, messageTypes: [messageType],
63
+ priority: options.priority ?? 100, enabled: true,
64
+ };
65
+ this.registry.register(namedHandler);
66
+ }
67
+ addHandler(handler) {
68
+ this.registry.register(handler);
69
+ }
70
+ off(handlerId) {
71
+ return this.registry.unregister(handlerId);
72
+ }
73
+ use(middleware) {
74
+ this.dispatcher.use(middleware);
75
+ }
76
+ hasHandlers(messageType) {
77
+ return this.registry.resolve(messageType).length > 0;
78
+ }
79
+ get handlerCount() {
80
+ return this.registry.size;
81
+ }
82
+ dispose() {
83
+ this._disposed = true;
84
+ this.registry.clear();
85
+ this.dispatcher.dispose();
86
+ }
87
+ get disposed() {
88
+ return this._disposed;
89
+ }
90
+ }
91
+ export function createMessageBus(options) {
92
+ return new InMemoryMessageBus(options);
93
+ }
94
+ //# sourceMappingURL=messageBusCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBusCore.js","sourceRoot":"","sources":["../../src/messageBus/messageBusCore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * MessageBus type definitions for Lattice.
3
+ *
4
+ * The bus is the primary API surface for sending messages.
5
+ * It wraps the dispatcher with publish semantics.
6
+ *
7
+ * @module messageBus/messageBusType
8
+ */
9
+ import type { Message, MessageInput } from "../message/messageType.type.js";
10
+ import type { MessageHandler, NamedMessageHandler } from "../messageHandler/messageHandlerType.type.js";
11
+ import type { MessageMiddlewareLike } from "../messageMiddleware/messageMiddlewareType.type.js";
12
+ import type { DispatchResult, DispatchOptions } from "../dispatcher/dispatcherType.type.js";
13
+ /**
14
+ * Options for creating a message bus.
15
+ */
16
+ export interface MessageBusOptions {
17
+ /** Allow duplicate handler IDs. Default: false. */
18
+ readonly allowDuplicateHandlers?: boolean;
19
+ /** Allow multiple handlers per message type. Default: true. */
20
+ readonly allowMultipleHandlers?: boolean;
21
+ /** Global middleware. */
22
+ readonly middleware?: readonly MessageMiddlewareLike[];
23
+ /** Default timeout in ms. Default: 0 (no timeout). */
24
+ readonly defaultTimeout?: number;
25
+ }
26
+ /**
27
+ * Message bus interface.
28
+ *
29
+ * Provides a high-level API for dispatching messages and
30
+ * registering handlers.
31
+ */
32
+ export interface MessageBus {
33
+ /**
34
+ * Dispatches a message to registered handlers.
35
+ *
36
+ * This is the primary method for sending messages.
37
+ * The message is validated, contextualized, and run through
38
+ * the middleware pipeline before being delivered to handlers.
39
+ */
40
+ dispatch<TPayload, TResult>(message: Message<TPayload>, options?: DispatchOptions<TResult>): Promise<DispatchResult<TResult>>;
41
+ /**
42
+ * Convenience method: creates and dispatches a message from input.
43
+ */
44
+ send<TPayload, TResult>(input: MessageInput<TPayload>, options?: DispatchOptions<TResult>): Promise<DispatchResult<TResult>>;
45
+ /**
46
+ * Registers a handler for a message type.
47
+ */
48
+ on<TPayload, TResult>(messageType: string, handler: MessageHandler<Message<TPayload>, TResult>, options?: {
49
+ id?: string;
50
+ priority?: number;
51
+ }): void;
52
+ /**
53
+ * Registers a named handler.
54
+ */
55
+ addHandler<TMessage extends Message, TResult>(handler: NamedMessageHandler<TMessage, TResult>): void;
56
+ /**
57
+ * Removes a handler by ID.
58
+ */
59
+ off(handlerId: string): boolean;
60
+ /**
61
+ * Adds middleware to the bus.
62
+ */
63
+ use<TMessage extends Message = Message, TResult = unknown>(middleware: MessageMiddlewareLike<TMessage, TResult>, options?: {
64
+ priority?: number;
65
+ }): void;
66
+ /**
67
+ * Checks if handlers are registered for a message type.
68
+ */
69
+ hasHandlers(messageType: string): boolean;
70
+ /**
71
+ * Returns the number of registered handlers.
72
+ */
73
+ readonly handlerCount: number;
74
+ /**
75
+ * Disposes the bus and releases resources.
76
+ */
77
+ dispose(): void;
78
+ /**
79
+ * Whether the bus has been disposed.
80
+ */
81
+ readonly disposed: boolean;
82
+ }
83
+ //# sourceMappingURL=messageBusType.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBusType.type.d.ts","sourceRoot":"","sources":["../../src/messageBus/messageBusType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EAEb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACpB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAE1C,+DAA+D;IAC/D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEzC,yBAAyB;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAEvD,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,EACxB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,OAAO,EACpB,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC7B,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpC;;OAEG;IACH,EAAE,CAAC,QAAQ,EAAE,OAAO,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EACnD,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,IAAI,CAAC;IAER;;OAEG;IACH,UAAU,CAAC,QAAQ,SAAS,OAAO,EAAE,OAAO,EAC1C,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAC9C,IAAI,CAAC;IAER;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC;;OAEG;IACH,GAAG,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACvD,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,EACpD,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,IAAI,CAAC;IAER;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * MessageBus type definitions for Lattice.
3
+ *
4
+ * The bus is the primary API surface for sending messages.
5
+ * It wraps the dispatcher with publish semantics.
6
+ *
7
+ * @module messageBus/messageBusType
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=messageBusType.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBusType.type.js","sourceRoot":"","sources":["../../src/messageBus/messageBusType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @oyinlola141/lattice-messaging/messageContext
3
+ *
4
+ * MessageContext type definitions and factory.
5
+ */
6
+ export type { MessageContext, MessageContextOptions, } from "./messageContextType.type.js";
7
+ export { createMessageContext } from "./messageContextType.type.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messageContext/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @latticejs/messaging/messageContext
3
+ *
4
+ * MessageContext type definitions and factory.
5
+ */
6
+ export { createMessageContext } from "./messageContextType.type.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messageContext/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * MessageContext type definitions for Lattice.
3
+ *
4
+ * The context carries correlation and causation identifiers
5
+ * through the dispatch chain, enabling distributed tracing
6
+ * and message lineage.
7
+ *
8
+ * @module messageContext/messageContextType
9
+ */
10
+ import type { Message, MessageCorrelationId, MessageCausationId } from "../message/messageType.type.js";
11
+ /**
12
+ * Execution context attached to a message during dispatch.
13
+ *
14
+ * Carries correlation, causation, and arbitrary headers
15
+ * through the dispatch chain.
16
+ */
17
+ export interface MessageContext {
18
+ /** The original message being dispatched. */
19
+ readonly message: Message;
20
+ /** Correlation identifier for the dispatch chain. */
21
+ readonly correlationId: MessageCorrelationId;
22
+ /** Causation identifier linking to the parent message. */
23
+ readonly causationId: MessageCausationId;
24
+ /** Optional headers carried through the pipeline. */
25
+ readonly headers: Readonly<Record<string, unknown>>;
26
+ /** AbortSignal for cancellation. */
27
+ readonly signal: AbortSignal;
28
+ /** Mutable state for middleware. */
29
+ readonly state: Map<string, unknown>;
30
+ /** When the dispatch started. */
31
+ readonly startedAt: Date;
32
+ }
33
+ /**
34
+ * Options for creating a message context.
35
+ */
36
+ export interface MessageContextOptions {
37
+ /** Correlation identifier. Falls back to message ID. */
38
+ readonly correlationId?: MessageCorrelationId;
39
+ /** Causation identifier. Falls back to message ID. */
40
+ readonly causationId?: MessageCausationId;
41
+ /** Optional headers. */
42
+ readonly headers?: Readonly<Record<string, unknown>>;
43
+ /** Optional AbortSignal. */
44
+ readonly signal?: AbortSignal;
45
+ /** Optional mutable state. */
46
+ readonly state?: Map<string, unknown>;
47
+ }
48
+ /**
49
+ * Creates a message context from a message and options.
50
+ */
51
+ export declare function createMessageContext(message: Message, options?: MessageContextOptions): MessageContext;
52
+ //# sourceMappingURL=messageContextType.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageContextType.type.d.ts","sourceRoot":"","sources":["../../src/messageContext/messageContextType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAExC;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,qDAAqD;IACrD,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAE7C,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEzC,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpD,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,iCAAiC;IACjC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAE9C,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAE1C,wBAAwB;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAErD,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAUhB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * MessageContext type definitions for Lattice.
3
+ *
4
+ * The context carries correlation and causation identifiers
5
+ * through the dispatch chain, enabling distributed tracing
6
+ * and message lineage.
7
+ *
8
+ * @module messageContext/messageContextType
9
+ */
10
+ /**
11
+ * Creates a message context from a message and options.
12
+ */
13
+ export function createMessageContext(message, options = {}) {
14
+ return Object.freeze({
15
+ message,
16
+ correlationId: options.correlationId ?? message.correlationId ?? message.id,
17
+ causationId: options.causationId ?? message.causationId ?? message.id,
18
+ headers: Object.freeze({ ...options.headers }),
19
+ signal: options.signal ?? new AbortController().signal,
20
+ state: options.state ?? new Map(),
21
+ startedAt: new Date(),
22
+ });
23
+ }
24
+ //# sourceMappingURL=messageContextType.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageContextType.type.js","sourceRoot":"","sources":["../../src/messageContext/messageContextType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyDH;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,OAAO,GAA0B,EAAE;IAEnC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,IAAK,OAAO,CAAC,EAAsC;QAChH,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAK,OAAO,CAAC,EAAoC;QACxG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM;QACtD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,EAAmB;QAClD,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @oyinlola141/lattice-messaging/messageHandler
3
+ *
4
+ * MessageHandler type definitions and utilities.
5
+ */
6
+ export type { HandlerResult, MessageHandler, NamedMessageHandler, MessageHandlerLike, MessageHandlerFactory, } from "./messageHandlerType.type.js";
7
+ export { resolveMessageHandler } from "./messageHandlerType.type.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messageHandler/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @latticejs/messaging/messageHandler
3
+ *
4
+ * MessageHandler type definitions and utilities.
5
+ */
6
+ export { resolveMessageHandler } from "./messageHandlerType.type.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messageHandler/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * MessageHandler type definitions for Lattice.
3
+ *
4
+ * Handlers are the consumer side of the messaging system.
5
+ * They receive messages and produce results.
6
+ *
7
+ * @module messageHandler/messageHandlerType
8
+ */
9
+ import type { Message } from "../message/messageType.type.js";
10
+ import type { MessageContext } from "../messageContext/messageContextType.type.js";
11
+ /**
12
+ * Result of handling a message.
13
+ *
14
+ * Handlers can return either a value directly or a structured
15
+ * result with metadata.
16
+ */
17
+ export interface HandlerResult<TResult = unknown> {
18
+ /** The result value. */
19
+ readonly value: TResult;
20
+ /** Optional result metadata. */
21
+ readonly metadata?: Readonly<Record<string, unknown>>;
22
+ }
23
+ /**
24
+ * A function that handles a message and returns a result.
25
+ *
26
+ * @typeParam TMessage - The message type to handle
27
+ * @typeParam TResult - The result type returned by the handler
28
+ */
29
+ export type MessageHandler<TMessage extends Message = Message, TResult = unknown> = (message: TMessage, context: MessageContext) => Promise<TResult> | TResult;
30
+ /**
31
+ * Message handler with metadata.
32
+ */
33
+ export interface NamedMessageHandler<TMessage extends Message = Message, TResult = unknown> {
34
+ /** Unique handler identifier. */
35
+ readonly id: string;
36
+ /** Human-readable name for debugging. */
37
+ readonly name: string;
38
+ /** The handler function. */
39
+ readonly handler: MessageHandler<TMessage, TResult>;
40
+ /** Message types this handler processes. */
41
+ readonly messageTypes: readonly string[];
42
+ /** Execution priority (lower = earlier). Default: 100. */
43
+ readonly priority?: number;
44
+ /** Whether this handler is enabled. */
45
+ readonly enabled?: boolean;
46
+ }
47
+ /**
48
+ * A handler-like value: either a function or an object with a
49
+ * handle method.
50
+ */
51
+ export type MessageHandlerLike<TMessage extends Message = Message, TResult = unknown> = MessageHandler<TMessage, TResult> | {
52
+ handle: MessageHandler<TMessage, TResult>;
53
+ };
54
+ /**
55
+ * Handler factory function.
56
+ */
57
+ export type MessageHandlerFactory<TMessage extends Message = Message, TResult = unknown> = (options?: Record<string, unknown>) => NamedMessageHandler<TMessage, TResult>;
58
+ /**
59
+ * Resolves a MessageHandlerLike to a plain MessageHandler function.
60
+ */
61
+ export declare function resolveMessageHandler<TMessage extends Message = Message, TResult = unknown>(handler: MessageHandlerLike<TMessage, TResult>): MessageHandler<TMessage, TResult>;
62
+ //# sourceMappingURL=messageHandlerType.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageHandlerType.type.d.ts","sourceRoot":"","sources":["../../src/messageHandler/messageHandlerType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,OAAO,EAER,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,cAAc,EACf,MAAM,8CAA8C,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,OAAO;IAC9C,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CACxB,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,OAAO,GAAG,OAAO,IACf,CACF,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAClC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,OAAO,GAAG,OAAO;IAEjB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEpD,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAC5B,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,OAAO,GAAG,OAAO,IAEf,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,GACjC;IAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAC/B,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,OAAO,GAAG,OAAO,IACf,CACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE5C;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,OAAO,GAAG,OAAO,EAEjB,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAC7C,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAKnC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * MessageHandler type definitions for Lattice.
3
+ *
4
+ * Handlers are the consumer side of the messaging system.
5
+ * They receive messages and produce results.
6
+ *
7
+ * @module messageHandler/messageHandlerType
8
+ */
9
+ /**
10
+ * Resolves a MessageHandlerLike to a plain MessageHandler function.
11
+ */
12
+ export function resolveMessageHandler(handler) {
13
+ if (typeof handler === "function") {
14
+ return handler;
15
+ }
16
+ return handler.handle;
17
+ }
18
+ //# sourceMappingURL=messageHandlerType.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageHandlerType.type.js","sourceRoot":"","sources":["../../src/messageHandler/messageHandlerType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsFH;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAInC,OAA8C;IAE9C,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @oyinlola141/lattice-messaging/messageMiddleware
3
+ *
4
+ * Message middleware type definitions and pipeline execution.
5
+ */
6
+ export type { MessageMiddlewareContext, MessageMiddlewareNext, MessageMiddleware, MessageMiddlewareObject, MessageMiddlewareLike, MessageMiddlewareOptions, RegisteredMessageMiddleware, MessageMiddlewareExecution, MessageMiddlewarePipelineResult, MessageMiddlewarePipelineOptions, } from "./messageMiddlewareType.type.js";
7
+ export { runMessagePipeline } from "./messageMiddlewarePipeline.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messageMiddleware/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @latticejs/messaging/messageMiddleware
3
+ *
4
+ * Message middleware type definitions and pipeline execution.
5
+ */
6
+ export { runMessagePipeline } from "./messageMiddlewarePipeline.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messageMiddleware/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Message middleware composition and pipeline execution.
3
+ *
4
+ * @module messageMiddleware/messageMiddlewarePipeline
5
+ */
6
+ import type { MessageMiddlewareLike, MessageMiddlewareContext, MessageMiddlewarePipelineResult, MessageMiddlewarePipelineOptions } from "./messageMiddlewareType.type.js";
7
+ import type { Message } from "../message/messageType.type.js";
8
+ /**
9
+ * Runs a handler through a middleware pipeline and returns the
10
+ * result with execution metadata.
11
+ */
12
+ export declare function runMessagePipeline<TResult>(middlewareList: readonly MessageMiddlewareLike<Message, TResult>[], handler: (message: Message, context: MessageMiddlewareContext<Message>) => Promise<TResult>, message: Message, options?: MessageMiddlewarePipelineOptions): Promise<MessageMiddlewarePipelineResult<TResult>>;
13
+ //# sourceMappingURL=messageMiddlewarePipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageMiddlewarePipeline.d.ts","sourceRoot":"","sources":["../../src/messageMiddleware/messageMiddlewarePipeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,qBAAqB,EAErB,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAEjC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,OAAO,EAGR,MAAM,gCAAgC,CAAC;AAgDxC;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAC9C,cAAc,EAAE,SAAS,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAClE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAC3F,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC,CA6DnD"}