@open-rlb/nestjs-amqp 2.0.2 → 2.0.4

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 (112) hide show
  1. package/README.md +6 -8
  2. package/common/errors.d.ts +2 -0
  3. package/common/errors.js +4 -1
  4. package/common/errors.js.map +1 -1
  5. package/index.d.ts +0 -1
  6. package/index.js +0 -1
  7. package/index.js.map +1 -1
  8. package/modules/acl/cache/acl-cache.service.d.ts +2 -2
  9. package/modules/acl/cache/acl-cache.service.js +6 -6
  10. package/modules/acl/cache/acl-cache.service.js.map +1 -1
  11. package/modules/acl/config/acl.config.d.ts +0 -1
  12. package/modules/acl/const.d.ts +5 -2
  13. package/modules/acl/const.js +5 -2
  14. package/modules/acl/const.js.map +1 -1
  15. package/modules/acl/models.d.ts +9 -0
  16. package/modules/acl/repository/acl-action.repository.d.ts +10 -0
  17. package/modules/acl/repository/acl-action.repository.js.map +1 -1
  18. package/modules/acl/repository/acl-grant.repository.d.ts +4 -1
  19. package/modules/acl/repository/acl-grant.repository.js.map +1 -1
  20. package/modules/acl/repository/acl-role.repository.d.ts +10 -0
  21. package/modules/acl/repository/acl-role.repository.js.map +1 -1
  22. package/modules/acl/services/acl-management.service.d.ts +8 -6
  23. package/modules/acl/services/acl-management.service.js +78 -48
  24. package/modules/acl/services/acl-management.service.js.map +1 -1
  25. package/modules/acl/services/acl.service.d.ts +11 -3
  26. package/modules/acl/services/acl.service.js +103 -11
  27. package/modules/acl/services/acl.service.js.map +1 -1
  28. package/modules/broker/broker.module.d.ts +4 -1
  29. package/modules/broker/broker.module.js +17 -1
  30. package/modules/broker/broker.module.js.map +1 -1
  31. package/modules/broker/config/decorator-paths.d.ts +1 -0
  32. package/modules/broker/config/decorator-paths.js +35 -0
  33. package/modules/broker/config/decorator-paths.js.map +1 -0
  34. package/modules/broker/config/handler-auth.config.d.ts +2 -2
  35. package/modules/broker/config/route-discovery.config.d.ts +8 -0
  36. package/modules/broker/config/route-discovery.config.js +3 -0
  37. package/modules/broker/config/route-discovery.config.js.map +1 -0
  38. package/modules/broker/const.d.ts +3 -0
  39. package/modules/broker/const.js +4 -1
  40. package/modules/broker/const.js.map +1 -1
  41. package/modules/broker/decorators/broker-action.decorator.d.ts +15 -2
  42. package/modules/broker/decorators/broker-action.decorator.js +4 -4
  43. package/modules/broker/decorators/broker-action.decorator.js.map +1 -1
  44. package/modules/broker/index.d.ts +3 -0
  45. package/modules/broker/index.js +3 -0
  46. package/modules/broker/index.js.map +1 -1
  47. package/modules/broker/services/metadata-scanner.service.d.ts +1 -0
  48. package/modules/broker/services/metadata-scanner.service.js +28 -4
  49. package/modules/broker/services/metadata-scanner.service.js.map +1 -1
  50. package/modules/broker/services/route-discovery-publisher.service.d.ts +13 -0
  51. package/modules/broker/services/route-discovery-publisher.service.js +64 -0
  52. package/modules/broker/services/route-discovery-publisher.service.js.map +1 -0
  53. package/modules/gateway-admin/const.d.ts +2 -0
  54. package/modules/gateway-admin/const.js +2 -0
  55. package/modules/gateway-admin/const.js.map +1 -1
  56. package/modules/gateway-admin/gateway-admin.module.js +2 -1
  57. package/modules/gateway-admin/gateway-admin.module.js.map +1 -1
  58. package/modules/gateway-admin/index.d.ts +4 -0
  59. package/modules/gateway-admin/index.js +4 -0
  60. package/modules/gateway-admin/index.js.map +1 -1
  61. package/modules/gateway-admin/models.d.ts +49 -0
  62. package/modules/gateway-admin/repository/http-metric.repository.d.ts +4 -1
  63. package/modules/gateway-admin/repository/http-metric.repository.js.map +1 -1
  64. package/modules/gateway-admin/repository/http-path.repository.d.ts +5 -0
  65. package/modules/gateway-admin/repository/http-path.repository.js +6 -0
  66. package/modules/gateway-admin/repository/http-path.repository.js.map +1 -1
  67. package/modules/gateway-admin/repository/route-sync-log.repository.d.ts +5 -0
  68. package/modules/gateway-admin/repository/route-sync-log.repository.js +7 -0
  69. package/modules/gateway-admin/repository/route-sync-log.repository.js.map +1 -0
  70. package/modules/gateway-admin/services/gateway-metrics.service.d.ts +3 -1
  71. package/modules/gateway-admin/services/gateway-metrics.service.js +53 -0
  72. package/modules/gateway-admin/services/gateway-metrics.service.js.map +1 -1
  73. package/modules/gateway-admin/services/gateway-path.service.d.ts +1 -0
  74. package/modules/gateway-admin/services/gateway-path.service.js +16 -1
  75. package/modules/gateway-admin/services/gateway-path.service.js.map +1 -1
  76. package/modules/gateway-admin/services/route-sync.service.d.ts +19 -0
  77. package/modules/gateway-admin/services/route-sync.service.js +137 -0
  78. package/modules/gateway-admin/services/route-sync.service.js.map +1 -0
  79. package/modules/gateway-admin/util/route-diff.d.ts +27 -0
  80. package/modules/gateway-admin/util/route-diff.js +44 -0
  81. package/modules/gateway-admin/util/route-diff.js.map +1 -0
  82. package/modules/gateway-admin/util/route-manifest.d.ts +7 -0
  83. package/modules/gateway-admin/util/route-manifest.js +34 -0
  84. package/modules/gateway-admin/util/route-manifest.js.map +1 -0
  85. package/modules/proxy/index.d.ts +1 -0
  86. package/modules/proxy/index.js +1 -0
  87. package/modules/proxy/index.js.map +1 -1
  88. package/modules/proxy/services/acl.service.d.ts +2 -1
  89. package/modules/proxy/services/http-auth-handler.service.d.ts +1 -1
  90. package/modules/proxy/services/http-auth-handler.service.js +29 -34
  91. package/modules/proxy/services/http-auth-handler.service.js.map +1 -1
  92. package/modules/proxy/services/http-handler.service.d.ts +3 -1
  93. package/modules/proxy/services/http-handler.service.js +50 -19
  94. package/modules/proxy/services/http-handler.service.js.map +1 -1
  95. package/modules/proxy/services/metrics-hook.d.ts +15 -0
  96. package/modules/proxy/services/metrics-hook.js +5 -0
  97. package/modules/proxy/services/metrics-hook.js.map +1 -0
  98. package/modules/proxy/services/websocket.service.js +4 -1
  99. package/modules/proxy/services/websocket.service.js.map +1 -1
  100. package/package.json +1 -1
  101. package/schematics/nest-add/files/skills/rlb-amqp/references/config-schema.md +4 -3
  102. package/schematics/nest-add/files/skills/rlb-amqp/references/gotchas.md +14 -5
  103. package/schematics/nest-add/files/skills/rlb-amqp-add-route/SKILL.md +5 -2
  104. package/modules/remote-config/index.d.ts +0 -2
  105. package/modules/remote-config/index.js +0 -19
  106. package/modules/remote-config/index.js.map +0 -1
  107. package/modules/remote-config/remote-config.module.d.ts +0 -2
  108. package/modules/remote-config/remote-config.module.js +0 -22
  109. package/modules/remote-config/remote-config.module.js.map +0 -1
  110. package/modules/remote-config/remote-config.service.d.ts +0 -12
  111. package/modules/remote-config/remote-config.service.js +0 -68
  112. package/modules/remote-config/remote-config.service.js.map +0 -1
