@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,42 +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.InternalAuthGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const jwt_service_1 = require("../services/jwt.service");
15
- const messages_constants_1 = require("../constants/messages.constants");
16
- let InternalAuthGuard = class InternalAuthGuard {
17
- constructor(coreJwtService) {
18
- this.coreJwtService = coreJwtService;
19
- }
20
- canActivate(context) {
21
- const request = context.switchToHttp().getRequest();
22
- const authHeader = request.headers.authorization;
23
- if (!authHeader || !authHeader.startsWith("Bearer ")) {
24
- throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.INTERNAL_AUTH.MISSING_OR_INVALID_HEADER);
25
- }
26
- const token = authHeader.split(" ")[1];
27
- if (!token) {
28
- throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.INTERNAL_AUTH.MISSING_INTERNAL_TOKEN);
29
- }
30
- const payload = this.coreJwtService.verifyInternalToken(token);
31
- if (!payload || !payload.service) {
32
- throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.INTERNAL_AUTH.INVALID_OR_EXPIRED_INTERNAL_TOKEN);
33
- }
34
- return true;
35
- }
36
- };
37
- exports.InternalAuthGuard = InternalAuthGuard;
38
- exports.InternalAuthGuard = InternalAuthGuard = __decorate([
39
- (0, common_1.Injectable)(),
40
- __metadata("design:paramtypes", [jwt_service_1.CoreJwtService])
41
- ], InternalAuthGuard);
42
- //# sourceMappingURL=internal-auth.guard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-auth.guard.js","sourceRoot":"","sources":["../../src/guards/internal-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,yDAAyD;AACzD,wEAA2D;AAGpD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,WAAW,CAAC,OAAyB;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,8BAAqB,CAC7B,6BAAQ,CAAC,aAAa,CAAC,yBAAyB,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,CAC7B,6BAAQ,CAAC,aAAa,CAAC,sBAAsB,CAC9C,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAE/D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,8BAAqB,CAC7B,6BAAQ,CAAC,aAAa,CAAC,iCAAiC,CACzD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA/BY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEkC,4BAAc;GADhD,iBAAiB,CA+B7B"}
@@ -1,12 +0,0 @@
1
- import { ExecutionContext } from "@nestjs/common";
2
- import { Reflector } from "@nestjs/core";
3
- import { CoreJwtService } from "../services/jwt.service";
4
- declare const JwtAuthGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
5
- export declare class JwtAuthGuard extends JwtAuthGuard_base {
6
- private reflector;
7
- private coreJwtService;
8
- constructor(reflector: Reflector, coreJwtService: CoreJwtService);
9
- canActivate(context: ExecutionContext): Promise<boolean>;
10
- handleRequest(err: any, user: any, info: any): any;
11
- }
12
- export {};
@@ -1,56 +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.JwtAuthGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const passport_1 = require("@nestjs/passport");
15
- const core_1 = require("@nestjs/core");
16
- const jwt_service_1 = require("../services/jwt.service");
17
- const cookie_service_1 = require("../services/cookie.service");
18
- const messages_constants_1 = require("../constants/messages.constants");
19
- let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)("jwt") {
20
- constructor(reflector, coreJwtService) {
21
- super();
22
- this.reflector = reflector;
23
- this.coreJwtService = coreJwtService;
24
- }
25
- async canActivate(context) {
26
- const isPublic = this.reflector.getAllAndOverride("isPublic", [
27
- context.getHandler(),
28
- context.getClass(),
29
- ]);
30
- if (isPublic)
31
- return true;
32
- const request = context.switchToHttp().getRequest();
33
- const tokens = cookie_service_1.CookieService.extractTokensFromCookie(request);
34
- if (!tokens?.accessToken) {
35
- throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.AUTH.NO_TOKEN);
36
- }
37
- const currentUser = await this.coreJwtService.getCurrentUser(tokens.accessToken);
38
- if (!currentUser) {
39
- throw new common_1.UnauthorizedException(messages_constants_1.MESSAGES.AUTH.INVALID_TOKEN);
40
- }
41
- request.user = currentUser;
42
- return true;
43
- }
44
- handleRequest(err, user, info) {
45
- if (err || !user)
46
- new common_1.UnauthorizedException(messages_constants_1.MESSAGES.AUTH.INVALID_TOKEN);
47
- return user;
48
- }
49
- };
50
- exports.JwtAuthGuard = JwtAuthGuard;
51
- exports.JwtAuthGuard = JwtAuthGuard = __decorate([
52
- (0, common_1.Injectable)(),
53
- __metadata("design:paramtypes", [core_1.Reflector,
54
- jwt_service_1.CoreJwtService])
55
- ], JwtAuthGuard);
56
- //# sourceMappingURL=jwt-auth.guard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../src/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAIwB;AACxB,+CAA6C;AAC7C,uCAAyC;AACzC,yDAAyD;AACzD,+DAA2D;AAC3D,wEAA2D;AAGpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAChD,YACU,SAAoB,EACpB,cAA8B;QAEtC,KAAK,EAAE,CAAC;QAHA,cAAS,GAAT,SAAS,CAAW;QACpB,mBAAc,GAAd,cAAc,CAAgB;IAGxC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,UAAU,EAAE;YACrE,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,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC1D,MAAM,CAAC,WAAW,CACnB,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAGD,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,GAAQ,EAAE,IAAS,EAAE,IAAS;QAC1C,IAAI,GAAG,IAAI,CAAC,IAAI;YAAE,IAAI,8BAAqB,CAAC,6BAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1CY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGU,gBAAS;QACJ,4BAAc;GAH7B,YAAY,CA0CxB"}
@@ -1,9 +0,0 @@
1
- import { CanActivate, ExecutionContext } from "@nestjs/common";
2
- import { Reflector } from "@nestjs/core";
3
- import { CoreJwtService } from "../services/jwt.service";
4
- export declare class PermissionGuard implements CanActivate {
5
- private reflector;
6
- private coreJwtService;
7
- constructor(reflector: Reflector, coreJwtService: CoreJwtService);
8
- canActivate(context: ExecutionContext): Promise<boolean>;
9
- }
@@ -1,71 +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.PermissionGuard = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- const require_permissions_decorator_1 = require("../decorators/require-permissions.decorator");
16
- const public_decorator_1 = require("../decorators/public.decorator");
17
- const jwt_service_1 = require("../services/jwt.service");
18
- const cookie_service_1 = require("../services/cookie.service");
19
- const messages_constants_1 = require("../constants/messages.constants");
20
- let PermissionGuard = class PermissionGuard {
21
- constructor(reflector, coreJwtService) {
22
- this.reflector = reflector;
23
- this.coreJwtService = coreJwtService;
24
- }
25
- async canActivate(context) {
26
- const request = context.switchToHttp().getRequest();
27
- const isPublic = this.reflector.getAllAndOverride(public_decorator_1.IS_PUBLIC_KEY, [
28
- context.getHandler(),
29
- context.getClass(),
30
- ]);
31
- if (isPublic)
32
- return true;
33
- const tokens = cookie_service_1.CookieService.extractTokensFromCookie(request);
34
- if (!tokens)
35
- throw new common_1.ForbiddenException(messages_constants_1.MESSAGES.AUTH.NO_TOKEN);
36
- try {
37
- const currentUser = await this.coreJwtService.getCurrentUser(tokens.accessToken);
38
- if (!currentUser)
39
- throw new common_1.ForbiddenException(messages_constants_1.MESSAGES.AUTH.INVALID_TOKEN);
40
- const userPermissions = currentUser.permissions || [];
41
- const requiredPermissions = this.reflector.getAllAndOverride(require_permissions_decorator_1.PERMISSIONS_KEY, [context.getHandler(), context.getClass()]);
42
- const anyPermissions = this.reflector.getAllAndOverride(require_permissions_decorator_1.ANY_PERMISSIONS_KEY, [context.getHandler(), context.getClass()]);
43
- if ((!requiredPermissions || requiredPermissions.length === 0) &&
44
- (!anyPermissions || anyPermissions.length === 0))
45
- return true;
46
- if (requiredPermissions && requiredPermissions.length > 0) {
47
- const hasAllPermissions = requiredPermissions.every((permission) => userPermissions.includes(permission));
48
- if (!hasAllPermissions)
49
- throw new common_1.ForbiddenException(messages_constants_1.MESSAGES.AUTH.INSUFFICIENT_PERMISSIONS);
50
- }
51
- if (anyPermissions && anyPermissions.length > 0) {
52
- const hasAnyPermission = anyPermissions.some((permission) => userPermissions.includes(permission));
53
- if (!hasAnyPermission)
54
- throw new common_1.ForbiddenException(messages_constants_1.MESSAGES.AUTH.INSUFFICIENT_PERMISSIONS);
55
- }
56
- return true;
57
- }
58
- catch (error) {
59
- if (error instanceof common_1.ForbiddenException)
60
- throw error;
61
- throw new common_1.ForbiddenException(messages_constants_1.MESSAGES.AUTH.INVALID_TOKEN);
62
- }
63
- }
64
- };
65
- exports.PermissionGuard = PermissionGuard;
66
- exports.PermissionGuard = PermissionGuard = __decorate([
67
- (0, common_1.Injectable)(),
68
- __metadata("design:paramtypes", [core_1.Reflector,
69
- jwt_service_1.CoreJwtService])
70
- ], PermissionGuard);
71
- //# sourceMappingURL=permission.guard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../src/guards/permission.guard.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { NestInterceptor, ExecutionContext, CallHandler } from "@nestjs/common";
2
- import { Observable } from "rxjs";
3
- import { RequestInfoService } from "../services/request-info.service";
4
- export declare class RequestContextInterceptor implements NestInterceptor {
5
- private requestInfoService;
6
- constructor(requestInfoService: RequestInfoService);
7
- intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
8
- }
@@ -1,39 +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.RequestContextInterceptor = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const request_context_service_1 = require("../services/request-context.service");
15
- const request_info_service_1 = require("../services/request-info.service");
16
- let RequestContextInterceptor = class RequestContextInterceptor {
17
- constructor(requestInfoService) {
18
- this.requestInfoService = requestInfoService;
19
- }
20
- intercept(context, next) {
21
- const request = context.switchToHttp().getRequest();
22
- const user = request.user;
23
- const requestInfo = this.requestInfoService.getRequestInfo(request);
24
- const requestContext = {
25
- user,
26
- requestId: request.headers["x-request-id"] ||
27
- Math.random().toString(36).substring(7),
28
- ipAddress: requestInfo.ipAddress,
29
- userAgent: requestInfo.userAgent,
30
- };
31
- return request_context_service_1.RequestContextService.run(requestContext, () => next.handle());
32
- }
33
- };
34
- exports.RequestContextInterceptor = RequestContextInterceptor;
35
- exports.RequestContextInterceptor = RequestContextInterceptor = __decorate([
36
- (0, common_1.Injectable)(),
37
- __metadata("design:paramtypes", [request_info_service_1.RequestInfoService])
38
- ], RequestContextInterceptor);
39
- //# sourceMappingURL=request-context.interceptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-context.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/request-context.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AAExB,iFAA4E;AAC5E,2EAAsE;AAG/D,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAAoB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAE9D,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAG1B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAG;YACrB,IAAI;YACJ,SAAS,EACP,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC/B,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC;QAEF,OAAO,+CAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;CACF,CAAA;AArBY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;qCAE6B,yCAAkB;GAD/C,yBAAyB,CAqBrC"}
@@ -1,13 +0,0 @@
1
- import { Request, Response } from "express";
2
- export interface ExtractedTokensDto {
3
- accessToken?: string;
4
- refreshToken?: string;
5
- }
6
- export declare class CookieService {
7
- private static readonly COOKIE_NAME;
8
- private static readonly COOKIE_OPTIONS;
9
- static setAuthCookies(res: Response, accessToken: string, refreshToken: string, refreshTokenExpiresAt: Date): void;
10
- static clearAuthCookies(res: Response): void;
11
- static setRefreshedCookies(res: Response, accessToken: string, refreshToken: string, refreshTokenExpiresAt: Date): void;
12
- static extractTokensFromCookie(request: Request): ExtractedTokensDto | undefined;
13
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CookieService = void 0;
4
- const cookie_config_1 = require("../config/cookie.config");
5
- class CookieService {
6
- static setAuthCookies(res, accessToken, refreshToken, refreshTokenExpiresAt) {
7
- const authData = {
8
- accessToken,
9
- refreshToken,
10
- timestamp: Date.now(),
11
- refreshTokenExpiresAt: refreshTokenExpiresAt.getTime(),
12
- };
13
- const cookieMaxAge = refreshTokenExpiresAt.getTime() - Date.now();
14
- res.cookie(this.COOKIE_NAME, JSON.stringify(authData), {
15
- ...this.COOKIE_OPTIONS,
16
- maxAge: Math.max(cookieMaxAge, 0),
17
- });
18
- }
19
- static clearAuthCookies(res) {
20
- res.clearCookie(this.COOKIE_NAME, { path: "/" });
21
- }
22
- static setRefreshedCookies(res, accessToken, refreshToken, refreshTokenExpiresAt) {
23
- this.setAuthCookies(res, accessToken, refreshToken, refreshTokenExpiresAt);
24
- }
25
- static extractTokensFromCookie(request) {
26
- const authCookie = request.cookies?.[this.COOKIE_NAME];
27
- if (!authCookie)
28
- return undefined;
29
- try {
30
- const authData = JSON.parse(authCookie);
31
- return {
32
- accessToken: authData.accessToken,
33
- refreshToken: authData.refreshToken,
34
- };
35
- }
36
- catch (error) {
37
- console.error("Failed to parse auth cookie:", error);
38
- return undefined;
39
- }
40
- }
41
- }
42
- exports.CookieService = CookieService;
43
- CookieService.COOKIE_NAME = cookie_config_1.cookieConfig.cookieName;
44
- CookieService.COOKIE_OPTIONS = {
45
- httpOnly: true,
46
- secure: process.env.NODE_ENV === "production",
47
- sameSite: process.env.NODE_ENV === "production" ? "none" : "strict",
48
- path: "/",
49
- };
50
- //# sourceMappingURL=cookie.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookie.service.js","sourceRoot":"","sources":["../../src/services/cookie.service.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AAOvD,MAAa,aAAa;IAaxB,MAAM,CAAC,cAAc,CACnB,GAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,qBAA2B;QAE3B,MAAM,QAAQ,GAAG;YACf,WAAW;YACX,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,qBAAqB,EAAE,qBAAqB,CAAC,OAAO,EAAE;SACvD,CAAC;QAEF,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrD,GAAG,IAAI,CAAC,cAAc;YACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAKD,MAAM,CAAC,gBAAgB,CAAC,GAAa;QACnC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAKD,MAAM,CAAC,mBAAmB,CACxB,GAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,qBAA2B;QAE3B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAC5B,OAAgB;QAEhB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;;AAxEH,sCAyEC;AAxEyB,yBAAW,GAAG,4BAAY,CAAC,UAAU,CAAC;AAEtC,4BAAc,GAAG;IACvC,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAC7C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;IACnE,IAAI,EAAE,GAAG;CACD,CAAC"}
@@ -1,37 +0,0 @@
1
- import { JwtService } from "@nestjs/jwt";
2
- import { SessionService, CurrentUserDto } from "./session.service";
3
- export interface JwtTokenData {
4
- sub: string | number;
5
- sessionId?: string;
6
- email?: string;
7
- }
8
- export interface JwtValidationResult {
9
- isValid: boolean;
10
- payload?: JwtTokenData;
11
- error?: string;
12
- }
13
- export declare class CoreJwtService {
14
- private readonly jwtService;
15
- private readonly sessionService;
16
- constructor(jwtService: JwtService, sessionService: SessionService);
17
- createAccessToken(sessionData: CurrentUserDto): Promise<string>;
18
- createSimpleAccessToken(userId: string | number, email: string): string;
19
- decodeToken(token: string): JwtTokenData | null;
20
- verifyToken(token: string): JwtTokenData | null;
21
- validateTokenSignature(token: string): JwtValidationResult;
22
- isTokenSignatureValid(token: string): boolean;
23
- getUserIdFromToken(token: string): string | number | null;
24
- getSessionIdFromToken(token: string): string | null;
25
- deleteSessionFromToken(token: string): Promise<boolean>;
26
- extractTokenFromHeader(request: any): string | null;
27
- getTokenExpirationTime(token: string): number | null;
28
- isTokenExpired(token: string): boolean;
29
- createTokenPayload(userId: string | number, sessionId?: string, email?: string): JwtTokenData;
30
- signToken(payload: JwtTokenData): string;
31
- createInternalToken(service: string): string;
32
- verifyInternalToken(token: string): {
33
- service: string;
34
- } | null;
35
- getCurrentUser(accessToken: string): Promise<CurrentUserDto | null>;
36
- getEmailFromToken(token: string): string | null;
37
- }
@@ -1,187 +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.CoreJwtService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const jwt_1 = require("@nestjs/jwt");
15
- const session_service_1 = require("./session.service");
16
- const date_utils_1 = require("../utils/date.utils");
17
- const jwt_config_1 = require("../config/jwt.config");
18
- const internal_config_1 = require("../config/internal.config");
19
- const messages_constants_1 = require("../constants/messages.constants");
20
- let CoreJwtService = class CoreJwtService {
21
- constructor(jwtService, sessionService) {
22
- this.jwtService = jwtService;
23
- this.sessionService = sessionService;
24
- }
25
- async createAccessToken(sessionData) {
26
- const ttlSec = date_utils_1.DateUtils.parseExpirationTime(jwt_config_1.jwtConfig.expiresIn);
27
- const sessionId = await this.sessionService.createSession(sessionData, ttlSec);
28
- const payload = {
29
- sub: sessionData.userId,
30
- sessionId: sessionId,
31
- email: sessionData.email,
32
- };
33
- return this.jwtService.sign(payload);
34
- }
35
- createSimpleAccessToken(userId, email) {
36
- const payload = {
37
- sub: userId,
38
- email: email,
39
- };
40
- return this.jwtService.sign(payload);
41
- }
42
- decodeToken(token) {
43
- try {
44
- const payload = this.jwtService.decode(token);
45
- return payload;
46
- }
47
- catch (error) {
48
- return null;
49
- }
50
- }
51
- verifyToken(token) {
52
- try {
53
- const payload = this.jwtService.verify(token);
54
- return payload;
55
- }
56
- catch (error) {
57
- return null;
58
- }
59
- }
60
- validateTokenSignature(token) {
61
- try {
62
- const payload = this.verifyToken(token);
63
- if (!payload) {
64
- return {
65
- isValid: false,
66
- error: messages_constants_1.MESSAGES.JWT.INVALID_TOKEN_SIGNATURE,
67
- };
68
- }
69
- return {
70
- isValid: true,
71
- payload,
72
- };
73
- }
74
- catch (error) {
75
- return {
76
- isValid: false,
77
- error: messages_constants_1.MESSAGES.JWT.TOKEN_VALIDATION_FAILED,
78
- };
79
- }
80
- }
81
- isTokenSignatureValid(token) {
82
- const result = this.validateTokenSignature(token);
83
- return result.isValid;
84
- }
85
- getUserIdFromToken(token) {
86
- const payload = this.decodeToken(token);
87
- return payload?.sub || null;
88
- }
89
- getSessionIdFromToken(token) {
90
- const payload = this.decodeToken(token);
91
- return payload?.sessionId || null;
92
- }
93
- async deleteSessionFromToken(token) {
94
- const sessionId = this.getSessionIdFromToken(token);
95
- if (sessionId) {
96
- await this.sessionService.deleteSession(sessionId);
97
- return true;
98
- }
99
- return false;
100
- }
101
- extractTokenFromHeader(request) {
102
- try {
103
- const authHeader = request.headers?.authorization;
104
- if (!authHeader || !authHeader.startsWith("Bearer ")) {
105
- return null;
106
- }
107
- return authHeader.substring(7);
108
- }
109
- catch (error) {
110
- return null;
111
- }
112
- }
113
- getTokenExpirationTime(token) {
114
- try {
115
- const payload = this.decodeToken(token);
116
- if (!payload)
117
- return null;
118
- const decoded = this.jwtService.decode(token);
119
- if (!decoded?.exp)
120
- return null;
121
- const expiresIn = decoded.exp - Math.floor(Date.now() / 1000);
122
- return expiresIn > 0 ? expiresIn : null;
123
- }
124
- catch (error) {
125
- return null;
126
- }
127
- }
128
- isTokenExpired(token) {
129
- const expirationTime = this.getTokenExpirationTime(token);
130
- return expirationTime === null || expirationTime <= 0;
131
- }
132
- createTokenPayload(userId, sessionId, email) {
133
- const payload = {
134
- sub: userId,
135
- };
136
- if (sessionId) {
137
- payload.sessionId = sessionId;
138
- }
139
- if (email) {
140
- payload.email = email;
141
- }
142
- return payload;
143
- }
144
- signToken(payload) {
145
- return this.jwtService.sign(payload);
146
- }
147
- createInternalToken(service) {
148
- return this.jwtService.sign({ service }, {
149
- secret: internal_config_1.internalConfig.internalSecret,
150
- expiresIn: "1m",
151
- });
152
- }
153
- verifyInternalToken(token) {
154
- try {
155
- const payload = this.jwtService.verify(token, {
156
- secret: internal_config_1.internalConfig.internalSecret,
157
- });
158
- return payload;
159
- }
160
- catch (error) {
161
- return null;
162
- }
163
- }
164
- async getCurrentUser(accessToken) {
165
- try {
166
- const payload = this.decodeToken(accessToken);
167
- if (!payload?.sessionId)
168
- return null;
169
- const sessionData = await this.sessionService.getSession(payload.sessionId);
170
- return sessionData;
171
- }
172
- catch (error) {
173
- return null;
174
- }
175
- }
176
- getEmailFromToken(token) {
177
- const payload = this.decodeToken(token);
178
- return payload?.email || null;
179
- }
180
- };
181
- exports.CoreJwtService = CoreJwtService;
182
- exports.CoreJwtService = CoreJwtService = __decorate([
183
- (0, common_1.Injectable)(),
184
- __metadata("design:paramtypes", [jwt_1.JwtService,
185
- session_service_1.SessionService])
186
- ], CoreJwtService);
187
- //# sourceMappingURL=jwt.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../src/services/jwt.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAAyC;AACzC,uDAAmE;AACnE,oDAAgD;AAChD,qDAAiD;AACjD,+DAA2D;AAC3D,wEAA2D;AAepD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YACmB,UAAsB,EACtB,cAA8B;QAD9B,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAMJ,KAAK,CAAC,iBAAiB,CAAC,WAA2B;QACjD,MAAM,MAAM,GAAG,sBAAS,CAAC,mBAAmB,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACvD,WAAW,EACX,MAAM,CACP,CAAC;QACF,MAAM,OAAO,GAAiB;YAC5B,GAAG,EAAE,WAAW,CAAC,MAAM;YACvB,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAMD,uBAAuB,CAAC,MAAuB,EAAE,KAAa;QAC5D,MAAM,OAAO,GAAiB;YAC5B,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,KAAK;SACb,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAKD,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAiB,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAiB,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,6BAAQ,CAAC,GAAG,CAAC,uBAAuB;iBAC5C,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,6BAAQ,CAAC,GAAG,CAAC,uBAAuB;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,qBAAqB,CAAC,KAAa;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAKD,kBAAkB,CAAC,KAAa;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC;IAC9B,CAAC;IAKD,qBAAqB,CAAC,KAAa;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;IACpC,CAAC;IAKD,KAAK,CAAC,sBAAsB,CAAC,KAAa;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,sBAAsB,CAAC,OAAY;QACjC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC;YAClD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAG1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAQ,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,GAAG;gBAAE,OAAO,IAAI,CAAC;YAE/B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9D,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,cAAc,CAAC,KAAa;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,cAAc,KAAK,IAAI,IAAI,cAAc,IAAI,CAAC,CAAC;IACxD,CAAC;IAKD,kBAAkB,CAChB,MAAuB,EACvB,SAAkB,EAClB,KAAc;QAEd,MAAM,OAAO,GAAiB;YAC5B,GAAG,EAAE,MAAM;SACZ,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAKD,SAAS,CAAC,OAAqB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAMD,mBAAmB,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,EAAE,OAAO,EAAE,EACX;YACE,MAAM,EAAE,gCAAc,CAAC,cAAc;YACrC,SAAS,EAAE,IAAI;SAChB,CACF,CAAC;IACJ,CAAC;IAMD,mBAAmB,CAAC,KAAa;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC5C,MAAM,EAAE,gCAAc,CAAC,cAAc;aACtC,CAEA,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAOD,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,SAAS;gBAAE,OAAO,IAAI,CAAC;YAErC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACtD,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,iBAAiB,CAAC,KAAa;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;IAChC,CAAC;CACF,CAAA;AAzPY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAGoB,gBAAU;QACN,gCAAc;GAHtC,cAAc,CAyP1B"}
@@ -1,9 +0,0 @@
1
- import { OnModuleInit, OnModuleDestroy } from "@nestjs/common";
2
- export declare class RabbitMQPublisher implements OnModuleInit, OnModuleDestroy {
3
- private readonly logger;
4
- private channel;
5
- private connection;
6
- onModuleInit(): Promise<void>;
7
- publish(routingKey: string, message: any): Promise<void>;
8
- onModuleDestroy(): Promise<void>;
9
- }
@@ -1,57 +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 RabbitMQPublisher_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.RabbitMQPublisher = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const amqp = require("amqplib");
13
- const rabbitmq_config_1 = require("../config/rabbitmq.config");
14
- let RabbitMQPublisher = RabbitMQPublisher_1 = class RabbitMQPublisher {
15
- constructor() {
16
- this.logger = new common_1.Logger(RabbitMQPublisher_1.name);
17
- }
18
- async onModuleInit() {
19
- try {
20
- this.connection = await amqp.connect(rabbitmq_config_1.rabbitmqConfig.url);
21
- this.channel = await this.connection.createChannel();
22
- await this.channel.assertExchange(rabbitmq_config_1.rabbitmqConfig.eventsExchange, "topic", {
23
- durable: true,
24
- });
25
- this.logger.log("✅ RabbitMQ Publisher connected successfully");
26
- }
27
- catch (error) {
28
- this.logger.error("❌ Failed to connect to RabbitMQ:", error);
29
- }
30
- }
31
- async publish(routingKey, message) {
32
- try {
33
- const formattedMessage = {
34
- pattern: routingKey,
35
- data: message,
36
- };
37
- this.channel.publish(rabbitmq_config_1.rabbitmqConfig.eventsExchange, routingKey, Buffer.from(JSON.stringify(formattedMessage)), { persistent: true });
38
- this.logger.log(`📤 Published event: ${routingKey}`);
39
- }
40
- catch (error) {
41
- this.logger.error(`❌ Failed to publish event ${routingKey}:`, error);
42
- }
43
- }
44
- async onModuleDestroy() {
45
- if (this.channel) {
46
- await this.channel.close();
47
- }
48
- if (this.connection) {
49
- await this.connection.close();
50
- }
51
- }
52
- };
53
- exports.RabbitMQPublisher = RabbitMQPublisher;
54
- exports.RabbitMQPublisher = RabbitMQPublisher = RabbitMQPublisher_1 = __decorate([
55
- (0, common_1.Injectable)()
56
- ], RabbitMQPublisher);
57
- //# sourceMappingURL=rabbitmq-publisher.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rabbitmq-publisher.service.js","sourceRoot":"","sources":["../../src/services/rabbitmq-publisher.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAKwB;AACxB,gCAAgC;AAChC,+DAA2D;AAGpD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAAvB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAoD/D,CAAC;IAhDC,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gCAAc,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAGrD,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAC/B,gCAAc,CAAC,cAAc,EAC7B,OAAO,EACP;gBACE,OAAO,EAAE,IAAI;aACd,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAY;QAC5C,IAAI,CAAC;YAEH,MAAM,gBAAgB,GAAG;gBACvB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,OAAO;aACd,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,OAAO,CAClB,gCAAc,CAAC,cAAc,EAC7B,UAAU,EACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAC7C,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAA;AArDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAqD7B"}