@fabx.vn/core 1.1.0 → 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 (138) hide show
  1. package/README.md +2 -6
  2. package/dist/config/cookie.config.d.ts +1 -0
  3. package/dist/config/cookie.config.js +1 -0
  4. package/dist/config/cookie.config.js.map +1 -1
  5. package/dist/config/database.config.d.ts +1 -0
  6. package/dist/config/database.config.js +2 -1
  7. package/dist/config/database.config.js.map +1 -1
  8. package/dist/config/internal.config.d.ts +4 -1
  9. package/dist/config/internal.config.js +4 -2
  10. package/dist/config/internal.config.js.map +1 -1
  11. package/dist/config/rabbitmq.config.d.ts +1 -5
  12. package/dist/config/rabbitmq.config.js +2 -6
  13. package/dist/config/rabbitmq.config.js.map +1 -1
  14. package/dist/config/redis-cache.config.d.ts +9 -0
  15. package/dist/config/redis-cache.config.js +13 -0
  16. package/dist/config/redis-cache.config.js.map +1 -0
  17. package/dist/config/redis.config.js +1 -1
  18. package/dist/config/redis.config.js.map +1 -1
  19. package/dist/constants/messages.constants.d.ts +0 -5
  20. package/dist/constants/messages.constants.js +0 -5
  21. package/dist/constants/messages.constants.js.map +1 -1
  22. package/dist/core/core.module.js +6 -0
  23. package/dist/core/core.module.js.map +1 -1
  24. package/dist/core/decorators/current-user.decorator.js +17 -1
  25. package/dist/core/decorators/current-user.decorator.js.map +1 -1
  26. package/dist/core/dtos/pagination.dto.d.ts +12 -0
  27. package/dist/core/dtos/pagination.dto.js +25 -1
  28. package/dist/core/dtos/pagination.dto.js.map +1 -1
  29. package/dist/core/entities/base.entity.d.ts +1 -0
  30. package/dist/core/entities/base.entity.js +4 -0
  31. package/dist/core/entities/base.entity.js.map +1 -1
  32. package/dist/core/guards/jwt-auth.guard.js +2 -3
  33. package/dist/core/guards/jwt-auth.guard.js.map +1 -1
  34. package/dist/core/modules/typeorm-filter.module.d.ts +5 -0
  35. package/dist/core/modules/typeorm-filter.module.js +41 -0
  36. package/dist/core/modules/typeorm-filter.module.js.map +1 -0
  37. package/dist/core/services/base-pagination.service.d.ts +9 -1
  38. package/dist/core/services/base-pagination.service.js +91 -0
  39. package/dist/core/services/base-pagination.service.js.map +1 -1
  40. package/dist/core/services/cookie.service.d.ts +2 -0
  41. package/dist/core/services/cookie.service.js +17 -18
  42. package/dist/core/services/cookie.service.js.map +1 -1
  43. package/dist/core/services/jwt.service.js +0 -10
  44. package/dist/core/services/jwt.service.js.map +1 -1
  45. package/dist/{services/redis.service.d.ts → core/services/redis-cache.service.d.ts} +6 -1
  46. package/dist/{services/redis.service.js → core/services/redis-cache.service.js} +37 -9
  47. package/dist/core/services/redis-cache.service.js.map +1 -0
  48. package/dist/core/services/redis.service.d.ts +1 -0
  49. package/dist/core/services/redis.service.js +15 -2
  50. package/dist/core/services/redis.service.js.map +1 -1
  51. package/dist/core/services/repository-wrapper.service.d.ts +7 -0
  52. package/dist/core/services/repository-wrapper.service.js +95 -0
  53. package/dist/core/services/repository-wrapper.service.js.map +1 -0
  54. package/dist/core/services/session.service.d.ts +2 -2
  55. package/dist/core/services/session.service.js +3 -10
  56. package/dist/core/services/session.service.js.map +1 -1
  57. package/dist/core/subscribers/audit.subscriber.js +3 -0
  58. package/dist/core/subscribers/audit.subscriber.js.map +1 -1
  59. package/dist/enums/object-type.enum.d.ts +9 -0
  60. package/dist/enums/object-type.enum.js +14 -0
  61. package/dist/enums/object-type.enum.js.map +1 -0
  62. package/dist/index.d.ts +6 -2
  63. package/dist/index.js +13 -3
  64. package/dist/index.js.map +1 -1
  65. package/dist/libs/axios/axios-client.js +2 -2
  66. package/dist/libs/axios/axios-client.js.map +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/dist/utils/date.utils.d.ts +1 -0
  69. package/dist/utils/date.utils.js +10 -0
  70. package/dist/utils/date.utils.js.map +1 -1
  71. package/package.json +1 -1
  72. package/dist/config/google-oauth.config.d.ts +0 -6
  73. package/dist/config/google-oauth.config.js +0 -10
  74. package/dist/config/google-oauth.config.js.map +0 -1
  75. package/dist/core/services/cache.service.d.ts +0 -13
  76. package/dist/core/services/cache.service.js +0 -51
  77. package/dist/core/services/cache.service.js.map +0 -1
  78. package/dist/core/services/permission.service.d.ts +0 -23
  79. package/dist/core/services/permission.service.js +0 -83
  80. package/dist/core/services/permission.service.js.map +0 -1
  81. package/dist/core.module.d.ts +0 -2
  82. package/dist/core.module.js +0 -72
  83. package/dist/core.module.js.map +0 -1
  84. package/dist/decorators/current-user.decorator.d.ts +0 -1
  85. package/dist/decorators/current-user.decorator.js +0 -9
  86. package/dist/decorators/current-user.decorator.js.map +0 -1
  87. package/dist/decorators/public.decorator.d.ts +0 -2
  88. package/dist/decorators/public.decorator.js +0 -8
  89. package/dist/decorators/public.decorator.js.map +0 -1
  90. package/dist/decorators/require-permissions.decorator.d.ts +0 -4
  91. package/dist/decorators/require-permissions.decorator.js +0 -11
  92. package/dist/decorators/require-permissions.decorator.js.map +0 -1
  93. package/dist/dtos/api-response.dto.d.ts +0 -10
  94. package/dist/dtos/api-response.dto.js +0 -22
  95. package/dist/dtos/api-response.dto.js.map +0 -1
  96. package/dist/dtos/pagination.dto.d.ts +0 -17
  97. package/dist/dtos/pagination.dto.js +0 -61
  98. package/dist/dtos/pagination.dto.js.map +0 -1
  99. package/dist/filters/http-exception.filter.d.ts +0 -5
  100. package/dist/filters/http-exception.filter.js +0 -47
  101. package/dist/filters/http-exception.filter.js.map +0 -1
  102. package/dist/guards/internal-auth.guard.d.ts +0 -7
  103. package/dist/guards/internal-auth.guard.js +0 -42
  104. package/dist/guards/internal-auth.guard.js.map +0 -1
  105. package/dist/guards/jwt-auth.guard.d.ts +0 -12
  106. package/dist/guards/jwt-auth.guard.js +0 -56
  107. package/dist/guards/jwt-auth.guard.js.map +0 -1
  108. package/dist/guards/permission.guard.d.ts +0 -9
  109. package/dist/guards/permission.guard.js +0 -71
  110. package/dist/guards/permission.guard.js.map +0 -1
  111. package/dist/interceptors/request-context.interceptor.d.ts +0 -8
  112. package/dist/interceptors/request-context.interceptor.js +0 -39
  113. package/dist/interceptors/request-context.interceptor.js.map +0 -1
  114. package/dist/services/cookie.service.d.ts +0 -13
  115. package/dist/services/cookie.service.js +0 -50
  116. package/dist/services/cookie.service.js.map +0 -1
  117. package/dist/services/jwt.service.d.ts +0 -37
  118. package/dist/services/jwt.service.js +0 -187
  119. package/dist/services/jwt.service.js.map +0 -1
  120. package/dist/services/rabbitmq-publisher.service.d.ts +0 -9
  121. package/dist/services/rabbitmq-publisher.service.js +0 -57
  122. package/dist/services/rabbitmq-publisher.service.js.map +0 -1
  123. package/dist/services/redis.service.js.map +0 -1
  124. package/dist/services/request-context.service.d.ts +0 -18
  125. package/dist/services/request-context.service.js +0 -40
  126. package/dist/services/request-context.service.js.map +0 -1
  127. package/dist/services/request-info.service.d.ts +0 -8
  128. package/dist/services/request-info.service.js +0 -32
  129. package/dist/services/request-info.service.js.map +0 -1
  130. package/dist/services/session.service.d.ts +0 -21
  131. package/dist/services/session.service.js +0 -70
  132. package/dist/services/session.service.js.map +0 -1
  133. package/dist/strategies/jwt.strategy.d.ts +0 -7
  134. package/dist/strategies/jwt.strategy.js +0 -38
  135. package/dist/strategies/jwt.strategy.js.map +0 -1
  136. package/dist/subscribers/audit.subscriber.d.ts +0 -8
  137. package/dist/subscribers/audit.subscriber.js +0 -40
  138. package/dist/subscribers/audit.subscriber.js.map +0 -1
