@takentrade/takentrade-libs 0.0.57

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 (164) hide show
  1. package/README.md +216 -0
  2. package/dist/bullmq/bullmq.module.d.ts +2 -0
  3. package/dist/bullmq/bullmq.module.js +16 -0
  4. package/dist/bullmq/bullmq.service.d.ts +2 -0
  5. package/dist/bullmq/bullmq.service.js +16 -0
  6. package/dist/bullmq/config/bull.config.d.ts +22 -0
  7. package/dist/bullmq/config/bull.config.js +28 -0
  8. package/dist/bullmq/index.d.ts +1 -0
  9. package/dist/bullmq/index.js +17 -0
  10. package/dist/cache/cache.interface.d.ts +2 -0
  11. package/dist/cache/cache.interface.js +2 -0
  12. package/dist/cache/cache.module.d.ts +5 -0
  13. package/dist/cache/cache.module.js +27 -0
  14. package/dist/cache/cache.service.d.ts +24 -0
  15. package/dist/cache/cache.service.js +91 -0
  16. package/dist/cache/index.d.ts +2 -0
  17. package/dist/cache/index.js +18 -0
  18. package/dist/common/circuit-breaker/circuit-breaker.module.d.ts +2 -0
  19. package/dist/common/circuit-breaker/circuit-breaker.module.js +20 -0
  20. package/dist/common/circuit-breaker/circuit-breaker.service.d.ts +13 -0
  21. package/dist/common/circuit-breaker/circuit-breaker.service.js +120 -0
  22. package/dist/common/circuit-breaker/circuit-breaker.types.d.ts +19 -0
  23. package/dist/common/circuit-breaker/circuit-breaker.types.js +9 -0
  24. package/dist/common/config/index.d.ts +1 -0
  25. package/dist/common/config/index.js +2 -0
  26. package/dist/common/config/nats.config.d.ts +9 -0
  27. package/dist/common/config/nats.config.js +12 -0
  28. package/dist/common/constants/index.d.ts +2 -0
  29. package/dist/common/constants/index.js +18 -0
  30. package/dist/common/constants/otp.constants.d.ts +15 -0
  31. package/dist/common/constants/otp.constants.js +18 -0
  32. package/dist/common/constants/queues.constants.d.ts +9 -0
  33. package/dist/common/constants/queues.constants.js +12 -0
  34. package/dist/common/dto/index.d.ts +3 -0
  35. package/dist/common/dto/index.js +19 -0
  36. package/dist/common/dto/payment/index.d.ts +1 -0
  37. package/dist/common/dto/payment/index.js +17 -0
  38. package/dist/common/dto/payment/withdrawal.dto.d.ts +19 -0
  39. package/dist/common/dto/payment/withdrawal.dto.js +97 -0
  40. package/dist/common/dto/support/create-message.dto.d.ts +4 -0
  41. package/dist/common/dto/support/create-message.dto.js +25 -0
  42. package/dist/common/dto/support/create-ticket.dto.d.ts +7 -0
  43. package/dist/common/dto/support/create-ticket.dto.js +43 -0
  44. package/dist/common/dto/support/index.d.ts +3 -0
  45. package/dist/common/dto/support/index.js +19 -0
  46. package/dist/common/dto/support/update-ticket.dto.d.ts +6 -0
  47. package/dist/common/dto/support/update-ticket.dto.js +41 -0
  48. package/dist/common/dto/users/index.d.ts +6 -0
  49. package/dist/common/dto/users/index.js +22 -0
  50. package/dist/common/dto/users/login.dto.d.ts +9 -0
  51. package/dist/common/dto/users/login.dto.js +40 -0
  52. package/dist/common/dto/users/passcode.dto.d.ts +12 -0
  53. package/dist/common/dto/users/passcode.dto.js +51 -0
  54. package/dist/common/dto/users/phone.dto.d.ts +4 -0
  55. package/dist/common/dto/users/phone.dto.js +26 -0
  56. package/dist/common/dto/users/register.dto.d.ts +8 -0
  57. package/dist/common/dto/users/register.dto.js +46 -0
  58. package/dist/common/dto/users/request-phone-verification.dto.d.ts +3 -0
  59. package/dist/common/dto/users/request-phone-verification.dto.js +20 -0
  60. package/dist/common/dto/users/verify-phone.dto.d.ts +3 -0
  61. package/dist/common/dto/users/verify-phone.dto.js +20 -0
  62. package/dist/common/enums/index.d.ts +2 -0
  63. package/dist/common/enums/index.js +18 -0
  64. package/dist/common/enums/support-action.enum.d.ts +7 -0
  65. package/dist/common/enums/support-action.enum.js +11 -0
  66. package/dist/common/enums/ticket.enum.d.ts +19 -0
  67. package/dist/common/enums/ticket.enum.js +25 -0
  68. package/dist/common/health/health.controller.d.ts +9 -0
  69. package/dist/common/health/health.controller.js +51 -0
  70. package/dist/common/health/health.module.d.ts +2 -0
  71. package/dist/common/health/health.module.js +22 -0
  72. package/dist/common/index.d.ts +6 -0
  73. package/dist/common/index.js +23 -0
  74. package/dist/common/utils/index.d.ts +3 -0
  75. package/dist/common/utils/index.js +19 -0
  76. package/dist/common/utils/random.utils.d.ts +10 -0
  77. package/dist/common/utils/random.utils.js +27 -0
  78. package/dist/common/utils/reference.utils.d.ts +1 -0
  79. package/dist/common/utils/reference.utils.js +17 -0
  80. package/dist/common/utils/string.utils.d.ts +2 -0
  81. package/dist/common/utils/string.utils.js +17 -0
  82. package/dist/index.d.ts +8 -0
  83. package/dist/index.js +24 -0
  84. package/dist/logger/fake/FakeLogger.service.d.ts +13 -0
  85. package/dist/logger/fake/FakeLogger.service.js +21 -0
  86. package/dist/logger/index.d.ts +2 -0
  87. package/dist/logger/index.js +18 -0
  88. package/dist/logger/logger.module.d.ts +7 -0
  89. package/dist/logger/logger.module.js +69 -0
  90. package/dist/logger/real/pinoLogger.service.d.ts +14 -0
  91. package/dist/logger/real/pinoLogger.service.js +76 -0
  92. package/dist/nats/constants/nats.constants.d.ts +9 -0
  93. package/dist/nats/constants/nats.constants.js +12 -0
  94. package/dist/nats/decorators/nats-event-pattern.decorator.d.ts +2 -0
  95. package/dist/nats/decorators/nats-event-pattern.decorator.js +11 -0
  96. package/dist/nats/dto/nats-message.dto.d.ts +5 -0
  97. package/dist/nats/dto/nats-message.dto.js +27 -0
  98. package/dist/nats/index.d.ts +5 -0
  99. package/dist/nats/index.js +21 -0
  100. package/dist/nats/interceptors/nats-logging.interceptor.d.ts +6 -0
  101. package/dist/nats/interceptors/nats-logging.interceptor.js +33 -0
  102. package/dist/nats/interfaces/nats-options.interface.d.ts +23 -0
  103. package/dist/nats/interfaces/nats-options.interface.js +2 -0
  104. package/dist/prisma/index.d.ts +2 -0
  105. package/dist/prisma/index.js +18 -0
  106. package/dist/prisma/prisma.module.d.ts +2 -0
  107. package/dist/prisma/prisma.module.js +21 -0
  108. package/dist/prisma/prisma.service.d.ts +6 -0
  109. package/dist/prisma/prisma.service.js +25 -0
  110. package/dist/rpc/index.d.ts +50 -0
  111. package/dist/rpc/index.js +131 -0
  112. package/dist/utils/dto/index.d.ts +4 -0
  113. package/dist/utils/dto/index.js +31 -0
  114. package/dist/utils/filters/http-exception.filter.d.ts +6 -0
  115. package/dist/utils/filters/http-exception.filter.js +56 -0
  116. package/dist/utils/filters/index.d.ts +1 -0
  117. package/dist/utils/filters/index.js +17 -0
  118. package/dist/utils/index.d.ts +26 -0
  119. package/dist/utils/index.js +66 -0
  120. package/dist/utils/interceptors/index.d.ts +2 -0
  121. package/dist/utils/interceptors/index.js +18 -0
  122. package/dist/utils/interceptors/pagination.interceptor.d.ts +19 -0
  123. package/dist/utils/interceptors/pagination.interceptor.js +49 -0
  124. package/dist/utils/interceptors/response.interceptor.d.ts +15 -0
  125. package/dist/utils/interceptors/response.interceptor.js +86 -0
  126. package/dist/utils/interfaces/config.interface.d.ts +39 -0
  127. package/dist/utils/interfaces/config.interface.js +2 -0
  128. package/dist/utils/interfaces/general.interface.d.ts +13 -0
  129. package/dist/utils/interfaces/general.interface.js +2 -0
  130. package/dist/utils/interfaces/index.d.ts +6 -0
  131. package/dist/utils/interfaces/index.js +22 -0
  132. package/dist/utils/interfaces/interceptor.interface.d.ts +15 -0
  133. package/dist/utils/interfaces/interceptor.interface.js +2 -0
  134. package/dist/utils/interfaces/multer-file.interface.d.ts +8 -0
  135. package/dist/utils/interfaces/multer-file.interface.js +2 -0
  136. package/dist/utils/interfaces/pagination.interface.d.ts +17 -0
  137. package/dist/utils/interfaces/pagination.interface.js +2 -0
  138. package/dist/utils/interfaces/response.interface.d.ts +21 -0
  139. package/dist/utils/interfaces/response.interface.js +9 -0
  140. package/dist/utils/pipes/file.pipe.d.ts +6 -0
  141. package/dist/utils/pipes/file.pipe.js +44 -0
  142. package/dist/utils/pipes/index.d.ts +3 -0
  143. package/dist/utils/pipes/index.js +19 -0
  144. package/dist/utils/pipes/pagination.pipe.d.ts +7 -0
  145. package/dist/utils/pipes/pagination.pipe.js +24 -0
  146. package/dist/utils/pipes/validation.pipe.d.ts +4 -0
  147. package/dist/utils/pipes/validation.pipe.js +24 -0
  148. package/dist/utils/utils/configuration.d.ts +3 -0
  149. package/dist/utils/utils/configuration.js +87 -0
  150. package/dist/utils/utils/country.utils.d.ts +4 -0
  151. package/dist/utils/utils/country.utils.js +41 -0
  152. package/dist/utils/utils/index.d.ts +5 -0
  153. package/dist/utils/utils/index.js +21 -0
  154. package/dist/utils/utils/otp.d.ts +1 -0
  155. package/dist/utils/utils/otp.js +102 -0
  156. package/dist/utils/utils/response.utils.d.ts +15 -0
  157. package/dist/utils/utils/response.utils.js +39 -0
  158. package/dist/utils/utils/utils.d.ts +4 -0
  159. package/dist/utils/utils/utils.js +40 -0
  160. package/dist/utils/validators/index.d.ts +1 -0
  161. package/dist/utils/validators/index.js +17 -0
  162. package/dist/utils/validators/nats.validator.d.ts +7 -0
  163. package/dist/utils/validators/nats.validator.js +47 -0
  164. package/package.json +65 -0
