@anatix/runtime 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contracts/service-options.d.ts +0 -5
- package/dist/contracts/service-options.d.ts.map +1 -1
- package/dist/decorators/filters/exception-filter.config.d.ts +7 -0
- package/dist/decorators/filters/exception-filter.config.d.ts.map +1 -0
- package/dist/decorators/filters/exception-filter.config.js +9 -0
- package/dist/decorators/filters/exception-filter.config.js.map +1 -0
- package/dist/decorators/filters/global-exception.filter.d.ts +3 -2
- package/dist/decorators/filters/global-exception.filter.d.ts.map +1 -1
- package/dist/decorators/filters/global-exception.filter.js +14 -5
- package/dist/decorators/filters/global-exception.filter.js.map +1 -1
- package/dist/decorators/filters/index.d.ts +1 -0
- package/dist/decorators/filters/index.d.ts.map +1 -1
- package/dist/decorators/filters/index.js +1 -0
- package/dist/decorators/filters/index.js.map +1 -1
- package/dist/dtos/error-response.dto.d.ts +20 -0
- package/dist/dtos/error-response.dto.d.ts.map +1 -0
- package/dist/dtos/error-response.dto.js +42 -0
- package/dist/dtos/error-response.dto.js.map +1 -0
- package/dist/dtos/index.d.ts +3 -0
- package/dist/dtos/index.d.ts.map +1 -0
- package/dist/dtos/index.js +13 -0
- package/dist/dtos/index.js.map +1 -0
- package/dist/dtos/paginated-response.dto.d.ts +16 -0
- package/dist/dtos/paginated-response.dto.d.ts.map +1 -0
- package/dist/dtos/paginated-response.dto.js +31 -0
- package/dist/dtos/paginated-response.dto.js.map +1 -0
- package/dist/envelope/repositories/outbox.repository.d.ts.map +1 -1
- package/dist/envelope/repositories/outbox.repository.js +1 -1
- package/dist/envelope/repositories/outbox.repository.js.map +1 -1
- package/dist/envelope/services/inbox-retry.service.d.ts +3 -2
- package/dist/envelope/services/inbox-retry.service.d.ts.map +1 -1
- package/dist/envelope/services/inbox-retry.service.js +4 -0
- package/dist/envelope/services/inbox-retry.service.js.map +1 -1
- package/dist/envelope/services/outbox-dispatcher.service.d.ts +5 -2
- package/dist/envelope/services/outbox-dispatcher.service.d.ts.map +1 -1
- package/dist/envelope/services/outbox-dispatcher.service.js +61 -24
- package/dist/envelope/services/outbox-dispatcher.service.js.map +1 -1
- package/dist/envelope/tx-manager.d.ts +1 -1
- package/dist/envelope/tx-manager.d.ts.map +1 -1
- package/dist/event-bus/adapters/index.d.ts +4 -0
- package/dist/event-bus/adapters/index.d.ts.map +1 -0
- package/dist/event-bus/adapters/index.js +20 -0
- package/dist/event-bus/adapters/index.js.map +1 -0
- package/dist/event-bus/adapters/kafka.adapter.d.ts +28 -0
- package/dist/event-bus/adapters/kafka.adapter.d.ts.map +1 -0
- package/dist/event-bus/adapters/kafka.adapter.js +263 -0
- package/dist/event-bus/adapters/kafka.adapter.js.map +1 -0
- package/dist/event-bus/adapters/message-broker.interface.d.ts +39 -0
- package/dist/event-bus/adapters/message-broker.interface.d.ts.map +1 -0
- package/dist/event-bus/adapters/message-broker.interface.js +3 -0
- package/dist/event-bus/adapters/message-broker.interface.js.map +1 -0
- package/dist/event-bus/adapters/rabbitmq.adapter.d.ts +21 -0
- package/dist/event-bus/adapters/rabbitmq.adapter.d.ts.map +1 -0
- package/dist/event-bus/adapters/rabbitmq.adapter.js +232 -0
- package/dist/event-bus/adapters/rabbitmq.adapter.js.map +1 -0
- package/dist/event-bus/config/adapter.config.d.ts +65 -0
- package/dist/event-bus/config/adapter.config.d.ts.map +1 -0
- package/dist/event-bus/config/adapter.config.js +6 -0
- package/dist/event-bus/config/adapter.config.js.map +1 -0
- package/dist/event-bus/config/index.d.ts +2 -0
- package/dist/event-bus/config/index.d.ts.map +1 -0
- package/dist/event-bus/config/index.js +18 -0
- package/dist/event-bus/config/index.js.map +1 -0
- package/dist/event-bus/event-bus.config.d.ts +19 -0
- package/dist/event-bus/event-bus.config.d.ts.map +1 -1
- package/dist/event-bus/event-bus.config.js.map +1 -1
- package/dist/event-bus/services/event-bus.service.d.ts +7 -6
- package/dist/event-bus/services/event-bus.service.d.ts.map +1 -1
- package/dist/event-bus/services/event-bus.service.js +96 -210
- package/dist/event-bus/services/event-bus.service.js.map +1 -1
- package/dist/event-bus/types/event-bus-adapter.interface.d.ts +43 -0
- package/dist/event-bus/types/event-bus-adapter.interface.d.ts.map +1 -0
- package/dist/event-bus/types/event-bus-adapter.interface.js +3 -0
- package/dist/event-bus/types/event-bus-adapter.interface.js.map +1 -0
- package/dist/health/health.service.d.ts +1 -0
- package/dist/health/health.service.d.ts.map +1 -1
- package/dist/health/health.service.js +12 -3
- package/dist/health/health.service.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -2
- package/dist/index.js.map +1 -1
- package/dist/monitoring/index.d.ts +2 -0
- package/dist/monitoring/index.d.ts.map +1 -0
- package/dist/monitoring/index.js +18 -0
- package/dist/monitoring/index.js.map +1 -0
- package/dist/proxy/config/proxy.config.d.ts +6 -2
- package/dist/proxy/config/proxy.config.d.ts.map +1 -1
- package/dist/proxy/config/proxy.config.js +6 -3
- package/dist/proxy/config/proxy.config.js.map +1 -1
- package/dist/proxy/methods/proxy-delete.d.ts.map +1 -1
- package/dist/proxy/methods/proxy-delete.js +2 -2
- package/dist/proxy/methods/proxy-delete.js.map +1 -1
- package/dist/proxy/methods/proxy-get.d.ts.map +1 -1
- package/dist/proxy/methods/proxy-get.js +2 -2
- package/dist/proxy/methods/proxy-get.js.map +1 -1
- package/dist/proxy/methods/proxy-patch.d.ts.map +1 -1
- package/dist/proxy/methods/proxy-patch.js +2 -2
- package/dist/proxy/methods/proxy-patch.js.map +1 -1
- package/dist/proxy/methods/proxy-post.d.ts.map +1 -1
- package/dist/proxy/methods/proxy-post.js +2 -2
- package/dist/proxy/methods/proxy-post.js.map +1 -1
- package/dist/proxy/methods/proxy-put.d.ts.map +1 -1
- package/dist/proxy/methods/proxy-put.js +2 -2
- package/dist/proxy/methods/proxy-put.js.map +1 -1
- package/dist/repository/bulk.d.ts +12 -0
- package/dist/repository/bulk.d.ts.map +1 -0
- package/dist/repository/bulk.js +107 -0
- package/dist/repository/bulk.js.map +1 -0
- package/dist/repository/cursor.d.ts +12 -5
- package/dist/repository/cursor.d.ts.map +1 -1
- package/dist/repository/cursor.js +57 -29
- package/dist/repository/cursor.js.map +1 -1
- package/dist/repository/index.d.ts +6 -1
- package/dist/repository/index.d.ts.map +1 -1
- package/dist/repository/index.js +22 -15
- package/dist/repository/index.js.map +1 -1
- package/dist/repository/lock.d.ts +8 -0
- package/dist/repository/lock.d.ts.map +1 -0
- package/dist/repository/lock.js +35 -0
- package/dist/repository/lock.js.map +1 -0
- package/dist/repository/retry.d.ts +7 -0
- package/dist/repository/retry.d.ts.map +1 -0
- package/dist/repository/retry.js +43 -0
- package/dist/repository/retry.js.map +1 -0
- package/dist/repository/scope.d.ts +8 -0
- package/dist/repository/scope.d.ts.map +1 -0
- package/dist/repository/scope.js +16 -0
- package/dist/repository/scope.js.map +1 -0
- package/dist/result/index.d.ts +2 -0
- package/dist/result/index.d.ts.map +1 -0
- package/dist/result/index.js +16 -0
- package/dist/result/index.js.map +1 -0
- package/dist/result/result.d.ts +26 -0
- package/dist/result/result.d.ts.map +1 -0
- package/dist/result/result.js +73 -0
- package/dist/result/result.js.map +1 -0
- package/dist/security/bcrypt.adapter.d.ts +3 -0
- package/dist/security/bcrypt.adapter.d.ts.map +1 -1
- package/dist/security/bcrypt.adapter.js +6 -1
- package/dist/security/bcrypt.adapter.js.map +1 -1
- package/dist/security/index.d.ts +1 -0
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1 -0
- package/dist/security/index.js.map +1 -1
- package/dist/security/security.config.d.ts +6 -0
- package/dist/security/security.config.d.ts.map +1 -0
- package/dist/security/security.config.js +8 -0
- package/dist/security/security.config.js.map +1 -0
- package/dist/service/cache.d.ts +11 -0
- package/dist/service/cache.d.ts.map +1 -0
- package/dist/service/cache.js +45 -0
- package/dist/service/cache.js.map +1 -0
- package/dist/service/circuit-breaker.d.ts +19 -0
- package/dist/service/circuit-breaker.d.ts.map +1 -0
- package/dist/service/circuit-breaker.js +73 -0
- package/dist/service/circuit-breaker.js.map +1 -0
- package/dist/service/enrichment.d.ts +8 -0
- package/dist/service/enrichment.d.ts.map +1 -0
- package/dist/service/enrichment.js +40 -0
- package/dist/service/enrichment.js.map +1 -0
- package/dist/service/idempotency.d.ts +8 -0
- package/dist/service/idempotency.d.ts.map +1 -0
- package/dist/service/idempotency.js +28 -0
- package/dist/service/idempotency.js.map +1 -0
- package/dist/service/index.d.ts +10 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +45 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/projection.d.ts +14 -0
- package/dist/service/projection.d.ts.map +1 -0
- package/dist/service/projection.js +59 -0
- package/dist/service/projection.js.map +1 -0
- package/dist/service/rate-limit.d.ts +10 -0
- package/dist/service/rate-limit.d.ts.map +1 -0
- package/dist/service/rate-limit.js +42 -0
- package/dist/service/rate-limit.js.map +1 -0
- package/dist/service/retry.d.ts +8 -0
- package/dist/service/retry.d.ts.map +1 -0
- package/dist/service/retry.js +62 -0
- package/dist/service/retry.js.map +1 -0
- package/dist/service/timeout.d.ts +7 -0
- package/dist/service/timeout.d.ts.map +1 -0
- package/dist/service/timeout.js +39 -0
- package/dist/service/timeout.js.map +1 -0
- package/dist/service/transaction.d.ts +12 -0
- package/dist/service/transaction.d.ts.map +1 -0
- package/dist/service/transaction.js +17 -0
- package/dist/service/transaction.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/retry.d.ts +7 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +27 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +25 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rabbitmq.adapter.js","sourceRoot":"","sources":["../../../src/event-bus/adapters/rabbitmq.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export type EventBusAdapterType = 'rabbitmq' | 'kafka' | 'nats' | 'redis';
|
|
2
|
+
export interface BaseAdapterConfig {
|
|
3
|
+
type: EventBusAdapterType;
|
|
4
|
+
serviceName: string;
|
|
5
|
+
topicPrefix?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RabbitMQAdapterConfig extends BaseAdapterConfig {
|
|
8
|
+
type: 'rabbitmq';
|
|
9
|
+
url: string;
|
|
10
|
+
exchange: string;
|
|
11
|
+
queue: string;
|
|
12
|
+
prefetch?: number;
|
|
13
|
+
connectionOptions?: {
|
|
14
|
+
heartbeat?: number;
|
|
15
|
+
timeout?: number;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface KafkaAdapterConfig extends BaseAdapterConfig {
|
|
19
|
+
type: 'kafka';
|
|
20
|
+
brokers: string[];
|
|
21
|
+
clientId: string;
|
|
22
|
+
groupId: string;
|
|
23
|
+
consumerConfig?: {
|
|
24
|
+
sessionTimeout?: number;
|
|
25
|
+
rebalanceTimeout?: number;
|
|
26
|
+
heartbeatInterval?: number;
|
|
27
|
+
};
|
|
28
|
+
producerConfig?: {
|
|
29
|
+
acks?: 0 | 1 | -1;
|
|
30
|
+
timeout?: number;
|
|
31
|
+
compression?: 'none' | 'gzip' | 'snappy' | 'lz4' | 'zstd';
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface NatsAdapterConfig extends BaseAdapterConfig {
|
|
35
|
+
type: 'nats';
|
|
36
|
+
url: string;
|
|
37
|
+
cluster?: string;
|
|
38
|
+
jetstream?: {
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
stream?: string;
|
|
41
|
+
streamConfig?: {
|
|
42
|
+
retention?: 'limits' | 'interest' | 'workqueue';
|
|
43
|
+
maxMessages?: number;
|
|
44
|
+
maxBytes?: number;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
connectionOptions?: {
|
|
48
|
+
maxReconnectAttempts?: number;
|
|
49
|
+
reconnectTimeWait?: number;
|
|
50
|
+
timeout?: number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface RedisAdapterConfig extends BaseAdapterConfig {
|
|
54
|
+
type: 'redis';
|
|
55
|
+
url: string;
|
|
56
|
+
redisOptions?: {
|
|
57
|
+
db?: number;
|
|
58
|
+
password?: string;
|
|
59
|
+
keyPrefix?: string;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export type EventBusAdapterConfig = RabbitMQAdapterConfig | KafkaAdapterConfig | NatsAdapterConfig | RedisAdapterConfig;
|
|
63
|
+
export declare const EVENT_BUS_ADAPTER_CONFIG = "EVENT_BUS_ADAPTER_CONFIG";
|
|
64
|
+
export declare const EVENT_BUS_ADAPTER = "EVENT_BUS_ADAPTER";
|
|
65
|
+
//# sourceMappingURL=adapter.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.config.d.ts","sourceRoot":"","sources":["../../../src/event-bus/config/adapter.config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAK1E,MAAM,WAAW,iBAAiB;IAEhC,IAAI,EAAE,mBAAmB,CAAC;IAE1B,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,EAAE,UAAU,CAAC;IAEjB,GAAG,EAAE,MAAM,CAAC;IAEZ,QAAQ,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iBAAiB,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAKD,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAEhB,cAAc,CAAC,EAAE;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF,cAAc,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;KAC3D,CAAC;CACH;AAKD,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,YAAY,CAAC,EAAE;YACb,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;YAChD,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IAEF,iBAAiB,CAAC,EAAE;QAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAKD,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,IAAI,EAAE,OAAO,CAAC;IAEd,GAAG,EAAE,MAAM,CAAC;IAEZ,YAAY,CAAC,EAAE;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAKD,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,CAAC;AAKvB,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAKnE,eAAO,MAAM,iBAAiB,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVENT_BUS_ADAPTER = exports.EVENT_BUS_ADAPTER_CONFIG = void 0;
|
|
4
|
+
exports.EVENT_BUS_ADAPTER_CONFIG = 'EVENT_BUS_ADAPTER_CONFIG';
|
|
5
|
+
exports.EVENT_BUS_ADAPTER = 'EVENT_BUS_ADAPTER';
|
|
6
|
+
//# sourceMappingURL=adapter.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.config.js","sourceRoot":"","sources":["../../../src/event-bus/config/adapter.config.ts"],"names":[],"mappings":";;;AAwHa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAKtD,QAAA,iBAAiB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/event-bus/config/index.ts"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./adapter.config"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/event-bus/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,mDAAiC"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
|
+
export type BrokerType = 'rabbitmq' | 'kafka';
|
|
2
|
+
export interface RabbitMQConfig {
|
|
3
|
+
url?: string;
|
|
4
|
+
exchange?: string;
|
|
5
|
+
exchangeType?: string;
|
|
6
|
+
prefetch?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface KafkaConfig {
|
|
9
|
+
brokers?: string[];
|
|
10
|
+
clientId?: string;
|
|
11
|
+
groupId?: string;
|
|
12
|
+
kafkaConfig?: Record<string, any>;
|
|
13
|
+
producerConfig?: Record<string, any>;
|
|
14
|
+
consumerConfig?: Record<string, any>;
|
|
15
|
+
}
|
|
1
16
|
export interface EventBusConnectionConfig {
|
|
17
|
+
type?: BrokerType;
|
|
18
|
+
serviceName?: string;
|
|
19
|
+
rabbitmq?: RabbitMQConfig;
|
|
20
|
+
kafka?: KafkaConfig;
|
|
2
21
|
url?: string;
|
|
3
22
|
exchange?: string;
|
|
4
23
|
queue?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.config.d.ts","sourceRoot":"","sources":["../../src/event-bus/event-bus.config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-bus.config.d.ts","sourceRoot":"","sources":["../../src/event-bus/event-bus.config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAK9C,MAAM,WAAW,cAAc;IAE7B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,WAAW;IAE1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IAEvC,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAE3C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAE7B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IAGtC,cAAc,CAAC,EAAE,4BAA4B,CAAC;CAC/C;AAWD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAKnD,eAAO,MAAM,qBAAqB,EAAE,cAWnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.config.js","sourceRoot":"","sources":["../../src/event-bus/event-bus.config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"event-bus.config.js","sourceRoot":"","sources":["../../src/event-bus/event-bus.config.ts"],"names":[],"mappings":";;;AAkFa,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAKtC,QAAA,qBAAqB,GAAmB;IACnD,UAAU,EAAE;QACV,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,CAAC;KACZ;IACD,cAAc,EAAE;QACd,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,MAAM;KACvB;CACF,CAAC"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { DataSource } from 'typeorm';
|
|
3
|
-
import {
|
|
3
|
+
import type { EventMeta, Envelope } from '../../envelope';
|
|
4
4
|
import { LogLevel } from '../../logger';
|
|
5
5
|
import type { EnvelopeHandler, TxHandler, TxAfterHook, ReplyTransformer } from '../types';
|
|
6
6
|
import { type EventBusConfig } from '../event-bus.config';
|
|
7
7
|
export declare class EventBusService implements OnModuleInit, OnModuleDestroy {
|
|
8
8
|
private readonly logger;
|
|
9
|
-
private
|
|
10
|
-
private channel?;
|
|
9
|
+
private adapter?;
|
|
11
10
|
private subscriptions;
|
|
12
11
|
private readonly cfg;
|
|
13
|
-
private connectionParams;
|
|
14
|
-
private circuitBreaker;
|
|
15
12
|
constructor(cfg: EventBusConfig);
|
|
16
13
|
onModuleInit(): Promise<void>;
|
|
17
14
|
onModuleDestroy(): Promise<void>;
|
|
18
15
|
private assertReady;
|
|
16
|
+
isReady(): boolean;
|
|
17
|
+
getCircuitBreakerState(): 'OPEN' | 'HALF_OPEN' | 'CLOSED';
|
|
19
18
|
publish<T>(topic: string, data: T, meta?: Partial<EventMeta>): Promise<void>;
|
|
20
19
|
request<T, R>(topic: string, data: T, meta?: Partial<EventMeta>, timeoutMs?: number): Promise<Envelope<R>>;
|
|
21
20
|
respond<R>(to: string, correlationId: string, data: R, meta?: Partial<EventMeta>): Promise<void>;
|
|
@@ -24,6 +23,8 @@ export declare class EventBusService implements OnModuleInit, OnModuleDestroy {
|
|
|
24
23
|
emitLog(service: string, message: string, metadata: Record<string, any> | undefined, level: LogLevel, userId?: string, tag?: string, stack?: string): Promise<void>;
|
|
25
24
|
emitLogError(service: string, message: string, metadata?: Record<string, any>, userId?: string, stack?: string): Promise<void>;
|
|
26
25
|
private setup;
|
|
27
|
-
private
|
|
26
|
+
private createAdapter;
|
|
27
|
+
private buildConnectionConfig;
|
|
28
|
+
private handleBrokerMessage;
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=event-bus.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../src/event-bus/services/event-bus.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EACf,YAAY,EAEb,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../src/event-bus/services/event-bus.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EACf,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAqB,MAAM,cAAc,CAAC;AAO3D,OAAO,KAAK,EAEV,eAAe,EACf,SAAS,EACT,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,qBAAqB,CAAC;AAc7B,qBACa,eAAgB,YAAW,YAAY,EAAE,eAAe;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,OAAO,CAAC,OAAO,CAAC,CAAuB;IACvC,OAAO,CAAC,aAAa,CAAwC;IAG7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;gBAInC,GAAG,EAAE,cAAc;IAKf,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC,OAAO,CAAC,WAAW;IAWnB,OAAO,IAAI,OAAO;IAUlB,sBAAsB,IAAI,MAAM,GAAG,WAAW,GAAG,QAAQ;IAcnD,OAAO,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC;IAUV,OAAO,CAAC,CAAC,EAAE,CAAC,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EACzB,SAAS,SAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAejB,OAAO,CAAC,CAAC,EACb,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC;IAcV,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhE,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAC/B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACrB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC;IAkCV,OAAO,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAK,EAClC,KAAK,EAAE,QAAQ,EACf,MAAM,SAAW,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAcV,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAClC,MAAM,SAAW,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;YAmBF,KAAK;IAwBnB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,qBAAqB;YAqCf,mBAAmB;CA0DlC"}
|
|
@@ -1,43 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
10
|
};
|
|
@@ -48,149 +15,71 @@ var EventBusService_1;
|
|
|
48
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
16
|
exports.EventBusService = void 0;
|
|
50
17
|
const common_1 = require("@nestjs/common");
|
|
51
|
-
const amqplib_1 = require("amqplib");
|
|
52
18
|
const envelope_1 = require("../../envelope");
|
|
19
|
+
const logger_1 = require("../../logger");
|
|
20
|
+
const rabbitmq_adapter_1 = require("../adapters/rabbitmq.adapter");
|
|
21
|
+
const kafka_adapter_1 = require("../adapters/kafka.adapter");
|
|
53
22
|
const event_bus_config_1 = require("../event-bus.config");
|
|
54
23
|
let EventBusService = EventBusService_1 = class EventBusService {
|
|
55
24
|
logger = new common_1.Logger(EventBusService_1.name);
|
|
56
|
-
|
|
57
|
-
channel;
|
|
25
|
+
adapter;
|
|
58
26
|
subscriptions = new Map();
|
|
59
27
|
cfg;
|
|
60
|
-
connectionParams = {
|
|
61
|
-
url: 'amqp://localhost',
|
|
62
|
-
exchange: 'anatix-event-bus',
|
|
63
|
-
queue: 'default-queue',
|
|
64
|
-
prefetch: 1,
|
|
65
|
-
};
|
|
66
|
-
circuitBreaker = {
|
|
67
|
-
failures: 0,
|
|
68
|
-
maxFailures: 5,
|
|
69
|
-
resetTimeout: 60_000,
|
|
70
|
-
state: 'CLOSED',
|
|
71
|
-
};
|
|
72
28
|
constructor(cfg) {
|
|
73
29
|
this.cfg = cfg ?? {};
|
|
74
|
-
const conn = this.cfg.connection ?? {};
|
|
75
|
-
this.connectionParams = {
|
|
76
|
-
url: conn.url ?? 'amqp://localhost',
|
|
77
|
-
exchange: conn.exchange ?? 'anatix-event-bus',
|
|
78
|
-
queue: conn.queue ?? 'default-queue',
|
|
79
|
-
prefetch: conn.prefetch ?? 1,
|
|
80
|
-
};
|
|
81
|
-
const cb = this.cfg.circuitBreaker ?? {};
|
|
82
|
-
this.circuitBreaker.maxFailures = cb.maxFailures ?? 5;
|
|
83
|
-
this.circuitBreaker.resetTimeout = cb.resetTimeoutMs ?? 60_000;
|
|
84
30
|
}
|
|
85
31
|
async onModuleInit() {
|
|
86
32
|
await this.setup();
|
|
87
33
|
}
|
|
88
34
|
async onModuleDestroy() {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.connection = undefined;
|
|
93
|
-
try {
|
|
94
|
-
if (channel)
|
|
95
|
-
await channel.close();
|
|
96
|
-
if (connection)
|
|
97
|
-
await connection.close();
|
|
98
|
-
this.logger.log('EventBus connections closed');
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
this.logger.error('Error while closing EventBus', error);
|
|
35
|
+
if (this.adapter) {
|
|
36
|
+
await this.adapter.disconnect();
|
|
37
|
+
this.adapter = undefined;
|
|
102
38
|
}
|
|
39
|
+
this.logger.log('EventBus connections closed');
|
|
103
40
|
}
|
|
104
41
|
assertReady() {
|
|
105
|
-
if (!this.
|
|
106
|
-
this.logger.error('EventBus
|
|
107
|
-
throw new Error('EventBus
|
|
42
|
+
if (!this.adapter || !this.adapter.isConnected()) {
|
|
43
|
+
this.logger.error('EventBus adapter not ready; ensure setup() succeeded.');
|
|
44
|
+
throw new Error('EventBus adapter not ready');
|
|
108
45
|
}
|
|
109
|
-
return this.
|
|
46
|
+
return this.adapter;
|
|
47
|
+
}
|
|
48
|
+
isReady() {
|
|
49
|
+
return !!this.adapter && this.adapter.isConnected();
|
|
50
|
+
}
|
|
51
|
+
getCircuitBreakerState() {
|
|
52
|
+
if (!this.isReady()) {
|
|
53
|
+
return 'OPEN';
|
|
54
|
+
}
|
|
55
|
+
return 'CLOSED';
|
|
110
56
|
}
|
|
111
57
|
async publish(topic, data, meta) {
|
|
112
|
-
const
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
meta: (0, envelope_1.ensureMeta)(meta),
|
|
116
|
-
};
|
|
117
|
-
const message = {
|
|
118
|
-
__event: topic,
|
|
119
|
-
data: envelope.data,
|
|
120
|
-
meta: envelope.meta,
|
|
121
|
-
};
|
|
122
|
-
channel.publish(this.connectionParams.exchange, topic, Buffer.from(JSON.stringify(message)), {
|
|
123
|
-
contentType: 'application/json',
|
|
124
|
-
persistent: true,
|
|
125
|
-
});
|
|
58
|
+
const adapter = this.assertReady();
|
|
59
|
+
const eventMeta = (0, envelope_1.ensureMeta)(meta);
|
|
60
|
+
await adapter.publish(topic, data, eventMeta, { persistent: true });
|
|
126
61
|
}
|
|
127
62
|
async request(topic, data, meta, timeoutMs = 5000) {
|
|
128
|
-
const
|
|
63
|
+
const adapter = this.assertReady();
|
|
129
64
|
const eventMeta = (0, envelope_1.ensureMeta)(meta);
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
return new Promise((resolve, reject) => {
|
|
136
|
-
let consumerTag = '';
|
|
137
|
-
const onReply = (msg) => {
|
|
138
|
-
if (!msg)
|
|
139
|
-
return;
|
|
140
|
-
try {
|
|
141
|
-
const content = JSON.parse(msg.content.toString());
|
|
142
|
-
if (content.__correlationId === eventMeta.correlationId) {
|
|
143
|
-
clearTimeout(timer);
|
|
144
|
-
channel.cancel(consumerTag).catch(() => { });
|
|
145
|
-
resolve({
|
|
146
|
-
data: content.data,
|
|
147
|
-
meta: (0, envelope_1.ensureMeta)(content.meta),
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
channel
|
|
155
|
-
.consume(replyQueue, onReply, { noAck: true })
|
|
156
|
-
.then(({ consumerTag: tag }) => {
|
|
157
|
-
consumerTag = tag;
|
|
158
|
-
const message = {
|
|
159
|
-
__event: topic,
|
|
160
|
-
__replyTo: replyQueue,
|
|
161
|
-
__correlationId: eventMeta.correlationId,
|
|
162
|
-
data,
|
|
163
|
-
meta: eventMeta,
|
|
164
|
-
};
|
|
165
|
-
channel.publish(this.connectionParams.exchange, topic, Buffer.from(JSON.stringify(message)), {
|
|
166
|
-
contentType: 'application/json',
|
|
167
|
-
persistent: true,
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
const timer = setTimeout(() => {
|
|
171
|
-
channel.cancel(consumerTag).catch(() => { });
|
|
172
|
-
reject(new Error(`Timeout waiting for response to "${topic}" (corr=${eventMeta.correlationId})`));
|
|
173
|
-
}, timeoutMs);
|
|
174
|
-
});
|
|
65
|
+
const response = await adapter.request(topic, data, eventMeta, timeoutMs);
|
|
66
|
+
return {
|
|
67
|
+
data: response,
|
|
68
|
+
meta: eventMeta,
|
|
69
|
+
};
|
|
175
70
|
}
|
|
176
71
|
async respond(to, correlationId, data, meta) {
|
|
177
|
-
const
|
|
72
|
+
const adapter = this.assertReady();
|
|
178
73
|
const eventMeta = (0, envelope_1.ensureMeta)(meta);
|
|
179
|
-
|
|
180
|
-
__correlationId: correlationId,
|
|
181
|
-
data,
|
|
182
|
-
meta: eventMeta,
|
|
183
|
-
};
|
|
184
|
-
channel.sendToQueue(to, Buffer.from(JSON.stringify(message)), {
|
|
185
|
-
contentType: 'application/json',
|
|
186
|
-
persistent: false,
|
|
187
|
-
});
|
|
74
|
+
await adapter.reply(to, correlationId, data, eventMeta);
|
|
188
75
|
}
|
|
189
76
|
async on(topic, handler) {
|
|
190
|
-
const
|
|
77
|
+
const adapter = this.assertReady();
|
|
191
78
|
if (!this.subscriptions.has(topic)) {
|
|
192
79
|
this.subscriptions.set(topic, []);
|
|
193
|
-
await
|
|
80
|
+
await adapter.subscribe(topic, async (message) => {
|
|
81
|
+
await this.handleBrokerMessage(message);
|
|
82
|
+
});
|
|
194
83
|
}
|
|
195
84
|
this.subscriptions.get(topic).push(handler);
|
|
196
85
|
}
|
|
@@ -221,83 +110,80 @@ let EventBusService = EventBusService_1 = class EventBusService {
|
|
|
221
110
|
await this.publish(`log.${service}`, log);
|
|
222
111
|
}
|
|
223
112
|
async emitLogError(service, message, metadata = {}, userId = 'system', stack) {
|
|
224
|
-
|
|
225
|
-
return this.emitLog(service, message, metadata, LogLevel.ERROR, userId, 'error', stack);
|
|
113
|
+
return this.emitLog(service, message, metadata, logger_1.LogLevel.ERROR, userId, 'error', stack);
|
|
226
114
|
}
|
|
227
115
|
async setup() {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (this.circuitBreaker.state === 'HALF_OPEN') {
|
|
233
|
-
this.logger.log('Circuit breaker HALF_OPEN, attempting reconnection...');
|
|
234
|
-
}
|
|
116
|
+
const brokerType = this.cfg.connection?.type ?? 'rabbitmq';
|
|
117
|
+
this.logger.log(`Initializing EventBus with broker: ${brokerType}`);
|
|
118
|
+
this.adapter = this.createAdapter(brokerType);
|
|
119
|
+
const connectionConfig = this.buildConnectionConfig(brokerType);
|
|
235
120
|
try {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
const channel = await connection.createChannel();
|
|
239
|
-
await channel.assertExchange(exchange, 'topic', { durable: true });
|
|
240
|
-
await channel.assertQueue(queue, { durable: true });
|
|
241
|
-
await channel.prefetch(prefetch);
|
|
242
|
-
await channel.consume(queue, this.handleDelivery.bind(this), { noAck: false });
|
|
243
|
-
this.connection = connection;
|
|
244
|
-
this.channel = channel;
|
|
245
|
-
this.circuitBreaker.failures = 0;
|
|
246
|
-
this.circuitBreaker.state = 'CLOSED';
|
|
247
|
-
this.logger.log('Circuit breaker CLOSED');
|
|
121
|
+
await this.adapter.connect(connectionConfig);
|
|
122
|
+
this.logger.log(`EventBus connected successfully (${brokerType})`);
|
|
248
123
|
}
|
|
249
124
|
catch (error) {
|
|
250
|
-
this.
|
|
251
|
-
if (this.circuitBreaker.failures >= this.circuitBreaker.maxFailures) {
|
|
252
|
-
this.circuitBreaker.state = 'OPEN';
|
|
253
|
-
this.logger.error('Circuit breaker OPEN - too many failures');
|
|
254
|
-
setTimeout(() => {
|
|
255
|
-
this.circuitBreaker.state = 'HALF_OPEN';
|
|
256
|
-
this.circuitBreaker.failures = 0;
|
|
257
|
-
this.logger.log('Circuit breaker transitioning to HALF_OPEN');
|
|
258
|
-
this.setup().catch((err) => {
|
|
259
|
-
this.logger.error('Reconnection failed:', err);
|
|
260
|
-
});
|
|
261
|
-
}, this.circuitBreaker.resetTimeout);
|
|
262
|
-
}
|
|
125
|
+
this.logger.error(`Failed to connect EventBus: ${error?.message || error}`);
|
|
263
126
|
throw error;
|
|
264
127
|
}
|
|
265
128
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
129
|
+
createAdapter(type) {
|
|
130
|
+
switch (type) {
|
|
131
|
+
case 'rabbitmq':
|
|
132
|
+
return new rabbitmq_adapter_1.RabbitMQAdapter();
|
|
133
|
+
case 'kafka':
|
|
134
|
+
return new kafka_adapter_1.KafkaAdapter();
|
|
135
|
+
default:
|
|
136
|
+
throw new Error(`Unsupported broker type: ${type}`);
|
|
273
137
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
138
|
+
}
|
|
139
|
+
buildConnectionConfig(type) {
|
|
140
|
+
const serviceName = this.cfg.connection?.serviceName ?? 'default-service';
|
|
141
|
+
if (type === 'rabbitmq') {
|
|
142
|
+
const rabbitmqCfg = this.cfg.connection?.rabbitmq ?? {};
|
|
143
|
+
return {
|
|
144
|
+
url: rabbitmqCfg.url ?? 'amqp://localhost',
|
|
145
|
+
serviceName,
|
|
146
|
+
prefetch: rabbitmqCfg.prefetch ?? 1,
|
|
147
|
+
options: {
|
|
148
|
+
exchange: rabbitmqCfg.exchange ?? 'anatix-event-bus',
|
|
149
|
+
exchangeType: rabbitmqCfg.exchangeType ?? 'topic',
|
|
150
|
+
},
|
|
151
|
+
};
|
|
278
152
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
153
|
+
if (type === 'kafka') {
|
|
154
|
+
const kafkaCfg = this.cfg.connection?.kafka ?? {};
|
|
155
|
+
return {
|
|
156
|
+
url: kafkaCfg.brokers ?? ['localhost:9092'],
|
|
157
|
+
serviceName,
|
|
158
|
+
options: {
|
|
159
|
+
clientId: kafkaCfg.clientId ?? serviceName,
|
|
160
|
+
groupId: kafkaCfg.groupId ?? serviceName,
|
|
161
|
+
kafkaConfig: kafkaCfg.kafkaConfig,
|
|
162
|
+
producerConfig: kafkaCfg.producerConfig,
|
|
163
|
+
consumerConfig: kafkaCfg.consumerConfig,
|
|
164
|
+
},
|
|
165
|
+
};
|
|
284
166
|
}
|
|
167
|
+
throw new Error(`Unsupported broker type: ${type}`);
|
|
168
|
+
}
|
|
169
|
+
async handleBrokerMessage(message) {
|
|
170
|
+
const { topic, payload, meta } = message;
|
|
285
171
|
const handlers = this.subscriptions.get(topic) ?? [];
|
|
286
172
|
if (handlers.length === 0) {
|
|
287
|
-
|
|
173
|
+
await message.ack();
|
|
288
174
|
return;
|
|
289
175
|
}
|
|
290
|
-
const
|
|
176
|
+
const eventMeta = (0, envelope_1.ensureMeta)(meta);
|
|
291
177
|
const envelope = {
|
|
292
|
-
data:
|
|
293
|
-
meta,
|
|
178
|
+
data: payload,
|
|
179
|
+
meta: eventMeta,
|
|
294
180
|
};
|
|
295
181
|
const ctx = {
|
|
296
|
-
raw:
|
|
297
|
-
reply:
|
|
182
|
+
raw: message,
|
|
183
|
+
reply: message.replyTo
|
|
298
184
|
? {
|
|
299
|
-
to:
|
|
300
|
-
correlationId:
|
|
185
|
+
to: message.replyTo.destination,
|
|
186
|
+
correlationId: message.replyTo.correlationId,
|
|
301
187
|
}
|
|
302
188
|
: undefined,
|
|
303
189
|
};
|
|
@@ -308,16 +194,16 @@ let EventBusService = EventBusService_1 = class EventBusService {
|
|
|
308
194
|
await handler(envelope, ctx);
|
|
309
195
|
}
|
|
310
196
|
catch (error) {
|
|
311
|
-
this.logger.error(`Handler #${i + 1}/${handlers.length} failed for topic="${topic}" (corr=${
|
|
312
|
-
|
|
197
|
+
this.logger.error(`Handler #${i + 1}/${handlers.length} failed for topic="${topic}" (corr=${eventMeta.correlationId}): ${error?.message || error}`);
|
|
198
|
+
await message.nack(false);
|
|
313
199
|
return;
|
|
314
200
|
}
|
|
315
201
|
}
|
|
316
|
-
|
|
202
|
+
await message.ack();
|
|
317
203
|
}
|
|
318
204
|
catch (error) {
|
|
319
|
-
this.logger.error(`Error handling
|
|
320
|
-
|
|
205
|
+
this.logger.error(`Error handling message for topic="${topic}" (corr=${eventMeta.correlationId}): ${error?.message || error}`);
|
|
206
|
+
await message.nack(false);
|
|
321
207
|
}
|
|
322
208
|
}
|
|
323
209
|
};
|