@saltsquareio/nestjs-backend-platform 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +72 -0
- package/dist/cli/migrate.d.ts +2 -0
- package/dist/cli/migrate.js +34 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/core/ai/ai.module.d.ts +5 -0
- package/dist/core/ai/ai.module.js +53 -0
- package/dist/core/ai/ai.module.js.map +1 -0
- package/dist/core/ai/ai.options.d.ts +33 -0
- package/dist/core/ai/ai.options.js +14 -0
- package/dist/core/ai/ai.options.js.map +1 -0
- package/dist/core/ai/ai.service.d.ts +49 -0
- package/dist/core/ai/ai.service.js +381 -0
- package/dist/core/ai/ai.service.js.map +1 -0
- package/dist/core/ai/ai.types.d.ts +133 -0
- package/dist/core/ai/ai.types.js +3 -0
- package/dist/core/ai/ai.types.js.map +1 -0
- package/dist/core/ai/context/context-formatter.service.d.ts +9 -0
- package/dist/core/ai/context/context-formatter.service.js +66 -0
- package/dist/core/ai/context/context-formatter.service.js.map +1 -0
- package/dist/core/ai/cost/cost-tracking.service.d.ts +12 -0
- package/dist/core/ai/cost/cost-tracking.service.js +65 -0
- package/dist/core/ai/cost/cost-tracking.service.js.map +1 -0
- package/dist/core/ai/entities/ai-invocation-log.entity.d.ts +19 -0
- package/dist/core/ai/entities/ai-invocation-log.entity.js +116 -0
- package/dist/core/ai/entities/ai-invocation-log.entity.js.map +1 -0
- package/dist/core/ai/entities/prompt-template.entity.d.ts +13 -0
- package/dist/core/ai/entities/prompt-template.entity.js +75 -0
- package/dist/core/ai/entities/prompt-template.entity.js.map +1 -0
- package/dist/core/ai/index.d.ts +18 -0
- package/dist/core/ai/index.js +36 -0
- package/dist/core/ai/index.js.map +1 -0
- package/dist/core/ai/llm/dummy-llm-model.d.ts +9 -0
- package/dist/core/ai/llm/dummy-llm-model.js +18 -0
- package/dist/core/ai/llm/dummy-llm-model.js.map +1 -0
- package/dist/core/ai/llm/index.d.ts +2 -0
- package/dist/core/ai/llm/index.js +19 -0
- package/dist/core/ai/llm/index.js.map +1 -0
- package/dist/core/ai/llm/openai-llm-model.d.ts +10 -0
- package/dist/core/ai/llm/openai-llm-model.js +46 -0
- package/dist/core/ai/llm/openai-llm-model.js.map +1 -0
- package/dist/core/ai/llm-model.d.ts +17 -0
- package/dist/core/ai/llm-model.js +3 -0
- package/dist/core/ai/llm-model.js.map +1 -0
- package/dist/core/ai/memory/memory.service.d.ts +18 -0
- package/dist/core/ai/memory/memory.service.js +157 -0
- package/dist/core/ai/memory/memory.service.js.map +1 -0
- package/dist/core/ai/memory/memory.types.d.ts +6 -0
- package/dist/core/ai/memory/memory.types.js +3 -0
- package/dist/core/ai/memory/memory.types.js.map +1 -0
- package/dist/core/ai/memory/memory.utils.d.ts +1 -0
- package/dist/core/ai/memory/memory.utils.js +17 -0
- package/dist/core/ai/memory/memory.utils.js.map +1 -0
- package/dist/core/ai/model-registry.service.d.ts +19 -0
- package/dist/core/ai/model-registry.service.js +60 -0
- package/dist/core/ai/model-registry.service.js.map +1 -0
- package/dist/core/ai/model-resolver.service.d.ts +6 -0
- package/dist/core/ai/model-resolver.service.js +28 -0
- package/dist/core/ai/model-resolver.service.js.map +1 -0
- package/dist/core/ai/prompt-builder.service.d.ts +16 -0
- package/dist/core/ai/prompt-builder.service.js +34 -0
- package/dist/core/ai/prompt-builder.service.js.map +1 -0
- package/dist/core/ai/provider/provider-factory.service.d.ts +18 -0
- package/dist/core/ai/provider/provider-factory.service.js +60 -0
- package/dist/core/ai/provider/provider-factory.service.js.map +1 -0
- package/dist/core/ai/safety/safety-guardrail.service.d.ts +9 -0
- package/dist/core/ai/safety/safety-guardrail.service.js +65 -0
- package/dist/core/ai/safety/safety-guardrail.service.js.map +1 -0
- package/dist/core/ai/summarization/summarization.service.d.ts +24 -0
- package/dist/core/ai/summarization/summarization.service.js +66 -0
- package/dist/core/ai/summarization/summarization.service.js.map +1 -0
- package/dist/core/ai/template/template.service.d.ts +14 -0
- package/dist/core/ai/template/template.service.js +88 -0
- package/dist/core/ai/template/template.service.js.map +1 -0
- package/dist/core/audit-log/audit-log.entity.d.ts +13 -0
- package/dist/core/audit-log/audit-log.entity.js +72 -0
- package/dist/core/audit-log/audit-log.entity.js.map +1 -0
- package/dist/core/audit-log/audit-log.module.d.ts +2 -0
- package/dist/core/audit-log/audit-log.module.js +25 -0
- package/dist/core/audit-log/audit-log.module.js.map +1 -0
- package/dist/core/audit-log/audit-log.service.d.ts +20 -0
- package/dist/core/audit-log/audit-log.service.js +59 -0
- package/dist/core/audit-log/audit-log.service.js.map +1 -0
- package/dist/core/audit-log/index.d.ts +6 -0
- package/dist/core/audit-log/index.js +11 -0
- package/dist/core/audit-log/index.js.map +1 -0
- package/dist/core/auth/auth.provider.d.ts +4 -0
- package/dist/core/auth/auth.provider.js +3 -0
- package/dist/core/auth/auth.provider.js.map +1 -0
- package/dist/core/auth/decorators.d.ts +4 -0
- package/dist/core/auth/decorators.js +11 -0
- package/dist/core/auth/decorators.js.map +1 -0
- package/dist/core/auth/index.d.ts +6 -0
- package/dist/core/auth/index.js +23 -0
- package/dist/core/auth/index.js.map +1 -0
- package/dist/core/auth/params.d.ts +2 -0
- package/dist/core/auth/params.js +23 -0
- package/dist/core/auth/params.js.map +1 -0
- package/dist/core/auth/role.can-activate.d.ts +10 -0
- package/dist/core/auth/role.can-activate.js +42 -0
- package/dist/core/auth/role.can-activate.js.map +1 -0
- package/dist/core/auth/types.d.ts +6 -0
- package/dist/core/auth/types.js +3 -0
- package/dist/core/auth/types.js.map +1 -0
- package/dist/core/auth/utils.d.ts +4 -0
- package/dist/core/auth/utils.js +22 -0
- package/dist/core/auth/utils.js.map +1 -0
- package/dist/core/configuration/coerce.d.ts +2 -0
- package/dist/core/configuration/coerce.js +8 -0
- package/dist/core/configuration/coerce.js.map +1 -0
- package/dist/core/configuration/configuration.module.d.ts +9 -0
- package/dist/core/configuration/configuration.module.js +38 -0
- package/dist/core/configuration/configuration.module.js.map +1 -0
- package/dist/core/configuration/define-config.d.ts +2 -0
- package/dist/core/configuration/define-config.js +20 -0
- package/dist/core/configuration/define-config.js.map +1 -0
- package/dist/core/configuration/env-files.d.ts +1 -0
- package/dist/core/configuration/env-files.js +7 -0
- package/dist/core/configuration/env-files.js.map +1 -0
- package/dist/core/configuration/index.d.ts +5 -0
- package/dist/core/configuration/index.js +22 -0
- package/dist/core/configuration/index.js.map +1 -0
- package/dist/core/configuration/schemas/app.schema.d.ts +16 -0
- package/dist/core/configuration/schemas/app.schema.js +23 -0
- package/dist/core/configuration/schemas/app.schema.js.map +1 -0
- package/dist/core/database/common.d.ts +12 -0
- package/dist/core/database/common.js +15 -0
- package/dist/core/database/common.js.map +1 -0
- package/dist/core/database/custom-snake-case-naming-strategy.d.ts +9 -0
- package/dist/core/database/custom-snake-case-naming-strategy.js +28 -0
- package/dist/core/database/custom-snake-case-naming-strategy.js.map +1 -0
- package/dist/core/database/database.config.d.ts +4 -0
- package/dist/core/database/database.config.js +39 -0
- package/dist/core/database/database.config.js.map +1 -0
- package/dist/core/database/database.module.d.ts +7 -0
- package/dist/core/database/database.module.js +58 -0
- package/dist/core/database/database.module.js.map +1 -0
- package/dist/core/database/database.schema.d.ts +41 -0
- package/dist/core/database/database.schema.js +33 -0
- package/dist/core/database/database.schema.js.map +1 -0
- package/dist/core/database/index.d.ts +5 -0
- package/dist/core/database/index.js +22 -0
- package/dist/core/database/index.js.map +1 -0
- package/dist/core/database/ssl-config.d.ts +3 -0
- package/dist/core/database/ssl-config.js +8 -0
- package/dist/core/database/ssl-config.js.map +1 -0
- package/dist/core/exception/all-exceptions.filter.d.ts +8 -0
- package/dist/core/exception/all-exceptions.filter.js +56 -0
- package/dist/core/exception/all-exceptions.filter.js.map +1 -0
- package/dist/core/exception/index.d.ts +1 -0
- package/dist/core/exception/index.js +18 -0
- package/dist/core/exception/index.js.map +1 -0
- package/dist/core/exception/utils.d.ts +6 -0
- package/dist/core/exception/utils.js +15 -0
- package/dist/core/exception/utils.js.map +1 -0
- package/dist/core/health/health.controller.d.ts +9 -0
- package/dist/core/health/health.controller.js +52 -0
- package/dist/core/health/health.controller.js.map +1 -0
- package/dist/core/health/health.module.d.ts +2 -0
- package/dist/core/health/health.module.js +24 -0
- package/dist/core/health/health.module.js.map +1 -0
- package/dist/core/health/index.d.ts +1 -0
- package/dist/core/health/index.js +18 -0
- package/dist/core/health/index.js.map +1 -0
- package/dist/core/health/shutdown-handler.d.ts +2 -0
- package/dist/core/health/shutdown-handler.js +20 -0
- package/dist/core/health/shutdown-handler.js.map +1 -0
- package/dist/core/health/shutdown.service.d.ts +11 -0
- package/dist/core/health/shutdown.service.js +54 -0
- package/dist/core/health/shutdown.service.js.map +1 -0
- package/dist/core/http/http.circuit-breaker.d.ts +4 -0
- package/dist/core/http/http.circuit-breaker.js +25 -0
- package/dist/core/http/http.circuit-breaker.js.map +1 -0
- package/dist/core/http/http.client.factory.d.ts +3 -0
- package/dist/core/http/http.client.factory.js +32 -0
- package/dist/core/http/http.client.factory.js.map +1 -0
- package/dist/core/http/http.module.d.ts +2 -0
- package/dist/core/http/http.module.js +19 -0
- package/dist/core/http/http.module.js.map +1 -0
- package/dist/core/http/http.open-api.d.ts +8 -0
- package/dist/core/http/http.open-api.js +22 -0
- package/dist/core/http/http.open-api.js.map +1 -0
- package/dist/core/http/http.types.d.ts +6 -0
- package/dist/core/http/http.types.js +3 -0
- package/dist/core/http/http.types.js.map +1 -0
- package/dist/core/http/index.d.ts +4 -0
- package/dist/core/http/index.js +21 -0
- package/dist/core/http/index.js.map +1 -0
- package/dist/core/info/index.d.ts +1 -0
- package/dist/core/info/index.js +18 -0
- package/dist/core/info/index.js.map +1 -0
- package/dist/core/info/info.controller.d.ts +3 -0
- package/dist/core/info/info.controller.js +33 -0
- package/dist/core/info/info.controller.js.map +1 -0
- package/dist/core/info/info.module.d.ts +6 -0
- package/dist/core/info/info.module.js +27 -0
- package/dist/core/info/info.module.js.map +1 -0
- package/dist/core/info/info.utils.d.ts +13 -0
- package/dist/core/info/info.utils.js +32 -0
- package/dist/core/info/info.utils.js.map +1 -0
- package/dist/core/logger/hash-pii.d.ts +1 -0
- package/dist/core/logger/hash-pii.js +13 -0
- package/dist/core/logger/hash-pii.js.map +1 -0
- package/dist/core/logger/index.d.ts +4 -0
- package/dist/core/logger/index.js +21 -0
- package/dist/core/logger/index.js.map +1 -0
- package/dist/core/logger/logger.module.d.ts +2 -0
- package/dist/core/logger/logger.module.js +30 -0
- package/dist/core/logger/logger.module.js.map +1 -0
- package/dist/core/logger/logging.interceptor.d.ts +8 -0
- package/dist/core/logger/logging.interceptor.js +51 -0
- package/dist/core/logger/logging.interceptor.js.map +1 -0
- package/dist/core/logger/pino.config.d.ts +9 -0
- package/dist/core/logger/pino.config.js +47 -0
- package/dist/core/logger/pino.config.js.map +1 -0
- package/dist/core/migrations/create-migration-data-source.d.ts +8 -0
- package/dist/core/migrations/create-migration-data-source.js +18 -0
- package/dist/core/migrations/create-migration-data-source.js.map +1 -0
- package/dist/core/migrations/index.d.ts +3 -0
- package/dist/core/migrations/index.js +20 -0
- package/dist/core/migrations/index.js.map +1 -0
- package/dist/core/migrations/platform-entities.d.ts +2 -0
- package/dist/core/migrations/platform-entities.js +10 -0
- package/dist/core/migrations/platform-entities.js.map +1 -0
- package/dist/core/migrations/run-migrations.d.ts +3 -0
- package/dist/core/migrations/run-migrations.js +80 -0
- package/dist/core/migrations/run-migrations.js.map +1 -0
- package/dist/core/newrelic/index.d.ts +1 -0
- package/dist/core/newrelic/index.js +18 -0
- package/dist/core/newrelic/index.js.map +1 -0
- package/dist/core/newrelic/newrelic.utils.d.ts +2 -0
- package/dist/core/newrelic/newrelic.utils.js +31 -0
- package/dist/core/newrelic/newrelic.utils.js.map +1 -0
- package/dist/core/scheduler/index.d.ts +3 -0
- package/dist/core/scheduler/index.js +20 -0
- package/dist/core/scheduler/index.js.map +1 -0
- package/dist/core/scheduler/scheduled-cron.decorator.d.ts +6 -0
- package/dist/core/scheduler/scheduled-cron.decorator.js +31 -0
- package/dist/core/scheduler/scheduled-cron.decorator.js.map +1 -0
- package/dist/core/scheduler/scheduler-control.service.d.ts +14 -0
- package/dist/core/scheduler/scheduler-control.service.js +42 -0
- package/dist/core/scheduler/scheduler-control.service.js.map +1 -0
- package/dist/core/scheduler/scheduler.module.d.ts +4 -0
- package/dist/core/scheduler/scheduler.module.js +27 -0
- package/dist/core/scheduler/scheduler.module.js.map +1 -0
- package/dist/core/throttler/index.d.ts +7 -0
- package/dist/core/throttler/index.js +25 -0
- package/dist/core/throttler/index.js.map +1 -0
- package/dist/core/throttler/pg-throttler.storage.d.ts +10 -0
- package/dist/core/throttler/pg-throttler.storage.js +58 -0
- package/dist/core/throttler/pg-throttler.storage.js.map +1 -0
- package/dist/core/throttler/rate-limit-hit.entity.d.ts +6 -0
- package/dist/core/throttler/rate-limit-hit.entity.js +36 -0
- package/dist/core/throttler/rate-limit-hit.entity.js.map +1 -0
- package/dist/core/throttler/throttler-cleanup.service.d.ts +7 -0
- package/dist/core/throttler/throttler-cleanup.service.js +41 -0
- package/dist/core/throttler/throttler-cleanup.service.js.map +1 -0
- package/dist/core/throttler/throttler-tracker.d.ts +2 -0
- package/dist/core/throttler/throttler-tracker.js +29 -0
- package/dist/core/throttler/throttler-tracker.js.map +1 -0
- package/dist/core/throttler/throttler.module.d.ts +2 -0
- package/dist/core/throttler/throttler.module.js +41 -0
- package/dist/core/throttler/throttler.module.js.map +1 -0
- package/dist/core/utils/app-initializer.d.ts +5 -0
- package/dist/core/utils/app-initializer.js +37 -0
- package/dist/core/utils/app-initializer.js.map +1 -0
- package/dist/core/utils/feature-flag.d.ts +1 -0
- package/dist/core/utils/feature-flag.js +10 -0
- package/dist/core/utils/feature-flag.js.map +1 -0
- package/dist/core/utils/index.d.ts +5 -0
- package/dist/core/utils/index.js +22 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/core/utils/parse-allowed-origins.d.ts +1 -0
- package/dist/core/utils/parse-allowed-origins.js +21 -0
- package/dist/core/utils/parse-allowed-origins.js.map +1 -0
- package/dist/core/utils/security-middleware.d.ts +2 -0
- package/dist/core/utils/security-middleware.js +19 -0
- package/dist/core/utils/security-middleware.js.map +1 -0
- package/dist/core/utils/with-timeout.d.ts +4 -0
- package/dist/core/utils/with-timeout.js +23 -0
- package/dist/core/utils/with-timeout.js.map +1 -0
- package/dist/core/ws/index.d.ts +4 -0
- package/dist/core/ws/index.js +23 -0
- package/dist/core/ws/index.js.map +1 -0
- package/dist/core/ws/validate-ws-dto.d.ts +1 -0
- package/dist/core/ws/validate-ws-dto.js +14 -0
- package/dist/core/ws/validate-ws-dto.js.map +1 -0
- package/dist/core/ws/ws-token.module.d.ts +2 -0
- package/dist/core/ws/ws-token.module.js +21 -0
- package/dist/core/ws/ws-token.module.js.map +1 -0
- package/dist/core/ws/ws-token.service.d.ts +8 -0
- package/dist/core/ws/ws-token.service.js +57 -0
- package/dist/core/ws/ws-token.service.js.map +1 -0
- package/dist/core/ws/ws.constants.d.ts +7 -0
- package/dist/core/ws/ws.constants.js +11 -0
- package/dist/core/ws/ws.constants.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/package.json +167 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./utils"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/exception/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { INestApplication } from '@nestjs/common';
|
|
2
|
+
import { ExceptionFilter } from '@nestjs/common';
|
|
3
|
+
export interface InitializeOptions {
|
|
4
|
+
exceptionFilters?: ExceptionFilter[];
|
|
5
|
+
}
|
|
6
|
+
export declare const registerFilters: (app: INestApplication, options?: InitializeOptions) => void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerFilters = void 0;
|
|
4
|
+
const all_exceptions_filter_1 = require("./all-exceptions.filter");
|
|
5
|
+
const core_1 = require("@nestjs/core");
|
|
6
|
+
const registerFilters = (app, options) => {
|
|
7
|
+
const httpAdapterHost = app.get(core_1.HttpAdapterHost);
|
|
8
|
+
const filters = [
|
|
9
|
+
...(options?.exceptionFilters ?? []),
|
|
10
|
+
new all_exceptions_filter_1.AllExceptionsFilter(httpAdapterHost),
|
|
11
|
+
];
|
|
12
|
+
app.useGlobalFilters(...filters);
|
|
13
|
+
};
|
|
14
|
+
exports.registerFilters = registerFilters;
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/exception/utils.ts"],"names":[],"mappings":";;;AACA,mEAA8D;AAC9D,uCAA+C;AAWxC,MAAM,eAAe,GAAG,CAC7B,GAAqB,EACrB,OAA2B,EAC3B,EAAE;IACF,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAe,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC;QACpC,IAAI,2CAAmB,CAAC,eAAe,CAAC;KACzC,CAAC;IACF,GAAG,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HealthCheckService, HealthIndicatorResult, TypeOrmHealthIndicator } from '@nestjs/terminus';
|
|
2
|
+
import { ShutdownService } from './shutdown.service';
|
|
3
|
+
export declare class HealthController {
|
|
4
|
+
private readonly health;
|
|
5
|
+
private readonly database;
|
|
6
|
+
private readonly shutdownService;
|
|
7
|
+
constructor(health: HealthCheckService, database: TypeOrmHealthIndicator, shutdownService: ShutdownService);
|
|
8
|
+
check(): Promise<import("@nestjs/terminus").HealthCheckResult<HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>>, Partial<HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>>> | undefined, Partial<HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>>> | undefined>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
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
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HealthController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const terminus_1 = require("@nestjs/terminus");
|
|
15
|
+
const shutdown_service_1 = require("./shutdown.service");
|
|
16
|
+
let HealthController = class HealthController {
|
|
17
|
+
constructor(health, database, shutdownService) {
|
|
18
|
+
this.health = health;
|
|
19
|
+
this.database = database;
|
|
20
|
+
this.shutdownService = shutdownService;
|
|
21
|
+
}
|
|
22
|
+
check() {
|
|
23
|
+
const indicators = [
|
|
24
|
+
() => Promise.resolve({
|
|
25
|
+
app: {
|
|
26
|
+
status: this.shutdownService.isShutdownInProgress ? 'down' : 'up',
|
|
27
|
+
shuttingDown: this.shutdownService.isShutdownInProgress,
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
() => this.database.pingCheck('database'),
|
|
31
|
+
];
|
|
32
|
+
return this.health.check(indicators);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.HealthController = HealthController;
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, common_1.Get)(),
|
|
38
|
+
(0, terminus_1.HealthCheck)(),
|
|
39
|
+
__metadata("design:type", Function),
|
|
40
|
+
__metadata("design:paramtypes", []),
|
|
41
|
+
__metadata("design:returntype", void 0)
|
|
42
|
+
], HealthController.prototype, "check", null);
|
|
43
|
+
exports.HealthController = HealthController = __decorate([
|
|
44
|
+
(0, common_1.Controller)({
|
|
45
|
+
path: 'health',
|
|
46
|
+
version: common_1.VERSION_NEUTRAL,
|
|
47
|
+
}),
|
|
48
|
+
__metadata("design:paramtypes", [terminus_1.HealthCheckService,
|
|
49
|
+
terminus_1.TypeOrmHealthIndicator,
|
|
50
|
+
shutdown_service_1.ShutdownService])
|
|
51
|
+
], HealthController);
|
|
52
|
+
//# sourceMappingURL=health.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../../src/core/health/health.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkE;AAClE,+CAK0B;AAC1B,yDAAqD;AAM9C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,MAA0B,EAC1B,QAAgC,EAChC,eAAgC;QAFhC,WAAM,GAAN,MAAM,CAAoB;QAC1B,aAAQ,GAAR,QAAQ,CAAwB;QAChC,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAIJ,KAAK;QACH,MAAM,UAAU,GAA6C;YAC3D,GAAG,EAAE,CACH,OAAO,CAAC,OAAO,CAAC;gBACd,GAAG,EAAE;oBACH,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;oBACjE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,oBAAoB;iBACxD;aACF,CAAC;YACJ,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;SAC1C,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AAvBY,4CAAgB;AAS3B;IAFC,IAAA,YAAG,GAAE;IACL,IAAA,sBAAW,GAAE;;;;6CAcb;2BAtBU,gBAAgB;IAJ5B,IAAA,mBAAU,EAAC;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,wBAAe;KACzB,CAAC;qCAG2B,6BAAkB;QAChB,iCAAsB;QACf,kCAAe;GAJxC,gBAAgB,CAuB5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.HealthModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const terminus_1 = require("@nestjs/terminus");
|
|
12
|
+
const health_controller_1 = require("./health.controller");
|
|
13
|
+
const shutdown_service_1 = require("./shutdown.service");
|
|
14
|
+
let HealthModule = class HealthModule {
|
|
15
|
+
};
|
|
16
|
+
exports.HealthModule = HealthModule;
|
|
17
|
+
exports.HealthModule = HealthModule = __decorate([
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
imports: [terminus_1.TerminusModule],
|
|
20
|
+
controllers: [health_controller_1.HealthController],
|
|
21
|
+
providers: [shutdown_service_1.ShutdownService],
|
|
22
|
+
})
|
|
23
|
+
], HealthModule);
|
|
24
|
+
//# sourceMappingURL=health.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.module.js","sourceRoot":"","sources":["../../../src/core/health/health.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAAkD;AAClD,2DAAuD;AACvD,yDAAqD;AAO9C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAc,CAAC;QACzB,WAAW,EAAE,CAAC,oCAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,kCAAe,CAAC;KAC7B,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './health.module';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./health.module"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/health/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupShutdownHandler = void 0;
|
|
7
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
8
|
+
const setupShutdownHandler = (app) => {
|
|
9
|
+
app.enableShutdownHooks();
|
|
10
|
+
const shutdown = async (_signal) => {
|
|
11
|
+
await new Promise((resolve) => setTimeout(resolve, 20_000));
|
|
12
|
+
await app.close();
|
|
13
|
+
app.flushLogs();
|
|
14
|
+
};
|
|
15
|
+
['SIGINT', 'SIGTERM', 'SIGQUIT'].forEach((signal) => {
|
|
16
|
+
node_process_1.default.on(signal, shutdown);
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
exports.setupShutdownHandler = setupShutdownHandler;
|
|
20
|
+
//# sourceMappingURL=shutdown-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown-handler.js","sourceRoot":"","sources":["../../../src/core/health/shutdown-handler.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAmC;AAI5B,MAAM,oBAAoB,GAAG,CAAC,GAAqB,EAAE,EAAE;IAC5D,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAE1B,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACzC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,GAAG,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAsB,EAAE,EAAE;QAElE,sBAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
+
import { DataSource } from 'typeorm';
|
|
3
|
+
export declare class ShutdownService implements OnApplicationShutdown {
|
|
4
|
+
private readonly dataSource;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
private shutdownInProgress;
|
|
7
|
+
constructor(dataSource: DataSource);
|
|
8
|
+
get isShutdownInProgress(): boolean;
|
|
9
|
+
onApplicationShutdown(signal?: string): Promise<void>;
|
|
10
|
+
private shutdownDatabase;
|
|
11
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
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
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var ShutdownService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.ShutdownService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
|
+
const typeorm_2 = require("typeorm");
|
|
20
|
+
let ShutdownService = ShutdownService_1 = class ShutdownService {
|
|
21
|
+
constructor(dataSource) {
|
|
22
|
+
this.dataSource = dataSource;
|
|
23
|
+
this.logger = new common_1.Logger(ShutdownService_1.name);
|
|
24
|
+
this.shutdownInProgress = false;
|
|
25
|
+
}
|
|
26
|
+
get isShutdownInProgress() {
|
|
27
|
+
return this.shutdownInProgress;
|
|
28
|
+
}
|
|
29
|
+
async onApplicationShutdown(signal) {
|
|
30
|
+
if (!signal) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (this.shutdownInProgress) {
|
|
34
|
+
this.logger.warn(`Shutdown in progress. Skipping signal (${signal}).`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.shutdownInProgress = true;
|
|
38
|
+
this.logger.log(`Received termination signal: ${signal}. Starting graceful shutdown...`);
|
|
39
|
+
await this.shutdownDatabase();
|
|
40
|
+
this.logger.log('Graceful shutdown finished.');
|
|
41
|
+
}
|
|
42
|
+
async shutdownDatabase() {
|
|
43
|
+
if (this.dataSource.isInitialized) {
|
|
44
|
+
await this.dataSource.destroy();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.ShutdownService = ShutdownService;
|
|
49
|
+
exports.ShutdownService = ShutdownService = ShutdownService_1 = __decorate([
|
|
50
|
+
(0, common_1.Injectable)(),
|
|
51
|
+
__param(0, (0, typeorm_1.InjectDataSource)()),
|
|
52
|
+
__metadata("design:paramtypes", [typeorm_2.DataSource])
|
|
53
|
+
], ShutdownService);
|
|
54
|
+
//# sourceMappingURL=shutdown.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.service.js","sourceRoot":"","sources":["../../../src/core/health/shutdown.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,6CAAmD;AACnD,qCAAqC;AAG9B,IAAM,eAAe,uBAArB,MAAM,eAAe;IAI1B,YAEE,UAAuC;QAAtB,eAAU,GAAV,UAAU,CAAY;QALxB,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;QACnD,uBAAkB,GAAG,KAAK,CAAC;IAKhC,CAAC;IAEJ,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAe;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,MAAM,IAAI,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAE/B,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,gCAAgC,MAAM,iCAAiC,CACxE,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;CACF,CAAA;AAvCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;GAN9B,eAAe,CAuC3B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createCircuitBreaker = void 0;
|
|
7
|
+
const opossum_1 = __importDefault(require("opossum"));
|
|
8
|
+
const createCircuitBreaker = (task, options) => {
|
|
9
|
+
const breaker = new opossum_1.default(task, {
|
|
10
|
+
timeout: 6_000,
|
|
11
|
+
errorThresholdPercentage: 50,
|
|
12
|
+
resetTimeout: 30_000,
|
|
13
|
+
...options,
|
|
14
|
+
});
|
|
15
|
+
const log = options?.logger;
|
|
16
|
+
if (log) {
|
|
17
|
+
log(`Breaker created: ${breaker.name}`);
|
|
18
|
+
breaker.on('open', () => log(`Breaker ${breaker.name}: opened`));
|
|
19
|
+
breaker.on('halfOpen', () => log(`Breaker ${breaker.name}: half-open`));
|
|
20
|
+
breaker.on('close', () => log(`Breaker ${breaker.name}: closed`));
|
|
21
|
+
}
|
|
22
|
+
return breaker;
|
|
23
|
+
};
|
|
24
|
+
exports.createCircuitBreaker = createCircuitBreaker;
|
|
25
|
+
//# sourceMappingURL=http.circuit-breaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.circuit-breaker.js","sourceRoot":"","sources":["../../../src/core/http/http.circuit-breaker.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAqC;AAE9B,MAAM,oBAAoB,GAAG,CAClC,IAAsB,EACtB,OAEC,EACD,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,iBAAc,CAAC,IAAI,EAAE;QACvC,OAAO,EAAE,KAAK;QACd,wBAAwB,EAAE,EAAE;QAC5B,YAAY,EAAE,MAAM;QACpB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,EAAE,MAAM,CAAC;IAC5B,IAAI,GAAG,EAAE,CAAC;QACR,GAAG,CAAC,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAtBW,QAAA,oBAAoB,wBAsB/B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createHttpClient = createHttpClient;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
9
|
+
function createHttpClient(config) {
|
|
10
|
+
const client = axios_1.default.create({
|
|
11
|
+
baseURL: config.baseURL,
|
|
12
|
+
timeout: config.timeout,
|
|
13
|
+
headers: config.headers,
|
|
14
|
+
});
|
|
15
|
+
client.interceptors.request.use((req) => {
|
|
16
|
+
req.headers['x-request-id'] ??= crypto.randomUUID();
|
|
17
|
+
return req;
|
|
18
|
+
});
|
|
19
|
+
client.interceptors.response.use((res) => res, (error) => {
|
|
20
|
+
return Promise.reject(error);
|
|
21
|
+
});
|
|
22
|
+
(0, axios_retry_1.default)(client, {
|
|
23
|
+
retries: config.retries ?? 3,
|
|
24
|
+
retryDelay: (retryCount) => axios_retry_1.default.exponentialDelay(retryCount),
|
|
25
|
+
retryCondition: (error) => {
|
|
26
|
+
return (axios_retry_1.default.isNetworkError(error) ||
|
|
27
|
+
(!!error.response?.status && error.response.status >= 500));
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return client;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=http.client.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.client.factory.js","sourceRoot":"","sources":["../../../src/core/http/http.client.factory.ts"],"names":[],"mappings":";;;;;AAIA,4CAmCC;AAvCD,kDAA6C;AAE7C,8DAAqC;AAErC,SAAgB,gBAAgB,CAAC,MAAwB;IACvD,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EACZ,CAAC,KAAK,EAAE,EAAE;QAKR,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CACF,CAAC;IAEF,IAAA,qBAAU,EAAC,MAAM,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;QAC5B,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,qBAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACnE,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,OAAO,CACL,qBAAU,CAAC,cAAc,CAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAC3D,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.HttpModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let HttpModule = class HttpModule {
|
|
12
|
+
};
|
|
13
|
+
exports.HttpModule = HttpModule;
|
|
14
|
+
exports.HttpModule = HttpModule = __decorate([
|
|
15
|
+
(0, common_1.Module)({
|
|
16
|
+
exports: [],
|
|
17
|
+
})
|
|
18
|
+
], HttpModule);
|
|
19
|
+
//# sourceMappingURL=http.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.module.js","sourceRoot":"","sources":["../../../src/core/http/http.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAKjC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAHtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,UAAU,CAAG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupOpenApi = void 0;
|
|
4
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
5
|
+
const setupOpenApi = (app, options) => {
|
|
6
|
+
const swaggerOptions = {
|
|
7
|
+
useGlobalPrefix: true,
|
|
8
|
+
path: 'swagger',
|
|
9
|
+
...options,
|
|
10
|
+
};
|
|
11
|
+
const config = new swagger_1.DocumentBuilder()
|
|
12
|
+
.setTitle(swaggerOptions.title)
|
|
13
|
+
.setDescription(swaggerOptions.description)
|
|
14
|
+
.setVersion(swaggerOptions.version)
|
|
15
|
+
.build();
|
|
16
|
+
const documentFactory = () => swagger_1.SwaggerModule.createDocument(app, config);
|
|
17
|
+
swagger_1.SwaggerModule.setup(swaggerOptions.path, app, documentFactory, {
|
|
18
|
+
useGlobalPrefix: swaggerOptions.useGlobalPrefix,
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.setupOpenApi = setupOpenApi;
|
|
22
|
+
//# sourceMappingURL=http.open-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.open-api.js","sourceRoot":"","sources":["../../../src/core/http/http.open-api.ts"],"names":[],"mappings":";;;AACA,6CAAiE;AAE1D,MAAM,YAAY,GAAG,CAC1B,GAAqB,EACrB,OAMC,EACD,EAAE;IACF,MAAM,cAAc,GAAG;QACrB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;QACf,GAAG,OAAO;KACX,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE;SACjC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;SAC9B,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC;SAC1C,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC;SAClC,KAAK,EAAE,CAAC;IACX,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxE,uBAAa,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE;QAC7D,eAAe,EAAE,cAAc,CAAC,eAAe;KAChD,CAAC,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,YAAY,gBAyBvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.types.js","sourceRoot":"","sources":["../../../src/core/http/http.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./http.module"), exports);
|
|
18
|
+
__exportStar(require("./http.types"), exports);
|
|
19
|
+
__exportStar(require("./http.client.factory"), exports);
|
|
20
|
+
__exportStar(require("./http.circuit-breaker"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,wDAAsC;AACtC,yDAAuC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './info.module';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./info.module"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/info/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
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
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.InfoController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const info_utils_1 = require("./info.utils");
|
|
15
|
+
let InfoController = class InfoController {
|
|
16
|
+
getInfo() {
|
|
17
|
+
return info_utils_1.AppInfoSingleton.getInfo();
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.InfoController = InfoController;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, common_1.Get)(),
|
|
23
|
+
__metadata("design:type", Function),
|
|
24
|
+
__metadata("design:paramtypes", []),
|
|
25
|
+
__metadata("design:returntype", void 0)
|
|
26
|
+
], InfoController.prototype, "getInfo", null);
|
|
27
|
+
exports.InfoController = InfoController = __decorate([
|
|
28
|
+
(0, common_1.Controller)({
|
|
29
|
+
version: common_1.VERSION_NEUTRAL,
|
|
30
|
+
path: '/info',
|
|
31
|
+
})
|
|
32
|
+
], InfoController);
|
|
33
|
+
//# sourceMappingURL=info.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.controller.js","sourceRoot":"","sources":["../../../src/core/info/info.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkE;AAClE,6CAAgD;AAMzC,IAAM,cAAc,GAApB,MAAM,cAAc;IAEzB,OAAO;QACL,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AALY,wCAAc;AAEzB;IADC,IAAA,YAAG,GAAE;;;;6CAGL;yBAJU,cAAc;IAJ1B,IAAA,mBAAU,EAAC;QACV,OAAO,EAAE,wBAAe;QACxB,IAAI,EAAE,OAAO;KACd,CAAC;GACW,cAAc,CAK1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var InfoModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.InfoModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const feature_flag_1 = require("../utils/feature-flag");
|
|
13
|
+
const info_controller_1 = require("./info.controller");
|
|
14
|
+
let InfoModule = InfoModule_1 = class InfoModule {
|
|
15
|
+
static forRoot(options) {
|
|
16
|
+
const enabled = options?.enabled ?? (0, feature_flag_1.isEnabledByEnv)(process.env.INFO_ENABLED);
|
|
17
|
+
return {
|
|
18
|
+
module: InfoModule_1,
|
|
19
|
+
controllers: enabled ? [info_controller_1.InfoController] : [],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.InfoModule = InfoModule;
|
|
24
|
+
exports.InfoModule = InfoModule = InfoModule_1 = __decorate([
|
|
25
|
+
(0, common_1.Module)({})
|
|
26
|
+
], InfoModule);
|
|
27
|
+
//# sourceMappingURL=info.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.module.js","sourceRoot":"","sources":["../../../src/core/info/info.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,wDAAuD;AACvD,uDAAmD;AAG5C,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO,CAAC,OAA+B;QAC5C,MAAM,OAAO,GACX,OAAO,EAAE,OAAO,IAAI,IAAA,6BAAc,EAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gCAAc,CAAC,CAAC,CAAC,CAAC,EAAE;SAC7C,CAAC;IACJ,CAAC;CACF,CAAA;AATY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CAStB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface InfoType {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
description: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class AppInfoSingleton {
|
|
7
|
+
private readonly info;
|
|
8
|
+
private static instance;
|
|
9
|
+
private constructor();
|
|
10
|
+
static getInfo(): InfoType;
|
|
11
|
+
private static getInstance;
|
|
12
|
+
private static resolveInfo;
|
|
13
|
+
}
|