@@ -0,0 +1,76 @@
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.PinoLoggerService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let PinoLoggerService = class PinoLoggerService extends common_1.ConsoleLogger {
12
+ logger;
13
+ contextName;
14
+ constructor(logger) {
15
+ super();
16
+ this.logger = logger;
17
+ this.contextName = 'context';
18
+ }
19
+ setContext(name) {
20
+ this.logger.setContext(name);
21
+ }
22
+ verbose(message, context, ...args) {
23
+ if (context) {
24
+ this.logger.trace({ [this.contextName]: context }, this.formatMessage(message), ...args);
25
+ }
26
+ else {
27
+ this.logger.trace(this.formatMessage(message), ...args);
28
+ }
29
+ }
30
+ debug(message, context, ...args) {
31
+ if (context) {
32
+ this.logger.debug({ [this.contextName]: context }, this.formatMessage(message), ...args);
33
+ }
34
+ else {
35
+ this.logger.debug(this.formatMessage(message), ...args);
36
+ }
37
+ }
38
+ log(message, context, ...args) {
39
+ if (context) {
40
+ this.logger.info({ [this.contextName]: context }, this.formatMessage(message), ...args);
41
+ }
42
+ else {
43
+ this.logger.info(this.formatMessage(message), ...args);
44
+ }
45
+ }
46
+ warn(message, context, ...args) {
47
+ if (context) {
48
+ this.logger.warn({ [this.contextName]: context }, this.formatMessage(message), ...args);
49
+ }
50
+ else {
51
+ this.logger.warn(this.formatMessage(message), ...args);
52
+ }
53
+ }
54
+ error(message, trace, context, ...args) {
55
+ if (context) {
56
+ this.logger.error({ [this.contextName]: context, trace }, this.formatMessage(message), ...args);
57
+ }
58
+ else if (trace) {
59
+ this.logger.error({ trace }, this.formatMessage(message), ...args);
60
+ }
61
+ else {
62
+ this.logger.error(this.formatMessage(message), ...args);
63
+ }
64
+ }
65
+ formatMessage(message) {
66
+ if (typeof message === 'string')
67
+ return message;
68
+ if (message instanceof Error)
69
+ return message.message;
70
+ return JSON.stringify(message);
71
+ }
72
+ };
73
+ exports.PinoLoggerService = PinoLoggerService;
74
+ exports.PinoLoggerService = PinoLoggerService = __decorate([
75
+ (0, common_1.Injectable)()
76
+ ], PinoLoggerService);
@@ -0,0 +1,9 @@
1
+ export declare const NATS_OPTIONS = "NATS_OPTIONS";
2
+ export declare const NATS_CLIENT = "NATS_CLIENT";
3
+ export declare const DEFAULT_NATS_CONFIG: {
4
+ url: string;
5
+ timeout: number;
6
+ reconnect: boolean;
7
+ reconnectTimeWait: number;
8
+ maxReconnectAttempts: number;
9
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_NATS_CONFIG = exports.NATS_CLIENT = exports.NATS_OPTIONS = void 0;
4
+ exports.NATS_OPTIONS = 'NATS_OPTIONS';
5
+ exports.NATS_CLIENT = 'NATS_CLIENT';
6
+ exports.DEFAULT_NATS_CONFIG = {
7
+ url: 'nats://localhost:4222',
8
+ timeout: 5000,
9
+ reconnect: true,
10
+ reconnectTimeWait: 2000,
11
+ maxReconnectAttempts: 10,
12
+ };
@@ -0,0 +1,2 @@
1
+ export declare const NATS_EVENT_METADATA = "nats_event_metadata";
2
+ export declare function NatsEventPattern(pattern: string): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NATS_EVENT_METADATA = void 0;
4
+ exports.NatsEventPattern = NatsEventPattern;
5
+ const common_1 = require("@nestjs/common");
6
+ const microservices_1 = require("@nestjs/microservices");
7
+ const nats_logging_interceptor_1 = require("../interceptors/nats-logging.interceptor");
8
+ exports.NATS_EVENT_METADATA = 'nats_event_metadata';
9
+ function NatsEventPattern(pattern) {
10
+ return (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.NATS_EVENT_METADATA, { pattern }), (0, microservices_1.EventPattern)(pattern), (0, common_1.UseInterceptors)(nats_logging_interceptor_1.NatsLoggingInterceptor));
11
+ }
@@ -0,0 +1,5 @@
1
+ export declare class NatsMessageDto {
2
+ pattern: string;
3
+ data: any;
4
+ replyTo?: string;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.NatsMessageDto = void 0;
10
+ const class_validator_1 = require("class-validator");
11
+ class NatsMessageDto {
12
+ pattern;
13
+ data;
14
+ replyTo;
15
+ }
16
+ exports.NatsMessageDto = NatsMessageDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsString)(),
19
+ (0, class_validator_1.IsNotEmpty)()
20
+ ], NatsMessageDto.prototype, "pattern", void 0);
21
+ __decorate([
22
+ (0, class_validator_1.IsNotEmpty)()
23
+ ], NatsMessageDto.prototype, "data", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.IsOptional)()
27
+ ], NatsMessageDto.prototype, "replyTo", void 0);
@@ -0,0 +1,5 @@
1
+ export * from './constants/nats.constants';
2
+ export * from './interfaces/nats-options.interface';
3
+ export * from './dto/nats-message.dto';
4
+ export * from './decorators/nats-event-pattern.decorator';
5
+ export * from './interceptors/nats-logging.interceptor';
@@ -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("./constants/nats.constants"), exports);
18
+ __exportStar(require("./interfaces/nats-options.interface"), exports);
19
+ __exportStar(require("./dto/nats-message.dto"), exports);
20
+ __exportStar(require("./decorators/nats-event-pattern.decorator"), exports);
21
+ __exportStar(require("./interceptors/nats-logging.interceptor"), exports);
@@ -0,0 +1,6 @@
1
+ import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ export declare class NatsLoggingInterceptor implements NestInterceptor {
4
+ private readonly logger;
5
+ intercept(context: ExecutionContext, next: CallHandler): Observable<unknown>;
6
+ }
@@ -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 NatsLoggingInterceptor_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NatsLoggingInterceptor = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const rxjs_1 = require("rxjs");
13
+ let NatsLoggingInterceptor = NatsLoggingInterceptor_1 = class NatsLoggingInterceptor {
14
+ logger = new common_1.Logger(NatsLoggingInterceptor_1.name);
15
+ intercept(context, next) {
16
+ const now = Date.now();
17
+ const rpcContext = context.switchToRpc();
18
+ const natsContext = rpcContext.getContext();
19
+ const pattern = natsContext.getSubject();
20
+ return next.handle().pipe((0, rxjs_1.tap)({
21
+ next: (data) => {
22
+ this.logger.log(`Pattern: ${pattern} | Response time: ${Date.now() - now}ms | Response: ${JSON.stringify(data)}`);
23
+ },
24
+ error: (error) => {
25
+ this.logger.error(`Pattern: ${pattern} | Error: ${error.message}`, error.stack);
26
+ },
27
+ }));
28
+ }
29
+ };
30
+ exports.NatsLoggingInterceptor = NatsLoggingInterceptor;
31
+ exports.NatsLoggingInterceptor = NatsLoggingInterceptor = NatsLoggingInterceptor_1 = __decorate([
32
+ (0, common_1.Injectable)()
33
+ ], NatsLoggingInterceptor);
@@ -0,0 +1,23 @@
1
+ import { ModuleMetadata, Type } from '@nestjs/common';
2
+ import { Transport } from '@nestjs/microservices';
3
+ export interface NatsOptions {
4
+ transport: Transport.NATS;
5
+ options: {
6
+ servers: string[];
7
+ queue?: string;
8
+ name?: string;
9
+ timeout?: number;
10
+ reconnect?: boolean;
11
+ reconnectTimeWait?: number;
12
+ maxReconnectAttempts?: number;
13
+ };
14
+ }
15
+ export interface NatsOptionsFactory {
16
+ createNatsOptions(): Promise<NatsOptions> | NatsOptions;
17
+ }
18
+ export interface NatsAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
19
+ useExisting?: Type<NatsOptionsFactory>;
20
+ useClass?: Type<NatsOptionsFactory>;
21
+ useFactory?: (...args: any[]) => Promise<NatsOptions> | NatsOptions;
22
+ inject?: any[];
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from './prisma.module';
2
+ export * from './prisma.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("./prisma.module"), exports);
18
+ __exportStar(require("./prisma.service"), exports);
@@ -0,0 +1,2 @@
1
+ export declare class PrismaModule {
2
+ }
@@ -0,0 +1,21 @@
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.PrismaModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const prisma_service_1 = require("./prisma.service");
12
+ let PrismaModule = class PrismaModule {
13
+ };
14
+ exports.PrismaModule = PrismaModule;
15
+ exports.PrismaModule = PrismaModule = __decorate([
16
+ (0, common_1.Global)(),
17
+ (0, common_1.Module)({
18
+ providers: [prisma_service_1.PrismaService],
19
+ exports: [prisma_service_1.PrismaService],
20
+ })
21
+ ], PrismaModule);
@@ -0,0 +1,6 @@
1
+ import { INestApplication, OnModuleInit } from '@nestjs/common';
2
+ import { PrismaClient } from '@prisma/client';
3
+ export declare class PrismaService extends PrismaClient implements OnModuleInit {
4
+ onModuleInit(): Promise<void>;
5
+ enableShutdownHooks(app: INestApplication): void;
6
+ }
@@ -0,0 +1,25 @@
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.PrismaService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const client_1 = require("@prisma/client");
12
+ let PrismaService = class PrismaService extends client_1.PrismaClient {
13
+ async onModuleInit() {
14
+ await this.$connect();
15
+ }
16
+ enableShutdownHooks(app) {
17
+ process.on('beforeExit', () => {
18
+ app.close().catch(console.error);
19
+ });
20
+ }
21
+ };
22
+ exports.PrismaService = PrismaService;
23
+ exports.PrismaService = PrismaService = __decorate([
24
+ (0, common_1.Injectable)()
25
+ ], PrismaService);
@@ -0,0 +1,50 @@
1
+ import { NatsContext, RpcException } from '@nestjs/microservices';
2
+ import { Observable } from 'rxjs';
3
+ export interface TakeNTradeRPCError {
4
+ success: boolean;
5
+ subject: string | null;
6
+ message: string;
7
+ statusCode: number;
8
+ errors: string[];
9
+ timestamp: string;
10
+ }
11
+ export declare class TakeNTradeRpc {
12
+ /**
13
+ * Wraps a promise returned by an RPC request handler.
14
+ * @param promise - A Promise resolving to the response value.
15
+ * @param ctx - Optional NatsContext object.
16
+ */
17
+ static handleRequest<V>(promise: Promise<V>, ctx?: NatsContext): Promise<V | RpcException>;
18
+ /**
19
+ * Handles errors from an RPC request handler and returns a TakeNTradeRPCError wrapped in RpcException.
20
+ * @param err - Error to be handled.
21
+ * @param ctx - A NATS Context.
22
+ */
23
+ static handleRequestError(err: unknown, ctx: NatsContext): RpcException;
24
+ private static catch;
25
+ /**
26
+ * Handles NATS request response.
27
+ * @param obs - An instance of an Observable.
28
+ */
29
+ static withReply<V>(obs: Observable<V>): Promise<V>;
30
+ }
31
+ export declare class TakeNTradeRpcV2 {
32
+ /**
33
+ * Wraps a promise returned by an RPC request handler.
34
+ * @param promise - A Promise resolving to the response value.
35
+ * @param ctx - Optional NatsContext object.
36
+ */
37
+ static handleRequest<V>(promise: Promise<V>, ctx?: NatsContext): Promise<V | TakeNTradeRPCError>;
38
+ /**
39
+ * Handles errors from an RPC request handler and returns a TakeNTradeRPCError.
40
+ * @param err - Error to be handled.
41
+ * @param ctx - A NATS Context.
42
+ */
43
+ static handleRequestError(err: unknown, ctx: NatsContext): TakeNTradeRPCError;
44
+ private static catch;
45
+ /**
46
+ * Handles NATS request response.
47
+ * @param obs - An instance of an Observable.
48
+ */
49
+ static withReply<V>(obs: Observable<V>): Promise<V>;
50
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TakeNTradeRpcV2 = exports.TakeNTradeRpc = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const microservices_1 = require("@nestjs/microservices");
6
+ // Shared utility functions
7
+ class TakeNTradeRpcUtils {
8
+ static getValidationErrors(err) {
9
+ if (err instanceof common_1.BadRequestException) {
10
+ const response = err.getResponse();
11
+ if (typeof response === 'object' &&
12
+ response !== null &&
13
+ 'errors' in response) {
14
+ return Array.isArray(response.errors)
15
+ ? response.errors
16
+ : [];
17
+ }
18
+ }
19
+ return [];
20
+ }
21
+ static isErrorResponse(result) {
22
+ return typeof result === 'object' && result !== null && 'error' in result;
23
+ }
24
+ }
25
+ class TakeNTradeRpc {
26
+ /**
27
+ * Wraps a promise returned by an RPC request handler.
28
+ * @param promise - A Promise resolving to the response value.
29
+ * @param ctx - Optional NatsContext object.
30
+ */
31
+ static async handleRequest(promise, ctx) {
32
+ return promise
33
+ .then((value) => value)
34
+ .catch((err) => this.catch(err, ctx));
35
+ }
36
+ /**
37
+ * Handles errors from an RPC request handler and returns a TakeNTradeRPCError wrapped in RpcException.
38
+ * @param err - Error to be handled.
39
+ * @param ctx - A NATS Context.
40
+ */
41
+ static handleRequestError(err, ctx) {
42
+ return this.catch(err, ctx);
43
+ }
44
+ static catch(err, ctx) {
45
+ const subject = ctx ? ctx.getArgs()[0] : null;
46
+ const error = err instanceof Error ? err : new Error(String(err));
47
+ const statusCode = err instanceof common_1.HttpException ? err.getStatus() : 500;
48
+ const errorDetails = {
49
+ success: false,
50
+ subject,
51
+ message: error.message,
52
+ statusCode,
53
+ errors: TakeNTradeRpcUtils.getValidationErrors(err),
54
+ timestamp: new Date().toLocaleString(),
55
+ };
56
+ return new microservices_1.RpcException(errorDetails);
57
+ }
58
+ /**
59
+ * Handles NATS request response.
60
+ * @param obs - An instance of an Observable.
61
+ */
62
+ static async withReply(obs) {
63
+ const result = await new Promise((resolve, reject) => {
64
+ obs.subscribe({
65
+ next: (value) => resolve(value),
66
+ error: (err) => reject(err instanceof Error ? err : new Error(String(err))),
67
+ });
68
+ });
69
+ if (TakeNTradeRpcUtils.isErrorResponse(result)) {
70
+ common_1.Logger.error(result.error);
71
+ throw new common_1.HttpException(result.error, result.error.statusCode, {
72
+ cause: result.error.errors,
73
+ });
74
+ }
75
+ return result;
76
+ }
77
+ }
78
+ exports.TakeNTradeRpc = TakeNTradeRpc;
79
+ class TakeNTradeRpcV2 {
80
+ /**
81
+ * Wraps a promise returned by an RPC request handler.
82
+ * @param promise - A Promise resolving to the response value.
83
+ * @param ctx - Optional NatsContext object.
84
+ */
85
+ static async handleRequest(promise, ctx) {
86
+ return promise
87
+ .then((value) => value)
88
+ .catch((err) => this.catch(err, ctx));
89
+ }
90
+ /**
91
+ * Handles errors from an RPC request handler and returns a TakeNTradeRPCError.
92
+ * @param err - Error to be handled.
93
+ * @param ctx - A NATS Context.
94
+ */
95
+ static handleRequestError(err, ctx) {
96
+ return this.catch(err, ctx);
97
+ }
98
+ static catch(err, ctx) {
99
+ const subject = ctx ? ctx.getArgs()[0] : null;
100
+ const error = err instanceof Error ? err : new Error(String(err));
101
+ const statusCode = err instanceof common_1.HttpException ? err.getStatus() : 500;
102
+ return {
103
+ success: false,
104
+ subject,
105
+ message: error.message,
106
+ statusCode,
107
+ errors: TakeNTradeRpcUtils.getValidationErrors(err),
108
+ timestamp: new Date().toLocaleString(),
109
+ };
110
+ }
111
+ /**
112
+ * Handles NATS request response.
113
+ * @param obs - An instance of an Observable.
114
+ */
115
+ static async withReply(obs) {
116
+ const result = await new Promise((resolve, reject) => {
117
+ obs.subscribe({
118
+ next: (value) => resolve(value),
119
+ error: (err) => reject(err instanceof Error ? err : new Error(String(err))),
120
+ });
121
+ });
122
+ if (TakeNTradeRpcUtils.isErrorResponse(result)) {
123
+ common_1.Logger.error(result.error);
124
+ throw new common_1.HttpException(result.error, result.error.statusCode, {
125
+ cause: result.error.errors,
126
+ });
127
+ }
128
+ return result;
129
+ }
130
+ }
131
+ exports.TakeNTradeRpcV2 = TakeNTradeRpcV2;
@@ -0,0 +1,4 @@
1
+ export declare class PaginationDto {
2
+ page: number;
3
+ limit: number;
4
+ }
@@ -0,0 +1,31 @@
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.PaginationDto = void 0;
10
+ const swagger_1 = require("@nestjs/swagger");
11
+ const class_validator_1 = require("class-validator");
12
+ const class_transformer_1 = require("class-transformer");
13
+ class PaginationDto {
14
+ page = 1;
15
+ limit = 10;
16
+ }
17
+ exports.PaginationDto = PaginationDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({ minimum: 1, default: 1 }),
20
+ (0, class_validator_1.IsInt)(),
21
+ (0, class_validator_1.IsOptional)(),
22
+ (0, class_transformer_1.Transform)(({ value }) => (value ? parseInt(value) : 10))
23
+ ], PaginationDto.prototype, "page", void 0);
24
+ __decorate([
25
+ (0, swagger_1.ApiProperty)({ minimum: 1, maximum: 100, default: 10 }),
26
+ (0, class_validator_1.IsInt)(),
27
+ (0, class_validator_1.Min)(1),
28
+ (0, class_validator_1.Max)(100),
29
+ (0, class_validator_1.IsOptional)(),
30
+ (0, class_transformer_1.Transform)(({ value }) => (value ? parseInt(value) : 10))
31
+ ], PaginationDto.prototype, "limit", void 0);
@@ -0,0 +1,6 @@
1
+ import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
2
+ export declare class HttpExceptionFilter implements ExceptionFilter {
3
+ catch(exception: unknown, host: ArgumentsHost): void;
4
+ getValidationErrors(exception: unknown): any;
5
+ logError(errResponse: any, request: any, exception: unknown): string;
6
+ }
@@ -0,0 +1,56 @@
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.HttpExceptionFilter = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let HttpExceptionFilter = class HttpExceptionFilter {
12
+ catch(exception, host) {
13
+ const ctx = host.switchToHttp();
14
+ const response = ctx.getResponse();
15
+ const request = ctx.getRequest();
16
+ const status = exception instanceof common_1.HttpException
17
+ ? exception.getStatus()
18
+ : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
19
+ const message = exception instanceof common_1.HttpException
20
+ ? exception.message
21
+ : 'Sorry, something went wrong. Please try again later';
22
+ const responseObj = {
23
+ success: false,
24
+ message,
25
+ statusCode: status,
26
+ errors: this.getValidationErrors(exception) || [],
27
+ timestamp: new Date().toLocaleString(),
28
+ path: request.url,
29
+ method: request.method,
30
+ };
31
+ common_1.Logger.error(exception);
32
+ common_1.Logger.verbose(this.logError(responseObj, request, exception));
33
+ response.status(status).send(responseObj);
34
+ }
35
+ getValidationErrors(exception) {
36
+ if (exception instanceof common_1.BadRequestException) {
37
+ const message = exception?.getResponse();
38
+ if (typeof message === 'object') {
39
+ return message.errors;
40
+ }
41
+ }
42
+ return [];
43
+ }
44
+ logError(errResponse, request, exception) {
45
+ const { statusCode, error } = errResponse;
46
+ const { method, url } = request;
47
+ const errorLog = `Response Code: ${statusCode} - Method: ${method} URL - ${url} \n
48
+ ${JSON.stringify(exception)} \n
49
+ ${exception instanceof common_1.HttpException ? exception.stack : error} `;
50
+ return errorLog;
51
+ }
52
+ };
53
+ exports.HttpExceptionFilter = HttpExceptionFilter;
54
+ exports.HttpExceptionFilter = HttpExceptionFilter = __decorate([
55
+ (0, common_1.Catch)()
56
+ ], HttpExceptionFilter);
@@ -0,0 +1 @@
1
+ export * from './http-exception.filter';
@@ -0,0 +1,17 @@
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-exception.filter"), exports);