@viardex/viardex-libs 1.0.0

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.
Files changed (67) hide show
  1. package/README.md +1 -0
  2. package/dist/cache/cache.interface.d.ts +2 -0
  3. package/dist/cache/cache.interface.js +2 -0
  4. package/dist/cache/cache.module.d.ts +5 -0
  5. package/dist/cache/cache.module.js +27 -0
  6. package/dist/cache/cache.service.d.ts +25 -0
  7. package/dist/cache/cache.service.js +94 -0
  8. package/dist/cache/index.d.ts +2 -0
  9. package/dist/cache/index.js +18 -0
  10. package/dist/common/config/index.d.ts +1 -0
  11. package/dist/common/config/index.js +2 -0
  12. package/dist/common/config/nats.config.d.ts +9 -0
  13. package/dist/common/config/nats.config.js +12 -0
  14. package/dist/common/constants/index.d.ts +2 -0
  15. package/dist/common/constants/index.js +18 -0
  16. package/dist/common/constants/otp.constants.d.ts +15 -0
  17. package/dist/common/constants/otp.constants.js +18 -0
  18. package/dist/common/constants/queues.constants.d.ts +17 -0
  19. package/dist/common/constants/queues.constants.js +20 -0
  20. package/dist/common/enums/index.d.ts +2 -0
  21. package/dist/common/enums/index.js +18 -0
  22. package/dist/common/enums/support-action.enum.d.ts +7 -0
  23. package/dist/common/enums/support-action.enum.js +11 -0
  24. package/dist/common/enums/ticket.enum.d.ts +19 -0
  25. package/dist/common/enums/ticket.enum.js +25 -0
  26. package/dist/common/health/health.controller.d.ts +9 -0
  27. package/dist/common/health/health.controller.js +49 -0
  28. package/dist/common/health/health.module.d.ts +2 -0
  29. package/dist/common/health/health.module.js +22 -0
  30. package/dist/common/index.d.ts +3 -0
  31. package/dist/common/index.js +19 -0
  32. package/dist/common/utils/index.d.ts +3 -0
  33. package/dist/common/utils/index.js +19 -0
  34. package/dist/common/utils/random.utils.d.ts +10 -0
  35. package/dist/common/utils/random.utils.js +27 -0
  36. package/dist/common/utils/reference.utils.d.ts +1 -0
  37. package/dist/common/utils/reference.utils.js +17 -0
  38. package/dist/common/utils/string.utils.d.ts +10 -0
  39. package/dist/common/utils/string.utils.js +34 -0
  40. package/dist/index.d.ts +5 -0
  41. package/dist/index.js +21 -0
  42. package/dist/nats/constants/nats.constants.d.ts +11 -0
  43. package/dist/nats/constants/nats.constants.js +15 -0
  44. package/dist/nats/decorators/nats-event-pattern.decorator.d.ts +2 -0
  45. package/dist/nats/decorators/nats-event-pattern.decorator.js +11 -0
  46. package/dist/nats/dto/nats-message.dto.d.ts +5 -0
  47. package/dist/nats/dto/nats-message.dto.js +27 -0
  48. package/dist/nats/index.d.ts +5 -0
  49. package/dist/nats/index.js +21 -0
  50. package/dist/nats/interceptors/nats-logging.interceptor.d.ts +6 -0
  51. package/dist/nats/interceptors/nats-logging.interceptor.js +33 -0
  52. package/dist/nats/interfaces/nats-options.interface.d.ts +23 -0
  53. package/dist/nats/interfaces/nats-options.interface.js +2 -0
  54. package/dist/notification/index.d.ts +4 -0
  55. package/dist/notification/index.js +20 -0
  56. package/dist/notification/notification.client.d.ts +31 -0
  57. package/dist/notification/notification.client.js +104 -0
  58. package/dist/notification/notification.enum.d.ts +10 -0
  59. package/dist/notification/notification.enum.js +14 -0
  60. package/dist/notification/notification.interface.d.ts +31 -0
  61. package/dist/notification/notification.interface.js +2 -0
  62. package/dist/notification/notification.module.d.ts +2 -0
  63. package/dist/notification/notification.module.js +20 -0
  64. package/dist/rpc/index.d.ts +54 -0
  65. package/dist/rpc/index.js +135 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -0
  67. package/package.json +68 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # Viardex Libs