@@ -15,49 +15,141 @@ var AclService_1;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.AclService = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
+ const common_2 = require("../../../common");
18
19
  const broker_1 = require("../../broker");
19
20
  const acl_cache_service_1 = require("../cache/acl-cache.service");
20
21
  const const_1 = require("../const");
21
22
  const acl_grant_repository_1 = require("../repository/acl-grant.repository");
23
+ const acl_role_repository_1 = require("../repository/acl-role.repository");
22
24
  let AclService = AclService_1 = class AclService {
23
- constructor(grants, cache) {
25
+ constructor(grants, roles, cache) {
24
26
  this.grants = grants;
27
+ this.roles = roles;
25
28
  this.cache = cache;
26
29
  this.logger = new common_1.Logger(AclService_1.name);
27
30
  }
28
- async canUserDo(topic, action, userId) {
29
- if (!userId || !action)
31
+ toList(roles) {
32
+ return Array.isArray(roles) ? roles : (roles ? [roles] : []);
33
+ }
34
+ async canUserDoGtw(roles, userId) {
35
+ const list = this.toList(roles);
36
+ if (!userId || !list.length)
30
37
  return false;
31
- const cached = await this.cache.get(userId, topic, action);
38
+ const cacheAction = `role-gtw:${[...list].sort().join(',')}`;
39
+ const cached = await this.cache.get(userId, cacheAction);
32
40
  if (cached !== null)
33
41
  return cached;
34
- const allowed = await this.grants.checkActions({ userId }, action);
35
- await this.cache.set(userId, topic, action, allowed);
42
+ const grants = await this.grants.filter({ userId });
43
+ const allowed = grants.some((g) => (g.roles || []).some((r) => list.includes(r)));
44
+ await this.cache.set(userId, cacheAction, allowed);
36
45
  return allowed;
37
46
  }
38
- async handleCanUserDo(userId, action, topic) {
47
+ async canUserDo(roles, userId, resourceId) {
48
+ const list = this.toList(roles);
49
+ if (!userId || !list.length)
50
+ return false;
51
+ const cacheAction = `role-res:${resourceId ?? '*'}:${[...list].sort().join(',')}`;
52
+ const cached = await this.cache.get(userId, cacheAction);
53
+ if (cached !== null)
54
+ return cached;
55
+ const grants = await this.grants.filter({ userId });
56
+ const scoped = grants.filter((g) => g.resourceId == null || g.resourceId === resourceId);
57
+ const allowed = scoped.some((g) => (g.roles || []).some((r) => list.includes(r)));
58
+ await this.cache.set(userId, cacheAction, allowed);
59
+ return allowed;
60
+ }
61
+ async handleCanUserDoGtw(userId, roles) {
62
+ try {
63
+ return await this.canUserDoGtw(roles ?? [], userId);
64
+ }
65
+ catch (error) {
66
+ this.logger.error(error);
67
+ return false;
68
+ }
69
+ }
70
+ async handleCanUserDo(userId, resource, roles) {
39
71
  try {
40
- return await this.canUserDo(topic ?? const_1.ACL_TOPIC, action, userId);
72
+ return await this.canUserDo(roles ?? [], userId, resource);
41
73
  }
42
74
  catch (error) {
43
75
  this.logger.error(error);
44
76
  return false;
45
77
  }
46
78
  }
79
+ async listResourcesByUser(userId) {
80
+ try {
81
+ if (!userId)
82
+ throw new common_2.UnauthorizedError('User ID is required');
83
+ const acls = await this.grants.filter({ userId });
84
+ const grouped = {};
85
+ for (const item of acls || []) {
86
+ const businessId = item.resourceBusinessId ?? '';
87
+ if (!grouped[businessId]) {
88
+ grouped[businessId] = { resourceBusinessId: item.resourceBusinessId, resources: [] };
89
+ }
90
+ let resource = grouped[businessId].resources.find((r) => r.resourceId === item.resourceId);
91
+ if (!resource) {
92
+ resource = { resourceId: item.resourceId, actions: [], friendlyName: item.friendlyName };
93
+ grouped[businessId].resources.push(resource);
94
+ }
95
+ const roleNames = Array.isArray(item.roles) ? item.roles : [item.roles];
96
+ const actions = await this.roles.getActionsByNames(roleNames);
97
+ resource.actions.push(...actions);
98
+ resource.actions = Array.from(new Set(resource.actions));
99
+ }
100
+ return Object.values(grouped);
101
+ }
102
+ catch (error) {
103
+ this.logger.error(error);
104
+ throw error;
105
+ }
106
+ }
107
+ async listByUser(userId) {
108
+ try {
109
+ return await this.grants.filter({ userId });
110
+ }
111
+ catch (error) {
112
+ this.logger.error(error);
113
+ throw error;
114
+ }
115
+ }
47
116
  };
48
117
  exports.AclService = AclService;
118
+ __decorate([
119
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.canUserDoGtw, 'rpc'),
120
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
121
+ __param(1, (0, broker_1.BrokerParam)('body', 'roles')),
122
+ __metadata("design:type", Function),
123
+ __metadata("design:paramtypes", [String, Object]),
124
+ __metadata("design:returntype", Promise)
125
+ ], AclService.prototype, "handleCanUserDoGtw", null);
49
126
  __decorate([
50
127
  (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.canUserDo, 'rpc'),
51
128
  __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
52
- __param(1, (0, broker_1.BrokerParam)('body', 'action')),
53
- __param(2, (0, broker_1.BrokerParam)('body', 'topic')),
129
+ __param(1, (0, broker_1.BrokerParam)('body', 'resource')),
130
+ __param(2, (0, broker_1.BrokerParam)('body', 'roles')),
54
131
  __metadata("design:type", Function),
55
- __metadata("design:paramtypes", [String, String, String]),
132
+ __metadata("design:paramtypes", [String, String, Object]),
56
133
  __metadata("design:returntype", Promise)
57
134
  ], AclService.prototype, "handleCanUserDo", null);
135
+ __decorate([
136
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.listResourcesByUser, 'rpc'),
137
+ __param(0, (0, broker_1.BrokerParam)('header', 'X-GTW-AUTH-USERID')),
138
+ __metadata("design:type", Function),
139
+ __metadata("design:paramtypes", [String]),
140
+ __metadata("design:returntype", Promise)
141
+ ], AclService.prototype, "listResourcesByUser", null);
142
+ __decorate([
143
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.listByUser, 'rpc'),
144
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
145
+ __metadata("design:type", Function),
146
+ __metadata("design:paramtypes", [String]),
147
+ __metadata("design:returntype", Promise)
148
+ ], AclService.prototype, "listByUser", null);
58
149
  exports.AclService = AclService = AclService_1 = __decorate([
59
150
  (0, common_1.Injectable)(),
60
151
  __metadata("design:paramtypes", [acl_grant_repository_1.AclGrantRepository,
152
+ acl_role_repository_1.AclRoleRepository,
61
153
  acl_cache_service_1.AclCacheService])
62
154
  ], AclService);
