@anatix/runtime 1.0.0 → 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/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/{configs → contracts}/index.js +1 -2
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/service-options.d.ts +15 -0
- package/dist/contracts/service-options.d.ts.map +1 -0
- package/dist/{configs/service-runtime.js → contracts/service-options.js} +1 -1
- package/dist/contracts/service-options.js.map +1 -0
- 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/envelope.config.d.ts +17 -0
- package/dist/envelope/envelope.config.d.ts.map +1 -0
- package/dist/envelope/envelope.config.js +5 -0
- package/dist/envelope/envelope.config.js.map +1 -0
- package/dist/envelope/index.d.ts +2 -0
- package/dist/envelope/index.d.ts.map +1 -1
- package/dist/envelope/index.js +2 -0
- package/dist/envelope/index.js.map +1 -1
- 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 +6 -3
- package/dist/envelope/services/inbox-retry.service.d.ts.map +1 -1
- package/dist/envelope/services/inbox-retry.service.js +20 -7
- package/dist/envelope/services/inbox-retry.service.js.map +1 -1
- package/dist/envelope/services/index.d.ts +1 -0
- package/dist/envelope/services/index.d.ts.map +1 -1
- package/dist/envelope/services/index.js +1 -0
- package/dist/envelope/services/index.js.map +1 -1
- package/dist/envelope/services/outbox-dispatcher.service.d.ts +8 -4
- package/dist/envelope/services/outbox-dispatcher.service.d.ts.map +1 -1
- package/dist/envelope/services/outbox-dispatcher.service.js +82 -22
- package/dist/envelope/services/outbox-dispatcher.service.js.map +1 -1
- package/dist/envelope/tx-manager.d.ts +14 -0
- package/dist/envelope/tx-manager.d.ts.map +1 -0
- package/dist/envelope/tx-manager.js +20 -0
- package/dist/envelope/tx-manager.js.map +1 -0
- 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/{configs/service-repo-configs.js → event-bus/adapters/message-broker.interface.js} +1 -1
- 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 +36 -0
- package/dist/event-bus/event-bus.config.d.ts.map +1 -0
- package/dist/event-bus/event-bus.config.js +17 -0
- package/dist/event-bus/event-bus.config.js.map +1 -0
- package/dist/event-bus/index.d.ts +1 -0
- package/dist/event-bus/index.d.ts.map +1 -1
- package/dist/event-bus/index.js +1 -0
- package/dist/event-bus/index.js.map +1 -1
- package/dist/event-bus/modules/event-bus.module.d.ts.map +1 -1
- package/dist/event-bus/modules/event-bus.module.js +9 -2
- package/dist/event-bus/modules/event-bus.module.js.map +1 -1
- package/dist/event-bus/services/event-bus.service.d.ts +10 -5
- package/dist/event-bus/services/event-bus.service.d.ts.map +1 -1
- package/dist/event-bus/services/event-bus.service.js +110 -185
- 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/guards/base/index.d.ts +0 -1
- package/dist/guards/base/index.d.ts.map +1 -1
- package/dist/guards/base/index.js +0 -1
- package/dist/guards/base/index.js.map +1 -1
- package/dist/guards/base/jwt-auth.guard.d.ts +6 -1
- package/dist/guards/base/jwt-auth.guard.d.ts.map +1 -1
- package/dist/guards/base/jwt-auth.guard.js +32 -20
- package/dist/guards/base/jwt-auth.guard.js.map +1 -1
- package/dist/guards/base/permissions.guard.d.ts +1 -0
- package/dist/guards/base/permissions.guard.d.ts.map +1 -1
- package/dist/guards/base/permissions.guard.js +6 -2
- package/dist/guards/base/permissions.guard.js.map +1 -1
- package/dist/guards/types/base-roles.enum.d.ts +6 -0
- package/dist/guards/types/base-roles.enum.d.ts.map +1 -0
- package/dist/guards/types/base-roles.enum.js +10 -0
- package/dist/guards/types/base-roles.enum.js.map +1 -0
- package/dist/guards/types/index.d.ts +2 -0
- package/dist/guards/types/index.d.ts.map +1 -1
- package/dist/guards/types/index.js +2 -0
- package/dist/guards/types/index.js.map +1 -1
- package/dist/guards/types/tokens.constant.d.ts +5 -0
- package/dist/guards/types/tokens.constant.d.ts.map +1 -0
- package/dist/guards/types/tokens.constant.js +7 -0
- package/dist/guards/types/tokens.constant.js.map +1 -0
- package/dist/guards/utils/token.util.d.ts.map +1 -1
- package/dist/guards/utils/token.util.js +14 -9
- package/dist/guards/utils/token.util.js.map +1 -1
- 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/health/index.d.ts +2 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +18 -0
- package/dist/health/index.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -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 +13 -0
- package/dist/repository/cursor.d.ts.map +1 -0
- package/dist/repository/cursor.js +73 -0
- package/dist/repository/cursor.js.map +1 -0
- package/dist/repository/index.d.ts +7 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/repository/index.js +25 -0
- package/dist/repository/index.js.map +1 -0
- 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 +9 -0
- package/dist/security/bcrypt.adapter.d.ts.map +1 -0
- package/dist/security/bcrypt.adapter.js +53 -0
- package/dist/security/bcrypt.adapter.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +2 -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 +52 -15
- package/dist/configs/env-validation.d.ts +0 -2
- package/dist/configs/env-validation.d.ts.map +0 -1
- package/dist/configs/env-validation.js +0 -49
- package/dist/configs/env-validation.js.map +0 -1
- package/dist/configs/index.d.ts +0 -3
- package/dist/configs/index.d.ts.map +0 -1
- package/dist/configs/index.js.map +0 -1
- package/dist/configs/service-repo-configs.d.ts +0 -13
- package/dist/configs/service-repo-configs.d.ts.map +0 -1
- package/dist/configs/service-repo-configs.js.map +0 -1
- package/dist/configs/service-runtime.d.ts +0 -19
- package/dist/configs/service-runtime.d.ts.map +0 -1
- package/dist/configs/service-runtime.js.map +0 -1
- package/dist/guards/base/roles.guard.d.ts +0 -10
- package/dist/guards/base/roles.guard.d.ts.map +0 -1
- package/dist/guards/base/roles.guard.js +0 -58
- package/dist/guards/base/roles.guard.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -14,6 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./service-
|
|
18
|
-
__exportStar(require("./service-runtime"), exports);
|
|
17
|
+
__exportStar(require("./service-options"), exports);
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type OrderDir = "ASC" | "DESC";
|
|
2
|
+
export interface ServiceListOptions {
|
|
3
|
+
limit?: number;
|
|
4
|
+
offset?: number;
|
|
5
|
+
cursor?: string;
|
|
6
|
+
orderBy?: string;
|
|
7
|
+
orderDir?: OrderDir;
|
|
8
|
+
projection?: string | string[];
|
|
9
|
+
}
|
|
10
|
+
export interface ServiceQueryOptions extends ServiceListOptions {
|
|
11
|
+
search?: string;
|
|
12
|
+
}
|
|
13
|
+
export type RepoListOptions = ServiceListOptions;
|
|
14
|
+
export type RepoQueryOptions = ServiceQueryOptions;
|
|
15
|
+
//# sourceMappingURL=service-options.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-options.js","sourceRoot":"","sources":["../../src/contracts/service-options.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface OutboxDispatchConfig {
|
|
2
|
+
enabled?: boolean;
|
|
3
|
+
intervalMs?: number;
|
|
4
|
+
maxAttempts?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface InboxRetryConfig {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
intervalMs?: number;
|
|
9
|
+
maxAttempts?: number;
|
|
10
|
+
stuckMinutes?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface EnvelopeConfig {
|
|
13
|
+
outbox?: OutboxDispatchConfig;
|
|
14
|
+
inboxRetry?: InboxRetryConfig;
|
|
15
|
+
}
|
|
16
|
+
export declare const ENVELOPE_CONFIG = "ENVELOPE_CONFIG";
|
|
17
|
+
//# sourceMappingURL=envelope.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.config.d.ts","sourceRoot":"","sources":["../../src/envelope/envelope.config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IAEnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAE/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAWD,eAAO,MAAM,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.config.js","sourceRoot":"","sources":["../../src/envelope/envelope.config.ts"],"names":[],"mappings":";;;AAoCa,QAAA,eAAe,GAAG,iBAAiB,CAAC"}
|
package/dist/envelope/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envelope/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envelope/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,cAAc,CAAC"}
|
package/dist/envelope/index.js
CHANGED
|
@@ -18,4 +18,6 @@ __exportStar(require("./types"), exports);
|
|
|
18
18
|
__exportStar(require("./repositories"), exports);
|
|
19
19
|
__exportStar(require("./services"), exports);
|
|
20
20
|
__exportStar(require("./helpers"), exports);
|
|
21
|
+
__exportStar(require("./envelope.config"), exports);
|
|
22
|
+
__exportStar(require("./tx-manager"), exports);
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envelope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,0CAAwB;AAGxB,iDAA+B;AAG/B,6CAA2B;AAG3B,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envelope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,0CAAwB;AAGxB,iDAA+B;AAG/B,6CAA2B;AAG3B,4CAA0B;AAG1B,oDAAkC;AAGlC,+CAA6B"}
|
|
@@ -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":";;;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;aAEvD,QAAQ,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,CAAC;aAC5D,QAAQ,CACP,8DAA8D,EAC9D,EAAE,GAAG,EAAE,CACR;aACA,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC;aAClC,IAAI,CAAC,KAAK,CAAC;aACX,OAAO,EAAE,CAAC;IACf,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,UAAsB,EACtB,EAAU;QAEV,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACpB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAOD,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,UAAsB,EACtB,EAAU,EACV,KAAa;QAEb,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAElE,MAAM,IAAI;aACP,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,GAAG,CAAC;YACH,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;YACnC,aAAa,EAAE,IAAI,IAAI,EAAE;SAC1B,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;aACzB,OAAO,EAAE,CAAC;IACf,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,UAAsB,EACtB,EAAU;QAEV,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAElE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACpB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,UAAsB,EACtB,gBAAgB,GAAG,EAAE,EACrB,KAAK,GAAG,GAAG;QAEX,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEtE,OAAO,IAAI;aACR,kBAAkB,CAAC,QAAQ,CAAC;aAC5B,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;aACvD,QAAQ,CACP,0EAA0E,EAC1E,EAAE,SAAS,EAAE,CACd;aACA,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC;aAClC,IAAI,CAAC,KAAK,CAAC;aACX,OAAO,EAAE,CAAC;IACf,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,UAAsB,EACtB,UAAgB;QAEhB,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI;aACtB,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAClD,QAAQ,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,CAAC;aACrD,OAAO,EAAE,CAAC;QAEb,OAAO,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC9B,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAsB;QAM1C,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAe,sBAAY,CAAC,CAAC;QAElE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE;SACb,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;CACF;AA1KD,gCA0KC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
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, OnApplicationShutdown {
|
|
4
5
|
private readonly dataSource;
|
|
5
6
|
private readonly retryHandler;
|
|
7
|
+
private readonly cfg;
|
|
6
8
|
private readonly logger;
|
|
7
9
|
private intervalId?;
|
|
8
|
-
constructor(dataSource: DataSource, retryHandler: (topic: string, payload: any, meta: any) => Promise<void
|
|
10
|
+
constructor(dataSource: DataSource, retryHandler: (topic: string, payload: any, meta: any) => Promise<void>, cfg: EnvelopeConfig);
|
|
9
11
|
onModuleInit(): Promise<void>;
|
|
12
|
+
onApplicationShutdown(signal?: string): Promise<void>;
|
|
10
13
|
stop(): void;
|
|
11
14
|
private retryMessages;
|
|
12
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-retry.service.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -8,28 +8,35 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
var InboxRetryService_1;
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.InboxRetryService = void 0;
|
|
14
17
|
const common_1 = require("@nestjs/common");
|
|
15
18
|
const typeorm_1 = require("typeorm");
|
|
16
19
|
const repositories_1 = require("../repositories");
|
|
20
|
+
const envelope_config_1 = require("../envelope.config");
|
|
17
21
|
let InboxRetryService = InboxRetryService_1 = class InboxRetryService {
|
|
18
22
|
dataSource;
|
|
19
23
|
retryHandler;
|
|
24
|
+
cfg;
|
|
20
25
|
logger = new common_1.Logger(InboxRetryService_1.name);
|
|
21
26
|
intervalId;
|
|
22
|
-
constructor(dataSource, retryHandler) {
|
|
27
|
+
constructor(dataSource, retryHandler, cfg) {
|
|
23
28
|
this.dataSource = dataSource;
|
|
24
29
|
this.retryHandler = retryHandler;
|
|
30
|
+
this.cfg = cfg;
|
|
25
31
|
}
|
|
26
32
|
async onModuleInit() {
|
|
27
|
-
const
|
|
28
|
-
const enabled =
|
|
33
|
+
const inboxCfg = this.cfg?.inboxRetry ?? {};
|
|
34
|
+
const enabled = inboxCfg.enabled ?? true;
|
|
29
35
|
if (!enabled) {
|
|
30
|
-
this.logger.log('Inbox retry service disabled');
|
|
36
|
+
this.logger.log('Inbox retry service disabled by config');
|
|
31
37
|
return;
|
|
32
38
|
}
|
|
39
|
+
const intervalMs = inboxCfg.intervalMs ?? 60000;
|
|
33
40
|
this.intervalId = setInterval(() => {
|
|
34
41
|
this.retryMessages().catch((err) => {
|
|
35
42
|
this.logger.error(`Inbox retry error: ${err?.message || err}`);
|
|
@@ -37,6 +44,10 @@ let InboxRetryService = InboxRetryService_1 = class InboxRetryService {
|
|
|
37
44
|
}, intervalMs);
|
|
38
45
|
this.logger.log(`Inbox retry service started (interval: ${intervalMs}ms)`);
|
|
39
46
|
}
|
|
47
|
+
async onApplicationShutdown(signal) {
|
|
48
|
+
this.logger.log(`Shutting down Inbox retry service (signal: ${signal})`);
|
|
49
|
+
this.stop();
|
|
50
|
+
}
|
|
40
51
|
stop() {
|
|
41
52
|
if (this.intervalId) {
|
|
42
53
|
clearInterval(this.intervalId);
|
|
@@ -45,8 +56,9 @@ let InboxRetryService = InboxRetryService_1 = class InboxRetryService {
|
|
|
45
56
|
}
|
|
46
57
|
}
|
|
47
58
|
async retryMessages() {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
59
|
+
const inboxCfg = this.cfg?.inboxRetry ?? {};
|
|
60
|
+
const maxAttempts = inboxCfg.maxAttempts ?? 3;
|
|
61
|
+
const stuckMinutes = inboxCfg.stuckMinutes ?? 5;
|
|
50
62
|
const failedMessages = await repositories_1.InboxRepo.getFailedMessages(this.dataSource, maxAttempts, 10);
|
|
51
63
|
for (const msg of failedMessages) {
|
|
52
64
|
this.logger.warn(`Retrying failed message: ${msg.messageId} (attempt ${msg.attempts + 1}/${maxAttempts})`);
|
|
@@ -76,6 +88,7 @@ let InboxRetryService = InboxRetryService_1 = class InboxRetryService {
|
|
|
76
88
|
exports.InboxRetryService = InboxRetryService;
|
|
77
89
|
exports.InboxRetryService = InboxRetryService = InboxRetryService_1 = __decorate([
|
|
78
90
|
(0, common_1.Injectable)(),
|
|
79
|
-
|
|
91
|
+
__param(2, (0, common_1.Inject)(envelope_config_1.ENVELOPE_CONFIG)),
|
|
92
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource, Function, Object])
|
|
80
93
|
], InboxRetryService);
|
|
81
94
|
//# sourceMappingURL=inbox-retry.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-retry.service.js","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inbox-retry.service.js","sourceRoot":"","sources":["../../../src/envelope/services/inbox-retry.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envelope/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,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("./outbox-dispatcher.service"), exports);
|
|
18
|
+
__exportStar(require("./inbox-retry.service"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/envelope/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/envelope/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,wDAAsC"}
|