@open-rlb/nestjs-amqp 2.1.1 → 2.2.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 (204) hide show
  1. package/modules/acl/const.d.ts +2 -0
  2. package/modules/acl/const.js +2 -0
  3. package/modules/acl/const.js.map +1 -1
  4. package/modules/acl/services/acl-management.service.d.ts +4 -0
  5. package/modules/acl/services/acl-management.service.js +36 -3
  6. package/modules/acl/services/acl-management.service.js.map +1 -1
  7. package/package.json +6 -5
  8. package/schematics/add-auth-provider/index.d.ts +3 -0
  9. package/schematics/add-auth-provider/index.js +60 -0
  10. package/schematics/add-auth-provider/index.js.map +1 -0
  11. package/schematics/add-auth-provider/index.spec.ts +83 -0
  12. package/schematics/add-auth-provider/index.ts +83 -0
  13. package/schematics/add-auth-provider/schema.d.ts +18 -0
  14. package/schematics/add-auth-provider/schema.js +3 -0
  15. package/schematics/add-auth-provider/schema.js.map +1 -0
  16. package/schematics/add-auth-provider/schema.json +59 -0
  17. package/schematics/add-auth-provider/schema.ts +35 -0
  18. package/schematics/add-exchange/index.d.ts +3 -0
  19. package/schematics/add-exchange/index.js +49 -0
  20. package/schematics/add-exchange/index.js.map +1 -0
  21. package/schematics/add-exchange/index.spec.ts +65 -0
  22. package/schematics/add-exchange/index.ts +65 -0
  23. package/schematics/add-exchange/schema.d.ts +14 -0
  24. package/schematics/add-exchange/schema.js +3 -0
  25. package/schematics/add-exchange/schema.js.map +1 -0
  26. package/schematics/add-exchange/schema.json +50 -0
  27. package/schematics/add-exchange/schema.ts +26 -0
  28. package/schematics/add-exchange-binding/index.d.ts +3 -0
  29. package/schematics/add-exchange-binding/index.js +53 -0
  30. package/schematics/add-exchange-binding/index.js.map +1 -0
  31. package/schematics/add-exchange-binding/index.spec.ts +73 -0
  32. package/schematics/add-exchange-binding/index.ts +64 -0
  33. package/schematics/add-exchange-binding/schema.d.ts +8 -0
  34. package/schematics/add-exchange-binding/schema.js +3 -0
  35. package/schematics/add-exchange-binding/schema.js.map +1 -0
  36. package/schematics/add-exchange-binding/schema.json +36 -0
  37. package/schematics/add-exchange-binding/schema.ts +14 -0
  38. package/schematics/add-gateway/index.d.ts +4 -0
  39. package/schematics/add-gateway/index.js +105 -0
  40. package/schematics/add-gateway/index.js.map +1 -0
  41. package/schematics/add-gateway/index.spec.ts +163 -0
  42. package/schematics/add-gateway/index.ts +141 -0
  43. package/schematics/add-gateway/paths.d.ts +12 -0
  44. package/schematics/add-gateway/paths.js +87 -0
  45. package/schematics/add-gateway/paths.js.map +1 -0
  46. package/schematics/add-gateway/paths.ts +103 -0
  47. package/schematics/add-gateway/schema.d.ts +13 -0
  48. package/schematics/add-gateway/schema.js +3 -0
  49. package/schematics/add-gateway/schema.js.map +1 -0
  50. package/schematics/add-gateway/schema.json +63 -0
  51. package/schematics/add-gateway/schema.ts +24 -0
  52. package/schematics/add-gateway/wiring.d.ts +14 -0
  53. package/schematics/add-gateway/wiring.js +102 -0
  54. package/schematics/add-gateway/wiring.js.map +1 -0
  55. package/schematics/add-gateway/wiring.ts +115 -0
  56. package/schematics/add-metrics-topic/index.d.ts +3 -0
  57. package/schematics/add-metrics-topic/index.js +31 -0
  58. package/schematics/add-metrics-topic/index.js.map +1 -0
  59. package/schematics/add-metrics-topic/index.spec.ts +79 -0
  60. package/schematics/add-metrics-topic/index.ts +49 -0
  61. package/schematics/add-metrics-topic/schema.d.ts +10 -0
  62. package/schematics/add-metrics-topic/schema.js +3 -0
  63. package/schematics/add-metrics-topic/schema.js.map +1 -0
  64. package/schematics/add-metrics-topic/schema.json +48 -0
  65. package/schematics/add-metrics-topic/schema.ts +18 -0
  66. package/schematics/add-queue/index.d.ts +3 -0
  67. package/schematics/add-queue/index.js +48 -0
  68. package/schematics/add-queue/index.js.map +1 -0
  69. package/schematics/add-queue/index.spec.ts +75 -0
  70. package/schematics/add-queue/index.ts +74 -0
  71. package/schematics/add-queue/schema.d.ts +17 -0
  72. package/schematics/add-queue/schema.js +3 -0
  73. package/schematics/add-queue/schema.js.map +1 -0
  74. package/schematics/add-queue/schema.json +54 -0
  75. package/schematics/add-queue/schema.ts +32 -0
  76. package/schematics/add-reply-queue/index.d.ts +3 -0
  77. package/schematics/add-reply-queue/index.js +26 -0
  78. package/schematics/add-reply-queue/index.js.map +1 -0
  79. package/schematics/add-reply-queue/index.spec.ts +69 -0
  80. package/schematics/add-reply-queue/index.ts +33 -0
  81. package/schematics/add-reply-queue/schema.d.ts +6 -0
  82. package/schematics/add-reply-queue/schema.js +3 -0
  83. package/schematics/add-reply-queue/schema.js.map +1 -0
  84. package/schematics/add-reply-queue/schema.json +28 -0
  85. package/schematics/add-reply-queue/schema.ts +10 -0
  86. package/schematics/add-route/index.d.ts +3 -0
  87. package/schematics/add-route/index.js +57 -0
  88. package/schematics/add-route/index.js.map +1 -0
  89. package/schematics/add-route/index.spec.ts +75 -0
  90. package/schematics/add-route/index.ts +74 -0
  91. package/schematics/add-route/schema.d.ts +22 -0
  92. package/schematics/add-route/schema.js +3 -0
  93. package/schematics/add-route/schema.js.map +1 -0
  94. package/schematics/add-route/schema.json +74 -0
  95. package/schematics/add-route/schema.ts +43 -0
  96. package/schematics/add-topic/index.d.ts +3 -0
  97. package/schematics/add-topic/index.js +69 -0
  98. package/schematics/add-topic/index.js.map +1 -0
  99. package/schematics/add-topic/index.spec.ts +100 -0
  100. package/schematics/add-topic/index.ts +104 -0
  101. package/schematics/add-topic/schema.d.ts +18 -0
  102. package/schematics/add-topic/schema.js +3 -0
  103. package/schematics/add-topic/schema.js.map +1 -0
  104. package/schematics/add-topic/schema.json +63 -0
  105. package/schematics/add-topic/schema.ts +34 -0
  106. package/schematics/add-ws-event/index.d.ts +3 -0
  107. package/schematics/add-ws-event/index.js +53 -0
  108. package/schematics/add-ws-event/index.js.map +1 -0
  109. package/schematics/add-ws-event/index.spec.ts +85 -0
  110. package/schematics/add-ws-event/index.ts +72 -0
  111. package/schematics/add-ws-event/schema.d.ts +17 -0
  112. package/schematics/add-ws-event/schema.js +3 -0
  113. package/schematics/add-ws-event/schema.js.map +1 -0
  114. package/schematics/add-ws-event/schema.json +53 -0
  115. package/schematics/add-ws-event/schema.ts +33 -0
  116. package/schematics/collection.json +81 -1
  117. package/schematics/configure-broker/index.d.ts +3 -0
  118. package/schematics/configure-broker/index.js +41 -0
  119. package/schematics/configure-broker/index.js.map +1 -0
  120. package/schematics/configure-broker/index.spec.ts +62 -0
  121. package/schematics/configure-broker/index.ts +51 -0
  122. package/schematics/configure-broker/schema.d.ts +11 -0
  123. package/schematics/configure-broker/schema.js +3 -0
  124. package/schematics/configure-broker/schema.js.map +1 -0
  125. package/schematics/configure-broker/schema.json +47 -0
  126. package/schematics/configure-broker/schema.ts +20 -0
  127. package/schematics/enable-load-config/index.d.ts +3 -0
  128. package/schematics/enable-load-config/index.js +32 -0
  129. package/schematics/enable-load-config/index.js.map +1 -0
  130. package/schematics/enable-load-config/index.spec.ts +61 -0
  131. package/schematics/enable-load-config/index.ts +39 -0
  132. package/schematics/enable-load-config/schema.d.ts +8 -0
  133. package/schematics/enable-load-config/schema.js +3 -0
  134. package/schematics/enable-load-config/schema.js.map +1 -0
  135. package/schematics/enable-load-config/schema.json +36 -0
  136. package/schematics/enable-load-config/schema.ts +14 -0
  137. package/schematics/enable-retry/index.d.ts +3 -0
  138. package/schematics/enable-retry/index.js +51 -0
  139. package/schematics/enable-retry/index.js.map +1 -0
  140. package/schematics/enable-retry/index.spec.ts +73 -0
  141. package/schematics/enable-retry/index.ts +62 -0
  142. package/schematics/enable-retry/schema.d.ts +13 -0
  143. package/schematics/enable-retry/schema.js +3 -0
  144. package/schematics/enable-retry/schema.js.map +1 -0
  145. package/schematics/enable-retry/schema.json +64 -0
  146. package/schematics/enable-retry/schema.ts +24 -0
  147. package/schematics/enable-route-discovery/index.d.ts +3 -0
  148. package/schematics/enable-route-discovery/index.js +36 -0
  149. package/schematics/enable-route-discovery/index.js.map +1 -0
  150. package/schematics/enable-route-discovery/index.spec.ts +55 -0
  151. package/schematics/enable-route-discovery/index.ts +48 -0
  152. package/schematics/enable-route-discovery/schema.d.ts +9 -0
  153. package/schematics/enable-route-discovery/schema.js +3 -0
  154. package/schematics/enable-route-discovery/schema.js.map +1 -0
  155. package/schematics/enable-route-discovery/schema.json +44 -0
  156. package/schematics/enable-route-discovery/schema.ts +16 -0
  157. package/schematics/harden-gateway/index.d.ts +3 -0
  158. package/schematics/harden-gateway/index.js +93 -0
  159. package/schematics/harden-gateway/index.js.map +1 -0
  160. package/schematics/harden-gateway/index.spec.ts +105 -0
  161. package/schematics/harden-gateway/index.ts +108 -0
  162. package/schematics/harden-gateway/schema.d.ts +11 -0
  163. package/schematics/harden-gateway/schema.js +3 -0
  164. package/schematics/harden-gateway/schema.js.map +1 -0
  165. package/schematics/harden-gateway/schema.json +47 -0
  166. package/schematics/harden-gateway/schema.ts +20 -0
  167. package/schematics/nest-add/index.js +55 -832
  168. package/schematics/nest-add/index.js.map +1 -1
  169. package/schematics/nest-add/index.spec.ts +73 -0
  170. package/schematics/nest-add/index.ts +76 -917
  171. package/schematics/nest-add/init.schema.d.ts +1 -0
  172. package/schematics/nest-add/init.schema.ts +3 -0
  173. package/schematics/nest-add/schema.json +4 -43
  174. package/schematics/set-connection-name/index.d.ts +3 -0
  175. package/schematics/set-connection-name/index.js +34 -0
  176. package/schematics/set-connection-name/index.js.map +1 -0
  177. package/schematics/set-connection-name/index.spec.ts +48 -0
  178. package/schematics/set-connection-name/index.ts +42 -0
  179. package/schematics/set-connection-name/schema.d.ts +5 -0
  180. package/schematics/set-connection-name/schema.js +3 -0
  181. package/schematics/set-connection-name/schema.js.map +1 -0
  182. package/schematics/set-connection-name/schema.json +24 -0
  183. package/schematics/set-connection-name/schema.ts +8 -0
  184. package/schematics/utils/broker-yaml.util.d.ts +53 -0
  185. package/schematics/utils/broker-yaml.util.js +91 -0
  186. package/schematics/utils/broker-yaml.util.js.map +1 -0
  187. package/schematics/utils/broker-yaml.util.ts +172 -0
  188. package/schematics/utils/nest-wiring.util.d.ts +30 -0
  189. package/schematics/utils/nest-wiring.util.js +170 -0
  190. package/schematics/utils/nest-wiring.util.js.map +1 -0
  191. package/schematics/utils/nest-wiring.util.ts +211 -0
  192. package/schematics/utils/schematic-prompt.util.d.ts +7 -0
  193. package/schematics/utils/schematic-prompt.util.js +57 -0
  194. package/schematics/utils/schematic-prompt.util.js.map +1 -0
  195. package/schematics/utils/schematic-prompt.util.ts +82 -0
  196. package/schematics/utils/yaml-config.util.d.ts +22 -0
  197. package/schematics/utils/yaml-config.util.js +119 -0
  198. package/schematics/utils/yaml-config.util.js.map +1 -0
  199. package/schematics/utils/yaml-config.util.ts +167 -0
  200. /package/schematics/{nest-add → add-gateway}/files/acl/src/cache/in-memory-acl-store.ts +0 -0
  201. /package/schematics/{nest-add → add-gateway}/files/acl/src/modules/database/repository/acl.repository.ts +0 -0
  202. /package/schematics/{nest-add → add-gateway}/files/db-core/src/modules/database/repository/in-memory-collection.ts +0 -0
  203. /package/schematics/{nest-add → add-gateway}/files/gateway-admin/src/modules/database/repository/gateway.repository.ts +0 -0
  204. /package/schematics/{nest-add → add-gateway}/files/gateway-admin/src/modules/database/repository/route-sync.repository.ts +0 -0
