@fabx.vn/core 1.0.104 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +2 -6
  2. package/dist/config/database.config.d.ts +1 -0
  3. package/dist/config/database.config.js +2 -1
  4. package/dist/config/database.config.js.map +1 -1
  5. package/dist/config/internal.config.d.ts +4 -1
  6. package/dist/config/internal.config.js +4 -2
  7. package/dist/config/internal.config.js.map +1 -1
  8. package/dist/config/rabbitmq.config.d.ts +1 -5
  9. package/dist/config/rabbitmq.config.js +2 -6
  10. package/dist/config/rabbitmq.config.js.map +1 -1
  11. package/dist/config/redis-cache.config.d.ts +9 -0
  12. package/dist/config/redis-cache.config.js +13 -0
  13. package/dist/config/redis-cache.config.js.map +1 -0
  14. package/dist/config/redis.config.js +1 -1
  15. package/dist/config/redis.config.js.map +1 -1
  16. package/dist/constants/messages.constants.d.ts +0 -5
  17. package/dist/constants/messages.constants.js +0 -5
  18. package/dist/constants/messages.constants.js.map +1 -1
  19. package/dist/core/core.module.js +6 -0
  20. package/dist/core/core.module.js.map +1 -1
  21. package/dist/core/decorators/current-user.decorator.js +17 -1
  22. package/dist/core/decorators/current-user.decorator.js.map +1 -1
  23. package/dist/core/dtos/pagination.dto.d.ts +12 -0
  24. package/dist/core/dtos/pagination.dto.js +25 -1
  25. package/dist/core/dtos/pagination.dto.js.map +1 -1
  26. package/dist/core/entities/base.entity.d.ts +1 -0
  27. package/dist/core/entities/base.entity.js +4 -0
  28. package/dist/core/entities/base.entity.js.map +1 -1
  29. package/dist/core/guards/jwt-auth.guard.js +2 -0
  30. package/dist/core/guards/jwt-auth.guard.js.map +1 -1
  31. package/dist/core/modules/typeorm-filter.module.d.ts +5 -0
  32. package/dist/core/modules/typeorm-filter.module.js +41 -0
  33. package/dist/core/modules/typeorm-filter.module.js.map +1 -0
  34. package/dist/core/services/base-pagination.service.d.ts +9 -1
  35. package/dist/core/services/base-pagination.service.js +91 -0
  36. package/dist/core/services/base-pagination.service.js.map +1 -1
  37. package/dist/core/services/cookie.service.d.ts +1 -0
  38. package/dist/core/services/cookie.service.js +4 -1
  39. package/dist/core/services/cookie.service.js.map +1 -1
  40. package/dist/{services/redis.service.d.ts → core/services/redis-cache.service.d.ts} +6 -1
  41. package/dist/{services/redis.service.js → core/services/redis-cache.service.js} +37 -9
  42. package/dist/core/services/redis-cache.service.js.map +1 -0
  43. package/dist/core/services/redis.service.d.ts +1 -0
  44. package/dist/core/services/redis.service.js +15 -2
  45. package/dist/core/services/redis.service.js.map +1 -1
  46. package/dist/core/services/repository-wrapper.service.d.ts +7 -0
  47. package/dist/core/services/repository-wrapper.service.js +95 -0
  48. package/dist/core/services/repository-wrapper.service.js.map +1 -0
  49. package/dist/core/services/session.service.d.ts +2 -1
  50. package/dist/core/services/session.service.js.map +1 -1
  51. package/dist/core/subscribers/audit.subscriber.js +3 -0
  52. package/dist/core/subscribers/audit.subscriber.js.map +1 -1
  53. package/dist/enums/object-type.enum.d.ts +9 -0
  54. package/dist/enums/object-type.enum.js +14 -0
  55. package/dist/enums/object-type.enum.js.map +1 -0
  56. package/dist/index.d.ts +6 -2
  57. package/dist/index.js +13 -3
  58. package/dist/index.js.map +1 -1
  59. package/dist/libs/axios/axios-client.js +2 -2
  60. package/dist/libs/axios/axios-client.js.map +1 -1
  61. package/dist/tsconfig.tsbuildinfo +1 -1
  62. package/dist/utils/date.utils.d.ts +1 -0
  63. package/dist/utils/date.utils.js +10 -0
  64. package/dist/utils/date.utils.js.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/config/google-oauth.config.d.ts +0 -6
  67. package/dist/config/google-oauth.config.js +0 -10
  68. package/dist/config/google-oauth.config.js.map +0 -1
  69. package/dist/core/services/cache.service.d.ts +0 -13
  70. package/dist/core/services/cache.service.js +0 -51
  71. package/dist/core/services/cache.service.js.map +0 -1
  72. package/dist/core/services/permission.service.d.ts +0 -23
  73. package/dist/core/services/permission.service.js +0 -83
  74. package/dist/core/services/permission.service.js.map +0 -1
  75. package/dist/core.module.d.ts +0 -2
  76. package/dist/core.module.js +0 -72
  77. package/dist/core.module.js.map +0 -1
  78. package/dist/decorators/current-user.decorator.d.ts +0 -1
  79. package/dist/decorators/current-user.decorator.js +0 -9
  80. package/dist/decorators/current-user.decorator.js.map +0 -1
  81. package/dist/decorators/public.decorator.d.ts +0 -2
  82. package/dist/decorators/public.decorator.js +0 -8
  83. package/dist/decorators/public.decorator.js.map +0 -1
  84. package/dist/decorators/require-permissions.decorator.d.ts +0 -4
  85. package/dist/decorators/require-permissions.decorator.js +0 -11
  86. package/dist/decorators/require-permissions.decorator.js.map +0 -1
  87. package/dist/dtos/api-response.dto.d.ts +0 -10
  88. package/dist/dtos/api-response.dto.js +0 -22
  89. package/dist/dtos/api-response.dto.js.map +0 -1
  90. package/dist/dtos/pagination.dto.d.ts +0 -17
  91. package/dist/dtos/pagination.dto.js +0 -61
  92. package/dist/dtos/pagination.dto.js.map +0 -1
  93. package/dist/filters/http-exception.filter.d.ts +0 -5
  94. package/dist/filters/http-exception.filter.js +0 -47
  95. package/dist/filters/http-exception.filter.js.map +0 -1
  96. package/dist/guards/internal-auth.guard.d.ts +0 -7
  97. package/dist/guards/internal-auth.guard.js +0 -42
  98. package/dist/guards/internal-auth.guard.js.map +0 -1
  99. package/dist/guards/jwt-auth.guard.d.ts +0 -12
  100. package/dist/guards/jwt-auth.guard.js +0 -56
  101. package/dist/guards/jwt-auth.guard.js.map +0 -1
  102. package/dist/guards/permission.guard.d.ts +0 -9
  103. package/dist/guards/permission.guard.js +0 -71
  104. package/dist/guards/permission.guard.js.map +0 -1
  105. package/dist/interceptors/request-context.interceptor.d.ts +0 -8
  106. package/dist/interceptors/request-context.interceptor.js +0 -39
  107. package/dist/interceptors/request-context.interceptor.js.map +0 -1
  108. package/dist/services/cookie.service.d.ts +0 -13
  109. package/dist/services/cookie.service.js +0 -50
  110. package/dist/services/cookie.service.js.map +0 -1
  111. package/dist/services/jwt.service.d.ts +0 -37
  112. package/dist/services/jwt.service.js +0 -187
  113. package/dist/services/jwt.service.js.map +0 -1
  114. package/dist/services/rabbitmq-publisher.service.d.ts +0 -9
  115. package/dist/services/rabbitmq-publisher.service.js +0 -57
  116. package/dist/services/rabbitmq-publisher.service.js.map +0 -1
  117. package/dist/services/redis.service.js.map +0 -1
  118. package/dist/services/request-context.service.d.ts +0 -18
  119. package/dist/services/request-context.service.js +0 -40
  120. package/dist/services/request-context.service.js.map +0 -1
  121. package/dist/services/request-info.service.d.ts +0 -8
  122. package/dist/services/request-info.service.js +0 -32
  123. package/dist/services/request-info.service.js.map +0 -1
  124. package/dist/services/session.service.d.ts +0 -21
  125. package/dist/services/session.service.js +0 -70
  126. package/dist/services/session.service.js.map +0 -1
  127. package/dist/strategies/jwt.strategy.d.ts +0 -7
  128. package/dist/strategies/jwt.strategy.js +0 -38
  129. package/dist/strategies/jwt.strategy.js.map +0 -1
  130. package/dist/subscribers/audit.subscriber.d.ts +0 -8
  131. package/dist/subscribers/audit.subscriber.js +0 -40
  132. package/dist/subscribers/audit.subscriber.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  export declare class DateUtils {
2
2
  static parseExpirationTime(expiration: string): number;
3
3
  static parseExpirationToDate(expiration: string): Date;
4
+ static formatDateToString(date: Date | null | undefined): string | undefined;
4
5
  }
