@revisium/core 2.10.0 → 2.11.0-alpha.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/dist/ee/billing/usage/usage.service.js +8 -9
- package/dist/ee/billing/usage/usage.service.js.map +1 -1
- package/dist/ee/billing/usage-reporter.service.js +9 -1
- package/dist/ee/billing/usage-reporter.service.js.map +1 -1
- package/dist/package.json +2 -2
- package/dist/src/configure-http-app.d.ts +7 -0
- package/dist/src/configure-http-app.js +78 -0
- package/dist/src/configure-http-app.js.map +1 -0
- package/dist/src/core/shared/shared.module.js +1 -2
- package/dist/src/core/shared/shared.module.js.map +1 -1
- package/dist/src/features/auth/auth.module.js +2 -0
- package/dist/src/features/auth/auth.module.js.map +1 -1
- package/dist/src/features/auth/commands/auth-api.service.d.ts +3 -1
- package/dist/src/features/auth/commands/auth-api.service.js +8 -4
- package/dist/src/features/auth/commands/auth-api.service.js.map +1 -1
- package/dist/src/features/auth/commands/handlers/check-project-permission.handler.js +2 -2
- package/dist/src/features/auth/commands/handlers/check-project-permission.handler.js.map +1 -1
- package/dist/src/features/organization/commands/handlers/add-user-to-organization.handler.d.ts +3 -1
- package/dist/src/features/organization/commands/handlers/add-user-to-organization.handler.js +5 -2
- package/dist/src/features/organization/commands/handlers/add-user-to-organization.handler.js.map +1 -1
- package/dist/src/features/organization/commands/handlers/remove-user-from-organization.handler.d.ts +3 -1
- package/dist/src/features/organization/commands/handlers/remove-user-from-organization.handler.js +6 -2
- package/dist/src/features/organization/commands/handlers/remove-user-from-organization.handler.js.map +1 -1
- package/dist/src/features/project/commands/handlers/add-user-to-project.handler.d.ts +3 -1
- package/dist/src/features/project/commands/handlers/add-user-to-project.handler.js +6 -2
- package/dist/src/features/project/commands/handlers/add-user-to-project.handler.js.map +1 -1
- package/dist/src/features/project/commands/handlers/delete-project.handler.d.ts +3 -1
- package/dist/src/features/project/commands/handlers/delete-project.handler.js +6 -2
- package/dist/src/features/project/commands/handlers/delete-project.handler.js.map +1 -1
- package/dist/src/features/project/commands/handlers/remove-user-from-project.handler.d.ts +3 -1
- package/dist/src/features/project/commands/handlers/remove-user-from-project.handler.js +6 -2
- package/dist/src/features/project/commands/handlers/remove-user-from-project.handler.js.map +1 -1
- package/dist/src/features/project/commands/handlers/update-user-project-role.handler.d.ts +3 -1
- package/dist/src/features/project/commands/handlers/update-user-project-role.handler.js +6 -2
- package/dist/src/features/project/commands/handlers/update-user-project-role.handler.js.map +1 -1
- package/dist/src/features/project/project-api.service.d.ts +5 -2
- package/dist/src/features/project/project-api.service.js +15 -2
- package/dist/src/features/project/project-api.service.js.map +1 -1
- package/dist/src/features/project/queries/handlers/find-project-identity.handler.d.ts +12 -0
- package/dist/src/features/project/queries/handlers/find-project-identity.handler.js +113 -0
- package/dist/src/features/project/queries/handlers/find-project-identity.handler.js.map +1 -0
- package/dist/src/features/project/queries/handlers/index.d.ts +2 -1
- package/dist/src/features/project/queries/handlers/index.js +2 -0
- package/dist/src/features/project/queries/handlers/index.js.map +1 -1
- package/dist/src/features/project/queries/impl/find-project-identity.query.d.ts +21 -0
- package/dist/src/features/project/queries/impl/find-project-identity.query.js +10 -0
- package/dist/src/features/project/queries/impl/find-project-identity.query.js.map +1 -0
- package/dist/src/features/project/queries/impl/index.d.ts +1 -0
- package/dist/src/features/project/queries/impl/index.js +1 -0
- package/dist/src/features/project/queries/impl/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/infrastructure/cache/constants/project-cache.constants.d.ts +7 -0
- package/dist/src/infrastructure/cache/constants/project-cache.constants.js +11 -0
- package/dist/src/infrastructure/cache/constants/project-cache.constants.js.map +1 -0
- package/dist/src/infrastructure/cache/revisium-cache.module.js +3 -0
- package/dist/src/infrastructure/cache/revisium-cache.module.js.map +1 -1
- package/dist/src/infrastructure/cache/services/auth-cache.service.d.ts +7 -1
- package/dist/src/infrastructure/cache/services/auth-cache.service.js +9 -7
- package/dist/src/infrastructure/cache/services/auth-cache.service.js.map +1 -1
- package/dist/src/infrastructure/cache/services/project-cache.service.d.ts +15 -0
- package/dist/src/infrastructure/cache/services/project-cache.service.js +40 -0
- package/dist/src/infrastructure/cache/services/project-cache.service.js.map +1 -0
- package/dist/src/infrastructure/health/notification.check.d.ts +16 -5
- package/dist/src/infrastructure/health/notification.check.js +66 -11
- package/dist/src/infrastructure/health/notification.check.js.map +1 -1
- package/dist/src/main.js +4 -52
- package/dist/src/main.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-cache.service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/cache/services/auth-cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mDAA+C;AAC/C,4EAAwE;AACxE,4EAI2C;AAGpC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAE7C,KAAK,CAAC,eAAe,CAAI,IAAY,EAAE,OAAyB;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,GAAG,EAAE,sCAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC3C,GAAG,EAAE,wCAAiB,CAAC,oBAAoB;YAC3C,IAAI,EAAE,CAAC,sCAAe,CAAC,YAAY,CAAC;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAChC,KAA0B,EAC1B,OAAyB;QAEzB,MAAM,OAAO,GAAG,IAAA,uCAAoB,EAAC,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,EAAE,sCAAe,CAAC,uBAAuB;YAC/C,OAAO,EAAE,wCAAiB,CAAC,WAAW;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,wCAAiB,CAAC,oBAAoB;YAC3C,IAAI,EAAE;gBACJ,sCAAe,CAAC,cAAc;gBAC9B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sCAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D;YACD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,KAAkD,EAClD,OAAyB;QAEzB,MAAM,OAAO,GAAG,IAAA,uCAAoB,EAAC,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,EAAE,sCAAe,CAAC,6BAA6B;YACrD,OAAO,EAAE,wCAAiB,CAAC,WAAW;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,wCAAiB,CAAC,oBAAoB;YAC3C,IAAI,EAAE;gBACJ,sCAAe,CAAC,cAAc;gBAC9B,sCAAe,CAAC,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC;gBAC9D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sCAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D;YACD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,
|
|
1
|
+
{"version":3,"file":"auth-cache.service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/cache/services/auth-cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CacheService } from './cache.service';
|
|
2
|
+
export declare class ProjectCacheService {
|
|
3
|
+
private readonly cache;
|
|
4
|
+
constructor(cache: CacheService);
|
|
5
|
+
projectIdentity<T extends {
|
|
6
|
+
organizationId: string;
|
|
7
|
+
projectName: string;
|
|
8
|
+
} | null>(query: {
|
|
9
|
+
revisionId?: string;
|
|
10
|
+
endpointId?: string;
|
|
11
|
+
projectId?: string;
|
|
12
|
+
organizationId?: string;
|
|
13
|
+
projectName?: string;
|
|
14
|
+
}, factory: () => Promise<T>): Promise<T>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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.ProjectCacheService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const cache_service_1 = require("./cache.service");
|
|
15
|
+
const stable_cache_key_1 = require("../../../utils/utils/stable-cache-key");
|
|
16
|
+
const auth_cache_constants_1 = require("../constants/auth-cache.constants");
|
|
17
|
+
const project_cache_constants_1 = require("../constants/project-cache.constants");
|
|
18
|
+
let ProjectCacheService = class ProjectCacheService {
|
|
19
|
+
constructor(cache) {
|
|
20
|
+
this.cache = cache;
|
|
21
|
+
}
|
|
22
|
+
async projectIdentity(query, factory) {
|
|
23
|
+
const keyHash = (0, stable_cache_key_1.makeCacheKeyFromArgs)([query], {
|
|
24
|
+
prefix: project_cache_constants_1.PROJECT_CACHE_KEYS.PROJECT_IDENTITY,
|
|
25
|
+
version: project_cache_constants_1.PROJECT_CACHE_CONFIG.KEY_VERSION,
|
|
26
|
+
});
|
|
27
|
+
return this.cache.getOrSet({
|
|
28
|
+
key: keyHash,
|
|
29
|
+
ttl: project_cache_constants_1.PROJECT_CACHE_CONFIG.PROJECT_IDENTITY_TTL,
|
|
30
|
+
tags: [auth_cache_constants_1.AUTH_CACHE_TAGS.AUTH_RELATIVES],
|
|
31
|
+
factory,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.ProjectCacheService = ProjectCacheService;
|
|
36
|
+
exports.ProjectCacheService = ProjectCacheService = __decorate([
|
|
37
|
+
(0, common_1.Injectable)(),
|
|
38
|
+
__metadata("design:paramtypes", [cache_service_1.CacheService])
|
|
39
|
+
], ProjectCacheService);
|
|
40
|
+
//# sourceMappingURL=project-cache.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-cache.service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/cache/services/project-cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mDAA+C;AAC/C,4EAAwE;AACxE,4EAAoE;AACpE,kFAG8C;AAGvC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAE7C,KAAK,CAAC,eAAe,CAG1B,KAMC,EACD,OAAyB;QAEzB,MAAM,OAAO,GAAG,IAAA,uCAAoB,EAAC,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,EAAE,4CAAkB,CAAC,gBAAgB;YAC3C,OAAO,EAAE,8CAAoB,CAAC,WAAW;SAC1C,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,8CAAoB,CAAC,oBAAoB;YAC9C,IAAI,EAAE,CAAC,sCAAe,CAAC,cAAc,CAAC;YACtC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA3BY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAEyB,4BAAY;GADrC,mBAAmB,CA2B/B"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
import { OnModuleDestroy } from '@nestjs/common';
|
|
1
2
|
import { ConfigService } from '@nestjs/config';
|
|
2
|
-
import {
|
|
3
|
+
import { HealthIndicatorService } from '@nestjs/terminus';
|
|
3
4
|
import { AppOptions } from '../../app-mode';
|
|
4
|
-
export declare class NotificationCheck {
|
|
5
|
+
export declare class NotificationCheck implements OnModuleDestroy {
|
|
5
6
|
private readonly configService;
|
|
6
|
-
private readonly
|
|
7
|
+
private readonly healthIndicator;
|
|
7
8
|
private readonly appOptions;
|
|
8
|
-
|
|
9
|
+
private redis?;
|
|
10
|
+
private connectPromise?;
|
|
11
|
+
constructor(configService: ConfigService, healthIndicator: HealthIndicatorService, appOptions: AppOptions);
|
|
9
12
|
get available(): boolean;
|
|
10
|
-
check(): Promise<import("@nestjs/terminus").HealthIndicatorResult<
|
|
13
|
+
check(): Promise<import("@nestjs/terminus").HealthIndicatorResult<"notifications", "up", {
|
|
14
|
+
[x: string]: unknown;
|
|
15
|
+
}> | import("@nestjs/terminus").HealthIndicatorResult<any, "down", {
|
|
16
|
+
message: string;
|
|
17
|
+
}>>;
|
|
18
|
+
onModuleDestroy(): Promise<void>;
|
|
19
|
+
private getRedis;
|
|
20
|
+
private hasRedisConfiguration;
|
|
21
|
+
private ensureConnected;
|
|
11
22
|
}
|
|
@@ -11,23 +11,54 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
18
|
exports.NotificationCheck = void 0;
|
|
16
19
|
const common_1 = require("@nestjs/common");
|
|
17
20
|
const config_1 = require("@nestjs/config");
|
|
18
|
-
const microservices_1 = require("@nestjs/microservices");
|
|
19
21
|
const terminus_1 = require("@nestjs/terminus");
|
|
22
|
+
const ioredis_1 = __importDefault(require("ioredis"));
|
|
20
23
|
const app_mode_1 = require("../../app-mode");
|
|
21
24
|
let NotificationCheck = class NotificationCheck {
|
|
22
|
-
constructor(configService,
|
|
25
|
+
constructor(configService, healthIndicator, appOptions) {
|
|
23
26
|
this.configService = configService;
|
|
24
|
-
this.
|
|
27
|
+
this.healthIndicator = healthIndicator;
|
|
25
28
|
this.appOptions = appOptions;
|
|
26
29
|
}
|
|
27
30
|
get available() {
|
|
28
|
-
return this.appOptions.mode === 'microservice';
|
|
31
|
+
return (this.appOptions.mode === 'microservice' && this.hasRedisConfiguration());
|
|
29
32
|
}
|
|
30
33
|
async check() {
|
|
34
|
+
const indicator = this.healthIndicator.check('notifications');
|
|
35
|
+
const redis = this.getRedis();
|
|
36
|
+
try {
|
|
37
|
+
await this.ensureConnected(redis);
|
|
38
|
+
await redis.ping();
|
|
39
|
+
return indicator.up();
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return indicator.down(error instanceof Error
|
|
43
|
+
? error.message
|
|
44
|
+
: 'Redis notification bus is not available');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async onModuleDestroy() {
|
|
48
|
+
if (!this.redis) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
await this.redis.quit();
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
this.redis.disconnect();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getRedis() {
|
|
59
|
+
if (this.redis) {
|
|
60
|
+
return this.redis;
|
|
61
|
+
}
|
|
31
62
|
const portPath = 'ENDPOINT_PORT';
|
|
32
63
|
const hostPath = 'ENDPOINT_HOST';
|
|
33
64
|
const envPort = this.configService.get(portPath);
|
|
@@ -39,13 +70,37 @@ let NotificationCheck = class NotificationCheck {
|
|
|
39
70
|
if (!host) {
|
|
40
71
|
throw new Error(`Environment variable not found: ${hostPath}`);
|
|
41
72
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
73
|
+
this.redis = new ioredis_1.default({
|
|
74
|
+
host,
|
|
75
|
+
port,
|
|
76
|
+
lazyConnect: true,
|
|
77
|
+
enableOfflineQueue: false,
|
|
78
|
+
maxRetriesPerRequest: 1,
|
|
79
|
+
connectTimeout: 1000,
|
|
80
|
+
retryStrategy: (times) => Math.min(times * 100, 1000),
|
|
81
|
+
});
|
|
82
|
+
this.redis.on('error', () => undefined);
|
|
83
|
+
return this.redis;
|
|
84
|
+
}
|
|
85
|
+
hasRedisConfiguration() {
|
|
86
|
+
return Boolean(this.configService.get('ENDPOINT_HOST') &&
|
|
87
|
+
this.configService.get('ENDPOINT_PORT'));
|
|
88
|
+
}
|
|
89
|
+
async ensureConnected(redis) {
|
|
90
|
+
if (redis.status === 'ready') {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (this.connectPromise) {
|
|
94
|
+
await this.connectPromise;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (redis.status !== 'wait' && redis.status !== 'end') {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this.connectPromise = redis.connect().finally(() => {
|
|
101
|
+
this.connectPromise = undefined;
|
|
48
102
|
});
|
|
103
|
+
await this.connectPromise;
|
|
49
104
|
}
|
|
50
105
|
};
|
|
51
106
|
exports.NotificationCheck = NotificationCheck;
|
|
@@ -53,6 +108,6 @@ exports.NotificationCheck = NotificationCheck = __decorate([
|
|
|
53
108
|
(0, common_1.Injectable)(),
|
|
54
109
|
__param(2, (0, common_1.Inject)(app_mode_1.APP_OPTIONS_TOKEN)),
|
|
55
110
|
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
56
|
-
terminus_1.
|
|
111
|
+
terminus_1.HealthIndicatorService, Object])
|
|
57
112
|
], NotificationCheck);
|
|
58
113
|
//# sourceMappingURL=notification.check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.check.js","sourceRoot":"","sources":["../../../../src/infrastructure/health/notification.check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notification.check.js","sourceRoot":"","sources":["../../../../src/infrastructure/health/notification.check.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.js
CHANGED
|
@@ -1,29 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
const common_1 = require("@nestjs/common");
|
|
7
|
-
const config_1 = require("@nestjs/config");
|
|
8
4
|
const core_1 = require("@nestjs/core");
|
|
9
|
-
const compression_1 = __importDefault(require("compression"));
|
|
10
|
-
const cookie_parser_1 = __importDefault(require("cookie-parser"));
|
|
11
5
|
const init_swagger_1 = require("./api/rest-api/init-swagger");
|
|
12
6
|
const app_module_1 = require("./app.module");
|
|
7
|
+
const configure_http_app_1 = require("./configure-http-app");
|
|
13
8
|
const no_auth_service_1 = require("./features/auth/no-auth.service");
|
|
14
|
-
const DEFAULT_BODY_LIMIT = '10mb';
|
|
15
|
-
function parseTrustProxy(value) {
|
|
16
|
-
if (value === 'true') {
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
if (value === 'false') {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
if (/^\d+$/.test(value)) {
|
|
23
|
-
return Number(value);
|
|
24
|
-
}
|
|
25
|
-
return value;
|
|
26
|
-
}
|
|
27
9
|
async function bootstrap() {
|
|
28
10
|
const app = await core_1.NestFactory.create(app_module_1.AppModule, {
|
|
29
11
|
logger: new common_1.ConsoleLogger({
|
|
@@ -31,40 +13,10 @@ async function bootstrap() {
|
|
|
31
13
|
colors: true,
|
|
32
14
|
}),
|
|
33
15
|
});
|
|
34
|
-
const config =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (trustProxy !== undefined && trustProxy !== '') {
|
|
38
|
-
const value = parseTrustProxy(trustProxy);
|
|
39
|
-
app.set('trust proxy', value);
|
|
40
|
-
common_1.Logger.log(`Express 'trust proxy' set to ${JSON.stringify(value)}`, 'Bootstrap');
|
|
41
|
-
}
|
|
42
|
-
app.useBodyParser('json', { limit: bodyLimit });
|
|
43
|
-
app.use((0, compression_1.default)());
|
|
44
|
-
app.use((0, cookie_parser_1.default)());
|
|
45
|
-
app.use((_req, res, next) => {
|
|
46
|
-
if (!_req.path.startsWith('/files/')) {
|
|
47
|
-
res.setHeader('Cache-Control', 'no-store');
|
|
48
|
-
}
|
|
49
|
-
next();
|
|
50
|
-
});
|
|
51
|
-
const corsOrigin = config.get('CORS_ORIGIN');
|
|
52
|
-
const isProduction = config.get('NODE_ENV') === 'production';
|
|
53
|
-
const corsOriginSetting = corsOrigin
|
|
54
|
-
? corsOrigin.split(',').map((o) => o.trim())
|
|
55
|
-
: !isProduction;
|
|
56
|
-
if (corsOrigin === undefined && isProduction) {
|
|
57
|
-
common_1.Logger.warn('CORS_ORIGIN is not set in production — cross-origin requests will be refused. ' +
|
|
58
|
-
'Set CORS_ORIGIN to an explicit allowlist if the admin UI is served from a different origin than core.', 'Bootstrap');
|
|
59
|
-
}
|
|
60
|
-
app.enableCors({
|
|
61
|
-
maxAge: 86400,
|
|
62
|
-
credentials: true,
|
|
63
|
-
origin: corsOriginSetting,
|
|
16
|
+
const config = (0, configure_http_app_1.configureHttpApp)(app, {
|
|
17
|
+
useCompression: true,
|
|
18
|
+
noStoreExceptPathPrefixes: ['/files/'],
|
|
64
19
|
});
|
|
65
|
-
app.useGlobalPipes(new common_1.ValidationPipe({
|
|
66
|
-
transform: true,
|
|
67
|
-
}));
|
|
68
20
|
(0, init_swagger_1.initSwagger)(app);
|
|
69
21
|
const noAuth = app.get(no_auth_service_1.NoAuthService);
|
|
70
22
|
if (noAuth.enabled) {
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAAA,2CAAuD;AACvD,uCAA2C;AAE3C,8DAA4D;AAC5D,6CAA2C;AAC3C,6DAA0D;AAC1D,qEAAkE;AAElE,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAyB,sBAAS,EAAE;QACtE,MAAM,EAAE,IAAI,sBAAa,CAAC;YACxB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;SACb,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,qCAAgB,EAAC,GAAG,EAAE;QACnC,cAAc,EAAE,IAAI;QACpB,yBAAyB,EAAE,CAAC,SAAS,CAAC;KACvC,CAAC,CAAC;IAEH,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAC;IAEjB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,+BAAa,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,eAAM,CAAC,IAAI,CACT,gEAAgE,EAChE,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAExC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,EAAE,CAAC"}
|