package/README.md CHANGED
@@ -127,7 +127,7 @@ export class MyService {
127
127
  ### Config
128
128
 
129
129
  - `jwtConfig`, `redisConfig`, `databaseConfig`, `rabbitmqConfig`, `RABBITMQ_ROUTING_KEYS`
130
- - `cookieConfig`, `internalConfig`, `corsConfig`, `googleOAuthConfig`
130
+ - `cookieConfig`, `internalConfig`, `corsConfig`
131
131
 
132
132
  ### Constants
133
133
 
@@ -152,19 +152,15 @@ JWT_REFRESH_EXPIRES_IN=7d
152
152
  SHARED_REDIS_HOST=localhost
153
153
  SHARED_REDIS_PORT=6379
154
154
  SHARED_REDIS_PASSWORD=
155
- SHARED_REDIS_DB=0
156
155
 
157
156
  # RabbitMQ
158
157
  RABBITMQ_HOST=rabbitmq
159
158
  RABBITMQ_PORT=5672
160
159
  RABBITMQ_USER=admin
161
160
  RABBITMQ_PASSWORD=admin123
162
- RABBITMQ_VHOST=/erp
161
+ RABBITMQ_VHOST=/
163
162
  RABBITMQ_EVENTS_EXCHANGE=events_exchange
164
163
 
165
- # Cookie
166
- AUTH_COOKIE_NAME=auth_tokens
167
-
168
164
  # Internal Service
169
165
  INTERNAL_SECRET=internal-secret
170
166
  ```
@@ -1,3 +1,4 @@
1
1
  export declare const cookieConfig: {
2
2
  cookieName: string;
3
+ cookieDomain: string;
3
4
  };
@@ -3,5 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cookieConfig = void 0;
4
4
  exports.cookieConfig = {
5
5
  cookieName: process.env.AUTH_COOKIE_NAME || "auth_tokens",
6
+ cookieDomain: process.env.COOKIE_DOMAIN || undefined,
6
7
  };
7
8
  //# sourceMappingURL=cookie.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.config.js","sourceRoot":"","sources":["../../src/config/cookie.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa;CAC1D,CAAC"}
1
+ {"version":3,"file":"cookie.config.js","sourceRoot":"","sources":["../../src/config/cookie.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa;IACzD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;CACrD,CAAC"}
@@ -10,4 +10,5 @@ export declare const databaseConfig: {
10
10
  synchronize: boolean;
11
11
  autoLoadEntities: boolean;
12
12
  timezone: string;
13
+ dateStrings: boolean;
13
14
  };
@@ -12,6 +12,7 @@ exports.databaseConfig = {
12
12
  logging: process.env.NODE_ENV === "development",
13
13
  synchronize: true,
14
14
  autoLoadEntities: true,
15
- timezone: "+07:00",
15
+ timezone: "local",
16
+ dateStrings: false,
16
17
  };
17
18
  //# sourceMappingURL=database.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.config.js","sourceRoot":"","sources":["../../src/config/database.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,OAAgB;IACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;IAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC;IAChD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc;IAClD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,cAAc;IACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,YAAY;IACpD,QAAQ,EAAE,CAAC,SAAS,GAAG,kCAAkC,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;IAC/C,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,QAAQ;CACnB,CAAC"}
1
+ {"version":3,"file":"database.config.js","sourceRoot":"","sources":["../../src/config/database.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,OAAgB;IACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;IAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC;IAChD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc;IAClD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,cAAc;IACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,YAAY;IACpD,QAAQ,EAAE,CAAC,SAAS,GAAG,kCAAkC,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;IAC/C,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,KAAK;CACnB,CAAC"}
@@ -3,6 +3,9 @@ export declare const internalConfig: {
3
3
  userManagementServiceUrl: string;
4
4
  communicationServiceUrl: string;
5
5
  mediaServiceUrl: string;
6
- phuCuongPlusServiceUrl: string;
6
+ procurementServiceUrl: string;
7
+ salesServiceUrl: string;
8
+ masterDataServiceUrl: string;
9
+ tenantServiceUrl: string;
7
10
  internalSecret: string;
8
11
  };
@@ -8,8 +8,10 @@ exports.internalConfig = {
8
8
  communicationServiceUrl: process.env.COMMUNICATION_SERVICE_URL ||
9
9
  "http://service-communication:3003",
10
10
  mediaServiceUrl: process.env.MEDIA_SERVICE_URL || "http://service-media:3004",
11
- phuCuongPlusServiceUrl: process.env.PHU_CUONG_PLUS_SERVICE_URL ||
12
- "http://service-phu-cuong-plus:3005",
11
+ procurementServiceUrl: process.env.PROCUREMENT_SERVICE_URL || "http://service-procurement:3006",
12
+ salesServiceUrl: process.env.SALES_SERVICE_URL || "http://service-sales:3007",
13
+ masterDataServiceUrl: process.env.MASTER_DATA_SERVICE_URL || "http://service-master-data:3008",
14
+ tenantServiceUrl: process.env.TENANT_SERVICE_URL || "http://service-tenant:3009",
13
15
  internalSecret: process.env.INTERNAL_SECRET || "internal-secret",
14
16
  };
15
17
  //# sourceMappingURL=internal.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.config.js","sourceRoot":"","sources":["../../src/config/internal.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,0BAA0B;IAC1E,wBAAwB,EACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACvC,qCAAqC;IACvC,uBAAuB,EACrB,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACrC,mCAAmC;IACrC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,2BAA2B;IAC7E,sBAAsB,EACpB,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACtC,oCAAoC;IACtC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB;CACjE,CAAC"}
1
+ {"version":3,"file":"internal.config.js","sourceRoot":"","sources":["../../src/config/internal.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,0BAA0B;IAC1E,wBAAwB,EACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACvC,qCAAqC;IACvC,uBAAuB,EACrB,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACrC,mCAAmC;IACrC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,2BAA2B;IAC7E,qBAAqB,EACnB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,iCAAiC;IAC1E,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,2BAA2B;IAC7E,oBAAoB,EAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,iCAAiC;IAC1E,gBAAgB,EACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,4BAA4B;IAChE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB;CACjE,CAAC"}
@@ -4,11 +4,7 @@ export declare const rabbitmqConfig: {
4
4
  user: string;
5
5
  password: string;
6
6
  vhost: string;
7
- authQueue: string;
8
- userMgmtQueue: string;
9
- communicationQueue: string;
10
- mediaQueue: string;
11
- phuCuongPlusQueue: string;
7
+ queueName: string;
12
8
  eventsExchange: string;
13
9
  readonly url: string;
14
10
  };
@@ -6,12 +6,8 @@ exports.rabbitmqConfig = {
6
6
  port: parseInt(process.env.RABBITMQ_PORT, 10) || 5672,
7
7
  user: process.env.RABBITMQ_USER || "admin",
8
8
  password: process.env.RABBITMQ_PASSWORD || "admin123",
9
- vhost: process.env.RABBITMQ_VHOST || "/erp",
10
- authQueue: process.env.AUTH_QUEUE || "auth_queue",
11
- userMgmtQueue: process.env.USER_MGMT_QUEUE || "user_mgmt_queue",
12
- communicationQueue: process.env.COMMUNICATION_QUEUE || "communication_queue",
13
- mediaQueue: process.env.MEDIA_QUEUE || "media_queue",
14
- phuCuongPlusQueue: process.env.PHU_CUONG_PLUS_QUEUE || "phu_cuong_plus_queue",
9
+ vhost: process.env.RABBITMQ_VHOST || "/",
10
+ queueName: process.env.RABBITMQ_QUEUE_NAME || "queue_name",
15
11
  eventsExchange: process.env.RABBITMQ_EVENTS_EXCHANGE || "events_exchange",
16
12
  get url() {
17
13
  return `amqp://${this.user}:${this.password}@${this.host}:${this.port}/${encodeURIComponent(this.vhost)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq.config.js","sourceRoot":"","sources":["../../src/config/rabbitmq.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU;IAC7C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,IAAI;IACrD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;IAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,UAAU;IACrD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM;IAC3C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY;IACjD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB;IAC/D,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,qBAAqB;IAC5E,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa;IACpD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sBAAsB;IAC7E,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,iBAAiB;IACzE,IAAI,GAAG;QACL,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IACtD,IAAI,CAAC,IACP,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvC,CAAC;CACF,CAAC;AAMW,QAAA,qBAAqB,GAAG;IAKnC,uBAAuB,EAAE,yBAAyB;IAMlD,iBAAiB,EAAE,mBAAmB;IAMtC,mBAAmB,EAAE,qBAAqB;IAM1C,oBAAoB,EAAE,sBAAsB;IAM5C,oBAAoB,EAAE,sBAAsB;IAM5C,oBAAoB,EAAE,sBAAsB;CACpC,CAAC"}
1
+ {"version":3,"file":"rabbitmq.config.js","sourceRoot":"","sources":["../../src/config/rabbitmq.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU;IAC7C,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,IAAI;IACrD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;IAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,UAAU;IACrD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG;IACxC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,YAAY;IAC1D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,iBAAiB;IACzE,IAAI,GAAG;QACL,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IACtD,IAAI,CAAC,IACP,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvC,CAAC;CACF,CAAC;AAMW,QAAA,qBAAqB,GAAG;IAKnC,uBAAuB,EAAE,yBAAyB;IAMlD,iBAAiB,EAAE,mBAAmB;IAMtC,mBAAmB,EAAE,qBAAqB;IAM1C,oBAAoB,EAAE,sBAAsB;IAM5C,oBAAoB,EAAE,sBAAsB;IAM5C,oBAAoB,EAAE,sBAAsB;CACpC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const redisCacheConfig: {
2
+ host: string;
3
+ port: number;
4
+ password: string;
5
+ db: number;
6
+ retryDelayOnFailover: number;
7
+ enableReadyCheck: boolean;
8
+ maxRetriesPerRequest: any;
9
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redisCacheConfig = void 0;
4
+ exports.redisCacheConfig = {
5
+ host: process.env.REDIS_CACHE_HOST || "redis-shared",
6
+ port: parseInt(process.env.REDIS_CACHE_PORT || "6379"),
7
+ password: process.env.REDIS_CACHE_PASSWORD || undefined,
8
+ db: parseInt(process.env.REDIS_CACHE_DB || "0"),
9
+ retryDelayOnFailover: 100,
10
+ enableReadyCheck: false,
11
+ maxRetriesPerRequest: null,
12
+ };
13
+ //# sourceMappingURL=redis-cache.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-cache.config.js","sourceRoot":"","sources":["../../src/config/redis-cache.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,cAAc;IACpD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC;IACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS;IACvD,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC;IAC/C,oBAAoB,EAAE,GAAG;IACzB,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.redisConfig = void 0;
4
4
  exports.redisConfig = {
5
- host: process.env.SHARED_REDIS_HOST || "localhost",
5
+ host: process.env.SHARED_REDIS_HOST || "redis-shared",
6
6
  port: parseInt(process.env.SHARED_REDIS_PORT || "6379"),
7
7
  password: process.env.SHARED_REDIS_PASSWORD || undefined,
8
8
  db: parseInt(process.env.SHARED_REDIS_DB || "0"),
@@ -1 +1 @@
1
- {"version":3,"file":"redis.config.js","sourceRoot":"","sources":["../../src/config/redis.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,WAAW;IAClD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC;IACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;IACxD,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC;IAChD,oBAAoB,EAAE,GAAG;IACzB,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
1
+ {"version":3,"file":"redis.config.js","sourceRoot":"","sources":["../../src/config/redis.config.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,cAAc;IACrD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC;IACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;IACxD,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC;IAChD,oBAAoB,EAAE,GAAG;IACzB,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
@@ -58,7 +58,6 @@ export declare const MESSAGES: {
58
58
  readonly EMAIL_ALREADY_EXISTS: "Email đã tồn tại";
59
59
  readonly AUTHENTICATION_FAILED: "Xác thực thất bại";
60
60
  readonly INTERNAL_SERVER_ERROR: "Lỗi hệ thống";
61
- readonly USER_NOT_FOUND_IN_GOOGLE_OAUTH: "Không tìm thấy người dùng trong dữ liệu Google OAuth";
62
61
  };
63
62
  readonly EMAIL_VERIFICATION: {
64
63
  readonly INVALID_OR_EXPIRED_TOKEN: "Token xác thực email không hợp lệ hoặc đã hết hạn";
@@ -87,10 +86,6 @@ export declare const MESSAGES: {
87
86
  readonly METHODS_RETRIEVED_SUCCESS: "Lấy danh sách phương thức xác thực 2 bước thành công";
88
87
  readonly METHOD_REMOVED_SUCCESS: "Xóa phương thức xác thực 2 bước thành công";
89
88
  };
90
- readonly GOOGLE_OAUTH: {
91
- readonly REDIRECT_TO_LINK_ACCOUNT: "Chuyển hướng đến Google OAuth để liên kết tài khoản";
92
- readonly NO_EMAIL_IN_PROFILE: "Không tìm thấy email trong hồ sơ Google";
93
- };
94
89
  readonly JWT: {
95
90
  readonly INVALID_TOKEN_SIGNATURE: "Chữ ký token không hợp lệ";
96
91
  readonly TOKEN_VALIDATION_FAILED: "Xác thực token thất bại";
@@ -61,7 +61,6 @@ exports.MESSAGES = {
61
61
  EMAIL_ALREADY_EXISTS: "Email đã tồn tại",
62
62
  AUTHENTICATION_FAILED: "Xác thực thất bại",
63
63
  INTERNAL_SERVER_ERROR: "Lỗi hệ thống",
64
- USER_NOT_FOUND_IN_GOOGLE_OAUTH: "Không tìm thấy người dùng trong dữ liệu Google OAuth",
65
64
  },
66
65
  EMAIL_VERIFICATION: {
67
66
  INVALID_OR_EXPIRED_TOKEN: "Token xác thực email không hợp lệ hoặc đã hết hạn",
@@ -90,10 +89,6 @@ exports.MESSAGES = {
90
89
  METHODS_RETRIEVED_SUCCESS: "Lấy danh sách phương thức xác thực 2 bước thành công",
91
90
  METHOD_REMOVED_SUCCESS: "Xóa phương thức xác thực 2 bước thành công",
92
91
  },
93
- GOOGLE_OAUTH: {
94
- REDIRECT_TO_LINK_ACCOUNT: "Chuyển hướng đến Google OAuth để liên kết tài khoản",
95
- NO_EMAIL_IN_PROFILE: "Không tìm thấy email trong hồ sơ Google",
96
- },
97
92
  JWT: {
98
93
  INVALID_TOKEN_SIGNATURE: "Chữ ký token không hợp lệ",
99
94
  TOKEN_VALIDATION_FAILED: "Xác thực token thất bại",
@@ -1 +1 @@
1
- {"version":3,"file":"messages.constants.js","sourceRoot":"","sources":["../../src/constants/messages.constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.constants.js","sourceRoot":"","sources":["../../src/constants/messages.constants.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,9 @@ const request_info_service_1 = require("./services/request-info.service");
16
16
  const jwt_service_1 = require("./services/jwt.service");
17
17
  const session_service_1 = require("./services/session.service");
18
18
  const redis_service_1 = require("./services/redis.service");
19
+ const redis_cache_service_1 = require("./services/redis-cache.service");
19
20
  const rabbitmq_publisher_service_1 = require("./services/rabbitmq-publisher.service");
21
+ const repository_wrapper_service_1 = require("./services/repository-wrapper.service");
20
22
  const jwt_strategy_1 = require("./strategies/jwt.strategy");
21
23
  const jwt_auth_guard_1 = require("./guards/jwt-auth.guard");
22
24
  const internal_auth_guard_1 = require("./guards/internal-auth.guard");
@@ -42,10 +44,12 @@ exports.CoreModule = CoreModule = __decorate([
42
44
  ],
43
45
  providers: [
44
46
  redis_service_1.RedisService,
47
+ redis_cache_service_1.RedisCacheService,
45
48
  request_info_service_1.RequestInfoService,
46
49
  jwt_service_1.CoreJwtService,
47
50
  session_service_1.SessionService,
48
51
  rabbitmq_publisher_service_1.RabbitMQPublisher,
52
+ repository_wrapper_service_1.RepositoryWrapperService,
49
53
  jwt_strategy_1.JwtStrategy,
50
54
  jwt_auth_guard_1.JwtAuthGuard,
51
55
  internal_auth_guard_1.InternalAuthGuard,
@@ -61,7 +65,9 @@ exports.CoreModule = CoreModule = __decorate([
61
65
  jwt_service_1.CoreJwtService,
62
66
  session_service_1.SessionService,
63
67
  redis_service_1.RedisService,
68
+ redis_cache_service_1.RedisCacheService,
64
69
  rabbitmq_publisher_service_1.RabbitMQPublisher,
70
+ repository_wrapper_service_1.RepositoryWrapperService,
65
71
  jwt_strategy_1.JwtStrategy,
66
72
  jwt_auth_guard_1.JwtAuthGuard,
67
73
  internal_auth_guard_1.InternalAuthGuard,
@@ -1 +1 @@
1
- {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../src/core/core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,+CAAkD;AAClD,qCAAwC;AACxC,uCAA+C;AAC/C,mDAA+C;AAG/C,8EAAyE;AACzE,4DAA4D;AAC5D,oEAAgE;AAChE,gEAA4D;AAC5D,0FAA8E;AAG9E,gEAA4D;AAG5D,gEAA2D;AAC3D,0EAAqE;AAGrE,gGAA2F;AAG3F,yEAAqE;AAqD9D,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,4BAAY;YACZ,yCAAkB;YAClB,4BAAc;YACd,gCAAc;YACd,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
+ {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../src/core/core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,+CAAkD;AAClD,qCAAwC;AACxC,uCAA+C;AAC/C,mDAA+C;AAG/C,8EAAyE;AACzE,4DAA4D;AAC5D,oEAAgE;AAChE,gEAA4D;AAC5D,4EAAuE;AACvE,0FAA8E;AAC9E,0FAAqF;AAGrF,gEAA4D;AAG5D,gEAA2D;AAC3D,0EAAqE;AAGrE,gGAA2F;AAG3F,yEAAqE;AAyD9D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAvDtB,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,4BAAY;YACZ,uCAAiB;YACjB,yCAAkB;YAClB,4BAAc;YACd,gCAAc;YACd,8CAAiB;YACjB,qDAAwB;YAExB,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,uCAAiB;YACjB,8CAAiB;YACjB,qDAAwB;YAExB,0BAAW;YAEX,6BAAY;YACZ,uCAAiB;YAEjB,uDAAyB;SAC1B;KACF,CAAC;GACW,UAAU,CAAG"}
@@ -1,9 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CurrentUser = void 0;
4
+ const messages_constants_1 = require("../../constants/messages.constants");
4
5
  const common_1 = require("@nestjs/common");
5
6
  exports.CurrentUser = (0, common_1.createParamDecorator)((data, ctx) => {
6
7
  const request = ctx.switchToHttp().getRequest();
7
- return request.user;
8
+ const user = request.user;
9
+ if (!user) {
10
+ throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.AUTH.INVALID_TOKEN);
11
+ }
12
+ return {
13
+ companyId: parseInt(user.companyId || "0"),
14
+ uuid: user.uuid || "",
15
+ userId: parseInt(user.userId || "0"),
16
+ orgUnitId: parseInt(user.orgUnitId || "0"),
17
+ email: user.email || "",
18
+ fullName: user.fullName || "",
19
+ employeeCode: user.employeeCode || "",
20
+ avatar: user.avatar || "",
21
+ dataScope: user.dataScope || "",
22
+ permissions: user.permissions || [],
23
+ };
8
24
  });
9
25
  //# sourceMappingURL=current-user.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"current-user.decorator.js","sourceRoot":"","sources":["../../../src/core/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
+ {"version":3,"file":"current-user.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/current-user.decorator.ts"],"names":[],"mappings":";;;AAAA,sEAAyD;AAEzD,2CAIwB;AAEX,QAAA,WAAW,GAAG,IAAA,6BAAoB,EAC7C,CAAC,IAAa,EAAE,GAAqB,EAAkB,EAAE;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;QAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;QACpC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -15,3 +15,15 @@ export declare class PaginationResponseDto<T> {
15
15
  data: T[];
16
16
  meta: PaginationMetaDto;
17
17
  }
18
+ export declare class FindAllWithFiltersDto extends PaginationDto {
19
+ filters?: Record<string, string[]>;
20
+ }
21
+ export interface FilterValueDto {
22
+ value: string | number;
23
+ label: string;
24
+ count: number;
25
+ }
26
+ export interface GetFilterValuesDto extends PaginationDto {
27
+ column: string;
28
+ search?: string;
29
+ }
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PaginationResponseDto = exports.PaginationMetaDto = exports.PaginationDto = void 0;
12
+ exports.FindAllWithFiltersDto = exports.PaginationResponseDto = exports.PaginationMetaDto = exports.PaginationDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const messages_constants_1 = require("../../constants/messages.constants");
@@ -58,4 +58,28 @@ exports.PaginationMetaDto = PaginationMetaDto;
58
58
  class PaginationResponseDto {
59
59
  }
60
60
  exports.PaginationResponseDto = PaginationResponseDto;
61
+ class FindAllWithFiltersDto extends PaginationDto {
62
+ }
63
+ exports.FindAllWithFiltersDto = FindAllWithFiltersDto;
64
+ __decorate([
65
+ (0, class_validator_1.IsOptional)(),
66
+ (0, class_transformer_1.Transform)(({ value }) => {
67
+ if (!value)
68
+ return undefined;
69
+ if (typeof value === "object" && value !== null) {
70
+ const result = {};
71
+ Object.keys(value).forEach((key) => {
72
+ if (Array.isArray(value[key])) {
73
+ result[key] = value[key];
74
+ }
75
+ else if (value[key] !== undefined && value[key] !== null) {
76
+ result[key] = [String(value[key])];
77
+ }
78
+ });
79
+ return Object.keys(result).length > 0 ? result : undefined;
80
+ }
81
+ return undefined;
82
+ }),
83
+ __metadata("design:type", Object)
84
+ ], FindAllWithFiltersDto.prototype, "filters", void 0);
61
85
  //# sourceMappingURL=pagination.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.dto.js","sourceRoot":"","sources":["../../../src/core/dtos/pagination.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AACzB,yDAAoD;AACpD,sEAAyD;AAEzD,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
+ {"version":3,"file":"pagination.dto.js","sourceRoot":"","sources":["../../../src/core/dtos/pagination.dto.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export declare abstract class BaseEntity {
2
2
  id: number;
3
+ companyId: number;
3
4
  searchKeyword: string;
4
5
  createdOrg: number;
5
6
  createdBy: number;
@@ -18,6 +18,10 @@ __decorate([
18
18
  (0, typeorm_1.PrimaryGeneratedColumn)({ type: "bigint" }),
19
19
  __metadata("design:type", Number)
20
20
  ], BaseEntity.prototype, "id", void 0);
21
+ __decorate([
22
+ (0, typeorm_1.Column)({ name: "company_id", type: "bigint" }),
23
+ __metadata("design:type", Number)
24
+ ], BaseEntity.prototype, "companyId", void 0);
21
25
  __decorate([
22
26
  (0, typeorm_1.Column)({ name: "search_keyword", type: "text", nullable: true }),
23
27
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/core/entities/base.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAMiB;AAEjB,MAAsB,UAAU;CA2B/B;AA3BD,gCA2BC;AAzBC;IADC,IAAA,gCAAsB,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;sCAChC;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC3C;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC7C;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7C;AAGlB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;6CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC9C,IAAI;6CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC9C,IAAI;6CAAC"}
1
+ {"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/core/entities/base.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAMiB;AAEjB,MAAsB,UAAU;CA8B/B;AA9BD,gCA8BC;AA5BC;IADC,IAAA,gCAAsB,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;sCAChC;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;6CAC7B;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC3C;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC7C;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC7C;AAGlB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;6CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC9C,IAAI;6CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC9C,IAAI;6CAAC"}
@@ -35,13 +35,12 @@ let JwtAuthGuard = JwtAuthGuard_1 = class JwtAuthGuard extends (0, passport_1.Au
35
35
  const request = context.switchToHttp().getRequest();
36
36
  const tokens = cookie_service_1.CookieService.extractTokensFromCookie(request);
37
37
  if (!tokens?.accessToken) {
38
- this.logger.warn(`[JwtAuthGuard] No access token found in cookies for ${request.method} ${request.path}`);
39
38
  throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.AUTH.NO_TOKEN);
40
39
  }
41
- this.logger.log(`[JwtAuthGuard] Extracted token: ${tokens.accessToken.substring(0, 20)}...`);
40
+ this.logger.log(`Access token: ${tokens.accessToken}`);
42
41
  const currentUser = await this.coreJwtService.getCurrentUser(tokens.accessToken);
42
+ this.logger.log(`Current user: ${JSON.stringify(currentUser)}`);
43
43
  if (!currentUser) {
44
- this.logger.warn(`[JwtAuthGuard] Failed to get current user from token`);
45
44
  throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.AUTH.INVALID_TOKEN);
46
45
  }
47
46
  request.user = currentUser;
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../src/core/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAKwB;AACxB,+CAA6C;AAC7C,uCAAyC;AACzC,4DAA4D;AAC5D,kEAA8D;AAC9D,sEAAyD;AACzD,wEAAkE;AAG3D,IAAM,YAAY,oBAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAGhD,YACU,SAAoB,EACpB,cAA8B;QAEtC,KAAK,EAAE,CAAC;QAHA,cAAS,GAAT,SAAS,CAAW;QACpB,mBAAc,GAAd,cAAc,CAAgB;QAJvB,WAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAOxD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,gCAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,8BAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,uDAAuD,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CACxF,CAAC;YACF,MAAM,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,mCAAmC,MAAM,CAAC,WAAW,CAAC,SAAS,CAC7D,CAAC,EACD,EAAE,CACH,KAAK,CACP,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC1D,MAAM,CAAC,WAAW,CACnB,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACzE,MAAM,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,GAAQ,EAAE,IAAS,EAAE,IAAS;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,IAAI;YAAE,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAvDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAKU,gBAAS;QACJ,4BAAc;GAL7B,YAAY,CAuDxB"}
1
+ {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../src/core/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAKwB;AACxB,+CAA6C;AAC7C,uCAAyC;AACzC,4DAA4D;AAC5D,kEAA8D;AAC9D,sEAAyD;AACzD,wEAAkE;AAG3D,IAAM,YAAY,oBAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAGhD,YACU,SAAoB,EACpB,cAA8B;QAEtC,KAAK,EAAE,CAAC;QAHA,cAAS,GAAT,SAAS,CAAW;QACpB,mBAAc,GAAd,cAAc,CAAgB;QAJvB,WAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAOxD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,gCAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,8BAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC1D,MAAM,CAAC,WAAW,CACnB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,GAAQ,EAAE,IAAS,EAAE,IAAS;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,IAAI;YAAE,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA9CY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAKU,gBAAS;QACJ,4BAAc;GAL7B,YAAY,CA8CxB"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from "@nestjs/common";
2
+ import { Type } from "@nestjs/common";
3
+ export declare class TypeOrmFilterModule {
4
+ static forFeature(entities: Type<any>[]): DynamicModule;
5
+ }
@@ -0,0 +1,41 @@
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 TypeOrmFilterModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.TypeOrmFilterModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const typeorm_1 = require("@nestjs/typeorm");
13
+ const repository_wrapper_service_1 = require("../services/repository-wrapper.service");
14
+ const typeorm_2 = require("@nestjs/typeorm");
15
+ let TypeOrmFilterModule = TypeOrmFilterModule_1 = class TypeOrmFilterModule {
16
+ static forFeature(entities) {
17
+ const typeOrmModule = typeorm_1.TypeOrmModule.forFeature(entities);
18
+ const wrappedProviders = entities.map((entity) => {
19
+ const repositoryToken = (0, typeorm_1.getRepositoryToken)(entity);
20
+ return {
21
+ provide: repositoryToken,
22
+ useFactory: (dataSource, wrapperService) => {
23
+ const originalRepository = dataSource.getRepository(entity);
24
+ return wrapperService.wrap(originalRepository);
25
+ },
26
+ inject: [(0, typeorm_2.getDataSourceToken)(), repository_wrapper_service_1.RepositoryWrapperService],
27
+ };
28
+ });
29
+ return {
30
+ module: TypeOrmFilterModule_1,
31
+ imports: [typeOrmModule],
32
+ providers: [repository_wrapper_service_1.RepositoryWrapperService, ...wrappedProviders],
33
+ exports: wrappedProviders,
34
+ };
35
+ }
36
+ };
37
+ exports.TypeOrmFilterModule = TypeOrmFilterModule;
38
+ exports.TypeOrmFilterModule = TypeOrmFilterModule = TypeOrmFilterModule_1 = __decorate([
39
+ (0, common_1.Module)({})
40
+ ], TypeOrmFilterModule);
41
+ //# sourceMappingURL=typeorm-filter.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm-filter.module.js","sourceRoot":"","sources":["../../../src/core/modules/typeorm-filter.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAoE;AAGpE,0FAAqF;AACrF,6CAAqD;AAa9C,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAC9B,MAAM,CAAC,UAAU,CAAC,QAAqB;QAErC,MAAM,aAAa,GAAG,uBAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAGzD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,MAAM,eAAe,GAAG,IAAA,4BAAkB,EAAC,MAAM,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,CACV,UAAsB,EACtB,cAAwC,EACxC,EAAE;oBAEF,MAAM,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAE5D,OAAO,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,EAAE,CAAC,IAAA,4BAAkB,GAAE,EAAE,qDAAwB,CAAC;aACzD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,SAAS,EAAE,CAAC,qDAAwB,EAAE,GAAG,gBAAgB,CAAC;YAC1D,OAAO,EAAE,gBAAgB;SAC1B,CAAC;IACJ,CAAC;CACF,CAAA;AA/BY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,mBAAmB,CA+B/B"}
@@ -1,9 +1,17 @@
1
1
  import { Repository, SelectQueryBuilder } from "typeorm";
2
- import { PaginationDto, PaginationResponseDto } from "../dtos/pagination.dto";
2
+ import { PaginationDto, PaginationResponseDto, FilterValueDto, GetFilterValuesDto } from "../dtos/pagination.dto";
3
3
  export declare abstract class BasePaginationService<T> {
4
4
  protected repository: Repository<T>;
5
5
  protected constructor(repository: Repository<T>);
6
+ protected getDateColumns(): string[];
7
+ protected getDuplicateErrorMessage(): string;
8
+ protected getQueryAlias(): string;
9
+ protected getDeletedAtField(): string | null;
6
10
  protected paginate<TEntity>(queryBuilder: SelectQueryBuilder<TEntity>, paginationDto: PaginationDto): Promise<PaginationResponseDto<TEntity>>;
7
11
  protected buildSearchQuery(queryBuilder: SelectQueryBuilder<T>, searchFields: string[], search?: string): SelectQueryBuilder<T>;
8
12
  protected buildOrderQuery(queryBuilder: SelectQueryBuilder<T>, sortBy?: string, sortType?: "ASC" | "DESC", fieldMapping?: Record<string, string>): SelectQueryBuilder<T>;
13
+ protected isDateColumn(column: string): boolean;
14
+ protected handleDuplicateError(error: any, message?: string): never;
15
+ protected buildColumnFilters(queryBuilder: SelectQueryBuilder<T>, filters: Record<string, string[]>, fieldMapping: Record<string, string>, alias?: string): SelectQueryBuilder<T>;
16
+ protected getFilterValuesInternal(dto: GetFilterValuesDto, columnMapping: Record<string, string>, fieldMapping?: Record<string, string>): Promise<PaginationResponseDto<FilterValueDto>>;
9
17
  }