@@ -0,0 +1,2 @@
1
+ import { RedisOptions } from 'ioredis';
2
+ export type CacheOptions = RedisOptions;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { CacheOptions } from './cache.interface';
3
+ export declare class CacheModule {
4
+ static register(options?: CacheOptions): DynamicModule;
5
+ }
@@ -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 CacheModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.CacheModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const config_1 = require("@nestjs/config");
13
+ const cache_service_1 = require("./cache.service");
14
+ let CacheModule = CacheModule_1 = class CacheModule {
15
+ static register(options = {}) {
16
+ return {
17
+ module: CacheModule_1,
18
+ imports: [config_1.ConfigModule],
19
+ providers: [cache_service_1.CacheService, { provide: 'options', useValue: options }],
20
+ exports: [cache_service_1.CacheService],
21
+ };
22
+ }
23
+ };
24
+ exports.CacheModule = CacheModule;
25
+ exports.CacheModule = CacheModule = CacheModule_1 = __decorate([
26
+ (0, common_1.Module)({})
27
+ ], CacheModule);
@@ -0,0 +1,25 @@
1
+ import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
+ import Redis from 'ioredis';
3
+ import type { CacheOptions } from './cache.interface';
4
+ export declare class CacheService implements OnModuleInit, OnModuleDestroy {
5
+ private readonly options;
6
+ private redisClient;
7
+ constructor(options: CacheOptions);
8
+ onModuleInit(): Promise<void>;
9
+ onModuleDestroy(): Promise<void>;
10
+ getClient(): Redis;
11
+ set(key: string, value: string, ttlSeconds?: number): Promise<void>;
12
+ get(key: string): Promise<string | null>;
13
+ del(key: string): Promise<void>;
14
+ exists(key: string): Promise<boolean>;
15
+ ttl(key: string): Promise<number>;
16
+ keys(pattern: string): Promise<string[]>;
17
+ flushAll(): Promise<void>;
18
+ incr(key: string): Promise<number>;
19
+ decr(key: string): Promise<number>;
20
+ hset(key: string, field: string, value: string): Promise<void>;
21
+ hget(key: string, field: string): Promise<string | null>;
22
+ hgetall(key: string): Promise<Record<string, string>>;
23
+ hdel(key: string, field: string): Promise<void>;
24
+ expire(key: string, ttlSeconds: number): Promise<void>;
25
+ }
@@ -0,0 +1,94 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
9
+ return function (target, key) { decorator(target, key, paramIndex); }
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CacheService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const ioredis_1 = __importDefault(require("ioredis"));
18
+ let CacheService = class CacheService {
19
+ options;
20
+ redisClient;
21
+ constructor(options) {
22
+ this.options = options;
23
+ }
24
+ async onModuleInit() {
25
+ const options = this.options || {};
26
+ this.redisClient = new ioredis_1.default({
27
+ ...options,
28
+ host: options.host || process.env.REDIS_HOST || 'localhost',
29
+ port: options.port || +(process.env?.REDIS_PORT || 6379),
30
+ username: options.username || process.env?.REDIS_USERNAME,
31
+ password: options.password || process.env?.REDIS_PASSWORD,
32
+ keyPrefix: options.keyPrefix || 'viardex:',
33
+ });
34
+ }
35
+ async onModuleDestroy() {
36
+ await this.redisClient.quit();
37
+ }
38
+ getClient() {
39
+ return this.redisClient;
40
+ }
41
+ async set(key, value, ttlSeconds) {
42
+ if (ttlSeconds) {
43
+ await this.redisClient.setex(key, ttlSeconds, value);
44
+ }
45
+ else {
46
+ await this.redisClient.set(key, value);
47
+ }
48
+ }
49
+ async get(key) {
50
+ return this.redisClient.get(key);
51
+ }
52
+ async del(key) {
53
+ await this.redisClient.del(key);
54
+ }
55
+ async exists(key) {
56
+ const result = await this.redisClient.exists(key);
57
+ return result === 1;
58
+ }
59
+ async ttl(key) {
60
+ return this.redisClient.ttl(key);
61
+ }
62
+ async keys(pattern) {
63
+ return this.redisClient.keys(pattern);
64
+ }
65
+ async flushAll() {
66
+ await this.redisClient.flushall();
67
+ }
68
+ async incr(key) {
69
+ return this.redisClient.incr(key);
70
+ }
71
+ async decr(key) {
72
+ return this.redisClient.decr(key);
73
+ }
74
+ async hset(key, field, value) {
75
+ await this.redisClient.hset(key, field, value);
76
+ }
77
+ async hget(key, field) {
78
+ return this.redisClient.hget(key, field);
79
+ }
80
+ async hgetall(key) {
81
+ return this.redisClient.hgetall(key);
82
+ }
83
+ async hdel(key, field) {
84
+ await this.redisClient.hdel(key, field);
85
+ }
86
+ async expire(key, ttlSeconds) {
87
+ await this.redisClient.expire(key, ttlSeconds);
88
+ }
89
+ };
90
+ exports.CacheService = CacheService;
91
+ exports.CacheService = CacheService = __decorate([
92
+ (0, common_1.Injectable)(),
93
+ __param(0, (0, common_1.Inject)('options'))
94
+ ], CacheService);
@@ -0,0 +1,2 @@
1
+ export * from './cache.module';
2
+ export * from './cache.service';
@@ -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("./cache.module"), exports);
18
+ __exportStar(require("./cache.service"), exports);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { Transport } from '@nestjs/microservices';
3
+ export declare const getNatsConfig: (configService: ConfigService, queue: string) => {
4
+ transport: Transport;
5
+ options: {
6
+ servers: any[];
7
+ queue: any;
8
+ };
9
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNatsConfig = void 0;
4
+ const microservices_1 = require("@nestjs/microservices");
5
+ const getNatsConfig = (configService, queue) => ({
6
+ transport: microservices_1.Transport.NATS,
7
+ options: {
8
+ servers: [configService.get('NATS_URL', 'nats://localhost:4222')],
9
+ queue: configService.get(`NATS_${queue}_QUEUE`),
10
+ },
11
+ });
12
+ exports.getNatsConfig = getNatsConfig;
@@ -0,0 +1,2 @@
1
+ export * from './queues.constants';
2
+ export * from './otp.constants';
@@ -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("./queues.constants"), exports);
18
+ __exportStar(require("./otp.constants"), exports);
@@ -0,0 +1,15 @@
1
+ export declare const DEFAULT_OTP_LENGTH = 6;
2
+ export declare const DEFAULT_OTP_EXPIRY = 10;
3
+ export declare const MAX_OTP_ATTEMPTS = 3;
4
+ export declare const OTP_BLOCK_DURATION = 30;
5
+ export declare const DEFAULT_OTP_OPTIONS: {
6
+ length: number;
7
+ expiry: number;
8
+ caseSensitive: boolean;
9
+ digits: boolean;
10
+ lowerCaseAlphabets: boolean;
11
+ upperCaseAlphabets: boolean;
12
+ specialChars: boolean;
13
+ };
14
+ export declare const OTP_CACHE_PREFIX = "otp:";
15
+ export declare const OTP_ATTEMPTS_CACHE_PREFIX = "otp:attempts:";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OTP_ATTEMPTS_CACHE_PREFIX = exports.OTP_CACHE_PREFIX = exports.DEFAULT_OTP_OPTIONS = exports.OTP_BLOCK_DURATION = exports.MAX_OTP_ATTEMPTS = exports.DEFAULT_OTP_EXPIRY = exports.DEFAULT_OTP_LENGTH = void 0;
4
+ exports.DEFAULT_OTP_LENGTH = 6;
5
+ exports.DEFAULT_OTP_EXPIRY = 10; // 10 minutes
6
+ exports.MAX_OTP_ATTEMPTS = 3;
7
+ exports.OTP_BLOCK_DURATION = 30; // 30 minutes
8
+ exports.DEFAULT_OTP_OPTIONS = {
9
+ length: exports.DEFAULT_OTP_LENGTH,
10
+ expiry: exports.DEFAULT_OTP_EXPIRY,
11
+ caseSensitive: false,
12
+ digits: true,
13
+ lowerCaseAlphabets: false,
14
+ upperCaseAlphabets: false,
15
+ specialChars: false,
16
+ };
17
+ exports.OTP_CACHE_PREFIX = 'otp:';
18
+ exports.OTP_ATTEMPTS_CACHE_PREFIX = 'otp:attempts:';
@@ -0,0 +1,17 @@
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
+ export declare const USER_QUEUE = "user_queue";
14
+ export declare const VAS_QUEUE = "vas_queue";
15
+ export declare const WALLET_QUEUE = "wallet_queue";
16
+ export declare const WEBHOOK_QUEUE = "webhook_queue";
17
+ export declare const FINANCE_QUEUE = "finance_queue";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FINANCE_QUEUE = exports.WEBHOOK_QUEUE = exports.WALLET_QUEUE = exports.VAS_QUEUE = exports.USER_QUEUE = exports.TRANSACTION_QUEUE = exports.SUBACCOUNT_QUEUE = exports.SAVINGS_QUEUE = exports.PAYMENT_QUEUE = exports.NOTIFICATION_QUEUE = exports.LOAN_QUEUE = exports.COOPERATIVE_QUEUE = exports.CONTRIBUTION_QUEUE = exports.CARD_QUEUE = exports.BULK_EMAIL_QUEUE = exports.BATCH_TRANSACTION_QUEUE = exports.AJO_QUEUE = void 0;
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';
16
+ exports.USER_QUEUE = 'user_queue';
17
+ exports.VAS_QUEUE = 'vas_queue';
18
+ exports.WALLET_QUEUE = 'wallet_queue';
19
+ exports.WEBHOOK_QUEUE = 'webhook_queue';
20
+ exports.FINANCE_QUEUE = 'finance_queue';
@@ -0,0 +1,2 @@
1
+ export * from './ticket.enum';
2
+ export * from './support-action.enum';
@@ -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("./ticket.enum"), exports);
18
+ __exportStar(require("./support-action.enum"), exports);
@@ -0,0 +1,7 @@
1
+ export declare enum SupportAction {
2
+ CREATE_TICKET = "createTicket",
3
+ GET_TICKETS = "getTickets",
4
+ GET_TICKET = "getTicket",
5
+ UPDATE_TICKET = "updateTicket",
6
+ ADD_MESSAGE = "addMessage"
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SupportAction = void 0;
4
+ var SupportAction;
5
+ (function (SupportAction) {
6
+ SupportAction["CREATE_TICKET"] = "createTicket";
7
+ SupportAction["GET_TICKETS"] = "getTickets";
8
+ SupportAction["GET_TICKET"] = "getTicket";
9
+ SupportAction["UPDATE_TICKET"] = "updateTicket";
10
+ SupportAction["ADD_MESSAGE"] = "addMessage";
11
+ })(SupportAction || (exports.SupportAction = SupportAction = {}));
@@ -0,0 +1,19 @@
1
+ export declare enum TicketStatus {
2
+ OPEN = "OPEN",
3
+ IN_PROGRESS = "IN_PROGRESS",
4
+ RESOLVED = "RESOLVED",
5
+ CLOSED = "CLOSED"
6
+ }
7
+ export declare enum TicketPriority {
8
+ LOW = "LOW",
9
+ MEDIUM = "MEDIUM",
10
+ HIGH = "HIGH",
11
+ URGENT = "URGENT"
12
+ }
13
+ export declare enum TicketCategory {
14
+ GENERAL = "GENERAL",
15
+ TECHNICAL = "TECHNICAL",
16
+ BILLING = "BILLING",
17
+ FEATURE_REQUEST = "FEATURE_REQUEST",
18
+ BUG = "BUG"
19
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TicketCategory = exports.TicketPriority = exports.TicketStatus = void 0;
4
+ var TicketStatus;
5
+ (function (TicketStatus) {
6
+ TicketStatus["OPEN"] = "OPEN";
7
+ TicketStatus["IN_PROGRESS"] = "IN_PROGRESS";
8
+ TicketStatus["RESOLVED"] = "RESOLVED";
9
+ TicketStatus["CLOSED"] = "CLOSED";
10
+ })(TicketStatus || (exports.TicketStatus = TicketStatus = {}));
11
+ var TicketPriority;
12
+ (function (TicketPriority) {
13
+ TicketPriority["LOW"] = "LOW";
14
+ TicketPriority["MEDIUM"] = "MEDIUM";
15
+ TicketPriority["HIGH"] = "HIGH";
16
+ TicketPriority["URGENT"] = "URGENT";
17
+ })(TicketPriority || (exports.TicketPriority = TicketPriority = {}));
18
+ var TicketCategory;
19
+ (function (TicketCategory) {
20
+ TicketCategory["GENERAL"] = "GENERAL";
21
+ TicketCategory["TECHNICAL"] = "TECHNICAL";
22
+ TicketCategory["BILLING"] = "BILLING";
23
+ TicketCategory["FEATURE_REQUEST"] = "FEATURE_REQUEST";
24
+ TicketCategory["BUG"] = "BUG";
25
+ })(TicketCategory || (exports.TicketCategory = TicketCategory = {}));
@@ -0,0 +1,9 @@
1
+ import { HealthCheckService, DiskHealthIndicator, MemoryHealthIndicator, MicroserviceHealthIndicator } from '@nestjs/terminus';
2
+ export declare class HealthController {
3
+ private health;
4
+ private disk;
5
+ private memory;
6
+ private microservice;
7
+ constructor(health: HealthCheckService, disk: DiskHealthIndicator, memory: MemoryHealthIndicator, microservice: MicroserviceHealthIndicator);
8
+ check(): Promise<import("@nestjs/terminus").HealthCheckResult>;
9
+ }
@@ -0,0 +1,49 @@
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 terminus_1 = require("@nestjs/terminus");
12
+ const microservices_1 = require("@nestjs/microservices");
13
+ let HealthController = class HealthController {
14
+ health;
15
+ disk;
16
+ memory;
17
+ microservice;
18
+ constructor(health, disk, memory, microservice) {
19
+ this.health = health;
20
+ this.disk = disk;
21
+ this.memory = memory;
22
+ this.microservice = microservice;
23
+ }
24
+ check() {
25
+ return this.health.check([
26
+ () => this.disk.checkStorage('storage', {
27
+ thresholdPercent: 0.5,
28
+ path: '/',
29
+ }),
30
+ () => this.memory.checkHeap('memory_heap', 150 * 1024 * 1024),
31
+ () => this.memory.checkRSS('memory_rss', 150 * 1024 * 1024),
32
+ () => this.microservice.pingCheck('nats', {
33
+ transport: microservices_1.Transport.NATS,
34
+ options: {
35
+ servers: [process.env.NATS_URL],
36
+ },
37
+ }),
38
+ ]);
39
+ }
40
+ };
41
+ exports.HealthController = HealthController;
42
+ __decorate([
43
+ (0, common_1.Get)(),
44
+ (0, terminus_1.HealthCheck)()
45
+ ], HealthController.prototype, "check", null);
46
+ exports.HealthController = HealthController = __decorate([
47
+ (0, common_1.Controller)('health'),
48
+ (0, common_1.Injectable)()
49
+ ], HealthController);
@@ -0,0 +1,2 @@
1
+ export declare class HealthModule {
2
+ }
@@ -0,0 +1,22 @@
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 axios_1 = require("@nestjs/axios");
13
+ const health_controller_1 = require("./health.controller");
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, axios_1.HttpModule],
20
+ controllers: [health_controller_1.HealthController],
21
+ })
22
+ ], HealthModule);
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './enums';
3
+ export * from './utils';
@@ -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("./constants"), exports);
18
+ __exportStar(require("./enums"), exports);
19
+ __exportStar(require("./utils"), exports);
@@ -0,0 +1,3 @@
1
+ export * from './string.utils';
2
+ export * from './random.utils';
3
+ export * from './reference.utils';
@@ -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("./string.utils"), exports);
18
+ __exportStar(require("./random.utils"), exports);
19
+ __exportStar(require("./reference.utils"), exports);
@@ -0,0 +1,10 @@
1
+ export interface RandomStringOptions {
2
+ length?: number;
3
+ expiry?: number;
4
+ caseSensitive?: boolean;
5
+ digits?: boolean;
6
+ lowerCaseAlphabets?: boolean;
7
+ upperCaseAlphabets?: boolean;
8
+ specialChars?: boolean;
9
+ }
10
+ export declare function generateRandomString(options?: RandomStringOptions): string;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRandomString = generateRandomString;
4
+ const DIGITS = '0123456789';
5
+ const LOWERCASE_CHARS = 'abcdefghijklmnopqrstuvwxyz';
6
+ const UPPERCASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
7
+ const SPECIAL_CHARS = '!@#$%^&*()_+-=[]{}|;:,.<>?';
8
+ function generateRandomString(options = {}) {
9
+ const { length = 6, digits = true, lowerCaseAlphabets = false, upperCaseAlphabets = false, specialChars = false, } = options;
10
+ let chars = '';
11
+ if (digits)
12
+ chars += DIGITS;
13
+ if (lowerCaseAlphabets)
14
+ chars += LOWERCASE_CHARS;
15
+ if (upperCaseAlphabets)
16
+ chars += UPPERCASE_CHARS;
17
+ if (specialChars)
18
+ chars += SPECIAL_CHARS;
19
+ if (!chars)
20
+ chars = DIGITS; // Default to digits if no character set is selected
21
+ let result = '';
22
+ const charactersLength = chars.length;
23
+ for (let i = 0; i < length; i++) {
24
+ result += chars.charAt(Math.floor(Math.random() * charactersLength));
25
+ }
26
+ return result;
27
+ }
@@ -0,0 +1 @@
1
+ export declare const generateReference: (prefix?: string) => string;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateReference = void 0;
4
+ const generateRandomString = (length) => {
5
+ const characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
6
+ const charactersLength = characters.length;
7
+ let result = '';
8
+ for (let i = 0; i < length; i++) {
9
+ const randomIndex = Math.floor(Math.random() * charactersLength);
10
+ result += characters[randomIndex];
11
+ }
12
+ return result;
13
+ };
14
+ const generateReference = (prefix = 'TRX') => {
15
+ return `${prefix}_${generateRandomString(12)}`;
16
+ };
17
+ exports.generateReference = generateReference;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Formats phone number for display
3
+ * 2348012345678 → +234 801 234 5678
4
+ */
5
+ export declare const formatPhoneNumber: (phone: string) => string;
6
+ /**
7
+ * Masks phone number for security
8
+ * +2348012345678 → +234****5678
9
+ */
10
+ export declare const maskPhoneNumber: (phone: string) => string;