@@ -47,6 +47,16 @@ class DateUtils {
47
47
  }
48
48
  return new Date(Date.now() + milliseconds);
49
49
  }
50
+ static formatDateToString(date) {
51
+ if (!date) {
52
+ return undefined;
53
+ }
54
+ const dateObj = new Date(date);
55
+ const year = dateObj.getFullYear();
56
+ const month = String(dateObj.getMonth() + 1).padStart(2, "0");
57
+ const day = String(dateObj.getDate()).padStart(2, "0");
58
+ return `${year}-${month}-${day}`;
59
+ }
50
60
  }
51
61
  exports.DateUtils = DateUtils;
52
62
  //# sourceMappingURL=date.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.utils.js","sourceRoot":"","sources":["../../src/utils/date.utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IACpB,MAAM,CAAC,mBAAmB,CAAC,UAAkB;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG;gBACN,OAAO,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,GAAG;gBACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;YACzB,KAAK,GAAG;gBACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9B;gBACE,OAAO,GAAG,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,UAAkB;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;gBAC5B,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;gBACjC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBACtC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC3C,MAAM;YACR;gBACE,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;IAC7C,CAAC;CACF;AA/CD,8BA+CC"}
1
+ {"version":3,"file":"date.utils.js","sourceRoot":"","sources":["../../src/utils/date.utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IACpB,MAAM,CAAC,mBAAmB,CAAC,UAAkB;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG;gBACN,OAAO,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,GAAG;gBACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;YACzB,KAAK,GAAG;gBACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9B;gBACE,OAAO,GAAG,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,UAAkB;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC;gBAC5B,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;gBACjC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBACtC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC3C,MAAM;YACR;gBACE,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;IAC7C,CAAC;IAYD,MAAM,CAAC,kBAAkB,CAAC,IAA6B;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;CACF;AApED,8BAoEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabx.vn/core",
3
- "version": "1.0.104",
3
+ "version": "1.1.01",
4
4
  "description": "ERP Core Module - Shared core functionality for all services",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +0,0 @@
1
- export declare const googleOAuthConfig: {
2
- clientId: string;
3
- clientSecret: string;
4
- callbackUrl: string;
5
- frontendUrl: string;
6
- };
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.googleOAuthConfig = void 0;
4
- exports.googleOAuthConfig = {
5
- clientId: process.env.GOOGLE_CLIENT_ID,
6
- clientSecret: process.env.GOOGLE_CLIENT_SECRET,
7
- callbackUrl: process.env.GOOGLE_CALLBACK_URL || "/auth/google/callback",
8
- frontendUrl: process.env.FRONTEND_URL || "http://localhost:3000",
9
- };
10
- //# sourceMappingURL=google-oauth.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-oauth.config.js","sourceRoot":"","sources":["../../src/config/google-oauth.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;IACtC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAC9C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB;IACvE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB;CACjE,CAAC"}
@@ -1,13 +0,0 @@
1
- import { OnModuleInit, OnModuleDestroy } from "@nestjs/common";
2
- export declare class CacheService implements OnModuleInit, OnModuleDestroy {
3
- private redis;
4
- onModuleInit(): Promise<void>;
5
- onModuleDestroy(): Promise<void>;
6
- get(key: string): Promise<string | null>;
7
- set(key: string, value: string, ttl?: number): Promise<void>;
8
- del(key: string): Promise<number>;
9
- exists(key: string): Promise<number>;
10
- expire(key: string, ttl: number): Promise<number>;
11
- keys(pattern: string): Promise<string[]>;
12
- flushall(): Promise<string>;
13
- }
@@ -1,51 +0,0 @@
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.CacheService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const ioredis_1 = require("ioredis");
12
- const redis_config_1 = require("../../config/redis.config");
13
- let CacheService = class CacheService {
14
- async onModuleInit() {
15
- this.redis = new ioredis_1.default(redis_config_1.redisConfig);
16
- }
17
- async onModuleDestroy() {
18
- await this.redis.quit();
19
- }
20
- async get(key) {
21
- return this.redis.get(key);
22
- }
23
- async set(key, value, ttl) {
24
- if (ttl) {
25
- await this.redis.setex(key, ttl, value);
26
- }
27
- else {
28
- await this.redis.set(key, value);
29
- }
30
- }
31
- async del(key) {
32
- return this.redis.del(key);
33
- }
34
- async exists(key) {
35
- return this.redis.exists(key);
36
- }
37
- async expire(key, ttl) {
38
- return this.redis.expire(key, ttl);
39
- }
40
- async keys(pattern) {
41
- return this.redis.keys(pattern);
42
- }
43
- async flushall() {
44
- return this.redis.flushall();
45
- }
46
- };
47
- exports.CacheService = CacheService;
48
- exports.CacheService = CacheService = __decorate([
49
- (0, common_1.Injectable)()
50
- ], CacheService);
51
- //# sourceMappingURL=cache.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../src/core/services/cache.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2E;AAC3E,qCAA4B;AAC5B,uDAAmD;AAG5C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,0BAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,GAAY;QAChD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,GAAW;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AA1CY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CA0CxB"}
@@ -1,23 +0,0 @@
1
- import { DataSource } from "typeorm";
2
- import { RedisService } from "./redis.service";
3
- export interface PermissionQueryProvider {
4
- getUserPermissionsQuery(userId: string): {
5
- query: string;
6
- params: any[];
7
- };
8
- }
9
- export declare class PermissionService {
10
- private dataSource;
11
- private redisService;
12
- private queryProvider;
13
- private readonly CACHE_TTL;
14
- private readonly CACHE_PREFIX;
15
- constructor(dataSource: DataSource, redisService: RedisService, queryProvider: PermissionQueryProvider);
16
- getUserPermissions(userId: string): Promise<string[]>;
17
- hasPermissions(authUserId: string, requiredPermissions: string[]): Promise<boolean>;
18
- hasAnyPermission(authUserId: string, requiredPermissions: string[]): Promise<boolean>;
19
- invalidateUserPermissionsCache(userId: string): Promise<void>;
20
- invalidateAllUserPermissionsCache(): Promise<void>;
21
- private getCachedPermissions;
22
- private setCachedPermissions;
23
- }
@@ -1,83 +0,0 @@
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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PermissionService = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const typeorm_2 = require("typeorm");
19
- const redis_service_1 = require("./redis.service");
20
- let PermissionService = class PermissionService {
21
- constructor(dataSource, redisService, queryProvider) {
22
- this.dataSource = dataSource;
23
- this.redisService = redisService;
24
- this.queryProvider = queryProvider;
25
- this.CACHE_TTL = 300;
26
- this.CACHE_PREFIX = "user_permissions:";
27
- }
28
- async getUserPermissions(userId) {
29
- try {
30
- const cachedPermissions = await this.getCachedPermissions(userId);
31
- if (cachedPermissions) {
32
- return cachedPermissions;
33
- }
34
- const { query, params } = this.queryProvider.getUserPermissionsQuery(userId);
35
- const permissions = await this.dataSource.query(query, params);
36
- const permissionCodes = permissions.map((p) => p.permission_code || p.code);
37
- await this.setCachedPermissions(userId, permissionCodes);
38
- return permissionCodes;
39
- }
40
- catch (error) {
41
- console.warn("Cache failed, falling back to database:", error);
42
- const { query, params } = this.queryProvider.getUserPermissionsQuery(userId);
43
- const permissions = await this.dataSource.query(query, params);
44
- return permissions.map((p) => p.permission_code || p.code);
45
- }
46
- }
47
- async hasPermissions(authUserId, requiredPermissions) {
48
- const userPermissions = await this.getUserPermissions(authUserId);
49
- return requiredPermissions.every((permission) => userPermissions.includes(permission));
50
- }
51
- async hasAnyPermission(authUserId, requiredPermissions) {
52
- const userPermissions = await this.getUserPermissions(authUserId);
53
- return requiredPermissions.some((permission) => userPermissions.includes(permission));
54
- }
55
- async invalidateUserPermissionsCache(userId) {
56
- const key = `${this.CACHE_PREFIX}${userId}`;
57
- await this.redisService.del(key);
58
- }
59
- async invalidateAllUserPermissionsCache() {
60
- const pattern = `${this.CACHE_PREFIX}*`;
61
- const keys = await this.redisService.keys(pattern);
62
- if (keys.length > 0) {
63
- await Promise.all(keys.map((key) => this.redisService.del(key)));
64
- }
65
- }
66
- async getCachedPermissions(userId) {
67
- const key = `${this.CACHE_PREFIX}${userId}`;
68
- const cached = await this.redisService.get(key);
69
- return cached ? JSON.parse(cached) : null;
70
- }
71
- async setCachedPermissions(userId, permissions, ttl = this.CACHE_TTL) {
72
- const key = `${this.CACHE_PREFIX}${userId}`;
73
- await this.redisService.set(key, JSON.stringify(permissions), ttl);
74
- }
75
- };
76
- exports.PermissionService = PermissionService;
77
- exports.PermissionService = PermissionService = __decorate([
78
- (0, common_1.Injectable)(),
79
- __param(0, (0, typeorm_1.InjectDataSource)()),
80
- __metadata("design:paramtypes", [typeorm_2.DataSource,
81
- redis_service_1.RedisService, Object])
82
- ], PermissionService);
83
- //# sourceMappingURL=permission.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.service.js","sourceRoot":"","sources":["../../../src/core/services/permission.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare class CoreModule {
2
- }
@@ -1,72 +0,0 @@
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.CoreModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const passport_1 = require("@nestjs/passport");
12
- const jwt_1 = require("@nestjs/jwt");
13
- const core_1 = require("@nestjs/core");
14
- const jwt_config_1 = require("./config/jwt.config");
15
- const request_info_service_1 = require("./services/request-info.service");
16
- const jwt_service_1 = require("./services/jwt.service");
17
- const session_service_1 = require("./services/session.service");
18
- const redis_service_1 = require("./services/redis.service");
19
- const rabbitmq_publisher_service_1 = require("./services/rabbitmq-publisher.service");
20
- const jwt_strategy_1 = require("./strategies/jwt.strategy");
21
- const jwt_auth_guard_1 = require("./guards/jwt-auth.guard");
22
- const internal_auth_guard_1 = require("./guards/internal-auth.guard");
23
- const request_context_interceptor_1 = require("./interceptors/request-context.interceptor");
24
- const audit_subscriber_1 = require("./subscribers/audit.subscriber");
25
- let CoreModule = class CoreModule {
26
- };
27
- exports.CoreModule = CoreModule;
28
- exports.CoreModule = CoreModule = __decorate([
29
- (0, common_1.Global)(),
30
- (0, common_1.Module)({
31
- imports: [
32
- passport_1.PassportModule,
33
- jwt_1.JwtModule.registerAsync({
34
- global: true,
35
- useFactory: () => ({
36
- secret: jwt_config_1.jwtConfig.secret,
37
- signOptions: {
38
- expiresIn: jwt_config_1.jwtConfig.expiresIn,
39
- },
40
- }),
41
- }),
42
- ],
43
- providers: [
44
- request_info_service_1.RequestInfoService,
45
- jwt_service_1.CoreJwtService,
46
- session_service_1.SessionService,
47
- redis_service_1.RedisService,
48
- rabbitmq_publisher_service_1.RabbitMQPublisher,
49
- jwt_strategy_1.JwtStrategy,
50
- jwt_auth_guard_1.JwtAuthGuard,
51
- internal_auth_guard_1.InternalAuthGuard,
52
- request_context_interceptor_1.RequestContextInterceptor,
53
- {
54
- provide: core_1.APP_INTERCEPTOR,
55
- useClass: request_context_interceptor_1.RequestContextInterceptor,
56
- },
57
- audit_subscriber_1.AuditSubscriber,
58
- ],
59
- exports: [
60
- request_info_service_1.RequestInfoService,
61
- jwt_service_1.CoreJwtService,
62
- session_service_1.SessionService,
63
- redis_service_1.RedisService,
64
- rabbitmq_publisher_service_1.RabbitMQPublisher,
65
- jwt_strategy_1.JwtStrategy,
66
- jwt_auth_guard_1.JwtAuthGuard,
67
- internal_auth_guard_1.InternalAuthGuard,
68
- request_context_interceptor_1.RequestContextInterceptor,
69
- ],
70
- })
71
- ], CoreModule);
72
- //# sourceMappingURL=core.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,+CAAkD;AAClD,qCAAwC;AACxC,uCAA+C;AAC/C,oDAAgD;AAGhD,0EAAqE;AACrE,wDAAwD;AACxD,gEAA4D;AAC5D,4DAAwD;AACxD,sFAA0E;AAG1E,4DAAwD;AAGxD,4DAAuD;AACvD,sEAAiE;AAGjE,4FAAuF;AAGvF,qEAAiE;AAqD1D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAnDtB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc;YACd,eAAS,CAAC,aAAa,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjB,MAAM,EAAE,sBAAS,CAAC,MAAM;oBACxB,WAAW,EAAE;wBACX,SAAS,EAAE,sBAAS,CAAC,SAAS;qBAC/B;iBACF,CAAC;aACH,CAAC;SACH;QACD,SAAS,EAAE;YAET,yCAAkB;YAClB,4BAAc;YACd,gCAAc;YACd,4BAAY;YACZ,8CAAiB;YAEjB,0BAAW;YAEX,6BAAY;YACZ,uCAAiB;YAEjB,uDAAyB;YACzB;gBACE,OAAO,EAAE,sBAAe;gBACxB,QAAQ,EAAE,uDAAyB;aACpC;YAED,kCAAe;SAChB;QACD,OAAO,EAAE;YAEP,yCAAkB;YAClB,4BAAc;YACd,gCAAc;YACd,4BAAY;YACZ,8CAAiB;YAEjB,0BAAW;YAEX,6BAAY;YACZ,uCAAiB;YAEjB,uDAAyB;SAC1B;KACF,CAAC;GACW,UAAU,CAAG"}
@@ -1 +0,0 @@
1
- export declare const CurrentUser: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CurrentUser = void 0;
4
- const common_1 = require("@nestjs/common");
5
- exports.CurrentUser = (0, common_1.createParamDecorator)((data, ctx) => {
6
- const request = ctx.switchToHttp().getRequest();
7
- return request.user;
8
- });
9
- //# sourceMappingURL=current-user.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"current-user.decorator.js","sourceRoot":"","sources":["../../src/decorators/current-user.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AAE3D,QAAA,WAAW,GAAG,IAAA,6BAAoB,EAC7C,CAAC,IAAa,EAAE,GAAqB,EAAE,EAAE;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const IS_PUBLIC_KEY = "isPublic";
2
- export declare const Public: () => import("@nestjs/common").CustomDecorator<string>;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Public = exports.IS_PUBLIC_KEY = void 0;
4
- const common_1 = require("@nestjs/common");
5
- exports.IS_PUBLIC_KEY = 'isPublic';
6
- const Public = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
7
- exports.Public = Public;
8
- //# sourceMappingURL=public.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public.decorator.js","sourceRoot":"","sources":["../../src/decorators/public.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C"}
@@ -1,4 +0,0 @@
1
- export declare const PERMISSIONS_KEY = "permissions";
2
- export declare const ANY_PERMISSIONS_KEY = "any_permissions";
3
- export declare const RequirePermissions: (permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
4
- export declare const RequireAnyPermission: (permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequireAnyPermission = exports.RequirePermissions = exports.ANY_PERMISSIONS_KEY = exports.PERMISSIONS_KEY = void 0;
4
- const common_1 = require("@nestjs/common");
5
- exports.PERMISSIONS_KEY = "permissions";
6
- exports.ANY_PERMISSIONS_KEY = "any_permissions";
7
- const RequirePermissions = (permissions) => (0, common_1.SetMetadata)(exports.PERMISSIONS_KEY, permissions);
8
- exports.RequirePermissions = RequirePermissions;
9
- const RequireAnyPermission = (permissions) => (0, common_1.SetMetadata)(exports.ANY_PERMISSIONS_KEY, permissions);
10
- exports.RequireAnyPermission = RequireAnyPermission;
11
- //# sourceMappingURL=require-permissions.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-permissions.decorator.js","sourceRoot":"","sources":["../../src/decorators/require-permissions.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAQ9C,MAAM,kBAAkB,GAAG,CAAC,WAAqB,EAAE,EAAE,CAC1D,IAAA,oBAAW,EAAC,uBAAe,EAAE,WAAW,CAAC,CAAC;AAD/B,QAAA,kBAAkB,sBACa;AAQrC,MAAM,oBAAoB,GAAG,CAAC,WAAqB,EAAE,EAAE,CAC5D,IAAA,oBAAW,EAAC,2BAAmB,EAAE,WAAW,CAAC,CAAC;AADnC,QAAA,oBAAoB,wBACe"}
@@ -1,10 +0,0 @@
1
- export declare class ApiResponseDto<T = any> {
2
- success: boolean;
3
- message: string;
4
- data?: T;
5
- timestamp: string;
6
- statusCode: number;
7
- constructor(success: boolean, message: string, data?: T, statusCode?: number);
8
- static success<T>(data?: T, message?: string): ApiResponseDto<T>;
9
- static error(message?: string, statusCode?: number): ApiResponseDto;
10
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiResponseDto = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const messages_constants_1 = require("../constants/messages.constants");
6
- class ApiResponseDto {
7
- constructor(success, message, data, statusCode = common_1.HttpStatus.OK) {
8
- this.success = success;
9
- this.message = message;
10
- this.data = data;
11
- this.statusCode = statusCode;
12
- this.timestamp = new Date().toISOString();
13
- }
14
- static success(data, message = messages_constants_1.MESSAGES.API.SUCCESS) {
15
- return new ApiResponseDto(true, message, data, common_1.HttpStatus.OK);
16
- }
17
- static error(message = messages_constants_1.MESSAGES.API.ERROR, statusCode = common_1.HttpStatus.BAD_REQUEST) {
18
- return new ApiResponseDto(false, message, null, statusCode);
19
- }
20
- }
21
- exports.ApiResponseDto = ApiResponseDto;
22
- //# sourceMappingURL=api-response.dto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-response.dto.js","sourceRoot":"","sources":["../../src/dtos/api-response.dto.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,wEAA2D;AAE3D,MAAa,cAAc;IAOzB,YACE,OAAgB,EAChB,OAAe,EACf,IAAQ,EACR,aAAqB,mBAAU,CAAC,EAAE;QAElC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,IAAQ,EACR,UAAkB,6BAAQ,CAAC,GAAG,CAAC,OAAO;QAEtC,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAU,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,KAAK,CACV,UAAkB,6BAAQ,CAAC,GAAG,CAAC,KAAK,EACpC,aAAqB,mBAAU,CAAC,WAAW;QAE3C,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF;AAjCD,wCAiCC"}
@@ -1,17 +0,0 @@
1
- export declare class PaginationDto {
2
- page?: number;
3
- limit?: number;
4
- search?: string;
5
- sortBy?: string;
6
- sortType?: "ASC" | "DESC";
7
- }
8
- export declare class PaginationMetaDto {
9
- page: number;
10
- limit: number;
11
- total: number;
12
- totalPages: number;
13
- }
14
- export declare class PaginationResponseDto<T> {
15
- data: T[];
16
- meta: PaginationMetaDto;
17
- }
@@ -1,61 +0,0 @@
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.PaginationResponseDto = exports.PaginationMetaDto = exports.PaginationDto = void 0;
13
- const class_validator_1 = require("class-validator");
14
- const class_transformer_1 = require("class-transformer");
15
- const messages_constants_1 = require("../constants/messages.constants");
16
- class PaginationDto {
17
- constructor() {
18
- this.page = 1;
19
- this.limit = 10;
20
- this.sortType = "DESC";
21
- }
22
- }
23
- exports.PaginationDto = PaginationDto;
24
- __decorate([
25
- (0, class_validator_1.IsOptional)(),
26
- (0, class_transformer_1.Type)(() => Number),
27
- (0, class_validator_1.IsNumber)({}, { message: messages_constants_1.MESSAGES.VALIDATION.PAGE_NUMBER }),
28
- (0, class_validator_1.Min)(1, { message: messages_constants_1.MESSAGES.VALIDATION.PAGE_MIN }),
29
- __metadata("design:type", Number)
30
- ], PaginationDto.prototype, "page", void 0);
31
- __decorate([
32
- (0, class_validator_1.IsOptional)(),
33
- (0, class_transformer_1.Type)(() => Number),
34
- (0, class_validator_1.IsNumber)({}, { message: messages_constants_1.MESSAGES.VALIDATION.LIMIT_NUMBER }),
35
- (0, class_validator_1.Min)(1, { message: messages_constants_1.MESSAGES.VALIDATION.LIMIT_MIN }),
36
- (0, class_validator_1.Max)(100, { message: messages_constants_1.MESSAGES.VALIDATION.LIMIT_MAX }),
37
- __metadata("design:type", Number)
38
- ], PaginationDto.prototype, "limit", void 0);
39
- __decorate([
40
- (0, class_validator_1.IsOptional)(),
41
- (0, class_transformer_1.Transform)(({ value }) => value?.trim()),
42
- __metadata("design:type", String)
43
- ], PaginationDto.prototype, "search", void 0);
44
- __decorate([
45
- (0, class_validator_1.IsOptional)(),
46
- (0, class_validator_1.IsString)({ message: messages_constants_1.MESSAGES.VALIDATION.ORDER_BY_STRING }),
47
- __metadata("design:type", String)
48
- ], PaginationDto.prototype, "sortBy", void 0);
49
- __decorate([
50
- (0, class_validator_1.IsOptional)(),
51
- (0, class_validator_1.IsString)({ message: messages_constants_1.MESSAGES.VALIDATION.ORDER_STRING }),
52
- (0, class_validator_1.IsIn)(["ASC", "DESC"], { message: messages_constants_1.MESSAGES.VALIDATION.ORDER_INVALID }),
53
- __metadata("design:type", String)
54
- ], PaginationDto.prototype, "sortType", void 0);
55
- class PaginationMetaDto {
56
- }
57
- exports.PaginationMetaDto = PaginationMetaDto;
58
- class PaginationResponseDto {
59
- }
60
- exports.PaginationResponseDto = PaginationResponseDto;
61
- //# sourceMappingURL=pagination.dto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.dto.js","sourceRoot":"","sources":["../../src/dtos/pagination.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AACzB,yDAAoD;AACpD,wEAA2D;AAE3D,MAAa,aAAa;IAA1B;QAKE,SAAI,GAAY,CAAC,CAAC;QAOlB,UAAK,GAAY,EAAE,CAAC;QAapB,aAAQ,GAAoB,MAAM,CAAC;IACrC,CAAC;CAAA;AA1BD,sCA0BC;AArBC;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;;2CAChC;AAOlB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAC3D,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;IAClD,IAAA,qBAAG,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;;4CACjC;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;;6CACxB;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;;6CAC3C;AAKhB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IACvD,IAAA,sBAAI,EAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;;+CACnC;AAGrC,MAAa,iBAAiB;CAK7B;AALD,8CAKC;AAED,MAAa,qBAAqB;CAGjC;AAHD,sDAGC"}
@@ -1,5 +0,0 @@
1
- import { ExceptionFilter, ArgumentsHost } from "@nestjs/common";
2
- export declare class HttpExceptionFilter implements ExceptionFilter {
3
- private readonly logger;
4
- catch(exception: unknown, host: ArgumentsHost): void;
5
- }
@@ -1,47 +0,0 @@
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 HttpExceptionFilter_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.HttpExceptionFilter = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const api_response_dto_1 = require("../dtos/api-response.dto");
13
- const messages_constants_1 = require("../constants/messages.constants");
14
- let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
15
- constructor() {
16
- this.logger = new common_1.Logger(HttpExceptionFilter_1.name);
17
- }
18
- catch(exception, host) {
19
- const ctx = host.switchToHttp();
20
- const response = ctx.getResponse();
21
- let status = common_1.HttpStatus.INTERNAL_SERVER_ERROR;
22
- let message = messages_constants_1.MESSAGES.API.INTERNAL_SERVER_ERROR;
23
- if (exception instanceof common_1.HttpException) {
24
- status = exception.getStatus();
25
- const exceptionResponse = exception.getResponse();
26
- message =
27
- typeof exceptionResponse === "string"
28
- ? exceptionResponse
29
- : exceptionResponse.message || exception.message;
30
- }
31
- else if (exception instanceof Error) {
32
- message = exception.message;
33
- this.logger.error(`Unexpected error: ${exception.message}`, exception.stack);
34
- }
35
- else {
36
- message = messages_constants_1.MESSAGES.API.UNEXPECTED_ERROR;
37
- this.logger.error("Unknown exception:", exception);
38
- }
39
- const errorResponse = api_response_dto_1.ApiResponseDto.error(message, status);
40
- response.status(status).json(errorResponse);
41
- }
42
- };
43
- exports.HttpExceptionFilter = HttpExceptionFilter;
44
- exports.HttpExceptionFilter = HttpExceptionFilter = HttpExceptionFilter_1 = __decorate([
45
- (0, common_1.Catch)()
46
- ], HttpExceptionFilter);
47
- //# sourceMappingURL=http-exception.filter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../src/filters/http-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAOwB;AAExB,+DAA0D;AAC1D,wEAA2D;AAGpD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAAzB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IA+BjE,CAAC;IA7BC,KAAK,CAAC,SAAkB,EAAE,IAAmB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAE7C,IAAI,MAAM,GAAG,mBAAU,CAAC,qBAAqB,CAAC;QAC9C,IAAI,OAAO,GAAW,6BAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAEzD,IAAI,SAAS,YAAY,sBAAa,EAAE,CAAC;YACvC,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAClD,OAAO;gBACL,OAAO,iBAAiB,KAAK,QAAQ;oBACnC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAE,iBAAyB,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC;QAChE,CAAC;aAAM,IAAI,SAAS,YAAY,KAAK,EAAE,CAAC;YACtC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qBAAqB,SAAS,CAAC,OAAO,EAAE,EACxC,SAAS,CAAC,KAAK,CAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YAEN,OAAO,GAAG,6BAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,aAAa,GAAG,iCAAc,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5D,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,cAAK,GAAE;GACK,mBAAmB,CAgC/B"}
@@ -1,7 +0,0 @@
1
- import { CanActivate, ExecutionContext } from "@nestjs/common";
2
- import { CoreJwtService } from "../services/jwt.service";
3
- export declare class InternalAuthGuard implements CanActivate {
4
- private readonly coreJwtService;
5
- constructor(coreJwtService: CoreJwtService);
6
- canActivate(context: ExecutionContext): boolean;
7
- }