@viardex/viardex-libs 1.0.3 → 1.0.5
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/README.md +179 -0
- package/dist/argon/argon.module.d.ts +2 -0
- package/dist/{notification/notification.module.js → argon/argon.module.js} +9 -8
- package/dist/argon/argon.service.d.ts +6 -0
- package/dist/argon/argon.service.js +74 -0
- package/dist/argon/index.d.ts +2 -0
- package/dist/{notification → argon}/index.js +2 -4
- package/dist/auth/auth.constants.d.ts +4 -0
- package/dist/auth/auth.constants.js +7 -0
- package/dist/auth/auth.interfaces.d.ts +19 -0
- package/dist/auth/auth.module.d.ts +2 -0
- package/dist/auth/auth.module.js +30 -0
- package/dist/auth/auth.service.d.ts +13 -0
- package/dist/auth/auth.service.js +99 -0
- package/dist/auth/decorators/auth-token-types.decorator.d.ts +2 -0
- package/dist/auth/decorators/auth-token-types.decorator.js +7 -0
- package/dist/auth/decorators/current-auth.decorator.d.ts +1 -0
- package/dist/auth/decorators/current-auth.decorator.js +10 -0
- package/dist/auth/decorators/index.d.ts +5 -0
- package/dist/auth/decorators/index.js +21 -0
- package/dist/auth/decorators/permissions.decorator.d.ts +1 -0
- package/dist/auth/decorators/permissions.decorator.js +7 -0
- package/dist/auth/decorators/public.decorator.d.ts +1 -0
- package/dist/auth/decorators/public.decorator.js +7 -0
- package/dist/auth/decorators/roles.decorator.d.ts +1 -0
- package/dist/auth/decorators/roles.decorator.js +7 -0
- package/dist/auth/guards/auth.guard.d.ts +10 -0
- package/dist/auth/guards/auth.guard.js +58 -0
- package/dist/auth/guards/index.d.ts +3 -0
- package/dist/auth/guards/index.js +19 -0
- package/dist/auth/guards/permissions.guard.d.ts +7 -0
- package/dist/auth/guards/permissions.guard.js +47 -0
- package/dist/auth/guards/roles.guard.d.ts +7 -0
- package/dist/auth/guards/roles.guard.js +48 -0
- package/dist/auth/index.d.ts +6 -0
- package/dist/auth/index.js +22 -0
- package/dist/cache/cache.constants.d.ts +1 -0
- package/dist/cache/cache.constants.js +4 -0
- package/dist/cache/cache.module.js +5 -1
- package/dist/cache/cache.service.d.ts +5 -0
- package/dist/cache/cache.service.js +28 -1
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.js +1 -0
- package/dist/common/config/nats.config.d.ts +7 -8
- package/dist/common/config/nats.config.js +25 -4
- package/dist/common/constants/queues.constants.d.ts +7 -15
- package/dist/common/constants/queues.constants.js +8 -16
- package/dist/common/enums/index.d.ts +0 -2
- package/dist/common/enums/index.js +0 -2
- package/dist/common/index.d.ts +0 -1
- package/dist/common/index.js +0 -1
- package/dist/health/health.controller.d.ts +19 -0
- package/dist/health/health.controller.js +88 -0
- package/dist/{common/health → health}/health.module.js +1 -2
- package/dist/index.d.ts +5 -1
- package/dist/index.js +5 -1
- package/dist/logger/index.d.ts +2 -0
- package/dist/logger/index.js +18 -0
- package/dist/logger/logger.module.d.ts +2 -0
- package/dist/logger/logger.module.js +58 -0
- package/dist/logger/logging.interceptor.d.ts +8 -0
- package/dist/logger/logging.interceptor.js +62 -0
- package/dist/rpc/index.d.ts +0 -36
- package/dist/rpc/index.js +3 -73
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.js +21 -0
- package/dist/storage/r2.service.d.ts +20 -0
- package/dist/storage/r2.service.js +208 -0
- package/dist/storage/s3.service.d.ts +20 -0
- package/dist/storage/s3.service.js +204 -0
- package/dist/storage/storage.interface.d.ts +29 -0
- package/dist/storage/storage.interface.js +2 -0
- package/dist/storage/storage.module.d.ts +2 -0
- package/dist/storage/storage.module.js +24 -0
- package/dist/storage/storage.service.d.ts +22 -0
- package/dist/storage/storage.service.js +54 -0
- package/package.json +80 -27
- package/dist/common/enums/support-action.enum.d.ts +0 -7
- package/dist/common/enums/support-action.enum.js +0 -11
- package/dist/common/enums/ticket.enum.d.ts +0 -19
- package/dist/common/enums/ticket.enum.js +0 -25
- package/dist/common/health/health.controller.d.ts +0 -9
- package/dist/common/health/health.controller.js +0 -49
- package/dist/notification/index.d.ts +0 -4
- package/dist/notification/notification.client.d.ts +0 -76
- package/dist/notification/notification.client.js +0 -325
- package/dist/notification/notification.enum.d.ts +0 -54
- package/dist/notification/notification.enum.js +0 -73
- package/dist/notification/notification.interface.d.ts +0 -285
- package/dist/notification/notification.module.d.ts +0 -2
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{notification/notification.interface.js → auth/auth.interfaces.js} +0 -0
- /package/dist/{common/health → health}/health.module.d.ts +0 -0
- /package/dist/{common/health → health}/index.d.ts +0 -0
- /package/dist/{common/health → health}/index.js +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
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("./auth.guard"), exports);
|
|
18
|
+
__exportStar(require("./permissions.guard"), exports);
|
|
19
|
+
__exportStar(require("./roles.guard"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
export declare class PermissionsGuard implements CanActivate {
|
|
4
|
+
private readonly reflector;
|
|
5
|
+
constructor(reflector: Reflector);
|
|
6
|
+
canActivate(context: ExecutionContext): boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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.PermissionsGuard = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const auth_constants_1 = require("../auth.constants");
|
|
12
|
+
let PermissionsGuard = class PermissionsGuard {
|
|
13
|
+
reflector;
|
|
14
|
+
constructor(reflector) {
|
|
15
|
+
this.reflector = reflector;
|
|
16
|
+
}
|
|
17
|
+
canActivate(context) {
|
|
18
|
+
const isPublic = this.reflector.getAllAndOverride(auth_constants_1.IS_PUBLIC_KEY, [
|
|
19
|
+
context.getHandler(),
|
|
20
|
+
context.getClass(),
|
|
21
|
+
]);
|
|
22
|
+
if (isPublic) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
const requiredPermissions = this.reflector.getAllAndOverride(auth_constants_1.AUTH_PERMISSIONS_KEY, [
|
|
26
|
+
context.getHandler(),
|
|
27
|
+
context.getClass(),
|
|
28
|
+
]) ?? [];
|
|
29
|
+
if (requiredPermissions.length === 0) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
const request = context
|
|
33
|
+
.switchToHttp()
|
|
34
|
+
.getRequest();
|
|
35
|
+
const principal = request.user;
|
|
36
|
+
const permissions = principal?.permissions ?? [];
|
|
37
|
+
const hasAllPermissions = requiredPermissions.every((permission) => permissions.includes(permission));
|
|
38
|
+
if (!hasAllPermissions) {
|
|
39
|
+
throw new common_1.ForbiddenException('You do not have the required permissions for this route');
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.PermissionsGuard = PermissionsGuard;
|
|
45
|
+
exports.PermissionsGuard = PermissionsGuard = __decorate([
|
|
46
|
+
(0, common_1.Injectable)()
|
|
47
|
+
], PermissionsGuard);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
export declare class RolesGuard implements CanActivate {
|
|
4
|
+
private readonly reflector;
|
|
5
|
+
constructor(reflector: Reflector);
|
|
6
|
+
canActivate(context: ExecutionContext): boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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.RolesGuard = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const auth_constants_1 = require("../auth.constants");
|
|
12
|
+
let RolesGuard = class RolesGuard {
|
|
13
|
+
reflector;
|
|
14
|
+
constructor(reflector) {
|
|
15
|
+
this.reflector = reflector;
|
|
16
|
+
}
|
|
17
|
+
canActivate(context) {
|
|
18
|
+
const isPublic = this.reflector.getAllAndOverride(auth_constants_1.IS_PUBLIC_KEY, [
|
|
19
|
+
context.getHandler(),
|
|
20
|
+
context.getClass(),
|
|
21
|
+
]);
|
|
22
|
+
if (isPublic) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
const requiredRoles = this.reflector.getAllAndOverride(auth_constants_1.AUTH_ROLES_KEY, [
|
|
26
|
+
context.getHandler(),
|
|
27
|
+
context.getClass(),
|
|
28
|
+
]) ?? [];
|
|
29
|
+
if (requiredRoles.length === 0) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
const request = context
|
|
33
|
+
.switchToHttp()
|
|
34
|
+
.getRequest();
|
|
35
|
+
const principal = request.user;
|
|
36
|
+
if (!principal?.role) {
|
|
37
|
+
throw new common_1.ForbiddenException('Role is required for this route');
|
|
38
|
+
}
|
|
39
|
+
if (!requiredRoles.includes(principal.role)) {
|
|
40
|
+
throw new common_1.ForbiddenException('You do not have access to this route');
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.RolesGuard = RolesGuard;
|
|
46
|
+
exports.RolesGuard = RolesGuard = __decorate([
|
|
47
|
+
(0, common_1.Injectable)()
|
|
48
|
+
], RolesGuard);
|
|
@@ -0,0 +1,22 @@
|
|
|
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("./auth.constants"), exports);
|
|
18
|
+
__exportStar(require("./decorators"), exports);
|
|
19
|
+
__exportStar(require("./guards"), exports);
|
|
20
|
+
__exportStar(require("./auth.interfaces"), exports);
|
|
21
|
+
__exportStar(require("./auth.module"), exports);
|
|
22
|
+
__exportStar(require("./auth.service"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CACHE_MODULE_OPTIONS: unique symbol;
|
|
@@ -11,12 +11,16 @@ exports.CacheModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const config_1 = require("@nestjs/config");
|
|
13
13
|
const cache_service_1 = require("./cache.service");
|
|
14
|
+
const cache_constants_1 = require("./cache.constants");
|
|
14
15
|
let CacheModule = CacheModule_1 = class CacheModule {
|
|
15
16
|
static register(options = {}) {
|
|
16
17
|
return {
|
|
17
18
|
module: CacheModule_1,
|
|
18
19
|
imports: [config_1.ConfigModule],
|
|
19
|
-
providers: [
|
|
20
|
+
providers: [
|
|
21
|
+
cache_service_1.CacheService,
|
|
22
|
+
{ provide: cache_constants_1.CACHE_MODULE_OPTIONS, useValue: options },
|
|
23
|
+
],
|
|
20
24
|
exports: [cache_service_1.CacheService],
|
|
21
25
|
};
|
|
22
26
|
}
|
|
@@ -8,12 +8,17 @@ export declare class CacheService implements OnModuleInit, OnModuleDestroy {
|
|
|
8
8
|
onModuleInit(): Promise<void>;
|
|
9
9
|
onModuleDestroy(): Promise<void>;
|
|
10
10
|
getClient(): Redis;
|
|
11
|
+
ping(): Promise<string>;
|
|
11
12
|
set(key: string, value: string, ttlSeconds?: number): Promise<void>;
|
|
13
|
+
setIfNotExists(key: string, value: string, ttlSeconds?: number): Promise<boolean>;
|
|
12
14
|
get(key: string): Promise<string | null>;
|
|
15
|
+
setJson<T>(key: string, value: T, ttlSeconds?: number): Promise<void>;
|
|
16
|
+
getJson<T>(key: string): Promise<T | null>;
|
|
13
17
|
del(key: string): Promise<void>;
|
|
14
18
|
exists(key: string): Promise<boolean>;
|
|
15
19
|
ttl(key: string): Promise<number>;
|
|
16
20
|
keys(pattern: string): Promise<string[]>;
|
|
21
|
+
scan(pattern: string, count?: number): Promise<string[]>;
|
|
17
22
|
flushAll(): Promise<void>;
|
|
18
23
|
incr(key: string): Promise<number>;
|
|
19
24
|
decr(key: string): Promise<number>;
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.CacheService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const ioredis_1 = __importDefault(require("ioredis"));
|
|
18
|
+
const cache_constants_1 = require("./cache.constants");
|
|
18
19
|
let CacheService = class CacheService {
|
|
19
20
|
options;
|
|
20
21
|
redisClient;
|
|
@@ -38,6 +39,9 @@ let CacheService = class CacheService {
|
|
|
38
39
|
getClient() {
|
|
39
40
|
return this.redisClient;
|
|
40
41
|
}
|
|
42
|
+
async ping() {
|
|
43
|
+
return this.redisClient.ping();
|
|
44
|
+
}
|
|
41
45
|
async set(key, value, ttlSeconds) {
|
|
42
46
|
if (ttlSeconds) {
|
|
43
47
|
await this.redisClient.setex(key, ttlSeconds, value);
|
|
@@ -46,9 +50,22 @@ let CacheService = class CacheService {
|
|
|
46
50
|
await this.redisClient.set(key, value);
|
|
47
51
|
}
|
|
48
52
|
}
|
|
53
|
+
async setIfNotExists(key, value, ttlSeconds) {
|
|
54
|
+
const result = ttlSeconds
|
|
55
|
+
? await this.redisClient.set(key, value, 'EX', ttlSeconds, 'NX')
|
|
56
|
+
: await this.redisClient.set(key, value, 'NX');
|
|
57
|
+
return result === 'OK';
|
|
58
|
+
}
|
|
49
59
|
async get(key) {
|
|
50
60
|
return this.redisClient.get(key);
|
|
51
61
|
}
|
|
62
|
+
async setJson(key, value, ttlSeconds) {
|
|
63
|
+
await this.set(key, JSON.stringify(value), ttlSeconds);
|
|
64
|
+
}
|
|
65
|
+
async getJson(key) {
|
|
66
|
+
const value = await this.get(key);
|
|
67
|
+
return value ? JSON.parse(value) : null;
|
|
68
|
+
}
|
|
52
69
|
async del(key) {
|
|
53
70
|
await this.redisClient.del(key);
|
|
54
71
|
}
|
|
@@ -62,6 +79,16 @@ let CacheService = class CacheService {
|
|
|
62
79
|
async keys(pattern) {
|
|
63
80
|
return this.redisClient.keys(pattern);
|
|
64
81
|
}
|
|
82
|
+
async scan(pattern, count = 100) {
|
|
83
|
+
const keys = [];
|
|
84
|
+
let cursor = '0';
|
|
85
|
+
do {
|
|
86
|
+
const [nextCursor, batch] = await this.redisClient.scan(cursor, 'MATCH', pattern, 'COUNT', count);
|
|
87
|
+
cursor = nextCursor;
|
|
88
|
+
keys.push(...batch);
|
|
89
|
+
} while (cursor !== '0');
|
|
90
|
+
return keys;
|
|
91
|
+
}
|
|
65
92
|
async flushAll() {
|
|
66
93
|
await this.redisClient.flushall();
|
|
67
94
|
}
|
|
@@ -90,5 +117,5 @@ let CacheService = class CacheService {
|
|
|
90
117
|
exports.CacheService = CacheService;
|
|
91
118
|
exports.CacheService = CacheService = __decorate([
|
|
92
119
|
(0, common_1.Injectable)(),
|
|
93
|
-
__param(0, (0, common_1.Inject)(
|
|
120
|
+
__param(0, (0, common_1.Inject)(cache_constants_1.CACHE_MODULE_OPTIONS))
|
|
94
121
|
], CacheService);
|
package/dist/cache/index.d.ts
CHANGED
package/dist/cache/index.js
CHANGED
|
@@ -14,5 +14,6 @@ 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("./cache.constants"), exports);
|
|
17
18
|
__exportStar(require("./cache.module"), exports);
|
|
18
19
|
__exportStar(require("./cache.service"), exports);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
transport: Transport;
|
|
5
|
-
options: {
|
|
6
|
-
servers: any[];
|
|
7
|
-
queue: any;
|
|
8
|
-
};
|
|
1
|
+
import { NatsOptions } from '@nestjs/microservices';
|
|
2
|
+
type ConfigReader = {
|
|
3
|
+
get<T = any>(propertyPath: string, defaultValue?: T): T | undefined;
|
|
9
4
|
};
|
|
5
|
+
export declare const getNatsServers: (configService: ConfigReader) => string[];
|
|
6
|
+
export declare const getNatsMicroserviceConfig: (configService: ConfigReader) => NatsOptions;
|
|
7
|
+
export declare const getNatsConfig: (configService: ConfigReader, queueName?: string) => NatsOptions;
|
|
8
|
+
export {};
|
|
@@ -1,12 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getNatsConfig = void 0;
|
|
3
|
+
exports.getNatsConfig = exports.getNatsMicroserviceConfig = exports.getNatsServers = void 0;
|
|
4
4
|
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
-
const
|
|
5
|
+
const getNatsServers = (configService) => {
|
|
6
|
+
const rawServers = configService.get('NATS_SERVERS') ??
|
|
7
|
+
configService.get('NATS_URL') ??
|
|
8
|
+
'nats://localhost:4222';
|
|
9
|
+
return rawServers
|
|
10
|
+
.split(',')
|
|
11
|
+
.map((server) => server.trim())
|
|
12
|
+
.filter(Boolean);
|
|
13
|
+
};
|
|
14
|
+
exports.getNatsServers = getNatsServers;
|
|
15
|
+
const getNatsMicroserviceConfig = (configService) => ({
|
|
6
16
|
transport: microservices_1.Transport.NATS,
|
|
7
17
|
options: {
|
|
8
|
-
servers:
|
|
9
|
-
queue: configService.get(`NATS_${queue}_QUEUE`),
|
|
18
|
+
servers: (0, exports.getNatsServers)(configService),
|
|
10
19
|
},
|
|
11
20
|
});
|
|
21
|
+
exports.getNatsMicroserviceConfig = getNatsMicroserviceConfig;
|
|
22
|
+
const getNatsConfig = (configService, queueName) => {
|
|
23
|
+
const queue = queueName &&
|
|
24
|
+
configService.get(`NATS_${queueName.toUpperCase()}_QUEUE`);
|
|
25
|
+
return {
|
|
26
|
+
transport: microservices_1.Transport.NATS,
|
|
27
|
+
options: {
|
|
28
|
+
servers: (0, exports.getNatsServers)(configService),
|
|
29
|
+
...(queue ? { queue } : {}),
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
};
|
|
12
33
|
exports.getNatsConfig = getNatsConfig;
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
export declare const AJO_QUEUE = "ajos_queue";
|
|
2
|
-
export declare const BATCH_TRANSACTION_QUEUE = "batch_transaction_queue";
|
|
3
|
-
export declare const BULK_EMAIL_QUEUE = "bulk_email_queue";
|
|
4
|
-
export declare const CARD_QUEUE = "card_queue";
|
|
5
|
-
export declare const CONTRIBUTION_QUEUE = "contribution_queue";
|
|
6
|
-
export declare const COOPERATIVE_QUEUE = "cooperative_queue";
|
|
7
|
-
export declare const LOAN_QUEUE = "loan_queue";
|
|
8
|
-
export declare const NOTIFICATION_QUEUE = "notification_queue";
|
|
9
|
-
export declare const PAYMENT_QUEUE = "payment_queue";
|
|
10
|
-
export declare const SAVINGS_QUEUE = "savings_queue";
|
|
11
|
-
export declare const SUBACCOUNT_QUEUE = "subaccounts_queue";
|
|
12
|
-
export declare const TRANSACTION_QUEUE = "transaction_queue";
|
|
13
1
|
export declare const USER_QUEUE = "user_queue";
|
|
2
|
+
export declare const KYC_QUEUE = "kyc_queue";
|
|
3
|
+
export declare const LEDGER_QUEUE = "ledger_queue";
|
|
4
|
+
export declare const BANKING_QUEUE = "banking_queue";
|
|
5
|
+
export declare const CARD_QUEUE = "card_queue";
|
|
6
|
+
export declare const CRYPTO_QUEUE = "crypto_queue";
|
|
14
7
|
export declare const VAS_QUEUE = "vas_queue";
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const FINANCE_QUEUE = "finance_queue";
|
|
8
|
+
export declare const OPS_QUEUE = "ops_queue";
|
|
9
|
+
export declare const NOTIFICATION_QUEUE = "notification_queue";
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.AJO_QUEUE = 'ajos_queue';
|
|
5
|
-
exports.BATCH_TRANSACTION_QUEUE = 'batch_transaction_queue';
|
|
6
|
-
exports.BULK_EMAIL_QUEUE = 'bulk_email_queue';
|
|
7
|
-
exports.CARD_QUEUE = 'card_queue';
|
|
8
|
-
exports.CONTRIBUTION_QUEUE = 'contribution_queue';
|
|
9
|
-
exports.COOPERATIVE_QUEUE = 'cooperative_queue';
|
|
10
|
-
exports.LOAN_QUEUE = 'loan_queue';
|
|
11
|
-
exports.NOTIFICATION_QUEUE = 'notification_queue';
|
|
12
|
-
exports.PAYMENT_QUEUE = 'payment_queue';
|
|
13
|
-
exports.SAVINGS_QUEUE = 'savings_queue';
|
|
14
|
-
exports.SUBACCOUNT_QUEUE = 'subaccounts_queue';
|
|
15
|
-
exports.TRANSACTION_QUEUE = 'transaction_queue';
|
|
3
|
+
exports.NOTIFICATION_QUEUE = exports.OPS_QUEUE = exports.VAS_QUEUE = exports.CRYPTO_QUEUE = exports.CARD_QUEUE = exports.BANKING_QUEUE = exports.LEDGER_QUEUE = exports.KYC_QUEUE = exports.USER_QUEUE = void 0;
|
|
16
4
|
exports.USER_QUEUE = 'user_queue';
|
|
5
|
+
exports.KYC_QUEUE = 'kyc_queue';
|
|
6
|
+
exports.LEDGER_QUEUE = 'ledger_queue';
|
|
7
|
+
exports.BANKING_QUEUE = 'banking_queue';
|
|
8
|
+
exports.CARD_QUEUE = 'card_queue';
|
|
9
|
+
exports.CRYPTO_QUEUE = 'crypto_queue';
|
|
17
10
|
exports.VAS_QUEUE = 'vas_queue';
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
20
|
-
exports.FINANCE_QUEUE = 'finance_queue';
|
|
11
|
+
exports.OPS_QUEUE = 'ops_queue';
|
|
12
|
+
exports.NOTIFICATION_QUEUE = 'notification_queue';
|
|
@@ -14,6 +14,4 @@ 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("./ticket.enum"), exports);
|
|
18
|
-
__exportStar(require("./support-action.enum"), exports);
|
|
19
17
|
__exportStar(require("./otp.enum"), exports);
|
package/dist/common/index.d.ts
CHANGED
package/dist/common/index.js
CHANGED
|
@@ -17,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./constants"), exports);
|
|
18
18
|
__exportStar(require("./enums"), exports);
|
|
19
19
|
__exportStar(require("./utils"), exports);
|
|
20
|
-
__exportStar(require("./health"), exports);
|
|
21
20
|
__exportStar(require("./config"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
import { DiskHealthIndicator, HealthCheckService, MemoryHealthIndicator, MicroserviceHealthIndicator } from '@nestjs/terminus';
|
|
3
|
+
export declare class HealthController {
|
|
4
|
+
private readonly health;
|
|
5
|
+
private readonly configService;
|
|
6
|
+
private readonly disk;
|
|
7
|
+
private readonly memory;
|
|
8
|
+
private readonly microservice;
|
|
9
|
+
constructor(health: HealthCheckService, configService: ConfigService, disk: DiskHealthIndicator, memory: MemoryHealthIndicator, microservice: MicroserviceHealthIndicator);
|
|
10
|
+
check(): Promise<import("@nestjs/terminus").HealthCheckResult<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<"memory_heap">, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<"memory_heap">> | undefined, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<"memory_heap">> | undefined>>;
|
|
11
|
+
ready(): Promise<import("@nestjs/terminus").HealthCheckResult<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<"nats"> & import("@nestjs/terminus").HealthIndicatorResult<"memory_rss"> & import("@nestjs/terminus").HealthIndicatorResult<"memory_heap"> & import("@nestjs/terminus").HealthIndicatorResult<"storage">, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<"nats"> & import("@nestjs/terminus").HealthIndicatorResult<"memory_rss"> & import("@nestjs/terminus").HealthIndicatorResult<"memory_heap"> & import("@nestjs/terminus").HealthIndicatorResult<"storage">> | undefined, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<"nats"> & import("@nestjs/terminus").HealthIndicatorResult<"memory_rss"> & import("@nestjs/terminus").HealthIndicatorResult<"memory_heap"> & import("@nestjs/terminus").HealthIndicatorResult<"storage">> | undefined>>;
|
|
12
|
+
private checkStorage;
|
|
13
|
+
private checkMemoryHeap;
|
|
14
|
+
private checkMemoryRSS;
|
|
15
|
+
private checkNats;
|
|
16
|
+
private getMemoryHeapThreshold;
|
|
17
|
+
private getMemoryRSSThreshold;
|
|
18
|
+
private getDiskThresholdPercent;
|
|
19
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
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.HealthController = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
12
|
+
const terminus_1 = require("@nestjs/terminus");
|
|
13
|
+
const decorators_1 = require("../auth/decorators");
|
|
14
|
+
const nats_config_1 = require("../common/config/nats.config");
|
|
15
|
+
let HealthController = class HealthController {
|
|
16
|
+
health;
|
|
17
|
+
configService;
|
|
18
|
+
disk;
|
|
19
|
+
memory;
|
|
20
|
+
microservice;
|
|
21
|
+
constructor(health, configService, disk, memory, microservice) {
|
|
22
|
+
this.health = health;
|
|
23
|
+
this.configService = configService;
|
|
24
|
+
this.disk = disk;
|
|
25
|
+
this.memory = memory;
|
|
26
|
+
this.microservice = microservice;
|
|
27
|
+
}
|
|
28
|
+
check() {
|
|
29
|
+
return this.health.check([() => this.checkMemoryHeap()]);
|
|
30
|
+
}
|
|
31
|
+
ready() {
|
|
32
|
+
return this.health.check([
|
|
33
|
+
() => this.checkStorage(),
|
|
34
|
+
() => this.checkMemoryHeap(),
|
|
35
|
+
() => this.checkMemoryRSS(),
|
|
36
|
+
() => this.checkNats(),
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
checkStorage() {
|
|
40
|
+
return this.disk.checkStorage('storage', {
|
|
41
|
+
path: '/',
|
|
42
|
+
thresholdPercent: this.getDiskThresholdPercent(),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
checkMemoryHeap() {
|
|
46
|
+
return this.memory.checkHeap('memory_heap', this.getMemoryHeapThreshold());
|
|
47
|
+
}
|
|
48
|
+
checkMemoryRSS() {
|
|
49
|
+
return this.memory.checkRSS('memory_rss', this.getMemoryRSSThreshold());
|
|
50
|
+
}
|
|
51
|
+
checkNats() {
|
|
52
|
+
const natsConfig = {
|
|
53
|
+
get: (propertyPath, defaultValue) => this.configService.get(propertyPath) ?? defaultValue,
|
|
54
|
+
};
|
|
55
|
+
return this.microservice.pingCheck('nats', {
|
|
56
|
+
transport: microservices_1.Transport.NATS,
|
|
57
|
+
options: {
|
|
58
|
+
servers: (0, nats_config_1.getNatsServers)(natsConfig),
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
getMemoryHeapThreshold() {
|
|
63
|
+
const thresholdMB = Number.parseInt(this.configService.get('HEALTH_MEMORY_HEAP_THRESHOLD_MB', '500'), 10);
|
|
64
|
+
return thresholdMB * 1024 * 1024;
|
|
65
|
+
}
|
|
66
|
+
getMemoryRSSThreshold() {
|
|
67
|
+
const thresholdMB = Number.parseInt(this.configService.get('HEALTH_MEMORY_RSS_THRESHOLD_MB', '1024'), 10);
|
|
68
|
+
return thresholdMB * 1024 * 1024;
|
|
69
|
+
}
|
|
70
|
+
getDiskThresholdPercent() {
|
|
71
|
+
return Number.parseFloat(this.configService.get('HEALTH_DISK_THRESHOLD_PERCENT', '0.5'));
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
exports.HealthController = HealthController;
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, common_1.Get)(),
|
|
77
|
+
(0, decorators_1.Public)(),
|
|
78
|
+
(0, terminus_1.HealthCheck)()
|
|
79
|
+
], HealthController.prototype, "check", null);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, common_1.Get)('ready'),
|
|
82
|
+
(0, decorators_1.Public)(),
|
|
83
|
+
(0, terminus_1.HealthCheck)()
|
|
84
|
+
], HealthController.prototype, "ready", null);
|
|
85
|
+
exports.HealthController = HealthController = __decorate([
|
|
86
|
+
(0, common_1.Controller)('health'),
|
|
87
|
+
(0, common_1.Injectable)()
|
|
88
|
+
], HealthController);
|
|
@@ -9,14 +9,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.HealthModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const terminus_1 = require("@nestjs/terminus");
|
|
12
|
-
const axios_1 = require("@nestjs/axios");
|
|
13
12
|
const health_controller_1 = require("./health.controller");
|
|
14
13
|
let HealthModule = class HealthModule {
|
|
15
14
|
};
|
|
16
15
|
exports.HealthModule = HealthModule;
|
|
17
16
|
exports.HealthModule = HealthModule = __decorate([
|
|
18
17
|
(0, common_1.Module)({
|
|
19
|
-
imports: [terminus_1.TerminusModule
|
|
18
|
+
imports: [terminus_1.TerminusModule],
|
|
20
19
|
controllers: [health_controller_1.HealthController],
|
|
21
20
|
})
|
|
22
21
|
], HealthModule);
|
package/dist/index.d.ts
CHANGED
|
@@ -2,4 +2,8 @@ export * from './nats';
|
|
|
2
2
|
export * from './common';
|
|
3
3
|
export * from './cache';
|
|
4
4
|
export * from './rpc';
|
|
5
|
-
export * from './
|
|
5
|
+
export * from './logger';
|
|
6
|
+
export * from './health';
|
|
7
|
+
export * from './auth';
|
|
8
|
+
export * from './storage';
|
|
9
|
+
export * from './argon';
|
package/dist/index.js
CHANGED
|
@@ -18,4 +18,8 @@ __exportStar(require("./nats"), exports);
|
|
|
18
18
|
__exportStar(require("./common"), exports);
|
|
19
19
|
__exportStar(require("./cache"), exports);
|
|
20
20
|
__exportStar(require("./rpc"), exports);
|
|
21
|
-
__exportStar(require("./
|
|
21
|
+
__exportStar(require("./logger"), exports);
|
|
22
|
+
__exportStar(require("./health"), exports);
|
|
23
|
+
__exportStar(require("./auth"), exports);
|
|
24
|
+
__exportStar(require("./storage"), exports);
|
|
25
|
+
__exportStar(require("./argon"), exports);
|
|
@@ -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("./logger.module"), exports);
|
|
18
|
+
__exportStar(require("./logging.interceptor"), exports);
|