mfance-shark-v1 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 (156) hide show
  1. package/README.md +115 -0
  2. package/dist/common/constants/index.d.ts +57 -0
  3. package/dist/common/constants/index.js +61 -0
  4. package/dist/common/constants/index.js.map +1 -0
  5. package/dist/common/decorators/api-response.decorator.d.ts +8 -0
  6. package/dist/common/decorators/api-response.decorator.js +23 -0
  7. package/dist/common/decorators/api-response.decorator.js.map +1 -0
  8. package/dist/common/decorators/current-user.decorator.d.ts +1 -0
  9. package/dist/common/decorators/current-user.decorator.js +9 -0
  10. package/dist/common/decorators/current-user.decorator.js.map +1 -0
  11. package/dist/common/decorators/index.d.ts +4 -0
  12. package/dist/common/decorators/index.js +21 -0
  13. package/dist/common/decorators/index.js.map +1 -0
  14. package/dist/common/decorators/public.decorator.d.ts +2 -0
  15. package/dist/common/decorators/public.decorator.js +8 -0
  16. package/dist/common/decorators/public.decorator.js.map +1 -0
  17. package/dist/common/decorators/roles.decorator.d.ts +2 -0
  18. package/dist/common/decorators/roles.decorator.js +8 -0
  19. package/dist/common/decorators/roles.decorator.js.map +1 -0
  20. package/dist/common/filters/http-exception.filter.d.ts +4 -0
  21. package/dist/common/filters/http-exception.filter.js +31 -0
  22. package/dist/common/filters/http-exception.filter.js.map +1 -0
  23. package/dist/common/filters/index.d.ts +2 -0
  24. package/dist/common/filters/index.js +19 -0
  25. package/dist/common/filters/index.js.map +1 -0
  26. package/dist/common/filters/validation-exception.filter.d.ts +4 -0
  27. package/dist/common/filters/validation-exception.filter.js +31 -0
  28. package/dist/common/filters/validation-exception.filter.js.map +1 -0
  29. package/dist/common/guards/index.d.ts +2 -0
  30. package/dist/common/guards/index.js +19 -0
  31. package/dist/common/guards/index.js.map +1 -0
  32. package/dist/common/guards/jwt-auth.guard.d.ts +10 -0
  33. package/dist/common/guards/jwt-auth.guard.js +44 -0
  34. package/dist/common/guards/jwt-auth.guard.js.map +1 -0
  35. package/dist/common/guards/roles.guard.d.ts +7 -0
  36. package/dist/common/guards/roles.guard.js +37 -0
  37. package/dist/common/guards/roles.guard.js.map +1 -0
  38. package/dist/common/interceptors/index.d.ts +2 -0
  39. package/dist/common/interceptors/index.js +19 -0
  40. package/dist/common/interceptors/index.js.map +1 -0
  41. package/dist/common/interceptors/logging.interceptor.d.ts +5 -0
  42. package/dist/common/interceptors/logging.interceptor.js +29 -0
  43. package/dist/common/interceptors/logging.interceptor.js.map +1 -0
  44. package/dist/common/interceptors/transform.interceptor.d.ts +11 -0
  45. package/dist/common/interceptors/transform.interceptor.js +26 -0
  46. package/dist/common/interceptors/transform.interceptor.js.map +1 -0
  47. package/dist/common/utils/crypto.util.d.ts +6 -0
  48. package/dist/common/utils/crypto.util.js +27 -0
  49. package/dist/common/utils/crypto.util.js.map +1 -0
  50. package/dist/common/utils/date.util.d.ts +12 -0
  51. package/dist/common/utils/date.util.js +58 -0
  52. package/dist/common/utils/date.util.js.map +1 -0
  53. package/dist/common/utils/index.d.ts +4 -0
  54. package/dist/common/utils/index.js +21 -0
  55. package/dist/common/utils/index.js.map +1 -0
  56. package/dist/common/utils/string.util.d.ts +16 -0
  57. package/dist/common/utils/string.util.js +73 -0
  58. package/dist/common/utils/string.util.js.map +1 -0
  59. package/dist/common/utils/validation.util.d.ts +12 -0
  60. package/dist/common/utils/validation.util.js +41 -0
  61. package/dist/common/utils/validation.util.js.map +1 -0
  62. package/dist/dto/auth/auth-response.dto.d.ts +12 -0
  63. package/dist/dto/auth/auth-response.dto.js +51 -0
  64. package/dist/dto/auth/auth-response.dto.js.map +1 -0
  65. package/dist/dto/auth/index.d.ts +4 -0
  66. package/dist/dto/auth/index.js +21 -0
  67. package/dist/dto/auth/index.js.map +1 -0
  68. package/dist/dto/auth/login.dto.d.ts +4 -0
  69. package/dist/dto/auth/login.dto.js +38 -0
  70. package/dist/dto/auth/login.dto.js.map +1 -0
  71. package/dist/dto/auth/refresh-token.dto.d.ts +3 -0
  72. package/dist/dto/auth/refresh-token.dto.js +27 -0
  73. package/dist/dto/auth/refresh-token.dto.js.map +1 -0
  74. package/dist/dto/auth/register.dto.d.ts +7 -0
  75. package/dist/dto/auth/register.dto.js +66 -0
  76. package/dist/dto/auth/register.dto.js.map +1 -0
  77. package/dist/dto/balance/balance-response.dto.d.ts +8 -0
  78. package/dist/dto/balance/balance-response.dto.js +59 -0
  79. package/dist/dto/balance/balance-response.dto.js.map +1 -0
  80. package/dist/dto/balance/balance.dto.d.ts +8 -0
  81. package/dist/dto/balance/balance.dto.js +67 -0
  82. package/dist/dto/balance/balance.dto.js.map +1 -0
  83. package/dist/dto/balance/index.d.ts +2 -0
  84. package/dist/dto/balance/index.js +19 -0
  85. package/dist/dto/balance/index.js.map +1 -0
  86. package/dist/dto/transaction/create-transaction.dto.d.ts +9 -0
  87. package/dist/dto/transaction/create-transaction.dto.js +73 -0
  88. package/dist/dto/transaction/create-transaction.dto.js.map +1 -0
  89. package/dist/dto/transaction/index.d.ts +4 -0
  90. package/dist/dto/transaction/index.js +21 -0
  91. package/dist/dto/transaction/index.js.map +1 -0
  92. package/dist/dto/transaction/transaction-response.dto.d.ts +13 -0
  93. package/dist/dto/transaction/transaction-response.dto.js +91 -0
  94. package/dist/dto/transaction/transaction-response.dto.js.map +1 -0
  95. package/dist/dto/transaction/transaction.dto.d.ts +23 -0
  96. package/dist/dto/transaction/transaction.dto.js +108 -0
  97. package/dist/dto/transaction/transaction.dto.js.map +1 -0
  98. package/dist/dto/transaction/update-transaction.dto.d.ts +6 -0
  99. package/dist/dto/transaction/update-transaction.dto.js +50 -0
  100. package/dist/dto/transaction/update-transaction.dto.js.map +1 -0
  101. package/dist/dto/user/create-user.dto.d.ts +7 -0
  102. package/dist/dto/user/create-user.dto.js +66 -0
  103. package/dist/dto/user/create-user.dto.js.map +1 -0
  104. package/dist/dto/user/index.d.ts +4 -0
  105. package/dist/dto/user/index.js +21 -0
  106. package/dist/dto/user/index.js.map +1 -0
  107. package/dist/dto/user/update-user.dto.d.ts +6 -0
  108. package/dist/dto/user/update-user.dto.js +58 -0
  109. package/dist/dto/user/update-user.dto.js.map +1 -0
  110. package/dist/dto/user/user-response.dto.d.ts +9 -0
  111. package/dist/dto/user/user-response.dto.js +67 -0
  112. package/dist/dto/user/user-response.dto.js.map +1 -0
  113. package/dist/dto/user/user.dto.d.ts +9 -0
  114. package/dist/dto/user/user.dto.js +77 -0
  115. package/dist/dto/user/user.dto.js.map +1 -0
  116. package/dist/index.d.ts +14 -0
  117. package/dist/index.js +31 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/interfaces/api-response.interface.d.ts +29 -0
  120. package/dist/interfaces/api-response.interface.js +3 -0
  121. package/dist/interfaces/api-response.interface.js.map +1 -0
  122. package/dist/interfaces/balance.interface.d.ts +25 -0
  123. package/dist/interfaces/balance.interface.js +3 -0
  124. package/dist/interfaces/balance.interface.js.map +1 -0
  125. package/dist/interfaces/index.d.ts +3 -0
  126. package/dist/interfaces/index.js +20 -0
  127. package/dist/interfaces/index.js.map +1 -0
  128. package/dist/interfaces/pagination.interface.d.ts +20 -0
  129. package/dist/interfaces/pagination.interface.js +3 -0
  130. package/dist/interfaces/pagination.interface.js.map +1 -0
  131. package/dist/interfaces/transaction.interface.d.ts +38 -0
  132. package/dist/interfaces/transaction.interface.js +3 -0
  133. package/dist/interfaces/transaction.interface.js.map +1 -0
  134. package/dist/interfaces/user.interface.d.ts +36 -0
  135. package/dist/interfaces/user.interface.js +3 -0
  136. package/dist/interfaces/user.interface.js.map +1 -0
  137. package/dist/services/auth/auth.service.d.ts +20 -0
  138. package/dist/services/auth/auth.service.js +65 -0
  139. package/dist/services/auth/auth.service.js.map +1 -0
  140. package/dist/services/auth/index.d.ts +1 -0
  141. package/dist/services/auth/index.js +18 -0
  142. package/dist/services/auth/index.js.map +1 -0
  143. package/dist/services/logger/index.d.ts +1 -0
  144. package/dist/services/logger/index.js +18 -0
  145. package/dist/services/logger/index.js.map +1 -0
  146. package/dist/services/logger/logger.service.d.ts +11 -0
  147. package/dist/services/logger/logger.service.js +61 -0
  148. package/dist/services/logger/logger.service.js.map +1 -0
  149. package/dist/services/validation/index.d.ts +1 -0
  150. package/dist/services/validation/index.js +18 -0
  151. package/dist/services/validation/index.js.map +1 -0
  152. package/dist/services/validation/validation.service.d.ts +13 -0
  153. package/dist/services/validation/validation.service.js +55 -0
  154. package/dist/services/validation/validation.service.js.map +1 -0
  155. package/dist/tsconfig.tsbuildinfo +1 -0
  156. package/package.json +103 -0
