@anatix/runtime 1.0.1 → 1.0.3
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
|
@@ -12,9 +12,4 @@ export interface ServiceQueryOptions extends ServiceListOptions {
|
|
|
12
12
|
}
|
|
13
13
|
export type RepoListOptions = ServiceListOptions;
|
|
14
14
|
export type RepoQueryOptions = ServiceQueryOptions;
|
|
15
|
-
export interface TxManager<R> {
|
|
16
|
-
transaction?<T>(fn: (trxRepo: R) => Promise<T>, opts?: {
|
|
17
|
-
isolation?: string;
|
|
18
|
-
}): Promise<T>;
|
|
19
|
-
}
|
|
20
15
|
//# sourceMappingURL=service-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-options.d.ts","sourceRoot":"","sources":["../../src/contracts/service-options.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"service-options.d.ts","sourceRoot":"","sources":["../../src/contracts/service-options.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ExceptionFilterConfig {
|
|
2
|
+
isDevelopment?: boolean;
|
|
3
|
+
logErrors?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare const EXCEPTION_FILTER_CONFIG = "EXCEPTION_FILTER_CONFIG";
|
|
6
|
+
export declare const defaultExceptionFilterConfig: ExceptionFilterConfig;
|
|
7
|
+
//# sourceMappingURL=exception-filter.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception-filter.config.d.ts","sourceRoot":"","sources":["../../../src/decorators/filters/exception-filter.config.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAGD,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAGjE,eAAO,MAAM,4BAA4B,EAAE,qBAG1C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultExceptionFilterConfig = exports.EXCEPTION_FILTER_CONFIG = void 0;
|
|
4
|
+
exports.EXCEPTION_FILTER_CONFIG = 'EXCEPTION_FILTER_CONFIG';
|
|
5
|
+
exports.defaultExceptionFilterConfig = {
|
|
6
|
+
isDevelopment: false,
|
|
7
|
+
logErrors: true,
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=exception-filter.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception-filter.config.js","sourceRoot":"","sources":["../../../src/decorators/filters/exception-filter.config.ts"],"names":[],"mappings":";;;AAOa,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAGpD,QAAA,4BAA4B,GAA0B;IACjE,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
|
|
2
|
+
import { type ExceptionFilterConfig } from './exception-filter.config';
|
|
2
3
|
export interface ErrorResponse {
|
|
3
4
|
statusCode: number;
|
|
4
5
|
path: string;
|
|
@@ -9,8 +10,8 @@ export interface ErrorResponse {
|
|
|
9
10
|
}
|
|
10
11
|
export declare class GlobalExceptionFilter implements ExceptionFilter {
|
|
11
12
|
private readonly logger;
|
|
12
|
-
private readonly
|
|
13
|
-
|
|
13
|
+
private readonly config;
|
|
14
|
+
constructor(config?: ExceptionFilterConfig);
|
|
14
15
|
catch(exception: unknown, host: ArgumentsHost): void;
|
|
15
16
|
private logError;
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../../src/decorators/filters/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,aAAa,EAId,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../../src/decorators/filters/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,aAAa,EAId,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGrG,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,qBACa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,MAAM,CAAC,EAAE,qBAAqB;IAI1C,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAgDpD,OAAO,CAAC,QAAQ;CA0BjB"}
|
|
@@ -5,14 +5,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
8
11
|
var GlobalExceptionFilter_1;
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
13
|
exports.GlobalExceptionFilter = void 0;
|
|
11
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
+
const exception_filter_config_1 = require("./exception-filter.config");
|
|
12
16
|
let GlobalExceptionFilter = GlobalExceptionFilter_1 = class GlobalExceptionFilter {
|
|
13
17
|
logger = new common_1.Logger(GlobalExceptionFilter_1.name);
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
config;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.config = config ?? exception_filter_config_1.defaultExceptionFilterConfig;
|
|
21
|
+
}
|
|
16
22
|
catch(exception, host) {
|
|
17
23
|
const ctx = host.switchToHttp();
|
|
18
24
|
const response = ctx.getResponse();
|
|
@@ -35,7 +41,8 @@ let GlobalExceptionFilter = GlobalExceptionFilter_1 = class GlobalExceptionFilte
|
|
|
35
41
|
message = 'Internal server error';
|
|
36
42
|
stack = undefined;
|
|
37
43
|
}
|
|
38
|
-
|
|
44
|
+
const logErrors = this.config.logErrors ?? exception_filter_config_1.defaultExceptionFilterConfig.logErrors;
|
|
45
|
+
if (logErrors) {
|
|
39
46
|
this.logError(request, status, message, stack);
|
|
40
47
|
}
|
|
41
48
|
const errorResponse = {
|
|
@@ -45,7 +52,8 @@ let GlobalExceptionFilter = GlobalExceptionFilter_1 = class GlobalExceptionFilte
|
|
|
45
52
|
timestamp: new Date().toISOString(),
|
|
46
53
|
message,
|
|
47
54
|
};
|
|
48
|
-
|
|
55
|
+
const isDevelopment = this.config.isDevelopment ?? exception_filter_config_1.defaultExceptionFilterConfig.isDevelopment;
|
|
56
|
+
if (isDevelopment && stack) {
|
|
49
57
|
errorResponse.stack = stack;
|
|
50
58
|
}
|
|
51
59
|
response.status(status).json(errorResponse);
|
|
@@ -74,6 +82,7 @@ let GlobalExceptionFilter = GlobalExceptionFilter_1 = class GlobalExceptionFilte
|
|
|
74
82
|
};
|
|
75
83
|
exports.GlobalExceptionFilter = GlobalExceptionFilter;
|
|
76
84
|
exports.GlobalExceptionFilter = GlobalExceptionFilter = GlobalExceptionFilter_1 = __decorate([
|
|
77
|
-
(0, common_1.Catch)()
|
|
85
|
+
(0, common_1.Catch)(),
|
|
86
|
+
__metadata("design:paramtypes", [Object])
|
|
78
87
|
], GlobalExceptionFilter);
|
|
79
88
|
//# sourceMappingURL=global-exception.filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../../src/decorators/filters/global-exception.filter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../../src/decorators/filters/global-exception.filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/filters/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/filters/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./global-exception.filter"), exports);
|
|
18
|
+
__exportStar(require("./exception-filter.config"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,4DAA0C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ValidationError {
|
|
2
|
+
field: string;
|
|
3
|
+
message: string;
|
|
4
|
+
constraint?: string;
|
|
5
|
+
value?: any;
|
|
6
|
+
}
|
|
7
|
+
export declare class ErrorResponseDto {
|
|
8
|
+
statusCode: number;
|
|
9
|
+
message: string | object;
|
|
10
|
+
path?: string;
|
|
11
|
+
timestamp?: string;
|
|
12
|
+
errors?: ValidationError[];
|
|
13
|
+
code?: string;
|
|
14
|
+
stack?: string;
|
|
15
|
+
constructor(statusCode: number, message: string | object, path?: string, errors?: ValidationError[]);
|
|
16
|
+
}
|
|
17
|
+
export declare function createErrorResponse(statusCode: number, message: string, path?: string): ErrorResponseDto;
|
|
18
|
+
export declare function createValidationErrorResponse(errors: ValidationError[], path?: string): ErrorResponseDto;
|
|
19
|
+
export declare function createErrorFromException(error: any, path?: string, includeStack?: boolean): ErrorResponseDto;
|
|
20
|
+
//# sourceMappingURL=error-response.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-response.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/error-response.dto.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAE9B,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AA6BD,qBAAa,gBAAgB;IAE3B,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAGzB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAG3B,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,KAAK,CAAC,EAAE,MAAM,CAAC;gBAGb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,eAAe,EAAE;CAQ7B;AAeD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,gBAAgB,CAElB;AAoBD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,eAAe,EAAE,EACzB,IAAI,CAAC,EAAE,MAAM,GACZ,gBAAgB,CAElB;AAoBD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,GAAG,EACV,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,OAAe,GAC5B,gBAAgB,CAelB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorResponseDto = void 0;
|
|
4
|
+
exports.createErrorResponse = createErrorResponse;
|
|
5
|
+
exports.createValidationErrorResponse = createValidationErrorResponse;
|
|
6
|
+
exports.createErrorFromException = createErrorFromException;
|
|
7
|
+
class ErrorResponseDto {
|
|
8
|
+
statusCode;
|
|
9
|
+
message;
|
|
10
|
+
path;
|
|
11
|
+
timestamp;
|
|
12
|
+
errors;
|
|
13
|
+
code;
|
|
14
|
+
stack;
|
|
15
|
+
constructor(statusCode, message, path, errors) {
|
|
16
|
+
this.statusCode = statusCode;
|
|
17
|
+
this.message = message;
|
|
18
|
+
this.path = path;
|
|
19
|
+
this.timestamp = new Date().toISOString();
|
|
20
|
+
this.errors = errors;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.ErrorResponseDto = ErrorResponseDto;
|
|
24
|
+
function createErrorResponse(statusCode, message, path) {
|
|
25
|
+
return new ErrorResponseDto(statusCode, message, path);
|
|
26
|
+
}
|
|
27
|
+
function createValidationErrorResponse(errors, path) {
|
|
28
|
+
return new ErrorResponseDto(400, 'Validation failed', path, errors);
|
|
29
|
+
}
|
|
30
|
+
function createErrorFromException(error, path, includeStack = false) {
|
|
31
|
+
const statusCode = error.statusCode || error.status || 500;
|
|
32
|
+
const message = error.message || 'Internal server error';
|
|
33
|
+
const response = new ErrorResponseDto(statusCode, message, path);
|
|
34
|
+
if (error.code) {
|
|
35
|
+
response.code = error.code;
|
|
36
|
+
}
|
|
37
|
+
if (includeStack && error.stack) {
|
|
38
|
+
response.stack = error.stack;
|
|
39
|
+
}
|
|
40
|
+
return response;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=error-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-response.dto.js","sourceRoot":"","sources":["../../src/dtos/error-response.dto.ts"],"names":[],"mappings":";;;AAkGA,kDAMC;AAoBD,sEAKC;AAoBD,4DAmBC;AAvHD,MAAa,gBAAgB;IAE3B,UAAU,CAAS;IAGnB,OAAO,CAAkB;IAGzB,IAAI,CAAU;IAGd,SAAS,CAAU;IAGnB,MAAM,CAAqB;IAG3B,IAAI,CAAU;IAGd,KAAK,CAAU;IAEf,YACE,UAAkB,EAClB,OAAwB,EACxB,IAAa,EACb,MAA0B;QAE1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAlCD,4CAkCC;AAeD,SAAgB,mBAAmB,CACjC,UAAkB,EAClB,OAAe,EACf,IAAa;IAEb,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAoBD,SAAgB,6BAA6B,CAC3C,MAAyB,EACzB,IAAa;IAEb,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAoBD,SAAgB,wBAAwB,CACtC,KAAU,EACV,IAAa,EACb,eAAwB,KAAK;IAE7B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,uBAAuB,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEjE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { PaginatedResponseDto, createOffsetPaginatedResponse, createCursorPaginatedResponse, type PaginationMeta } from './paginated-response.dto';
|
|
2
|
+
export { ErrorResponseDto, createErrorResponse, createValidationErrorResponse, createErrorFromException, type ValidationError } from './error-response.dto';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dtos/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createErrorFromException = exports.createValidationErrorResponse = exports.createErrorResponse = exports.ErrorResponseDto = exports.createCursorPaginatedResponse = exports.createOffsetPaginatedResponse = exports.PaginatedResponseDto = void 0;
|
|
4
|
+
var paginated_response_dto_1 = require("./paginated-response.dto");
|
|
5
|
+
Object.defineProperty(exports, "PaginatedResponseDto", { enumerable: true, get: function () { return paginated_response_dto_1.PaginatedResponseDto; } });
|
|
6
|
+
Object.defineProperty(exports, "createOffsetPaginatedResponse", { enumerable: true, get: function () { return paginated_response_dto_1.createOffsetPaginatedResponse; } });
|
|
7
|
+
Object.defineProperty(exports, "createCursorPaginatedResponse", { enumerable: true, get: function () { return paginated_response_dto_1.createCursorPaginatedResponse; } });
|
|
8
|
+
var error_response_dto_1 = require("./error-response.dto");
|
|
9
|
+
Object.defineProperty(exports, "ErrorResponseDto", { enumerable: true, get: function () { return error_response_dto_1.ErrorResponseDto; } });
|
|
10
|
+
Object.defineProperty(exports, "createErrorResponse", { enumerable: true, get: function () { return error_response_dto_1.createErrorResponse; } });
|
|
11
|
+
Object.defineProperty(exports, "createValidationErrorResponse", { enumerable: true, get: function () { return error_response_dto_1.createValidationErrorResponse; } });
|
|
12
|
+
Object.defineProperty(exports, "createErrorFromException", { enumerable: true, get: function () { return error_response_dto_1.createErrorFromException; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dtos/index.ts"],"names":[],"mappings":";;;AAQA,mEAKkC;AAJhC,8HAAA,oBAAoB,OAAA;AACpB,uIAAA,6BAA6B,OAAA;AAC7B,uIAAA,6BAA6B,OAAA;AAK/B,2DAM8B;AAL5B,sHAAA,gBAAgB,OAAA;AAChB,yHAAA,mBAAmB,OAAA;AACnB,mIAAA,6BAA6B,OAAA;AAC7B,8HAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface PaginationMeta {
|
|
2
|
+
limit: number;
|
|
3
|
+
offset?: number;
|
|
4
|
+
total?: number;
|
|
5
|
+
nextCursor?: string;
|
|
6
|
+
prevCursor?: string;
|
|
7
|
+
hasMore?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class PaginatedResponseDto<T> {
|
|
10
|
+
items: T[];
|
|
11
|
+
page: PaginationMeta;
|
|
12
|
+
constructor(items: T[], page: PaginationMeta);
|
|
13
|
+
}
|
|
14
|
+
export declare function createOffsetPaginatedResponse<T>(items: T[], limit: number, offset: number, total?: number): PaginatedResponseDto<T>;
|
|
15
|
+
export declare function createCursorPaginatedResponse<T>(items: T[], limit: number, nextCursor?: string, prevCursor?: string): PaginatedResponseDto<T>;
|
|
16
|
+
//# sourceMappingURL=paginated-response.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-response.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/paginated-response.dto.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAE7B,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA6BD,qBAAa,oBAAoB,CAAC,CAAC;IAEjC,KAAK,EAAE,CAAC,EAAE,CAAC;IAGX,IAAI,EAAE,cAAc,CAAC;gBAET,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc;CAI7C;AAgBD,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,oBAAoB,CAAC,CAAC,CAAC,CAOzB;AAqBD,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,oBAAoB,CAAC,CAAC,CAAC,CAOzB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PaginatedResponseDto = void 0;
|
|
4
|
+
exports.createOffsetPaginatedResponse = createOffsetPaginatedResponse;
|
|
5
|
+
exports.createCursorPaginatedResponse = createCursorPaginatedResponse;
|
|
6
|
+
class PaginatedResponseDto {
|
|
7
|
+
items;
|
|
8
|
+
page;
|
|
9
|
+
constructor(items, page) {
|
|
10
|
+
this.items = items;
|
|
11
|
+
this.page = page;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.PaginatedResponseDto = PaginatedResponseDto;
|
|
15
|
+
function createOffsetPaginatedResponse(items, limit, offset, total) {
|
|
16
|
+
return new PaginatedResponseDto(items, {
|
|
17
|
+
limit,
|
|
18
|
+
offset,
|
|
19
|
+
total,
|
|
20
|
+
hasMore: total !== undefined ? offset + items.length < total : undefined
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function createCursorPaginatedResponse(items, limit, nextCursor, prevCursor) {
|
|
24
|
+
return new PaginatedResponseDto(items, {
|
|
25
|
+
limit,
|
|
26
|
+
nextCursor,
|
|
27
|
+
prevCursor,
|
|
28
|
+
hasMore: !!nextCursor
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=paginated-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-response.dto.js","sourceRoot":"","sources":["../../src/dtos/paginated-response.dto.ts"],"names":[],"mappings":";;;AAgFA,sEAYC;AAqBD,sEAYC;AAxED,MAAa,oBAAoB;IAE/B,KAAK,CAAM;IAGX,IAAI,CAAiB;IAErB,YAAY,KAAU,EAAE,IAAoB;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAXD,oDAWC;AAgBD,SAAgB,6BAA6B,CAC3C,KAAU,EACV,KAAa,EACb,MAAc,EACd,KAAc;IAEd,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE;QACrC,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS;KACzE,CAAC,CAAC;AACL,CAAC;AAqBD,SAAgB,6BAA6B,CAC3C,KAAU,EACV,KAAa,EACb,UAAmB,EACnB,UAAmB;IAEnB,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE;QACrC,KAAK;QACL,UAAU;QACV,UAAU;QACV,OAAO,EAAE,CAAC,CAAC,UAAU;KACtB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox.repository.d.ts","sourceRoot":"","sources":["../../../src/envelope/repositories/outbox.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ1C,qBAAa,UAAU;WAIR,OAAO,CAClB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,GAAG,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,YAAY,CAAC,EAAE,IAAI,CAAC;KACrB,GACA,OAAO,CAAC,IAAI,CAAC;WAoBH,UAAU,CACrB,UAAU,EAAE,UAAU,EACtB,WAAW,SAAI,EACf,KAAK,SAAM,GACV,OAAO,CAAC,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"outbox.repository.d.ts","sourceRoot":"","sources":["../../../src/envelope/repositories/outbox.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ1C,qBAAa,UAAU;WAIR,OAAO,CAClB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,GAAG,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,YAAY,CAAC,EAAE,IAAI,CAAC;KACrB,GACA,OAAO,CAAC,IAAI,CAAC;WAoBH,UAAU,CACrB,UAAU,EAAE,UAAU,EACtB,WAAW,SAAI,EACf,KAAK,SAAM,GACV,OAAO,CAAC,YAAY,EAAE,CAAC;WAqBb,aAAa,CACxB,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC;WAaH,UAAU,CACrB,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;WAmBH,WAAW,CACtB,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC;WAYH,gBAAgB,CAC3B,UAAU,EAAE,UAAU,EACtB,gBAAgB,SAAK,EACrB,KAAK,SAAM,GACV,OAAO,CAAC,YAAY,EAAE,CAAC;WAmBb,OAAO,CAClB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,IAAI,GACf,OAAO,CAAC,MAAM,CAAC;WAgBL,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;QACrD,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CAYH"}
|
|
@@ -23,7 +23,7 @@ class OutboxRepo {
|
|
|
23
23
|
return repo
|
|
24
24
|
.createQueryBuilder('outbox')
|
|
25
25
|
.where('outbox.status = :status', { status: 'pending' })
|
|
26
|
-
.andWhere('outbox.attempts
|
|
26
|
+
.andWhere('outbox.attempts <= :maxAttempts', { maxAttempts })
|
|
27
27
|
.andWhere('(outbox.publishAfter IS NULL OR outbox.publishAfter <= :now)', { now })
|
|
28
28
|
.orderBy('outbox.createdAt', 'ASC')
|
|
29
29
|
.take(limit)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox.repository.js","sourceRoot":"","sources":["../../../src/envelope/repositories/outbox.repository.ts"],"names":[],"mappings":";;;AAIA,wCAA0C;AAE1C,wCAAwC;AAOxC,MAAa,UAAU;IAIrB,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,OAAsB,EACtB,MAKC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAOD,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,UAAsB,EACtB,WAAW,GAAG,CAAC,EACf,KAAK,GAAG,GAAG;QAEX,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,OAAO,IAAI;aACR,kBAAkB,CAAC,QAAQ,CAAC;aAC5B,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"outbox.repository.js","sourceRoot":"","sources":["../../../src/envelope/repositories/outbox.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { OnModuleInit } from '@nestjs/common';
|
|
1
|
+
import { OnModuleInit, OnApplicationShutdown } from '@nestjs/common';
|
|
2
2
|
import { DataSource } from 'typeorm';
|
|
3
3
|
import { type EnvelopeConfig } from '../envelope.config';
|
|
4
|
-
export declare class InboxRetryService implements OnModuleInit {
|
|
4
|
+
export declare class InboxRetryService implements OnModuleInit, OnApplicationShutdown {
|
|
5
5
|
private readonly dataSource;
|
|
6
6
|
private readonly retryHandler;
|
|
7
7
|
private readonly cfg;
|
|
@@ -9,6 +9,7 @@ export declare class InboxRetryService implements OnModuleInit {
|
|
|
9
9
|
private intervalId?;
|
|
10
10
|
constructor(dataSource: DataSource, retryHandler: (topic: string, payload: any, meta: any) => Promise<void>, cfg: EnvelopeConfig);
|
|
11
11
|
onModuleInit(): Promise<void>;
|
|
12
|
+
onApplicationShutdown(signal?: string): Promise<void>;
|
|
12
13
|
stop(): void;
|
|
13
14
|
private retryMessages;
|
|
14
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-retry.service.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,YAAY,EAAU,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox-retry.service.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,YAAY,EAAE,qBAAqB,EAAU,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAO1E,qBACa,iBAAkB,YAAW,YAAY,EAAE,qBAAqB;IAKzE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAK3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAGjB,UAAU,EAAE,UAAU,EAKtB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAEvE,GAAG,EAAE,cAAc;IAGhC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB7B,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,IAAI,IAAI,IAAI;YAQE,aAAa;CA6C5B"}
|
|
@@ -44,6 +44,10 @@ let InboxRetryService = InboxRetryService_1 = class InboxRetryService {
|
|
|
44
44
|
}, intervalMs);
|
|
45
45
|
this.logger.log(`Inbox retry service started (interval: ${intervalMs}ms)`);
|
|
46
46
|
}
|
|
47
|
+
async onApplicationShutdown(signal) {
|
|
48
|
+
this.logger.log(`Shutting down Inbox retry service (signal: ${signal})`);
|
|
49
|
+
this.stop();
|
|
50
|
+
}
|
|
47
51
|
stop() {
|
|
48
52
|
if (this.intervalId) {
|
|
49
53
|
clearInterval(this.intervalId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-retry.service.js","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"inbox-retry.service.js","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { OnModuleInit } from '@nestjs/common';
|
|
1
|
+
import { OnModuleInit, OnApplicationShutdown } from '@nestjs/common';
|
|
2
2
|
import { DataSource } from 'typeorm';
|
|
3
3
|
import { type EnvelopeConfig } from '../envelope.config';
|
|
4
|
-
export declare class OutboxDispatcherService implements OnModuleInit {
|
|
4
|
+
export declare class OutboxDispatcherService implements OnModuleInit, OnApplicationShutdown {
|
|
5
5
|
private readonly dataSource;
|
|
6
6
|
private readonly publishFn;
|
|
7
7
|
private readonly cfg;
|
|
@@ -9,8 +9,11 @@ export declare class OutboxDispatcherService implements OnModuleInit {
|
|
|
9
9
|
private intervalId?;
|
|
10
10
|
constructor(dataSource: DataSource, publishFn: (topic: string, payload: any, meta: any) => Promise<void>, cfg: EnvelopeConfig);
|
|
11
11
|
onModuleInit(): Promise<void>;
|
|
12
|
+
onApplicationShutdown(signal?: string): Promise<void>;
|
|
12
13
|
stop(): void;
|
|
13
14
|
private publishMessage;
|
|
14
15
|
private dispatch;
|
|
16
|
+
private tryLockAndProcess;
|
|
17
|
+
private tryLockWithSkipLocked;
|
|
15
18
|
}
|
|
16
19
|
//# sourceMappingURL=outbox-dispatcher.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-dispatcher.service.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/outbox-dispatcher.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,YAAY,EAAU,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"outbox-dispatcher.service.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/outbox-dispatcher.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,YAAY,EAAE,qBAAqB,EAAU,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAY1E,qBACa,uBAAwB,YAAW,YAAY,EAAE,qBAAqB;IAK/E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAK3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAGjB,UAAU,EAAE,UAAU,EAKtB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAEpE,GAAG,EAAE,cAAc;IAOhC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B7B,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,IAAI,IAAI,IAAI;YAQE,cAAc;YAcd,QAAQ;YAgBR,iBAAiB;YAiDjB,qBAAqB;CA6CpC"}
|
|
@@ -46,6 +46,10 @@ let OutboxDispatcherService = OutboxDispatcherService_1 = class OutboxDispatcher
|
|
|
46
46
|
}, intervalMs);
|
|
47
47
|
this.logger.log(`Outbox dispatcher started (interval: ${intervalMs}ms, maxAttempts: ${maxAttempts})`);
|
|
48
48
|
}
|
|
49
|
+
async onApplicationShutdown(signal) {
|
|
50
|
+
this.logger.log(`Shutting down Outbox dispatcher (signal: ${signal})`);
|
|
51
|
+
this.stop();
|
|
52
|
+
}
|
|
49
53
|
stop() {
|
|
50
54
|
if (this.intervalId) {
|
|
51
55
|
clearInterval(this.intervalId);
|
|
@@ -67,37 +71,70 @@ let OutboxDispatcherService = OutboxDispatcherService_1 = class OutboxDispatcher
|
|
|
67
71
|
async dispatch(maxAttempts) {
|
|
68
72
|
const messages = await repositories_1.OutboxRepo.getPending(this.dataSource, maxAttempts);
|
|
69
73
|
for (const message of messages) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
await this.tryLockAndProcess(message);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async tryLockAndProcess(message) {
|
|
78
|
+
const queryRunner = this.dataSource.createQueryRunner();
|
|
79
|
+
await queryRunner.connect();
|
|
80
|
+
await queryRunner.startTransaction();
|
|
81
|
+
try {
|
|
82
|
+
const locked = await this.tryLockWithSkipLocked(queryRunner, message.id);
|
|
83
|
+
if (!locked) {
|
|
84
|
+
await queryRunner.rollbackTransaction();
|
|
85
|
+
await queryRunner.release();
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
await queryRunner.manager
|
|
89
|
+
.getRepository(schemas_1.OutboxSchema)
|
|
90
|
+
.update(message.id, { lastAttemptAt: new Date() });
|
|
91
|
+
await this.publishMessage(message);
|
|
92
|
+
await queryRunner.manager.getRepository(schemas_1.OutboxSchema).update(message.id, {
|
|
93
|
+
status: 'published',
|
|
94
|
+
publishedAt: new Date(),
|
|
95
|
+
});
|
|
96
|
+
await queryRunner.commitTransaction();
|
|
97
|
+
this.logger.debug(`Published message ${message.id}`);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
await queryRunner.rollbackTransaction();
|
|
101
|
+
await repositories_1.OutboxRepo.markFailed(this.dataSource, message.id, error?.message || String(error));
|
|
102
|
+
this.logger.error(`Failed to publish ${message.id}: ${error?.message || error}`);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
await queryRunner.release();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async tryLockWithSkipLocked(queryRunner, messageId) {
|
|
109
|
+
try {
|
|
110
|
+
const dbType = this.dataSource.options.type;
|
|
111
|
+
if (dbType === 'postgres' || dbType === 'mysql' || dbType === 'mariadb') {
|
|
112
|
+
const result = await queryRunner.manager
|
|
75
113
|
.createQueryBuilder()
|
|
76
114
|
.select()
|
|
77
115
|
.from(schemas_1.OutboxSchema, 'outbox')
|
|
78
|
-
.where('id = :id', { id:
|
|
79
|
-
.
|
|
116
|
+
.where('id = :id', { id: messageId })
|
|
117
|
+
.andWhere('status = :status', { status: 'pending' })
|
|
118
|
+
.setLock('pessimistic_write', undefined, ['skip_locked'])
|
|
80
119
|
.getRawOne();
|
|
81
|
-
|
|
82
|
-
.getRepository(schemas_1.OutboxSchema)
|
|
83
|
-
.update(message.id, { lastAttemptAt: new Date() });
|
|
84
|
-
await this.publishMessage(message);
|
|
85
|
-
await queryRunner.manager.getRepository(schemas_1.OutboxSchema).update(message.id, {
|
|
86
|
-
status: 'published',
|
|
87
|
-
publishedAt: new Date(),
|
|
88
|
-
});
|
|
89
|
-
await queryRunner.commitTransaction();
|
|
90
|
-
this.logger.debug(`Published message ${message.id}`);
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
await queryRunner.rollbackTransaction();
|
|
94
|
-
await repositories_1.OutboxRepo.markFailed(this.dataSource, message.id, error?.message || String(error));
|
|
95
|
-
this.logger.error(`Failed to publish ${message.id}: ${error?.message || error}`);
|
|
120
|
+
return !!result;
|
|
96
121
|
}
|
|
97
|
-
|
|
98
|
-
await queryRunner.
|
|
122
|
+
else {
|
|
123
|
+
const result = await queryRunner.manager
|
|
124
|
+
.createQueryBuilder()
|
|
125
|
+
.update(schemas_1.OutboxSchema)
|
|
126
|
+
.set({ lastAttemptAt: new Date() })
|
|
127
|
+
.where('id = :id', { id: messageId })
|
|
128
|
+
.andWhere('status = :status', { status: 'pending' })
|
|
129
|
+
.andWhere('(lastAttemptAt IS NULL OR lastAttemptAt < :threshold)', { threshold: new Date(Date.now() - 5000) })
|
|
130
|
+
.execute();
|
|
131
|
+
return (result.affected ?? 0) > 0;
|
|
99
132
|
}
|
|
100
133
|
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
this.logger.error(`Error locking message ${messageId}: ${error?.message || error}`);
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
101
138
|
}
|
|
102
139
|
};
|
|
103
140
|
exports.OutboxDispatcherService = OutboxDispatcherService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-dispatcher.service.js","sourceRoot":"","sources":["../../../src/envelope/services/outbox-dispatcher.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"outbox-dispatcher.service.js","sourceRoot":"","sources":["../../../src/envelope/services/outbox-dispatcher.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-manager.d.ts","sourceRoot":"","sources":["../../src/envelope/tx-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tx-manager.d.ts","sourceRoot":"","sources":["../../src/envelope/tx-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASxD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,CAAC;CACxC;AAaD,qBAAa,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CACpD,YAAW,SAAS,CAAC,CAAC,CAAC;IAGrB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,CAAC;IAGpB,WAAW,CAAC,CAAC,EACjB,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,CAAC,CAAC;CAYd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/event-bus/adapters/index.ts"],"names":[],"mappings":"AAOA,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
|