@@ -9,6 +9,8 @@ export declare const ACL_ACTIONS: {
9
9
  readonly listResourcesByUser: "acl-list-resources-by-user";
10
10
  readonly grant: "acl-grant";
11
11
  readonly revoke: "acl-revoke";
12
+ readonly adminGrant: "acl-admin-grant";
13
+ readonly adminRevoke: "acl-admin-revoke";
12
14
  readonly grantSearch: "acl-grant-search";
13
15
  readonly invalidate: "acl-invalidate";
14
16
  readonly actionUpdate: "acl-action-update";
@@ -12,6 +12,8 @@ exports.ACL_ACTIONS = {
12
12
  listResourcesByUser: 'acl-list-resources-by-user',
13
13
  grant: 'acl-grant',
14
14
  revoke: 'acl-revoke',
15
+ adminGrant: 'acl-admin-grant',
16
+ adminRevoke: 'acl-admin-revoke',
15
17
  grantSearch: 'acl-grant-search',
16
18
  invalidate: 'acl-invalidate',
17
19
  actionUpdate: 'acl-action-update',
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/const.ts"],"names":[],"mappings":";;;AAGa,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEpC,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAE5C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAI9C,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AAKvD,QAAA,8BAA8B,GAAG,aAAa,CAAC;AAG/C,QAAA,WAAW,GAAG;IAGzB,WAAW,EAAE,kBAAkB;IAE/B,mBAAmB,EAAE,4BAA4B;IACjD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,gBAAgB;IAE5B,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,iBAAiB;CACrB,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/const.ts"],"names":[],"mappings":";;;AAGa,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEpC,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAE5C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAI9C,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AAKvD,QAAA,8BAA8B,GAAG,aAAa,CAAC;AAG/C,QAAA,WAAW,GAAG;IAGzB,WAAW,EAAE,kBAAkB;IAE/B,mBAAmB,EAAE,4BAA4B;IACjD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IAIpB,UAAU,EAAE,iBAAiB;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,gBAAgB;IAE5B,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,iBAAiB;CACrB,CAAC"}
@@ -23,6 +23,10 @@ export declare class AclManagementService {
23
23
  private invalidateAll;
24
24
  grant(userId: string, roles: string[], resourceId?: string, companyId?: string, friendlyName?: string, currentUser?: string): Promise<AclGrant>;
25
25
  revoke(userId: string, roles: string[], resourceId?: string, companyId?: string, currentUser?: string): Promise<AclGrant | null>;
26
+ adminGrant(userId: string, roles: string[], resourceId?: string, companyId?: string, friendlyName?: string): Promise<AclGrant>;
27
+ adminRevoke(userId: string, roles: string[], resourceId?: string, companyId?: string): Promise<AclGrant | null>;
28
+ private applyGrant;
29
+ private applyRevoke;
26
30
  private findGrant;
27
31
  upsertAction(name: string, description?: string): Promise<AclAction>;
28
32
  deleteAction(name: string): Promise<AclAction>;
@@ -54,11 +54,24 @@ let AclManagementService = AclManagementService_1 = class AclManagementService {
54
54
  await this.invalidation.broadcast('all');
55
55
  }
56
56
  async grant(userId, roles, resourceId, companyId, friendlyName, currentUser) {
57
+ await this.assertCanManage(currentUser ?? '', companyId, resourceId, 'grant');
58
+ return this.applyGrant(userId, roles, resourceId, companyId, friendlyName);
59
+ }
60
+ async revoke(userId, roles, resourceId, companyId, currentUser) {
61
+ await this.assertCanManage(currentUser ?? '', companyId, resourceId, 'revoke');
62
+ return this.applyRevoke(userId, roles, resourceId, companyId);
63
+ }
64
+ async adminGrant(userId, roles, resourceId, companyId, friendlyName) {
65
+ return this.applyGrant(userId, roles, resourceId, companyId, friendlyName);
66
+ }
67
+ async adminRevoke(userId, roles, resourceId, companyId) {
68
+ return this.applyRevoke(userId, roles, resourceId, companyId);
69
+ }
70
+ async applyGrant(userId, roles, resourceId, companyId, friendlyName) {
57
71
  if (!userId)
58
72
  throw new common_2.BadRequestError('userId is required');
59
73
  if (!roles?.length)
60
74
  throw new common_2.BadRequestError('roles are required');
61
- await this.assertCanManage(currentUser ?? '', companyId, resourceId, 'grant');
62
75
  await this.assertRolesExist(roles);
63
76
  const existing = await this.findGrant(userId, companyId, resourceId);
64
77
  let result;
@@ -76,12 +89,11 @@ let AclManagementService = AclManagementService_1 = class AclManagementService {
76
89
  await this.invalidateUser(userId);
77
90
  return result;
78
91
  }
79
- async revoke(userId, roles, resourceId, companyId, currentUser) {
92
+ async applyRevoke(userId, roles, resourceId, companyId) {
80
93
  if (!userId)
81
94
  throw new common_2.BadRequestError('userId is required');
82
95
  if (!roles?.length)
83
96
  throw new common_2.BadRequestError('roles are required');
84
- await this.assertCanManage(currentUser ?? '', companyId, resourceId, 'revoke');
85
97
  const existing = await this.findGrant(userId, companyId, resourceId);
86
98
  if (!existing)
87
99
  return null;
@@ -194,6 +206,27 @@ __decorate([
194
206
  __metadata("design:paramtypes", [String, Array, String, String, String]),
195
207
  __metadata("design:returntype", Promise)
196
208
  ], AclManagementService.prototype, "revoke", null);
209
+ __decorate([
210
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.adminGrant, 'rpc'),
211
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
212
+ __param(1, (0, broker_1.BrokerParam)('body', 'roles')),
213
+ __param(2, (0, broker_1.BrokerParam)('body', 'resourceId')),
214
+ __param(3, (0, broker_1.BrokerParam)('body', 'companyId')),
215
+ __param(4, (0, broker_1.BrokerParam)('body', 'friendlyName')),
216
+ __metadata("design:type", Function),
217
+ __metadata("design:paramtypes", [String, Array, String, String, String]),
218
+ __metadata("design:returntype", Promise)
219
+ ], AclManagementService.prototype, "adminGrant", null);
220
+ __decorate([
221
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.adminRevoke, 'rpc'),
222
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
223
+ __param(1, (0, broker_1.BrokerParam)('body', 'roles')),
224
+ __param(2, (0, broker_1.BrokerParam)('body', 'resourceId')),
225
+ __param(3, (0, broker_1.BrokerParam)('body', 'companyId')),
226
+ __metadata("design:type", Function),
227
+ __metadata("design:paramtypes", [String, Array, String, String]),
228
+ __metadata("design:returntype", Promise)
229
+ ], AclManagementService.prototype, "adminRevoke", null);
197
230
  __decorate([
198
231
  (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.actionUpdate, 'rpc'),
199
232
  __param(0, (0, broker_1.BrokerParam)('body', 'name')),
@@ -1 +1 @@
1
- {"version":3,"file":"acl-management.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl-management.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acl-management.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl-management.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-rlb/nestjs-amqp",
3
- "version": "2.1.1",
3
+ "version": "2.2.1",
4
4
  "description": "",
5
5
  "author": "Giuseppe Riolo <riolo.giuseppe@gmail.com>",
6
6
  "private": false,
@@ -37,19 +37,19 @@
37
37
  "jwks-rsa": "^4.0.1",
38
38
  "reflect-metadata": "^0.2.2",
39
39
  "rxjs": "^7.8.2",
40
- "ws": "^8.21.0"
40
+ "ws": "^8.21.0",
41
+ "yaml": "^2.9.0"
41
42
  },
42
43
  "devDependencies": {
43
44
  "@angular-devkit/core": "^22.0.1",
44
45
  "@angular-devkit/schematics": "^22.0.1",
45
- "@nestjs/mongoose": "^11.0.4",
46
- "@types/js-yaml": "^4.0.9",
47
- "mongoose": "^8.19.3",
48
46
  "@nestjs/cli": "^11.0.23",
47
+ "@nestjs/mongoose": "^11.0.4",
49
48
  "@nestjs/schematics": "^11.1.0",
50
49
  "@nestjs/testing": "^11.1.26",
51
50
  "@types/express": "^5.0.6",
52
51
  "@types/jest": "^30.0.0",
52
+ "@types/js-yaml": "^4.0.9",
53
53
  "@types/multer": "^2.1.0",
54
54
  "@types/node": "^25.9.3",
55
55
  "@types/supertest": "^7.2.0",
@@ -61,6 +61,7 @@
61
61
  "eslint-config-prettier": "^10.1.8",
62
62
  "eslint-plugin-prettier": "^5.5.6",
63
63
  "jest": "^30.4.2",
64
+ "mongoose": "^8.19.3",
64
65
  "prettier": "^3.8.4",
65
66
  "source-map-support": "^0.5.21",
66
67
  "supertest": "^7.2.2",
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { AddAuthProviderOptions } from './schema';
3
+ export declare function main(options: AddAuthProviderOptions): Rule;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = main;
4
+ const schematic_prompt_util_1 = require("../utils/schematic-prompt.util");
5
+ const yaml_config_util_1 = require("../utils/yaml-config.util");
6
+ const TYPES = ['jwt', 'jwks', 'basic', 'str-compare', 'none'];
7
+ const RELEVANT_FIELDS = {
8
+ jwt: ['issuer', 'algorithms', 'secret', 'audience', 'uidClaim', 'jwtMap'],
9
+ jwks: ['issuer', 'jwksUri', 'algorithms', 'audience', 'uidClaim', 'jwtMap', 'httpsAllowUnauthorized'],
10
+ basic: ['clientId', 'clientSecret', 'uidClaim'],
11
+ 'str-compare': ['secret', 'uidClaim'],
12
+ none: [],
13
+ };
14
+ function main(options) {
15
+ return async (tree, context) => {
16
+ const flagsProvided = options.name !== undefined;
17
+ const prompts = (0, schematic_prompt_util_1.loadPrompts)(context, flagsProvided);
18
+ const name = options.name || (await (0, schematic_prompt_util_1.askText)(prompts, 'Auth-provider name?', ''));
19
+ if (!name) {
20
+ context.logger.error('[rlb-amqp] add-auth-provider: a name is required.');
21
+ return tree;
22
+ }
23
+ const type = options.type || (await (0, schematic_prompt_util_1.askSelect)(prompts, 'Provider type?', TYPES, 'jwks'));
24
+ const headerPrefix = options.headerPrefix ?? 'X-GTW-AUTH-';
25
+ const configPath = (0, yaml_config_util_1.findConfigYaml)(tree, options.config);
26
+ const { doc, existed } = (0, yaml_config_util_1.readConfigDoc)(tree, configPath);
27
+ if (!existed)
28
+ context.logger.info(`[rlb-amqp] ${configPath} not found — creating it.`);
29
+ const candidates = {
30
+ uidClaim: options.uidClaim,
31
+ jwtMap: options.jwtMap,
32
+ algorithms: options.algorithms,
33
+ issuer: options.issuer,
34
+ jwksUri: options.jwksUri,
35
+ secret: options.secret,
36
+ audience: options.audience,
37
+ clientId: options.clientId,
38
+ clientSecret: options.clientSecret,
39
+ httpsAllowUnauthorized: options.httpsAllowUnauthorized,
40
+ };
41
+ const item = { name, type, headerPrefix };
42
+ for (const field of RELEVANT_FIELDS[type]) {
43
+ if (candidates[field] !== undefined)
44
+ item[field] = candidates[field];
45
+ }
46
+ if (type === 'jwt' || type === 'jwks') {
47
+ if (!options.algorithms || options.algorithms.length === 0) {
48
+ context.logger.warn('[rlb-amqp] add-auth-provider: algorithms is REQUIRED for jwt/jwks — verification will be DENIED until set (algorithm-confusion guard).');
49
+ }
50
+ if (!options.jwtMap || options.jwtMap.length === 0) {
51
+ context.logger.warn('[rlb-amqp] add-auth-provider: without jwtMap no identity claims are forwarded (uidClaim still needed for the action gate).');
52
+ }
53
+ }
54
+ const outcome = (0, yaml_config_util_1.upsertSeqItemByKey)(doc, ['auth-providers'], 'name', item, { overwrite: options.overwrite });
55
+ (0, schematic_prompt_util_1.logOutcome)(context, `auth-provider '${name}'`, outcome);
56
+ (0, yaml_config_util_1.writeConfigDoc)(tree, configPath, doc);
57
+ return tree;
58
+ };
59
+ }
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/schematics/add-auth-provider/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
2
+ import { parseDocument } from 'yaml';
3
+ import { main } from './index';
4
+ import { AddAuthProviderOptions } from './schema';
5
+
6
+ /**
7
+ * Schematics are tested by invoking the factory Rule directly against a Tree, NOT via
8
+ * SchematicTestRunner (its testing entrypoint eagerly loads `ora`, an ESM-only module jest cannot
9
+ * transform here). Passing `name` makes `flagsProvided` true, so no interactive prompt is attempted.
10
+ */
11
+ function makeCtx(warnings: string[] = []): SchematicContext {
12
+ return { logger: { info() {}, warn: (m: string) => warnings.push(m), error() {} } } as unknown as SchematicContext;
13
+ }
14
+
15
+ async function run(options: AddAuthProviderOptions, tree: Tree, ctx = makeCtx()): Promise<Tree> {
16
+ const rule = main(options) as Rule;
17
+ const result = await (rule as (t: Tree, c: SchematicContext) => Promise<Tree>)(tree, ctx);
18
+ return result || tree;
19
+ }
20
+
21
+ function read(tree: Tree, path = 'config/config.yaml'): string {
22
+ return tree.read(path)!.toString('utf-8');
23
+ }
24
+ function doc(tree: Tree) {
25
+ return parseDocument(read(tree));
26
+ }
27
+ function seedConfig(): Tree {
28
+ const tree = Tree.empty();
29
+ tree.create(
30
+ 'config/config.yaml',
31
+ ['# my config', 'auth-providers:', ' - name: existing', ' type: basic', 'gateway: {}', ''].join('\n'),
32
+ );
33
+ return tree;
34
+ }
35
+
36
+ describe('add-auth-provider schematic', () => {
37
+ it('appends a jwks provider with only type-relevant fields, preserving comments', async () => {
38
+ const tree = await run(
39
+ {
40
+ name: 'keycloak',
41
+ type: 'jwks',
42
+ jwksUri: 'https://kc/realms/x/protocol/openid-connect/certs',
43
+ algorithms: ['RS256'],
44
+ jwtMap: ['sub:userId'],
45
+ uidClaim: 'sub',
46
+ clientSecret: 'should-not-appear',
47
+ },
48
+ seedConfig(),
49
+ );
50
+ const providers = doc(tree).getIn(['auth-providers']) as any;
51
+ expect(providers.items.map((i: any) => String(i.get('name')))).toEqual(['existing', 'keycloak']);
52
+ const kc = providers.items[1];
53
+ expect(String(kc.get('type'))).toBe('jwks');
54
+ expect(String(kc.get('headerPrefix'))).toBe('X-GTW-AUTH-');
55
+ expect(kc.get('jwksUri')).toBeDefined();
56
+ // clientSecret is irrelevant for jwks and must be filtered out.
57
+ expect(kc.get('clientSecret')).toBeUndefined();
58
+ expect(read(tree)).toContain('# my config');
59
+ });
60
+
61
+ it('is idempotent: re-adding the same provider leaves a single entry', async () => {
62
+ let tree = await run({ name: 'demo', type: 'basic', clientSecret: 'secret' }, seedConfig());
63
+ tree = await run({ name: 'demo', type: 'basic', clientSecret: 'secret' }, tree);
64
+ const providers = doc(tree).getIn(['auth-providers']) as any;
65
+ const names = providers.items.map((i: any) => String(i.get('name')));
66
+ expect(names.filter((n: string) => n === 'demo')).toHaveLength(1);
67
+ });
68
+
69
+ it('warns when a jwt/jwks provider is missing algorithms and jwtMap (fails-closed invariant)', async () => {
70
+ const warnings: string[] = [];
71
+ await run({ name: 'insecure', type: 'jwt', issuer: 'https://issuer' }, seedConfig(), makeCtx(warnings));
72
+ expect(warnings.some((w) => w.includes('algorithms is REQUIRED'))).toBe(true);
73
+ expect(warnings.some((w) => w.includes('without jwtMap'))).toBe(true);
74
+ });
75
+
76
+ it('creates config.yaml when it does not exist', async () => {
77
+ const tree = await run({ name: 'demo', type: 'basic', clientSecret: 'secret', uidClaim: 'USERID' }, Tree.empty());
78
+ expect(tree.exists('config/config.yaml')).toBe(true);
79
+ const providers = doc(tree).getIn(['auth-providers']) as any;
80
+ expect(String(providers.items[0].get('name'))).toBe('demo');
81
+ expect(String(providers.items[0].get('uidClaim'))).toBe('USERID');
82
+ });
83
+ });
@@ -0,0 +1,83 @@
1
+ import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
2
+ import { askSelect, askText, loadPrompts, logOutcome } from '../utils/schematic-prompt.util';
3
+ import { findConfigYaml, readConfigDoc, upsertSeqItemByKey, writeConfigDoc } from '../utils/yaml-config.util';
4
+ import { AddAuthProviderOptions, AuthProviderType } from './schema';
5
+
6
+ const TYPES: readonly AuthProviderType[] = ['jwt', 'jwks', 'basic', 'str-compare', 'none'];
7
+
8
+ /**
9
+ * Optional fields that make sense per verification strategy. A field is only emitted when it is BOTH
10
+ * relevant to the chosen type AND provided — so a `basic` provider never carries a stray `jwksUri`,
11
+ * and a token provider never carries `clientSecret`. `name`/`type`/`headerPrefix` are always written.
12
+ */
13
+ const RELEVANT_FIELDS: Record<AuthProviderType, readonly string[]> = {
14
+ jwt: ['issuer', 'algorithms', 'secret', 'audience', 'uidClaim', 'jwtMap'],
15
+ jwks: ['issuer', 'jwksUri', 'algorithms', 'audience', 'uidClaim', 'jwtMap', 'httpsAllowUnauthorized'],
16
+ basic: ['clientId', 'clientSecret', 'uidClaim'],
17
+ 'str-compare': ['secret', 'uidClaim'],
18
+ none: [],
19
+ };
20
+
21
+ /**
22
+ * `add-auth-provider <name>` — idempotent upsert of a top-level `auth-providers[]` entry,
23
+ * comment-preserving. The provider name is what gateway paths/events reference via `auth`.
24
+ * Only the fields relevant to the selected verification `type` are written (see RELEVANT_FIELDS).
25
+ */
26
+ export function main(options: AddAuthProviderOptions): Rule {
27
+ return async (tree: Tree, context: SchematicContext) => {
28
+ const flagsProvided = options.name !== undefined;
29
+ const prompts = loadPrompts(context, flagsProvided);
30
+
31
+ const name = options.name || (await askText(prompts, 'Auth-provider name?', ''));
32
+ if (!name) {
33
+ context.logger.error('[rlb-amqp] add-auth-provider: a name is required.');
34
+ return tree;
35
+ }
36
+
37
+ const type = (options.type as AuthProviderType) || (await askSelect(prompts, 'Provider type?', TYPES, 'jwks'));
38
+ const headerPrefix = options.headerPrefix ?? 'X-GTW-AUTH-';
39
+
40
+ const configPath = findConfigYaml(tree, options.config);
41
+ const { doc, existed } = readConfigDoc(tree, configPath);
42
+ if (!existed) context.logger.info(`[rlb-amqp] ${configPath} not found — creating it.`);
43
+
44
+ // All candidate optional values; the per-type filter below keeps only the relevant, defined ones.
45
+ const candidates: Record<string, unknown> = {
46
+ uidClaim: options.uidClaim,
47
+ jwtMap: options.jwtMap,
48
+ algorithms: options.algorithms,
49
+ issuer: options.issuer,
50
+ jwksUri: options.jwksUri,
51
+ secret: options.secret,
52
+ audience: options.audience,
53
+ clientId: options.clientId,
54
+ clientSecret: options.clientSecret,
55
+ httpsAllowUnauthorized: options.httpsAllowUnauthorized,
56
+ };
57
+
58
+ const item: Record<string, unknown> = { name, type, headerPrefix };
59
+ for (const field of RELEVANT_FIELDS[type]) {
60
+ if (candidates[field] !== undefined) item[field] = candidates[field];
61
+ }
62
+
63
+ // Fails-closed invariants for token providers: without these the gateway can't safely verify.
64
+ if (type === 'jwt' || type === 'jwks') {
65
+ if (!options.algorithms || options.algorithms.length === 0) {
66
+ context.logger.warn(
67
+ '[rlb-amqp] add-auth-provider: algorithms is REQUIRED for jwt/jwks — verification will be DENIED until set (algorithm-confusion guard).',
68
+ );
69
+ }
70
+ if (!options.jwtMap || options.jwtMap.length === 0) {
71
+ context.logger.warn(
72
+ '[rlb-amqp] add-auth-provider: without jwtMap no identity claims are forwarded (uidClaim still needed for the action gate).',
73
+ );
74
+ }
75
+ }
76
+
77
+ const outcome = upsertSeqItemByKey(doc, ['auth-providers'], 'name', item, { overwrite: options.overwrite });
78
+ logOutcome(context, `auth-provider '${name}'`, outcome);
79
+
80
+ writeConfigDoc(tree, configPath, doc);
81
+ return tree;
82
+ };
83
+ }
@@ -0,0 +1,18 @@
1
+ export type AuthProviderType = 'jwt' | 'jwks' | 'basic' | 'str-compare' | 'none';
2
+ export interface AddAuthProviderOptions {
3
+ name?: string;
4
+ type?: AuthProviderType;
5
+ headerPrefix?: string;
6
+ uidClaim?: string;
7
+ jwtMap?: string[];
8
+ algorithms?: string[];
9
+ issuer?: string;
10
+ jwksUri?: string;
11
+ secret?: string;
12
+ audience?: string;
13
+ clientId?: string;
14
+ clientSecret?: string;
15
+ httpsAllowUnauthorized?: boolean;
16
+ overwrite?: boolean;
17
+ config?: string;
18
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/schematics/add-auth-provider/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "SchematicsRlbAmqpAddAuthProvider",
4
+ "title": "Add an auth-providers[] entry to config.yaml",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "Provider name (the key gateway paths/events reference via auth).",
10
+ "x-prompt": "Auth-provider name?",
11
+ "$default": { "$source": "argv", "index": 0 }
12
+ },
13
+ "type": {
14
+ "type": "string",
15
+ "enum": ["jwt", "jwks", "basic", "str-compare", "none"],
16
+ "default": "jwks",
17
+ "description": "Verification strategy."
18
+ },
19
+ "headerPrefix": {
20
+ "type": "string",
21
+ "default": "X-GTW-AUTH-",
22
+ "description": "Prefix for the identity headers forwarded downstream."
23
+ },
24
+ "uidClaim": {
25
+ "type": "string",
26
+ "description": "Claim whose value becomes the authenticated userId (drives the ACL/action gate)."
27
+ },
28
+ "jwtMap": {
29
+ "type": "array",
30
+ "items": { "type": "string" },
31
+ "description": "Claim->header maps as src:dest (jwt/jwks)."
32
+ },
33
+ "algorithms": {
34
+ "type": "array",
35
+ "items": { "type": "string" },
36
+ "description": "Allowed signature algorithms (jwt/jwks) — REQUIRED to verify."
37
+ },
38
+ "issuer": { "type": "string", "description": "Expected token issuer (jwt/jwks)." },
39
+ "jwksUri": { "type": "string", "description": "JWKS endpoint to fetch signing keys from (jwks)." },
40
+ "secret": { "type": "string", "description": "HMAC/shared secret (jwt symmetric, or str-compare)." },
41
+ "audience": { "type": "string", "description": "Expected token audience (jwt/jwks)." },
42
+ "clientId": { "type": "string", "description": "Client id (basic)." },
43
+ "clientSecret": { "type": "string", "description": "Client secret / password (basic)." },
44
+ "httpsAllowUnauthorized": {
45
+ "type": "boolean",
46
+ "description": "Accept self-signed TLS when fetching the JWKS (jwks) — DEV ONLY."
47
+ },
48
+ "overwrite": {
49
+ "type": "boolean",
50
+ "default": false,
51
+ "description": "Update the entry if it already exists (default: leave it untouched)."
52
+ },
53
+ "config": {
54
+ "type": "string",
55
+ "description": "Path to config.yaml (default: auto-detected)."
56
+ }
57
+ },
58
+ "required": []
59
+ }
@@ -0,0 +1,35 @@
1
+ /** Auth-provider verification strategy. Mirrors HandlerAuthConfig['type']. */
2
+ export type AuthProviderType = 'jwt' | 'jwks' | 'basic' | 'str-compare' | 'none';
3
+
4
+ export interface AddAuthProviderOptions {
5
+ /** Provider name (the key gateway paths/events reference via `auth`). Prompted when omitted. */
6
+ name?: string;
7
+ /** Verification strategy. Default: jwks. */
8
+ type?: AuthProviderType;
9
+ /** Prefix for the identity headers the gateway forwards downstream. Default: X-GTW-AUTH-. */
10
+ headerPrefix?: string;
11
+ /** Claim whose value becomes the authenticated userId (drives the ACL/action gate). */
12
+ uidClaim?: string;
13
+ /** Claim→header maps as `src:dest` (jwt/jwks): which token claims are forwarded downstream. */
14
+ jwtMap?: string[];
15
+ /** Allowed signature algorithms (jwt/jwks) — REQUIRED to verify (algorithm-confusion guard). */
16
+ algorithms?: string[];
17
+ /** Expected token issuer (jwt/jwks). */
18
+ issuer?: string;
19
+ /** JWKS endpoint to fetch signing keys from (jwks). */
20
+ jwksUri?: string;
21
+ /** HMAC/shared secret (jwt with symmetric alg, or str-compare). */
22
+ secret?: string;
23
+ /** Expected token audience (jwt/jwks). */
24
+ audience?: string;
25
+ /** Client id (basic). */
26
+ clientId?: string;
27
+ /** Client secret / password (basic). */
28
+ clientSecret?: string;
29
+ /** Accept self-signed TLS when fetching the JWKS (jwks) — DEV ONLY. */
30
+ httpsAllowUnauthorized?: boolean;
31
+ /** Update the entry when it already exists (default: leave it untouched). */
32
+ overwrite?: boolean;
33
+ /** Path to config.yaml (default: auto-detected, typically config/config.yaml). */
34
+ config?: string;
35
+ }
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { AddExchangeOptions } from './schema';
3
+ export declare function main(options: AddExchangeOptions): Rule;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = main;
4
+ const broker_yaml_util_1 = require("../utils/broker-yaml.util");
5
+ const schematic_prompt_util_1 = require("../utils/schematic-prompt.util");
6
+ const yaml_config_util_1 = require("../utils/yaml-config.util");
7
+ const TYPES = ['direct', 'topic', 'fanout', 'headers'];
8
+ function main(options) {
9
+ return async (tree, context) => {
10
+ const flagsProvided = options.name !== undefined;
11
+ const prompts = (0, schematic_prompt_util_1.loadPrompts)(context, flagsProvided);
12
+ const name = options.name || (await (0, schematic_prompt_util_1.askText)(prompts, 'Exchange name?', ''));
13
+ if (!name) {
14
+ context.logger.error('[rlb-amqp] add-exchange: a name is required.');
15
+ return tree;
16
+ }
17
+ const type = options.type || (await (0, schematic_prompt_util_1.askSelect)(prompts, 'Exchange type?', TYPES, 'direct'));
18
+ const configPath = (0, yaml_config_util_1.findConfigYaml)(tree, options.config);
19
+ const { doc, existed } = (0, yaml_config_util_1.readConfigDoc)(tree, configPath);
20
+ if (!existed)
21
+ context.logger.info(`[rlb-amqp] ${configPath} not found — creating it.`);
22
+ const outcome = (0, broker_yaml_util_1.ensureExchange)(doc, {
23
+ name,
24
+ type,
25
+ createExchangeIfNotExists: options.createIfNotExists ?? true,
26
+ durable: options.durable ?? true,
27
+ autoDelete: options.autoDelete ?? false,
28
+ internal: options.internal ?? false,
29
+ }, { overwrite: options.overwrite });
30
+ (0, schematic_prompt_util_1.logOutcome)(context, `exchange '${name}'`, outcome);
31
+ const withQueue = options.withQueue ?? (await (0, schematic_prompt_util_1.askConfirm)(prompts, `Create a queue bound to '${name}'?`, false));
32
+ if (withQueue) {
33
+ const queueName = options.queueName || (await (0, schematic_prompt_util_1.askText)(prompts, 'Queue name?', name));
34
+ const needsRoutingKey = type === 'topic';
35
+ const routingKey = needsRoutingKey ? options.routingKey || queueName : options.routingKey;
36
+ const qOutcome = (0, broker_yaml_util_1.ensureQueue)(doc, {
37
+ name: queueName,
38
+ exchange: name,
39
+ routingKey,
40
+ createQueueIfNotExists: true,
41
+ durable: true,
42
+ });
43
+ (0, schematic_prompt_util_1.logOutcome)(context, `queue '${queueName}'`, qOutcome);
44
+ }
45
+ (0, yaml_config_util_1.writeConfigDoc)(tree, configPath, doc);
46
+ return tree;
47
+ };
48
+ }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/schematics/add-exchange/index.ts"],"names":[],"mappings":";;AAcA,oBAkDC;AA/DD,gEAAsF;AACtF,0EAAyG;AACzG,gEAA0F;AAG1F,MAAM,KAAK,GAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAQhF,SAAgB,IAAI,CAAC,OAA2B;IAC9C,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,IAAA,mCAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,IAAA,+BAAO,EAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAI,OAAO,CAAC,IAAqB,IAAI,CAAC,MAAM,IAAA,iCAAS,EAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE7G,MAAM,UAAU,GAAG,IAAA,iCAAc,EAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAA,gCAAa,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,2BAA2B,CAAC,CAAC;QAEvF,MAAM,OAAO,GAAG,IAAA,iCAAc,EAC5B,GAAG,EACH;YACE,IAAI;YACJ,IAAI;YACJ,yBAAyB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;YAC5D,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;YACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;SACpC,EACD,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CACjC,CAAC;QACF,IAAA,kCAAU,EAAC,OAAO,EAAE,aAAa,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;QAGnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,kCAAU,EAAC,OAAO,EAAE,4BAA4B,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAChH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,IAAA,+BAAO,EAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACrF,MAAM,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC;YACzC,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YAC1F,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,GAAG,EAAE;gBAChC,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,UAAU;gBACV,sBAAsB,EAAE,IAAI;gBAC5B,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,IAAA,kCAAU,EAAC,OAAO,EAAE,UAAU,SAAS,GAAG,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,IAAA,iCAAc,EAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}