@zudojs/cqrs 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -0
- package/dist/command/command.core.d.ts +47 -0
- package/dist/command/command.core.d.ts.map +1 -0
- package/dist/command/command.core.js +58 -0
- package/dist/command/command.core.js.map +1 -0
- package/dist/command/commandBus.core.d.ts +91 -0
- package/dist/command/commandBus.core.d.ts.map +1 -0
- package/dist/command/commandBus.core.js +177 -0
- package/dist/command/commandBus.core.js.map +1 -0
- package/dist/command/commandHandler.core.d.ts +43 -0
- package/dist/command/commandHandler.core.d.ts.map +1 -0
- package/dist/command/commandHandler.core.js +57 -0
- package/dist/command/commandHandler.core.js.map +1 -0
- package/dist/command/commandResult.type.d.ts +57 -0
- package/dist/command/commandResult.type.d.ts.map +1 -0
- package/dist/command/commandResult.type.js +86 -0
- package/dist/command/commandResult.type.js.map +1 -0
- package/dist/command/index.d.ts +10 -0
- package/dist/command/index.d.ts.map +1 -0
- package/dist/command/index.js +10 -0
- package/dist/command/index.js.map +1 -0
- package/dist/cqrsContext/cqrsContext.core.d.ts +97 -0
- package/dist/cqrsContext/cqrsContext.core.d.ts.map +1 -0
- package/dist/cqrsContext/cqrsContext.core.js +171 -0
- package/dist/cqrsContext/cqrsContext.core.js.map +1 -0
- package/dist/cqrsContext/index.d.ts +7 -0
- package/dist/cqrsContext/index.d.ts.map +1 -0
- package/dist/cqrsContext/index.js +7 -0
- package/dist/cqrsContext/index.js.map +1 -0
- package/dist/cqrsDecorators/cqrsDecorators.core.d.ts +108 -0
- package/dist/cqrsDecorators/cqrsDecorators.core.d.ts.map +1 -0
- package/dist/cqrsDecorators/cqrsDecorators.core.js +181 -0
- package/dist/cqrsDecorators/cqrsDecorators.core.js.map +1 -0
- package/dist/cqrsDecorators/index.d.ts +7 -0
- package/dist/cqrsDecorators/index.d.ts.map +1 -0
- package/dist/cqrsDecorators/index.js +7 -0
- package/dist/cqrsDecorators/index.js.map +1 -0
- package/dist/cqrsErrors/cqrsError.base.d.ts +85 -0
- package/dist/cqrsErrors/cqrsError.base.d.ts.map +1 -0
- package/dist/cqrsErrors/cqrsError.base.js +221 -0
- package/dist/cqrsErrors/cqrsError.base.js.map +1 -0
- package/dist/cqrsErrors/index.d.ts +7 -0
- package/dist/cqrsErrors/index.d.ts.map +1 -0
- package/dist/cqrsErrors/index.js +7 -0
- package/dist/cqrsErrors/index.js.map +1 -0
- package/dist/cqrsEvents/cqrsEventBus.core.d.ts +9 -0
- package/dist/cqrsEvents/cqrsEventBus.core.d.ts.map +1 -0
- package/dist/cqrsEvents/cqrsEventBus.core.js +9 -0
- package/dist/cqrsEvents/cqrsEventBus.core.js.map +1 -0
- package/dist/cqrsEvents/cqrsEventResult.type.d.ts +81 -0
- package/dist/cqrsEvents/cqrsEventResult.type.d.ts.map +1 -0
- package/dist/cqrsEvents/cqrsEventResult.type.js +159 -0
- package/dist/cqrsEvents/cqrsEventResult.type.js.map +1 -0
- package/dist/cqrsEvents/cqrsEvents.type.d.ts +102 -0
- package/dist/cqrsEvents/cqrsEvents.type.d.ts.map +1 -0
- package/dist/cqrsEvents/cqrsEvents.type.js +103 -0
- package/dist/cqrsEvents/cqrsEvents.type.js.map +1 -0
- package/dist/cqrsEvents/index.d.ts +12 -0
- package/dist/cqrsEvents/index.d.ts.map +1 -0
- package/dist/cqrsEvents/index.js +12 -0
- package/dist/cqrsEvents/index.js.map +1 -0
- package/dist/cqrsMiddleware/cqrsMiddleware.core.d.ts +65 -0
- package/dist/cqrsMiddleware/cqrsMiddleware.core.d.ts.map +1 -0
- package/dist/cqrsMiddleware/cqrsMiddleware.core.js +185 -0
- package/dist/cqrsMiddleware/cqrsMiddleware.core.js.map +1 -0
- package/dist/cqrsMiddleware/index.d.ts +7 -0
- package/dist/cqrsMiddleware/index.d.ts.map +1 -0
- package/dist/cqrsMiddleware/index.js +7 -0
- package/dist/cqrsMiddleware/index.js.map +1 -0
- package/dist/cqrsTypes/cqrsTypes.type.d.ts +158 -0
- package/dist/cqrsTypes/cqrsTypes.type.d.ts.map +1 -0
- package/dist/cqrsTypes/cqrsTypes.type.js +34 -0
- package/dist/cqrsTypes/cqrsTypes.type.js.map +1 -0
- package/dist/cqrsTypes/index.d.ts +7 -0
- package/dist/cqrsTypes/index.d.ts.map +1 -0
- package/dist/cqrsTypes/index.js +7 -0
- package/dist/cqrsTypes/index.js.map +1 -0
- package/dist/handlerRegistry/handlerRegistry.core.d.ts +135 -0
- package/dist/handlerRegistry/handlerRegistry.core.d.ts.map +1 -0
- package/dist/handlerRegistry/handlerRegistry.core.js +209 -0
- package/dist/handlerRegistry/handlerRegistry.core.js.map +1 -0
- package/dist/handlerRegistry/index.d.ts +7 -0
- package/dist/handlerRegistry/index.d.ts.map +1 -0
- package/dist/handlerRegistry/index.js +7 -0
- package/dist/handlerRegistry/index.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/query/index.d.ts +10 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +10 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/query.core.d.ts +50 -0
- package/dist/query/query.core.d.ts.map +1 -0
- package/dist/query/query.core.js +61 -0
- package/dist/query/query.core.js.map +1 -0
- package/dist/query/queryBus.core.d.ts +91 -0
- package/dist/query/queryBus.core.d.ts.map +1 -0
- package/dist/query/queryBus.core.js +177 -0
- package/dist/query/queryBus.core.js.map +1 -0
- package/dist/query/queryHandler.core.d.ts +43 -0
- package/dist/query/queryHandler.core.d.ts.map +1 -0
- package/dist/query/queryHandler.core.js +57 -0
- package/dist/query/queryHandler.core.js.map +1 -0
- package/dist/query/queryResult.type.d.ts +56 -0
- package/dist/query/queryResult.type.d.ts.map +1 -0
- package/dist/query/queryResult.type.js +86 -0
- package/dist/query/queryResult.type.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata key used to identify CQRS handler configuration.
|
|
3
|
+
*/
|
|
4
|
+
const CQRS_HANDLER_METADATA = Symbol.for("zudojs.cqrs.handler");
|
|
5
|
+
/**
|
|
6
|
+
* Metadata key used to identify command handler configuration.
|
|
7
|
+
*/
|
|
8
|
+
const COMMAND_HANDLER_METADATA = Symbol.for("zudojs.cqrs.command-handler");
|
|
9
|
+
/**
|
|
10
|
+
* Metadata key used to identify query handler configuration.
|
|
11
|
+
*/
|
|
12
|
+
const QUERY_HANDLER_METADATA = Symbol.for("zudojs.cqrs.query-handler");
|
|
13
|
+
/**
|
|
14
|
+
* Metadata key used to identify command/query type information.
|
|
15
|
+
*/
|
|
16
|
+
const CQRS_TYPE_METADATA = Symbol.for("zudojs.cqrs.type");
|
|
17
|
+
/**
|
|
18
|
+
* Marks a class as a CQRS handler.
|
|
19
|
+
*
|
|
20
|
+
* This decorator is useful when a framework or dependency injection
|
|
21
|
+
* container needs to discover handlers automatically.
|
|
22
|
+
*/
|
|
23
|
+
export function CqrsHandler(kind, type) {
|
|
24
|
+
validateHandlerMetadata(kind, type);
|
|
25
|
+
return (target) => {
|
|
26
|
+
const constructor = target;
|
|
27
|
+
const metadata = Object.freeze({
|
|
28
|
+
kind,
|
|
29
|
+
type,
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(constructor, CQRS_HANDLER_METADATA, {
|
|
32
|
+
configurable: false,
|
|
33
|
+
enumerable: false,
|
|
34
|
+
writable: false,
|
|
35
|
+
value: metadata,
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(constructor, CQRS_TYPE_METADATA, {
|
|
38
|
+
configurable: false,
|
|
39
|
+
enumerable: false,
|
|
40
|
+
writable: false,
|
|
41
|
+
value: type,
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Marks a class as a command handler.
|
|
47
|
+
*/
|
|
48
|
+
export function CommandHandler(type) {
|
|
49
|
+
validateHandlerMetadata("command", type);
|
|
50
|
+
return (target) => {
|
|
51
|
+
const constructor = target;
|
|
52
|
+
const metadata = Object.freeze({
|
|
53
|
+
kind: "command",
|
|
54
|
+
type,
|
|
55
|
+
});
|
|
56
|
+
Object.defineProperty(constructor, COMMAND_HANDLER_METADATA, {
|
|
57
|
+
configurable: false,
|
|
58
|
+
enumerable: false,
|
|
59
|
+
writable: false,
|
|
60
|
+
value: metadata,
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(constructor, CQRS_HANDLER_METADATA, {
|
|
63
|
+
configurable: false,
|
|
64
|
+
enumerable: false,
|
|
65
|
+
writable: false,
|
|
66
|
+
value: metadata,
|
|
67
|
+
});
|
|
68
|
+
Object.defineProperty(constructor, CQRS_TYPE_METADATA, {
|
|
69
|
+
configurable: false,
|
|
70
|
+
enumerable: false,
|
|
71
|
+
writable: false,
|
|
72
|
+
value: type,
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Marks a class as a query handler.
|
|
78
|
+
*/
|
|
79
|
+
export function QueryHandler(type) {
|
|
80
|
+
validateHandlerMetadata("query", type);
|
|
81
|
+
return (target) => {
|
|
82
|
+
const constructor = target;
|
|
83
|
+
const metadata = Object.freeze({
|
|
84
|
+
kind: "query",
|
|
85
|
+
type,
|
|
86
|
+
});
|
|
87
|
+
Object.defineProperty(constructor, QUERY_HANDLER_METADATA, {
|
|
88
|
+
configurable: false,
|
|
89
|
+
enumerable: false,
|
|
90
|
+
writable: false,
|
|
91
|
+
value: metadata,
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(constructor, CQRS_HANDLER_METADATA, {
|
|
94
|
+
configurable: false,
|
|
95
|
+
enumerable: false,
|
|
96
|
+
writable: false,
|
|
97
|
+
value: metadata,
|
|
98
|
+
});
|
|
99
|
+
Object.defineProperty(constructor, CQRS_TYPE_METADATA, {
|
|
100
|
+
configurable: false,
|
|
101
|
+
enumerable: false,
|
|
102
|
+
writable: false,
|
|
103
|
+
value: type,
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Reads generic CQRS handler metadata from a class.
|
|
109
|
+
*/
|
|
110
|
+
export function getCqrsHandlerMetadata(target) {
|
|
111
|
+
if (typeof target !== "function") {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return target[CQRS_HANDLER_METADATA] ?? undefined;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Reads command handler metadata from a class.
|
|
118
|
+
*/
|
|
119
|
+
export function getCommandHandlerMetadata(target) {
|
|
120
|
+
if (typeof target !== "function") {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
return target[COMMAND_HANDLER_METADATA] ?? undefined;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Reads query handler metadata from a class.
|
|
127
|
+
*/
|
|
128
|
+
export function getQueryHandlerMetadata(target) {
|
|
129
|
+
if (typeof target !== "function") {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
return target[QUERY_HANDLER_METADATA] ?? undefined;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Reads the CQRS type discriminator from a class.
|
|
136
|
+
*/
|
|
137
|
+
export function getCqrsType(target) {
|
|
138
|
+
if (typeof target !== "function") {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
return target[CQRS_TYPE_METADATA] ?? undefined;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Determines whether a class is decorated as a CQRS handler.
|
|
145
|
+
*/
|
|
146
|
+
export function isCqrsHandler(target) {
|
|
147
|
+
return getCqrsHandlerMetadata(target) !== undefined;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Determines whether a class is decorated as a command handler.
|
|
151
|
+
*/
|
|
152
|
+
export function isCommandHandler(target) {
|
|
153
|
+
return getCommandHandlerMetadata(target) !== undefined;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Determines whether a class is decorated as a query handler.
|
|
157
|
+
*/
|
|
158
|
+
export function isQueryHandler(target) {
|
|
159
|
+
return getQueryHandlerMetadata(target) !== undefined;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Creates a reusable command handler decorator.
|
|
163
|
+
*/
|
|
164
|
+
export function createCommandHandlerDecorator(type) {
|
|
165
|
+
return CommandHandler(type);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Creates a reusable query handler decorator.
|
|
169
|
+
*/
|
|
170
|
+
export function createQueryHandlerDecorator(type) {
|
|
171
|
+
return QueryHandler(type);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Validates decorator arguments.
|
|
175
|
+
*/
|
|
176
|
+
function validateHandlerMetadata(kind, type) {
|
|
177
|
+
if (typeof type !== "string" || type.trim().length === 0) {
|
|
178
|
+
throw new TypeError(`${kind} handler type cannot be empty.`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=cqrsDecorators.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cqrsDecorators.core.js","sourceRoot":"","sources":["../../src/cqrsDecorators/cqrsDecorators.core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cqrsDecorators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cqrsDecorators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { BaseError, type ErrorMetadata } from "@zudojs/errors";
|
|
2
|
+
/**
|
|
3
|
+
* Base error for failures originating from the CQRS package.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CqrsError extends BaseError {
|
|
6
|
+
constructor(message: string, options?: ConstructorParameters<typeof BaseError>[1]);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Thrown when a CQRS request is invalid.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CqrsValidationError extends CqrsError {
|
|
12
|
+
constructor(message?: string, metadata?: ErrorMetadata);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Thrown when a command handler cannot be resolved.
|
|
16
|
+
*/
|
|
17
|
+
export declare class CommandHandlerNotFoundError extends CqrsError {
|
|
18
|
+
readonly commandType: string;
|
|
19
|
+
constructor(commandType: string);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Thrown when a query handler cannot be resolved.
|
|
23
|
+
*/
|
|
24
|
+
export declare class QueryHandlerNotFoundError extends CqrsError {
|
|
25
|
+
readonly queryType: string;
|
|
26
|
+
constructor(queryType: string);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Thrown when an event handler fails during publication.
|
|
30
|
+
*/
|
|
31
|
+
export declare class EventHandlerExecutionError extends CqrsError {
|
|
32
|
+
readonly eventType: string;
|
|
33
|
+
readonly eventId?: string;
|
|
34
|
+
constructor(eventType: string, eventId?: string, cause?: unknown);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Thrown when attempting to register a duplicate handler.
|
|
38
|
+
*/
|
|
39
|
+
export declare class DuplicateHandlerError extends CqrsError {
|
|
40
|
+
readonly handlerKind: "command" | "query";
|
|
41
|
+
readonly handlerType: string;
|
|
42
|
+
constructor(handlerKind: "command" | "query", handlerType: string);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Thrown when an event cannot be published.
|
|
46
|
+
*/
|
|
47
|
+
export declare class EventPublishError extends CqrsError {
|
|
48
|
+
readonly eventType: string;
|
|
49
|
+
readonly eventId?: string;
|
|
50
|
+
constructor(eventType: string, eventId?: string, cause?: unknown);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Thrown when a handler is registered with an invalid type.
|
|
54
|
+
*/
|
|
55
|
+
export declare class InvalidHandlerTypeError extends CqrsValidationError {
|
|
56
|
+
readonly handlerKind: "command" | "query" | "event";
|
|
57
|
+
constructor(handlerKind: "command" | "query" | "event", handlerType: unknown);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Thrown when CQRS middleware is invalid.
|
|
61
|
+
*/
|
|
62
|
+
export declare class InvalidMiddlewareError extends CqrsValidationError {
|
|
63
|
+
constructor(message?: string, metadata?: ErrorMetadata);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Thrown when middleware invokes next() more than once.
|
|
67
|
+
*/
|
|
68
|
+
export declare class MiddlewareExecutionError extends CqrsError {
|
|
69
|
+
constructor(message?: string, cause?: unknown);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Thrown when a CQRS handler has not been configured correctly.
|
|
73
|
+
*/
|
|
74
|
+
export declare class HandlerConfigurationError extends CqrsError {
|
|
75
|
+
constructor(message?: string, metadata?: ErrorMetadata);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Determines whether an unknown value is a CQRS error.
|
|
79
|
+
*/
|
|
80
|
+
export declare function isCqrsError(error: unknown): error is CqrsError;
|
|
81
|
+
/**
|
|
82
|
+
* Converts an unknown error into a CQRS error.
|
|
83
|
+
*/
|
|
84
|
+
export declare function toCqrsError(error: unknown, message?: string): CqrsError;
|
|
85
|
+
//# sourceMappingURL=cqrsError.base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cqrsError.base.d.ts","sourceRoot":"","sources":["../../src/cqrsErrors/cqrsError.base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIT,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACtC,YACE,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAM,EAWzD;CACF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,YACE,OAAO,SAAiC,EACxC,QAAQ,CAAC,EAAE,aAAa,EAWzB;CACF;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,SAAS;IACxD,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,YAAY,WAAW,EAAE,MAAM,EAc9B;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,SAAS;IACtD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,YAAY,SAAS,EAAE,MAAM,EAc5B;CACF;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,SAAS;IACvD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjC,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAkB/D;CACF;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,SAAgB,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC;IAEjD,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,YAAY,WAAW,EAAE,SAAS,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,EAoBhE;CACF;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjC,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAkB/D;CACF;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,SAAgB,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAE3D,YACE,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EAC1C,WAAW,EAAE,OAAO,EAQrB;CACF;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,OAAO,SAA6B,EAAE,QAAQ,CAAC,EAAE,aAAa,EAEzE;CACF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,SAAS;IACrD,YACE,OAAO,SAAkD,EACzD,KAAK,CAAC,EAAE,OAAO,EAWhB;CACF;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,SAAS;IACtD,YACE,OAAO,SAAgD,EACvD,QAAQ,CAAC,EAAE,aAAa,EAWzB;CACF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,SAA2B,GACjC,SAAS,CAcX"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { BaseError, ErrorCategory, ErrorCode, ErrorSeverity, } from "@zudojs/errors";
|
|
2
|
+
/**
|
|
3
|
+
* Base error for failures originating from the CQRS package.
|
|
4
|
+
*/
|
|
5
|
+
export class CqrsError extends BaseError {
|
|
6
|
+
constructor(message, options = {}) {
|
|
7
|
+
super(message, {
|
|
8
|
+
code: options.code ?? ErrorCode.INTERNAL_ERROR,
|
|
9
|
+
category: options.category ?? ErrorCategory.SYSTEM,
|
|
10
|
+
severity: options.severity ?? ErrorSeverity.ERROR,
|
|
11
|
+
statusCode: options.statusCode ?? 500,
|
|
12
|
+
expose: options.expose ?? false,
|
|
13
|
+
isOperational: options.isOperational ?? true,
|
|
14
|
+
...options,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Thrown when a CQRS request is invalid.
|
|
20
|
+
*/
|
|
21
|
+
export class CqrsValidationError extends CqrsError {
|
|
22
|
+
constructor(message = "The CQRS request is invalid.", metadata) {
|
|
23
|
+
super(message, {
|
|
24
|
+
code: ErrorCode.INVALID_INPUT,
|
|
25
|
+
category: ErrorCategory.VALIDATION,
|
|
26
|
+
severity: ErrorSeverity.WARNING,
|
|
27
|
+
statusCode: 400,
|
|
28
|
+
expose: true,
|
|
29
|
+
isOperational: true,
|
|
30
|
+
metadata: metadata,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Thrown when a command handler cannot be resolved.
|
|
36
|
+
*/
|
|
37
|
+
export class CommandHandlerNotFoundError extends CqrsError {
|
|
38
|
+
commandType;
|
|
39
|
+
constructor(commandType) {
|
|
40
|
+
super(`No command handler is registered for "${commandType}".`, {
|
|
41
|
+
code: ErrorCode.COMMAND_HANDLER_NOT_FOUND,
|
|
42
|
+
category: ErrorCategory.SYSTEM,
|
|
43
|
+
severity: ErrorSeverity.ERROR,
|
|
44
|
+
statusCode: 500,
|
|
45
|
+
expose: false,
|
|
46
|
+
isOperational: true,
|
|
47
|
+
metadata: {
|
|
48
|
+
commandType,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
this.commandType = commandType;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Thrown when a query handler cannot be resolved.
|
|
56
|
+
*/
|
|
57
|
+
export class QueryHandlerNotFoundError extends CqrsError {
|
|
58
|
+
queryType;
|
|
59
|
+
constructor(queryType) {
|
|
60
|
+
super(`No query handler is registered for "${queryType}".`, {
|
|
61
|
+
code: ErrorCode.QUERY_HANDLER_NOT_FOUND,
|
|
62
|
+
category: ErrorCategory.SYSTEM,
|
|
63
|
+
severity: ErrorSeverity.ERROR,
|
|
64
|
+
statusCode: 500,
|
|
65
|
+
expose: false,
|
|
66
|
+
isOperational: true,
|
|
67
|
+
metadata: {
|
|
68
|
+
queryType,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
this.queryType = queryType;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Thrown when an event handler fails during publication.
|
|
76
|
+
*/
|
|
77
|
+
export class EventHandlerExecutionError extends CqrsError {
|
|
78
|
+
eventType;
|
|
79
|
+
eventId;
|
|
80
|
+
constructor(eventType, eventId, cause) {
|
|
81
|
+
super(`An event handler failed while processing "${eventType}".`, {
|
|
82
|
+
code: ErrorCode.EVENT_HANDLER_FAILED,
|
|
83
|
+
category: ErrorCategory.SYSTEM,
|
|
84
|
+
severity: ErrorSeverity.ERROR,
|
|
85
|
+
statusCode: 500,
|
|
86
|
+
expose: false,
|
|
87
|
+
isOperational: true,
|
|
88
|
+
cause,
|
|
89
|
+
metadata: {
|
|
90
|
+
eventType,
|
|
91
|
+
eventId,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
this.eventType = eventType;
|
|
95
|
+
this.eventId = eventId;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Thrown when attempting to register a duplicate handler.
|
|
100
|
+
*/
|
|
101
|
+
export class DuplicateHandlerError extends CqrsError {
|
|
102
|
+
handlerKind;
|
|
103
|
+
handlerType;
|
|
104
|
+
constructor(handlerKind, handlerType) {
|
|
105
|
+
super(`A ${handlerKind} handler is already registered for "${handlerType}".`, {
|
|
106
|
+
code: ErrorCode.CONFLICT,
|
|
107
|
+
category: ErrorCategory.CONFLICT,
|
|
108
|
+
severity: ErrorSeverity.WARNING,
|
|
109
|
+
statusCode: 409,
|
|
110
|
+
expose: true,
|
|
111
|
+
isOperational: true,
|
|
112
|
+
metadata: {
|
|
113
|
+
handlerKind,
|
|
114
|
+
handlerType,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
this.handlerKind = handlerKind;
|
|
118
|
+
this.handlerType = handlerType;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Thrown when an event cannot be published.
|
|
123
|
+
*/
|
|
124
|
+
export class EventPublishError extends CqrsError {
|
|
125
|
+
eventType;
|
|
126
|
+
eventId;
|
|
127
|
+
constructor(eventType, eventId, cause) {
|
|
128
|
+
super(`Failed to publish event "${eventType}".`, {
|
|
129
|
+
code: ErrorCode.EVENT_HANDLER_FAILED,
|
|
130
|
+
category: ErrorCategory.SYSTEM,
|
|
131
|
+
severity: ErrorSeverity.ERROR,
|
|
132
|
+
statusCode: 500,
|
|
133
|
+
expose: false,
|
|
134
|
+
isOperational: true,
|
|
135
|
+
cause,
|
|
136
|
+
metadata: {
|
|
137
|
+
eventType,
|
|
138
|
+
eventId,
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
this.eventType = eventType;
|
|
142
|
+
this.eventId = eventId;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Thrown when a handler is registered with an invalid type.
|
|
147
|
+
*/
|
|
148
|
+
export class InvalidHandlerTypeError extends CqrsValidationError {
|
|
149
|
+
handlerKind;
|
|
150
|
+
constructor(handlerKind, handlerType) {
|
|
151
|
+
super(`Invalid ${handlerKind} handler type: "${String(handlerType)}".`, {
|
|
152
|
+
handlerKind,
|
|
153
|
+
handlerType: String(handlerType),
|
|
154
|
+
});
|
|
155
|
+
this.handlerKind = handlerKind;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Thrown when CQRS middleware is invalid.
|
|
160
|
+
*/
|
|
161
|
+
export class InvalidMiddlewareError extends CqrsValidationError {
|
|
162
|
+
constructor(message = "Invalid CQRS middleware.", metadata) {
|
|
163
|
+
super(message, metadata);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Thrown when middleware invokes next() more than once.
|
|
168
|
+
*/
|
|
169
|
+
export class MiddlewareExecutionError extends CqrsError {
|
|
170
|
+
constructor(message = "CQRS middleware called next() more than once.", cause) {
|
|
171
|
+
super(message, {
|
|
172
|
+
code: ErrorCode.INTERNAL_ERROR,
|
|
173
|
+
category: ErrorCategory.SYSTEM,
|
|
174
|
+
severity: ErrorSeverity.ERROR,
|
|
175
|
+
statusCode: 500,
|
|
176
|
+
expose: false,
|
|
177
|
+
isOperational: true,
|
|
178
|
+
cause,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Thrown when a CQRS handler has not been configured correctly.
|
|
184
|
+
*/
|
|
185
|
+
export class HandlerConfigurationError extends CqrsError {
|
|
186
|
+
constructor(message = "The CQRS handler is incorrectly configured.", metadata) {
|
|
187
|
+
super(message, {
|
|
188
|
+
code: ErrorCode.CONFIGURATION_ERROR,
|
|
189
|
+
category: ErrorCategory.CONFIGURATION,
|
|
190
|
+
severity: ErrorSeverity.ERROR,
|
|
191
|
+
statusCode: 500,
|
|
192
|
+
expose: false,
|
|
193
|
+
isOperational: true,
|
|
194
|
+
metadata: metadata,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Determines whether an unknown value is a CQRS error.
|
|
200
|
+
*/
|
|
201
|
+
export function isCqrsError(error) {
|
|
202
|
+
return error instanceof CqrsError;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Converts an unknown error into a CQRS error.
|
|
206
|
+
*/
|
|
207
|
+
export function toCqrsError(error, message = "CQRS execution failed.") {
|
|
208
|
+
if (error instanceof CqrsError) {
|
|
209
|
+
return error;
|
|
210
|
+
}
|
|
211
|
+
return new CqrsError(error instanceof Error ? error.message : message, {
|
|
212
|
+
code: ErrorCode.INTERNAL_ERROR,
|
|
213
|
+
category: ErrorCategory.SYSTEM,
|
|
214
|
+
severity: ErrorSeverity.ERROR,
|
|
215
|
+
statusCode: 500,
|
|
216
|
+
expose: false,
|
|
217
|
+
isOperational: false,
|
|
218
|
+
cause: error,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=cqrsError.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cqrsError.base.js","sourceRoot":"","sources":["../../src/cqrsErrors/cqrsError.base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cqrsErrors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cqrsErrors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CQRS event bus.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the Zudojs EventBus and factory functions.
|
|
5
|
+
* The base EventBus supports all CQRS publishing needs with
|
|
6
|
+
* middleware, registry, and emitter infrastructure.
|
|
7
|
+
*/
|
|
8
|
+
export { EventBus, type EventBusOptions, type EventPublishResult, createEventBus, createStartedEventBus, type PublishOptions, EventBusState, type EventBusEvent, type EventBusListener, } from "@zudojs/events";
|
|
9
|
+
//# sourceMappingURL=cqrsEventBus.core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cqrsEventBus.core.d.ts","sourceRoot":"","sources":["../../src/cqrsEvents/cqrsEventBus.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,cAAc,EACd,qBAAqB,EACrB,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CQRS event bus.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the Zudojs EventBus and factory functions.
|
|
5
|
+
* The base EventBus supports all CQRS publishing needs with
|
|
6
|
+
* middleware, registry, and emitter infrastructure.
|
|
7
|
+
*/
|
|
8
|
+
export { EventBus, createEventBus, createStartedEventBus, EventBusState, } from "@zudojs/events";
|
|
9
|
+
//# sourceMappingURL=cqrsEventBus.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cqrsEventBus.core.js","sourceRoot":"","sources":["../../src/cqrsEvents/cqrsEventBus.core.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAGR,cAAc,EACd,qBAAqB,EAErB,aAAa,GAGd,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Event } from "@zudojs/events";
|
|
2
|
+
/**
|
|
3
|
+
* Status of an event publication.
|
|
4
|
+
*/
|
|
5
|
+
export type EventResultStatus = "published" | "partial" | "failed";
|
|
6
|
+
/**
|
|
7
|
+
* Result returned after publishing an event.
|
|
8
|
+
*
|
|
9
|
+
* This represents the outcome of event dispatching, not the business
|
|
10
|
+
* result of the event itself.
|
|
11
|
+
*/
|
|
12
|
+
export interface EventResult<TEvent extends Event = Event> {
|
|
13
|
+
readonly status: EventResultStatus;
|
|
14
|
+
readonly eventType: TEvent["type"];
|
|
15
|
+
readonly eventId: string;
|
|
16
|
+
readonly handlerCount: number;
|
|
17
|
+
readonly successfulHandlers: number;
|
|
18
|
+
readonly failedHandlers: number;
|
|
19
|
+
readonly publishedAt: Date;
|
|
20
|
+
readonly durationMs?: number;
|
|
21
|
+
readonly errors?: readonly unknown[];
|
|
22
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Options used to create an event result.
|
|
26
|
+
*/
|
|
27
|
+
export interface CreateEventResultOptions<TEvent extends Event = Event> {
|
|
28
|
+
readonly event: TEvent;
|
|
29
|
+
readonly handlerCount: number;
|
|
30
|
+
readonly successfulHandlers?: number;
|
|
31
|
+
readonly failedHandlers?: number;
|
|
32
|
+
readonly publishedAt?: Date;
|
|
33
|
+
readonly durationMs?: number;
|
|
34
|
+
readonly errors?: readonly unknown[];
|
|
35
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates an event publication result.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createEventResult<TEvent extends Event>(options: CreateEventResultOptions<TEvent>): EventResult<TEvent>;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a result for a completely successful publication.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createSuccessfulEventResult<TEvent extends Event>(event: TEvent, handlerCount: number, options?: Omit<CreateEventResultOptions<TEvent>, "event" | "handlerCount" | "successfulHandlers" | "failedHandlers">): EventResult<TEvent>;
|
|
45
|
+
/**
|
|
46
|
+
* Creates a result for a partially successful publication.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createPartialEventResult<TEvent extends Event>(event: TEvent, handlerCount: number, successfulHandlers: number, failedHandlers: number, options?: Omit<CreateEventResultOptions<TEvent>, "event" | "handlerCount" | "successfulHandlers" | "failedHandlers">): EventResult<TEvent>;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a result for a completely failed publication.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createFailedEventResult<TEvent extends Event>(event: TEvent, handlerCount: number, errors?: readonly unknown[], options?: Omit<CreateEventResultOptions<TEvent>, "event" | "handlerCount" | "successfulHandlers" | "failedHandlers" | "errors">): EventResult<TEvent>;
|
|
53
|
+
/**
|
|
54
|
+
* Determines whether an event was published successfully.
|
|
55
|
+
*/
|
|
56
|
+
export declare function isEventPublished<TEvent extends Event>(result: EventResult<TEvent>): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Determines whether event publication partially succeeded.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isEventPartiallyPublished<TEvent extends Event>(result: EventResult<TEvent>): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Determines whether event publication failed.
|
|
63
|
+
*/
|
|
64
|
+
export declare function isEventFailed<TEvent extends Event>(result: EventResult<TEvent>): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Determines whether any event handlers failed.
|
|
67
|
+
*/
|
|
68
|
+
export declare function hasEventHandlerFailures<TEvent extends Event>(result: EventResult<TEvent>): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Determines whether every registered handler succeeded.
|
|
71
|
+
*/
|
|
72
|
+
export declare function allEventHandlersSucceeded<TEvent extends Event>(result: EventResult<TEvent>): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Returns the errors captured during publication.
|
|
75
|
+
*/
|
|
76
|
+
export declare function getEventErrors<TEvent extends Event>(result: EventResult<TEvent>): readonly unknown[];
|
|
77
|
+
/**
|
|
78
|
+
* Adds metadata to an event result.
|
|
79
|
+
*/
|
|
80
|
+
export declare function withEventResultMetadata<TEvent extends Event>(result: EventResult<TEvent>, metadata: Readonly<Record<string, unknown>>): EventResult<TEvent>;
|
|
81
|
+
//# sourceMappingURL=cqrsEventResult.type.d.ts.map
|