@@ -0,0 +1,5 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ export declare class LoggingInterceptor implements NestInterceptor {
4
+ intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
5
+ }
@@ -0,0 +1,29 @@
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.LoggingInterceptor = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const operators_1 = require("rxjs/operators");
12
+ let LoggingInterceptor = class LoggingInterceptor {
13
+ intercept(context, next) {
14
+ const request = context.switchToHttp().getRequest();
15
+ const response = context.switchToHttp().getResponse();
16
+ const method = request.method;
17
+ const url = request.url;
18
+ const now = Date.now();
19
+ return next.handle().pipe((0, operators_1.tap)(() => {
20
+ const responseTime = Date.now() - now;
21
+ console.log(`${method} ${url} ${response.statusCode} - ${responseTime}ms`);
22
+ }));
23
+ }
24
+ };
25
+ exports.LoggingInterceptor = LoggingInterceptor;
26
+ exports.LoggingInterceptor = LoggingInterceptor = __decorate([
27
+ (0, common_1.Injectable)()
28
+ ], LoggingInterceptor);
29
+ //# sourceMappingURL=logging.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/logging.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAKwB;AAExB,8CAAqC;AAI9B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAY,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,GAAG,EAAE;YACP,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;YACtC,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,MAAM,YAAY,IAAI,CAC9D,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAiB9B"}
@@ -0,0 +1,11 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ export interface Response<T> {
4
+ data: T;
5
+ statusCode: number;
6
+ message: string;
7
+ timestamp: string;
8
+ }
9
+ export declare class TransformInterceptor<T> implements NestInterceptor<T, Response<T>> {
10
+ intercept(context: ExecutionContext, next: CallHandler): Observable<Response<T>>;
11
+ }
@@ -0,0 +1,26 @@
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.TransformInterceptor = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const operators_1 = require("rxjs/operators");
12
+ let TransformInterceptor = class TransformInterceptor {
13
+ intercept(context, next) {
14
+ return next.handle().pipe((0, operators_1.map)((data) => ({
15
+ data,
16
+ statusCode: context.switchToHttp().getResponse().statusCode,
17
+ message: 'Success',
18
+ timestamp: new Date().toISOString(),
19
+ })));
20
+ }
21
+ };
22
+ exports.TransformInterceptor = TransformInterceptor;
23
+ exports.TransformInterceptor = TransformInterceptor = __decorate([
24
+ (0, common_1.Injectable)()
25
+ ], TransformInterceptor);
26
+ //# sourceMappingURL=transform.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/transform.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAKwB;AAExB,8CAAqC;AAU9B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAG/B,SAAS,CACP,OAAyB,EACzB,IAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACb,IAAI;YACJ,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU;YAC3D,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;CACF,CAAA;AAhBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;GACA,oBAAoB,CAgBhC"}
@@ -0,0 +1,6 @@
1
+ export declare class CryptoUtil {
2
+ static hashPassword(password: string): Promise<string>;
3
+ static comparePassword(password: string, hashedPassword: string): Promise<boolean>;
4
+ static generateUUID(): string;
5
+ static generateRandomString(length?: number): string;
6
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CryptoUtil = void 0;
4
+ const bcrypt = require("bcryptjs");
5
+ const uuid_1 = require("uuid");
6
+ class CryptoUtil {
7
+ static async hashPassword(password) {
8
+ const saltRounds = 12;
9
+ return bcrypt.hash(password, saltRounds);
10
+ }
11
+ static async comparePassword(password, hashedPassword) {
12
+ return bcrypt.compare(password, hashedPassword);
13
+ }
14
+ static generateUUID() {
15
+ return (0, uuid_1.v4)();
16
+ }
17
+ static generateRandomString(length = 32) {
18
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
19
+ let result = '';
20
+ for (let i = 0; i < length; i++) {
21
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
22
+ }
23
+ return result;
24
+ }
25
+ }
26
+ exports.CryptoUtil = CryptoUtil;
27
+ //# sourceMappingURL=crypto.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.util.js","sourceRoot":"","sources":["../../../src/common/utils/crypto.util.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,+BAAoC;AAEpC,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,QAAgB,EAChB,cAAsB;QAEtB,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO,IAAA,SAAM,GAAE,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,SAAiB,EAAE;QAC7C,MAAM,KAAK,GACT,gEAAgE,CAAC;QACnE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA1BD,gCA0BC"}
@@ -0,0 +1,12 @@
1
+ export declare class DateUtil {
2
+ static now(): Date;
3
+ static nowISO(): string;
4
+ static formatDate(date: Date, format?: string): string;
5
+ static addDays(date: Date, days: number): Date;
6
+ static addHours(date: Date, hours: number): Date;
7
+ static addMinutes(date: Date, minutes: number): Date;
8
+ static isExpired(date: Date): boolean;
9
+ static getDaysDifference(date1: Date, date2: Date): number;
10
+ static getHoursDifference(date1: Date, date2: Date): number;
11
+ static getMinutesDifference(date1: Date, date2: Date): number;
12
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateUtil = void 0;
4
+ class DateUtil {
5
+ static now() {
6
+ return new Date();
7
+ }
8
+ static nowISO() {
9
+ return new Date().toISOString();
10
+ }
11
+ static formatDate(date, format = 'YYYY-MM-DD') {
12
+ const year = date.getFullYear();
13
+ const month = String(date.getMonth() + 1).padStart(2, '0');
14
+ const day = String(date.getDate()).padStart(2, '0');
15
+ const hours = String(date.getHours()).padStart(2, '0');
16
+ const minutes = String(date.getMinutes()).padStart(2, '0');
17
+ const seconds = String(date.getSeconds()).padStart(2, '0');
18
+ return format
19
+ .replace('YYYY', String(year))
20
+ .replace('MM', month)
21
+ .replace('DD', day)
22
+ .replace('HH', hours)
23
+ .replace('mm', minutes)
24
+ .replace('ss', seconds);
25
+ }
26
+ static addDays(date, days) {
27
+ const result = new Date(date);
28
+ result.setDate(result.getDate() + days);
29
+ return result;
30
+ }
31
+ static addHours(date, hours) {
32
+ const result = new Date(date);
33
+ result.setHours(result.getHours() + hours);
34
+ return result;
35
+ }
36
+ static addMinutes(date, minutes) {
37
+ const result = new Date(date);
38
+ result.setMinutes(result.getMinutes() + minutes);
39
+ return result;
40
+ }
41
+ static isExpired(date) {
42
+ return date < new Date();
43
+ }
44
+ static getDaysDifference(date1, date2) {
45
+ const timeDiff = Math.abs(date2.getTime() - date1.getTime());
46
+ return Math.ceil(timeDiff / (1000 * 3600 * 24));
47
+ }
48
+ static getHoursDifference(date1, date2) {
49
+ const timeDiff = Math.abs(date2.getTime() - date1.getTime());
50
+ return Math.ceil(timeDiff / (1000 * 3600));
51
+ }
52
+ static getMinutesDifference(date1, date2) {
53
+ const timeDiff = Math.abs(date2.getTime() - date1.getTime());
54
+ return Math.ceil(timeDiff / (1000 * 60));
55
+ }
56
+ }
57
+ exports.DateUtil = DateUtil;
58
+ //# sourceMappingURL=date.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.util.js","sourceRoot":"","sources":["../../../src/common/utils/date.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './crypto.util';
2
+ export * from './validation.util';
3
+ export * from './date.util';
4
+ export * from './string.util';
@@ -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("./crypto.util"), exports);
18
+ __exportStar(require("./validation.util"), exports);
19
+ __exportStar(require("./date.util"), exports);
20
+ __exportStar(require("./string.util"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,gDAA8B"}
@@ -0,0 +1,16 @@
1
+ export declare class StringUtil {
2
+ static capitalize(str: string): string;
3
+ static toCamelCase(str: string): string;
4
+ static toSnakeCase(str: string): string;
5
+ static toKebabCase(str: string): string;
6
+ static truncate(str: string, length: number, suffix?: string): string;
7
+ static slugify(str: string): string;
8
+ static generateSlug(str: string, maxLength?: number): string;
9
+ static maskEmail(email: string): string;
10
+ static maskPhone(phone: string): string;
11
+ static removeSpecialCharacters(str: string): string;
12
+ static removeExtraSpaces(str: string): string;
13
+ static isPalindrome(str: string): boolean;
14
+ static countWords(str: string): number;
15
+ static countCharacters(str: string, includeSpaces?: boolean): number;
16
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringUtil = void 0;
4
+ class StringUtil {
5
+ static capitalize(str) {
6
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
7
+ }
8
+ static toCamelCase(str) {
9
+ return str
10
+ .replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => {
11
+ return index === 0 ? word.toLowerCase() : word.toUpperCase();
12
+ })
13
+ .replace(/\s+/g, '');
14
+ }
15
+ static toSnakeCase(str) {
16
+ return str
17
+ .replace(/([A-Z])/g, '_$1')
18
+ .toLowerCase()
19
+ .replace(/^_/, '');
20
+ }
21
+ static toKebabCase(str) {
22
+ return str
23
+ .replace(/([A-Z])/g, '-$1')
24
+ .toLowerCase()
25
+ .replace(/^-/, '');
26
+ }
27
+ static truncate(str, length, suffix = '...') {
28
+ if (str.length <= length)
29
+ return str;
30
+ return str.substring(0, length) + suffix;
31
+ }
32
+ static slugify(str) {
33
+ return str
34
+ .toLowerCase()
35
+ .trim()
36
+ .replace(/[^\w\s-]/g, '')
37
+ .replace(/[\s_-]+/g, '-')
38
+ .replace(/^-+|-+$/g, '');
39
+ }
40
+ static generateSlug(str, maxLength = 50) {
41
+ return this.truncate(this.slugify(str), maxLength, '');
42
+ }
43
+ static maskEmail(email) {
44
+ const [localPart, domain] = email.split('@');
45
+ if (localPart.length <= 2)
46
+ return email;
47
+ const maskedLocal = localPart.charAt(0) + '*'.repeat(localPart.length - 2) + localPart.charAt(localPart.length - 1);
48
+ return `${maskedLocal}@${domain}`;
49
+ }
50
+ static maskPhone(phone) {
51
+ if (phone.length <= 4)
52
+ return phone;
53
+ return phone.slice(0, 2) + '*'.repeat(phone.length - 4) + phone.slice(-2);
54
+ }
55
+ static removeSpecialCharacters(str) {
56
+ return str.replace(/[^a-zA-Z0-9\s]/g, '');
57
+ }
58
+ static removeExtraSpaces(str) {
59
+ return str.replace(/\s+/g, ' ').trim();
60
+ }
61
+ static isPalindrome(str) {
62
+ const cleanStr = str.toLowerCase().replace(/[^a-z0-9]/g, '');
63
+ return cleanStr === cleanStr.split('').reverse().join('');
64
+ }
65
+ static countWords(str) {
66
+ return str.trim().split(/\s+/).length;
67
+ }
68
+ static countCharacters(str, includeSpaces = true) {
69
+ return includeSpaces ? str.length : str.replace(/\s/g, '').length;
70
+ }
71
+ }
72
+ exports.StringUtil = StringUtil;
73
+ //# sourceMappingURL=string.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/common/utils/string.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare class ValidationUtil {
2
+ static isValidEmail(email: string): boolean;
3
+ static isValidPassword(password: string): boolean;
4
+ static isValidPhoneNumber(phone: string): boolean;
5
+ static isValidUUID(uuid: string): boolean;
6
+ static isNotEmpty(value: any): boolean;
7
+ static isNumber(value: any): boolean;
8
+ static isString(value: any): boolean;
9
+ static isBoolean(value: any): boolean;
10
+ static isArray(value: any): boolean;
11
+ static isObject(value: any): boolean;
12
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationUtil = void 0;
4
+ class ValidationUtil {
5
+ static isValidEmail(email) {
6
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
7
+ return emailRegex.test(email);
8
+ }
9
+ static isValidPassword(password) {
10
+ const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d@$!%*?&]{8,}$/;
11
+ return passwordRegex.test(password);
12
+ }
13
+ static isValidPhoneNumber(phone) {
14
+ const phoneRegex = /^\+?[\d\s\-\(\)]{10,}$/;
15
+ return phoneRegex.test(phone);
16
+ }
17
+ static isValidUUID(uuid) {
18
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
19
+ return uuidRegex.test(uuid);
20
+ }
21
+ static isNotEmpty(value) {
22
+ return value !== null && value !== undefined && value !== '';
23
+ }
24
+ static isNumber(value) {
25
+ return typeof value === 'number' && !isNaN(value);
26
+ }
27
+ static isString(value) {
28
+ return typeof value === 'string';
29
+ }
30
+ static isBoolean(value) {
31
+ return typeof value === 'boolean';
32
+ }
33
+ static isArray(value) {
34
+ return Array.isArray(value);
35
+ }
36
+ static isObject(value) {
37
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
38
+ }
39
+ }
40
+ exports.ValidationUtil = ValidationUtil;
41
+ //# sourceMappingURL=validation.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.util.js","sourceRoot":"","sources":["../../../src/common/utils/validation.util.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IACzB,MAAM,CAAC,YAAY,CAAC,KAAa;QAC/B,MAAM,UAAU,GAAG,4BAA4B,CAAC;QAChD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,QAAgB;QAErC,MAAM,aAAa,GAAG,uDAAuD,CAAC;QAC9E,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAa;QACrC,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAC5C,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,SAAS,GAAG,4EAA4E,CAAC;QAC/F,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAU;QAC1B,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAU;QACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAU;QACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAU;QACzB,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAU;QACvB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAU;QACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;CACF;AA7CD,wCA6CC"}
@@ -0,0 +1,12 @@
1
+ export declare class AuthResponseDto {
2
+ accessToken: string;
3
+ refreshToken: string;
4
+ tokenType: string;
5
+ expiresIn: number;
6
+ user: {
7
+ id: string;
8
+ email: string;
9
+ firstName: string;
10
+ lastName: string;
11
+ };
12
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthResponseDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ class AuthResponseDto {
15
+ }
16
+ exports.AuthResponseDto = AuthResponseDto;
17
+ __decorate([
18
+ (0, swagger_1.ApiProperty)({
19
+ description: 'Access token',
20
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
21
+ }),
22
+ __metadata("design:type", String)
23
+ ], AuthResponseDto.prototype, "accessToken", void 0);
24
+ __decorate([
25
+ (0, swagger_1.ApiProperty)({
26
+ description: 'Refresh token',
27
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
28
+ }),
29
+ __metadata("design:type", String)
30
+ ], AuthResponseDto.prototype, "refreshToken", void 0);
31
+ __decorate([
32
+ (0, swagger_1.ApiProperty)({
33
+ description: 'Token type',
34
+ example: 'Bearer',
35
+ }),
36
+ __metadata("design:type", String)
37
+ ], AuthResponseDto.prototype, "tokenType", void 0);
38
+ __decorate([
39
+ (0, swagger_1.ApiProperty)({
40
+ description: 'Token expiration time in seconds',
41
+ example: 900,
42
+ }),
43
+ __metadata("design:type", Number)
44
+ ], AuthResponseDto.prototype, "expiresIn", void 0);
45
+ __decorate([
46
+ (0, swagger_1.ApiProperty)({
47
+ description: 'User information',
48
+ }),
49
+ __metadata("design:type", Object)
50
+ ], AuthResponseDto.prototype, "user", void 0);
51
+ //# sourceMappingURL=auth-response.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-response.dto.js","sourceRoot":"","sources":["../../../src/dto/auth/auth-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,eAAe;CAkC3B;AAlCD,0CAkCC;AA7BC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,yCAAyC;KACnD,CAAC;;oDACkB;AAMpB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,yCAAyC;KACnD,CAAC;;qDACmB;AAMrB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,QAAQ;KAClB,CAAC;;kDACgB;AAMlB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,GAAG;KACb,CAAC;;kDACgB;AAKlB;IAHC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;KAChC,CAAC;;6CAMA"}
@@ -0,0 +1,4 @@
1
+ export * from './login.dto';
2
+ export * from './register.dto';
3
+ export * from './refresh-token.dto';
4
+ export * from './auth-response.dto';
@@ -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("./login.dto"), exports);
18
+ __exportStar(require("./register.dto"), exports);
19
+ __exportStar(require("./refresh-token.dto"), exports);
20
+ __exportStar(require("./auth-response.dto"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,sDAAoC;AACpC,sDAAoC"}
@@ -0,0 +1,4 @@
1
+ export declare class LoginDto {
2
+ email: string;
3
+ password: string;
4
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LoginDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ class LoginDto {
16
+ }
17
+ exports.LoginDto = LoginDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({
20
+ description: 'User email address',
21
+ example: 'user@example.com',
22
+ }),
23
+ (0, class_validator_1.IsEmail)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], LoginDto.prototype, "email", void 0);
27
+ __decorate([
28
+ (0, swagger_1.ApiProperty)({
29
+ description: 'User password',
30
+ example: 'Password123!',
31
+ minLength: 8,
32
+ }),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ (0, class_validator_1.MinLength)(8),
36
+ __metadata("design:type", String)
37
+ ], LoginDto.prototype, "password", void 0);
38
+ //# sourceMappingURL=login.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.dto.js","sourceRoot":"","sources":["../../../src/dto/auth/login.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2E;AAE3E,MAAa,QAAQ;CAkBpB;AAlBD,4BAkBC;AAXC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;uCACC;AAUd;IARC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,CAAC;KACb,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,CAAC,CAAC;;0CACI"}
@@ -0,0 +1,3 @@
1
+ export declare class RefreshTokenDto {
2
+ refreshToken: string;
3
+ }
@@ -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 __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RefreshTokenDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ class RefreshTokenDto {
16
+ }
17
+ exports.RefreshTokenDto = RefreshTokenDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({
20
+ description: 'Refresh token',
21
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
22
+ }),
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], RefreshTokenDto.prototype, "refreshToken", void 0);
27
+ //# sourceMappingURL=refresh-token.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-token.dto.js","sourceRoot":"","sources":["../../../src/dto/auth/refresh-token.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAuD;AAEvD,MAAa,eAAe;CAQ3B;AARD,0CAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,yCAAyC;KACnD,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACQ"}
@@ -0,0 +1,7 @@
1
+ export declare class RegisterDto {
2
+ firstName: string;
3
+ lastName: string;
4
+ email: string;
5
+ password: string;
6
+ phone?: string;
7
+ }