63
155
  //# sourceMappingURL=acl.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acl.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,yCAAyD;AAEzD,kEAA6D;AAC7D,oCAAkD;AAClD,6EAAwE;AAGjE,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YACmB,MAA0B,EAC1B,KAAsB;QADtB,WAAM,GAAN,MAAM,CAAoB;QAC1B,UAAK,GAAL,KAAK,CAAiB;QAJxB,WAAM,GAAG,IAAI,eAAM,CAAC,YAAU,CAAC,IAAI,CAAC,CAAC;IAKlD,CAAC;IAOL,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;QAC3D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CACY,MAAc,EACd,MAAc,EACf,KAAc;QAE5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,iBAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAA;AAnCY,gCAAU;AAuBf;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,SAAS,EAAE,KAAK,CAAC;IAEnD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;;;;iDAQ9B;qBAlCU,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAKgB,yCAAkB;QACnB,mCAAe;GAL9B,UAAU,CAmCtB"}
1
+ {"version":3,"file":"acl.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,4CAAoD;AACpD,yCAAyD;AAEzD,kEAA6D;AAC7D,oCAAkD;AAElD,6EAAwE;AACxE,2EAAsE;AAG/D,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YACmB,MAA0B,EAC1B,KAAwB,EACxB,KAAsB;QAFtB,WAAM,GAAN,MAAM,CAAoB;QAC1B,UAAK,GAAL,KAAK,CAAmB;QACxB,UAAK,GAAL,KAAK,CAAiB;QALxB,WAAM,GAAG,IAAI,eAAM,CAAC,YAAU,CAAC,IAAI,CAAC,CAAC;IAMlD,CAAC;IAEG,MAAM,CAAC,KAAwB;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAwB,EAAE,MAAc;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAwB,EAAE,MAAc,EAAE,UAAmB;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,WAAW,GAAG,YAAY,UAAU,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CACS,MAAc,EACf,KAAyB;QAEvD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CACY,MAAc,EACZ,QAAgB,EACnB,KAAyB;QAEvD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB,CACqB,MAAc;QAE1D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,MAAM,OAAO,GAAqC,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACvF,CAAC;gBACD,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzF,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC9D,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAClC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CAAgC,MAAc;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CAEF,CAAA;AAzGY,gCAAU;AAuCf;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,YAAY,EAAE,KAAK,CAAC;IAEtD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;;;;oDAQ9B;AAGK;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,SAAS,EAAE,KAAK,CAAC;IAEnD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC/B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;;;;iDAQ9B;AAGK;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAE7D,WAAA,IAAA,oBAAW,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;;;;qDA0B5C;AAGK;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,UAAU,EAAE,KAAK,CAAC;IACrC,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;;;;4CAO9C;qBAvGU,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAKgB,yCAAkB;QACnB,uCAAiB;QACjB,mCAAe;GAN9B,UAAU,CAyGtB"}
@@ -1,19 +1,22 @@
1
1
  import { DynamicModule, Type } from '@nestjs/common';
2
2
  import { RabbitMQConfig } from '../../amqp-lib/config/rabbitmq.config';
3
3
  import { BrokerTopic } from './config/topics.config';
4
+ import { RouteDiscoveryConfig } from './config/route-discovery.config';
4
5
  import { AppConfig } from './services/utils.service';
5
6
  export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<RabbitMQConfig, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol;
6
7
  export declare class BrokerModule {
7
- static forRoot(options: RabbitMQConfig, topics: BrokerTopic[], appOptions?: AppConfig): DynamicModule;
8
+ static forRoot(options: RabbitMQConfig, topics: BrokerTopic[], appOptions?: AppConfig, routeDiscovery?: RouteDiscoveryConfig): DynamicModule;
8
9
  static forRootAsync(asyncOptions: {
9
10
  useFactory: (...args: any[]) => Promise<{
10
11
  options: RabbitMQConfig;
11
12
  topics: BrokerTopic[];
12
13
  appOptions?: AppConfig;
14
+ routeDiscovery?: RouteDiscoveryConfig;
13
15
  }> | {
14
16
  options: RabbitMQConfig;
15
17
  topics: BrokerTopic[];
16
18
  appOptions?: AppConfig;
19
+ routeDiscovery?: RouteDiscoveryConfig;
17
20
  };
18
21
  inject?: Type<any>[];
19
22
  imports?: Type<any>[];
@@ -16,11 +16,12 @@ const auto_discovery_service_1 = require("./services/auto-discovery.service");
16
16
  const broker_service_1 = require("./services/broker.service");
17
17
  const handler_registry_service_1 = require("./services/handler-registry.service");
18
18
  const metadata_scanner_service_1 = require("./services/metadata-scanner.service");
19
+ const route_discovery_publisher_service_1 = require("./services/route-discovery-publisher.service");
19
20
  const shutdown_state_service_1 = require("./services/shutdown-state.service");
20
21
  const utils_service_1 = require("./services/utils.service");
21
22
  _a = new common_1.ConfigurableModuleBuilder().setClassMethodName('forRoot').build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN;
22
23
  let BrokerModule = BrokerModule_1 = class BrokerModule {
23
- static forRoot(options, topics, appOptions) {
24
+ static forRoot(options, topics, appOptions, routeDiscovery) {
24
25
  if (!options) {
25
26
  throw new Error('RabbitMQConfig is required');
26
27
  }
@@ -30,17 +31,20 @@ let BrokerModule = BrokerModule_1 = class BrokerModule {
30
31
  const amqpOptionsProvider = { provide: const_1.RLB_AMQP_BROKER_OPTIONS, useValue: options };
31
32
  const topicOptionsProvider = { provide: const_1.RLB_AMQP_TOPIC_CONNECTION, useValue: topics };
32
33
  const appOptionsProvider = { provide: const_1.RLB_AMQP_APP_OPTIONS, useValue: appOptions };
34
+ const routeDiscoveryProvider = { provide: const_1.RLB_ROUTE_DISCOVERY_OPTIONS, useValue: routeDiscovery };
33
35
  return {
34
36
  module: BrokerModule_1,
35
37
  providers: [
36
38
  amqpOptionsProvider,
37
39
  topicOptionsProvider,
38
40
  appOptionsProvider,
41
+ routeDiscoveryProvider,
39
42
  ],
40
43
  exports: [
41
44
  amqpOptionsProvider,
42
45
  topicOptionsProvider,
43
46
  appOptionsProvider,
47
+ routeDiscoveryProvider,
44
48
  ],
45
49
  };
46
50
  }
@@ -69,17 +73,27 @@ let BrokerModule = BrokerModule_1 = class BrokerModule {
69
73
  },
70
74
  inject: asyncOptions.inject || [],
71
75
  };
76
+ const routeDiscoveryProvider = {
77
+ provide: const_1.RLB_ROUTE_DISCOVERY_OPTIONS,
78
+ useFactory: async (...args) => {
79
+ const result = await asyncOptions.useFactory(...args);
80
+ return result.routeDiscovery;
81
+ },
82
+ inject: asyncOptions.inject || [],
83
+ };
72
84
  return {
73
85
  module: BrokerModule_1,
74
86
  providers: [
75
87
  amqpOptionsProvider,
76
88
  topicOptionsProvider,
77
89
  appOptionsProvider,
90
+ routeDiscoveryProvider,
78
91
  ],
79
92
  exports: [
80
93
  amqpOptionsProvider,
81
94
  topicOptionsProvider,
82
95
  appOptionsProvider,
96
+ routeDiscoveryProvider,
83
97
  ],
84
98
  };
85
99
  }
@@ -95,6 +109,7 @@ exports.BrokerModule = BrokerModule = BrokerModule_1 = __decorate([
95
109
  metadata_scanner_service_1.MetadataScannerService,
96
110
  shutdown_state_service_1.ShutdownStateService,
97
111
  auto_discovery_service_1.AutoDiscoveryService,
112
+ route_discovery_publisher_service_1.RouteDiscoveryPublisherService,
98
113
  utils_service_1.UtilsService
99
114
  ],
100
115
  exports: [
@@ -102,6 +117,7 @@ exports.BrokerModule = BrokerModule = BrokerModule_1 = __decorate([
102
117
  utils_service_1.UtilsService,
103
118
  broker_service_1.BrokerService,
104
119
  auto_discovery_service_1.AutoDiscoveryService,
120
+ route_discovery_publisher_service_1.RouteDiscoveryPublisherService,
105
121
  shutdown_state_service_1.ShutdownStateService
106
122
  ],
107
123
  })
@@ -1 +1 @@
1
- {"version":3,"file":"broker.module.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/broker.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.module.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/broker.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function buildPathDefinitionsFromMeta(meta: any): any[];
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPathDefinitionsFromMeta = buildPathDefinitionsFromMeta;
4
+ function buildPathDefinitionsFromMeta(meta) {
5
+ const out = [];
6
+ for (const topic of Object.keys(meta || {})) {
7
+ for (const action of Object.keys(meta[topic] || {})) {
8
+ const entry = meta[topic][action] || {};
9
+ const auth = Array.isArray(entry.auth) ? entry.auth[0] : undefined;
10
+ for (const h of entry.http || []) {
11
+ out.push({
12
+ name: h.name ?? `${topic}:${action}:${h.method}:${h.path}`,
13
+ method: h.method,
14
+ path: h.path,
15
+ dataSource: h.dataSource ?? 'body',
16
+ topic,
17
+ action,
18
+ mode: h.mode ?? (entry.type === 'event' ? 'event' : 'rpc'),
19
+ auth: h.auth ?? auth?.authName,
20
+ allowAnonymous: h.allowAnonymous ?? auth?.allowAnonymous,
21
+ roles: h.roles ?? auth?.roles ?? [],
22
+ successStatusCode: h.successStatusCode,
23
+ timeout: h.timeout,
24
+ parseRaw: h.parseRaw,
25
+ binary: h.binary,
26
+ redirect: h.redirect,
27
+ headers: h.headers ?? {},
28
+ forwardHeaders: h.forwardHeaders ?? {},
29
+ });
30
+ }
31
+ }
32
+ }
33
+ return out;
34
+ }
35
+ //# sourceMappingURL=decorator-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator-paths.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/config/decorator-paths.ts"],"names":[],"mappings":";;AAMA,oEA8BC;AA9BD,SAAgB,4BAA4B,CAAC,IAAS;IACpD,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE;oBAC1D,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,MAAM;oBAClC,KAAK;oBACL,MAAM;oBACN,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC1D,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ;oBAC9B,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE,cAAc;oBACxD,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE;oBACnC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;oBACtC,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;oBACxB,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -15,8 +15,8 @@ export interface HandlerAuthConfig extends AuthConfig {
15
15
  type: 'jwt' | 'jwks' | 'basic' | 'str-compare' | 'none';
16
16
  usernameClaim: string;
17
17
  uidClaim: string;
18
- aclTopic: string;
19
- aclAction: string;
18
+ aclTopic?: string;
19
+ aclAction?: string;
20
20
  jwtMap?: string[];
21
21
  headerPrefix: string;
22
22
  }
@@ -0,0 +1,8 @@
1
+ export interface RouteDiscoveryConfig {
2
+ serviceName?: string;
3
+ publishOnBoot?: boolean;
4
+ }
5
+ export interface RouteManifest {
6
+ service: string;
7
+ routes: any[];
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=route-discovery.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-discovery.config.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/config/route-discovery.config.ts"],"names":[],"mappings":""}
@@ -7,3 +7,6 @@ export declare const RLB_BROKER_METHOD_METADATA_KEY = "rlb-broker:method";
7
7
  export declare const RLB_BROKER_HTTP_METADATA_KEY = "rlb-broker:http";
8
8
  export declare const RLB_BROKER_AUTH_METADATA_KEY = "rlb-broker:auth";
9
9
  export declare const RLB_BROKER_PARAM_METADATA_KEY = "rlb-broker:param";
10
+ export declare const RLB_ROUTE_DISCOVERY_OPTIONS = "RLB_ROUTE_DISCOVERY_OPTIONS";
11
+ export declare const ROUTE_DISCOVERY_EXCHANGE = "rlb-route-discovery";
12
+ export declare const ROUTE_SYNC_QUEUE = "rlb-route-sync";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RLB_BROKER_PARAM_METADATA_KEY = exports.RLB_BROKER_AUTH_METADATA_KEY = exports.RLB_BROKER_HTTP_METADATA_KEY = exports.RLB_BROKER_METHOD_METADATA_KEY = exports.RLB_AMQP_GATEWAY_OPTIONS = exports.RLB_AMQP_AUTH_OPTIONS = exports.RLB_AMQP_APP_OPTIONS = exports.RLB_AMQP_TOPIC_CONNECTION = exports.RLB_AMQP_BROKER_OPTIONS = void 0;
3
+ exports.ROUTE_SYNC_QUEUE = exports.ROUTE_DISCOVERY_EXCHANGE = exports.RLB_ROUTE_DISCOVERY_OPTIONS = exports.RLB_BROKER_PARAM_METADATA_KEY = exports.RLB_BROKER_AUTH_METADATA_KEY = exports.RLB_BROKER_HTTP_METADATA_KEY = exports.RLB_BROKER_METHOD_METADATA_KEY = exports.RLB_AMQP_GATEWAY_OPTIONS = exports.RLB_AMQP_AUTH_OPTIONS = exports.RLB_AMQP_APP_OPTIONS = exports.RLB_AMQP_TOPIC_CONNECTION = exports.RLB_AMQP_BROKER_OPTIONS = void 0;
4
4
  exports.RLB_AMQP_BROKER_OPTIONS = 'RLB_AMQP_BROKER_OPTIONS';
5
5
  exports.RLB_AMQP_TOPIC_CONNECTION = 'RLB_AMQP_TOPIC_CONNECTION';
6
6
  exports.RLB_AMQP_APP_OPTIONS = 'RLB_AMQP_APP_OPTIONS';
@@ -10,4 +10,7 @@ exports.RLB_BROKER_METHOD_METADATA_KEY = 'rlb-broker:method';
10
10
  exports.RLB_BROKER_HTTP_METADATA_KEY = 'rlb-broker:http';
11
11
  exports.RLB_BROKER_AUTH_METADATA_KEY = 'rlb-broker:auth';
12
12
  exports.RLB_BROKER_PARAM_METADATA_KEY = 'rlb-broker:param';
13
+ exports.RLB_ROUTE_DISCOVERY_OPTIONS = 'RLB_ROUTE_DISCOVERY_OPTIONS';
14
+ exports.ROUTE_DISCOVERY_EXCHANGE = 'rlb-route-discovery';
15
+ exports.ROUTE_SYNC_QUEUE = 'rlb-route-sync';
13
16
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AACpD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAChD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,6BAA6B,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AACpD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AACxD,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAChD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AACtD,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,6BAA6B,GAAG,kBAAkB,CAAC;AAGnD,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAE5D,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAEjD,QAAA,gBAAgB,GAAG,gBAAgB,CAAC"}
@@ -4,6 +4,19 @@ export type BrokerActionType = 'rpc' | 'event';
4
4
  export type BrokerHttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
5
5
  export type BrokerHttpDataSource = 'query' | 'body' | 'params';
6
6
  export declare function BrokerAction(topic: string, action: string, type?: BrokerActionType): MethodDecorator;
7
- export declare function BrokerHTTP(method: BrokerHttpMethod, path: string, dataSource?: BrokerHttpDataSource, timeout?: number, parseRaw?: boolean): MethodDecorator;
8
- export declare function BrokerAuth(authName: string, allowAnonymous?: boolean, roles?: string[]): MethodDecorator;
7
+ export declare function BrokerHTTP(method: BrokerHttpMethod, path: string, dataSource: BrokerHttpDataSource, options?: {
8
+ action?: string;
9
+ successStatusCode?: number;
10
+ timeout?: number;
11
+ parseRaw?: boolean;
12
+ binary?: boolean;
13
+ redirect?: number;
14
+ headers?: {
15
+ [k: string]: string | number | boolean;
16
+ };
17
+ forwardHeaders?: {
18
+ [k: string]: string | number | boolean;
19
+ };
20
+ }): MethodDecorator;
21
+ export declare function BrokerAuth(authName: string, allowAnonymous?: boolean, roles?: string[], action?: string): MethodDecorator;
9
22
  export declare function BrokerParam(source: BrokerParamSource, name?: string, pipe?: PipeTransform): ParameterDecorator;
@@ -21,7 +21,7 @@ function BrokerAction(topic, action, type) {
21
21
  Reflect.defineMetadata(const_1.RLB_BROKER_METHOD_METADATA_KEY, existingMetadata, target.constructor);
22
22
  };
23
23
  }
24
- function BrokerHTTP(method, path, dataSource, timeout, parseRaw) {
24
+ function BrokerHTTP(method, path, dataSource, options) {
25
25
  return (target, propertyKey, descriptor) => {
26
26
  const existingMetadata = Reflect.getMetadata(const_1.RLB_BROKER_HTTP_METADATA_KEY, target.constructor) || [];
27
27
  const params = getParamNames(descriptor.value);
@@ -30,13 +30,12 @@ function BrokerHTTP(method, path, dataSource, timeout, parseRaw) {
30
30
  method,
31
31
  path,
32
32
  dataSource,
33
- parseRaw,
34
- timeout,
33
+ ...(options || {})
35
34
  });
36
35
  Reflect.defineMetadata(const_1.RLB_BROKER_HTTP_METADATA_KEY, existingMetadata, target.constructor);
37
36
  };
38
37
  }
39
- function BrokerAuth(authName, allowAnonymous, roles) {
38
+ function BrokerAuth(authName, allowAnonymous, roles, action) {
40
39
  return (target, propertyKey, descriptor) => {
41
40
  const existingMetadata = Reflect.getMetadata(const_1.RLB_BROKER_AUTH_METADATA_KEY, target.constructor) || [];
42
41
  const params = getParamNames(descriptor.value);
@@ -45,6 +44,7 @@ function BrokerAuth(authName, allowAnonymous, roles) {
45
44
  authName,
46
45
  allowAnonymous,
47
46
  roles,
47
+ action,
48
48
  });
49
49
  Reflect.defineMetadata(const_1.RLB_BROKER_AUTH_METADATA_KEY, existingMetadata, target.constructor);
50
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"broker-action.decorator.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/decorators/broker-action.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker-action.decorator.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/decorators/broker-action.decorator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export * from '../../amqp-lib/config/rabbitmq.config';
2
2
  export * from './broker.module';
3
3
  export * from './config/broker.config';
4
+ export * from './config/decorator-paths';
4
5
  export * from './config/handler-auth.config';
6
+ export * from './config/route-discovery.config';
5
7
  export * from './config/topics.config';
6
8
  export * from './data/events/messages';
7
9
  export * from './decorators';
@@ -9,5 +11,6 @@ export * from './pipes';
9
11
  export * from './services/auto-discovery.service';
10
12
  export * from './services/broker.service';
11
13
  export * from './services/handler-registry.service';
14
+ export * from './services/route-discovery-publisher.service';
12
15
  export * from './services/shutdown-state.service';
13
16
  export * from './utils/drainable-stream';
@@ -17,7 +17,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("../../amqp-lib/config/rabbitmq.config"), exports);
18
18
  __exportStar(require("./broker.module"), exports);
19
19
  __exportStar(require("./config/broker.config"), exports);
20
+ __exportStar(require("./config/decorator-paths"), exports);
20
21
  __exportStar(require("./config/handler-auth.config"), exports);
22
+ __exportStar(require("./config/route-discovery.config"), exports);
21
23
  __exportStar(require("./config/topics.config"), exports);
22
24
  __exportStar(require("./data/events/messages"), exports);
23
25
  __exportStar(require("./decorators"), exports);
@@ -25,6 +27,7 @@ __exportStar(require("./pipes"), exports);
25
27
  __exportStar(require("./services/auto-discovery.service"), exports);
26
28
  __exportStar(require("./services/broker.service"), exports);
27
29
  __exportStar(require("./services/handler-registry.service"), exports);
30
+ __exportStar(require("./services/route-discovery-publisher.service"), exports);
28
31
  __exportStar(require("./services/shutdown-state.service"), exports);
29
32
  __exportStar(require("./utils/drainable-stream"), exports);
30
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD;AACtD,kDAAgC;AAChC,yDAAuC;AACvC,+DAA6C;AAC7C,yDAAuC;AACvC,yDAAuC;AACvC,+CAA6B;AAC7B,0CAAwB;AACxB,oEAAkD;AAClD,4DAA0C;AAC1C,sEAAoD;AACpD,oEAAkD;AAClD,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD;AACtD,kDAAgC;AAChC,yDAAuC;AACvC,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,yDAAuC;AACvC,yDAAuC;AACvC,+CAA6B;AAC7B,0CAAwB;AACxB,oEAAkD;AAClD,4DAA0C;AAC1C,sEAAoD;AACpD,+EAA6D;AAC7D,oEAAkD;AAClD,2DAAyC"}
@@ -18,6 +18,7 @@ export declare class MetadataScannerService implements OnModuleInit {
18
18
  private readonly metadata;
19
19
  onModuleInit(): Promise<void>;
20
20
  private executeFunction;
21
+ private pairToAction;
21
22
  private removeDefaultsFromParams;
22
23
  get metaInfo(): {};
23
24
  }
@@ -61,10 +61,9 @@ let MetadataScannerService = MetadataScannerService_1 = class MetadataScannerSer
61
61
  this.metadata[method.topic][method.action] = {};
62
62
  }
63
63
  const paramMetadata = Reflect.getMetadata(const_1.RLB_BROKER_PARAM_METADATA_KEY, instance, method.methodName) || [];
64
- const authMetadata = (Reflect.getMetadata(const_1.RLB_BROKER_AUTH_METADATA_KEY, instance.constructor) || [])
65
- .filter((m) => m.methodName === method.methodName);
66
- const httpMetadata = (Reflect.getMetadata(const_1.RLB_BROKER_HTTP_METADATA_KEY, instance.constructor) || [])
67
- .filter((m) => m.methodName === method.methodName);
64
+ const actionsForMethod = metadata.filter((m) => m.methodName === method.methodName);
65
+ const authMetadata = this.pairToAction(Reflect.getMetadata(const_1.RLB_BROKER_AUTH_METADATA_KEY, instance.constructor) || [], method, actionsForMethod, instance.constructor.name, 'auth');
66
+ const httpMetadata = this.pairToAction(Reflect.getMetadata(const_1.RLB_BROKER_HTTP_METADATA_KEY, instance.constructor) || [], method, actionsForMethod, instance.constructor.name, 'http');
68
67
  this.metadata[method.topic][method.action] = {
69
68
  service: instance,
70
69
  method: instance[method.methodName],
@@ -196,6 +195,31 @@ let MetadataScannerService = MetadataScannerService_1 = class MetadataScannerSer
196
195
  return { success: false, error: this.utils.error2Object(error, this.appConfig.environment !== 'production') };
197
196
  }
198
197
  }
198
+ pairToAction(allEntries, method, actionsForMethod, instanceName, kind) {
199
+ const multiAction = actionsForMethod.length > 1;
200
+ const actionNames = new Set(actionsForMethod.map((m) => m.action));
201
+ const logOnce = actionsForMethod[0]?.action === method.action;
202
+ const where = `'${instanceName}.${String(method.methodName)}'`;
203
+ return (allEntries || [])
204
+ .filter((e) => e.methodName === method.methodName)
205
+ .filter((e) => {
206
+ const label = kind === 'auth' ? `@BrokerAuth '${e.authName}'` : `@BrokerHTTP ${e.method} '${e.path}'`;
207
+ if (e.action == null) {
208
+ if (multiAction) {
209
+ if (logOnce)
210
+ this.logger.error(`${label} on ${where} has no 'action' but the method declares multiple @BrokerAction (${[...actionNames].join(', ')}); ignored. Add an action to bind it.`);
211
+ return false;
212
+ }
213
+ return true;
214
+ }
215
+ if (!actionNames.has(e.action)) {
216
+ if (logOnce)
217
+ this.logger.error(`${label} on ${where} references action '${e.action}' not declared by any @BrokerAction on that method (${[...actionNames].join(', ')}); ignored.`);
218
+ return false;
219
+ }
220
+ return e.action === method.action;
221
+ });
222
+ }
199
223
  removeDefaultsFromParams(params) {
200
224
  const cleaned = [];
201
225
  for (let i = 0; i < params.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-scanner.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/services/metadata-scanner.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata-scanner.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/services/metadata-scanner.service.ts"],"names":[],"mappings":"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"}