tadis-analyzer 2.2.2 → 2.3.0

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 (234) hide show
  1. package/package.json +5 -1
  2. package/build/src/app/code-pattern/main.d.ts +0 -1
  3. package/build/src/app/code-pattern/main.js +0 -14
  4. package/build/src/app/code-pattern/main.js.map +0 -1
  5. package/build/src/app/default/main.d.ts +0 -1
  6. package/build/src/app/default/main.js +0 -15
  7. package/build/src/app/default/main.js.map +0 -1
  8. package/build/src/app/error.d.ts +0 -3
  9. package/build/src/app/error.js +0 -10
  10. package/build/src/app/error.js.map +0 -1
  11. package/build/src/config/Config.module.d.ts +0 -4
  12. package/build/src/config/Config.module.js +0 -28
  13. package/build/src/config/Config.module.js.map +0 -1
  14. package/build/src/config/Config.service.d.ts +0 -19
  15. package/build/src/config/Config.service.js +0 -105
  16. package/build/src/config/Config.service.js.map +0 -1
  17. package/build/src/config/Config.service.test.d.ts +0 -1
  18. package/build/src/config/Config.service.test.js +0 -33
  19. package/build/src/config/Config.service.test.js.map +0 -1
  20. package/build/src/deprecated-modules/CommonTransformers.module.d.ts +0 -5
  21. package/build/src/deprecated-modules/CommonTransformers.module.js +0 -34
  22. package/build/src/deprecated-modules/CommonTransformers.module.js.map +0 -1
  23. package/build/src/deprecated-modules/Msa.module.d.ts +0 -13
  24. package/build/src/deprecated-modules/Msa.module.js +0 -63
  25. package/build/src/deprecated-modules/Msa.module.js.map +0 -1
  26. package/build/src/deprecated-modules/SourceCodeAnalysis.module.d.ts +0 -6
  27. package/build/src/deprecated-modules/SourceCodeAnalysis.module.js +0 -60
  28. package/build/src/deprecated-modules/SourceCodeAnalysis.module.js.map +0 -1
  29. package/build/src/git/Git.module.d.ts +0 -5
  30. package/build/src/git/Git.module.js +0 -28
  31. package/build/src/git/Git.module.js.map +0 -1
  32. package/build/src/git/GitStorage.controller.d.ts +0 -17
  33. package/build/src/git/GitStorage.controller.js +0 -88
  34. package/build/src/git/GitStorage.controller.js.map +0 -1
  35. package/build/src/git/GitStorage.controller.test.d.ts +0 -1
  36. package/build/src/git/GitStorage.controller.test.js +0 -30
  37. package/build/src/git/GitStorage.controller.test.js.map +0 -1
  38. package/build/src/git/GitStorage.d.ts +0 -23
  39. package/build/src/git/GitStorage.js +0 -153
  40. package/build/src/git/GitStorage.js.map +0 -1
  41. package/build/src/git/GitStorage.service.d.ts +0 -10
  42. package/build/src/git/GitStorage.service.js +0 -36
  43. package/build/src/git/GitStorage.service.js.map +0 -1
  44. package/build/src/git/SourceLocationDecorator.d.ts +0 -12
  45. package/build/src/git/SourceLocationDecorator.js +0 -46
  46. package/build/src/git/SourceLocationDecorator.js.map +0 -1
  47. package/build/src/git/SourceLocationDecorator.test.d.ts +0 -1
  48. package/build/src/git/SourceLocationDecorator.test.js +0 -35
  49. package/build/src/git/SourceLocationDecorator.test.js.map +0 -1
  50. package/build/src/lib.d.ts +0 -21
  51. package/build/src/lib.js +0 -57
  52. package/build/src/lib.js.map +0 -1
  53. package/build/src/model/core-typed.d.ts +0 -21
  54. package/build/src/model/core-typed.js +0 -89
  55. package/build/src/model/core-typed.js.map +0 -1
  56. package/build/src/model/core-typed.test.d.ts +0 -1
  57. package/build/src/model/core-typed.test.js +0 -29
  58. package/build/src/model/core-typed.test.js.map +0 -1
  59. package/build/src/model/core.d.ts +0 -33
  60. package/build/src/model/core.js +0 -117
  61. package/build/src/model/core.js.map +0 -1
  62. package/build/src/model/ms.d.ts +0 -58
  63. package/build/src/model/ms.js +0 -83
  64. package/build/src/model/ms.js.map +0 -1
  65. package/build/src/model/transport.d.ts +0 -17
  66. package/build/src/model/transport.js +0 -20
  67. package/build/src/model/transport.js.map +0 -1
  68. package/build/src/model/v1-legacy/model.d.ts +0 -53
  69. package/build/src/model/v1-legacy/model.js +0 -85
  70. package/build/src/model/v1-legacy/model.js.map +0 -1
  71. package/build/src/model/v1-legacy/v1-adapter.d.ts +0 -3
  72. package/build/src/model/v1-legacy/v1-adapter.js +0 -68
  73. package/build/src/model/v1-legacy/v1-adapter.js.map +0 -1
  74. package/build/src/model/v1-legacy/v1-adapter.test.d.ts +0 -1
  75. package/build/src/model/v1-legacy/v1-adapter.test.js +0 -66
  76. package/build/src/model/v1-legacy/v1-adapter.test.js.map +0 -1
  77. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.d.ts +0 -12
  78. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.js +0 -107
  79. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.js.map +0 -1
  80. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.d.ts +0 -1
  81. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.js +0 -111
  82. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.js.map +0 -1
  83. package/build/src/post-processors/PostProcessors.module.d.ts +0 -6
  84. package/build/src/post-processors/PostProcessors.module.js +0 -37
  85. package/build/src/post-processors/PostProcessors.module.js.map +0 -1
  86. package/build/src/post-processors/PostProcessors.module.test.d.ts +0 -1
  87. package/build/src/post-processors/PostProcessors.module.test.js +0 -23
  88. package/build/src/post-processors/PostProcessors.module.test.js.map +0 -1
  89. package/build/src/post-processors/StaticNodeFilter.d.ts +0 -9
  90. package/build/src/post-processors/StaticNodeFilter.js +0 -91
  91. package/build/src/post-processors/StaticNodeFilter.js.map +0 -1
  92. package/build/src/post-processors/StaticNodeFilter.test.d.ts +0 -1
  93. package/build/src/post-processors/StaticNodeFilter.test.js +0 -36
  94. package/build/src/post-processors/StaticNodeFilter.test.js.map +0 -1
  95. package/build/src/post-processors/SubSystemFromPayloadTransformer.d.ts +0 -13
  96. package/build/src/post-processors/SubSystemFromPayloadTransformer.js +0 -103
  97. package/build/src/post-processors/SubSystemFromPayloadTransformer.js.map +0 -1
  98. package/build/src/post-processors/SubSystemFromPayloadTransformer.test.d.ts +0 -1
  99. package/build/src/post-processors/SubSystemFromPayloadTransformer.test.js +0 -56
  100. package/build/src/post-processors/SubSystemFromPayloadTransformer.test.js.map +0 -1
  101. package/build/src/system-assemblers/controllers/ISystemAssembler.d.ts +0 -5
  102. package/build/src/system-assemblers/controllers/ISystemAssembler.js +0 -3
  103. package/build/src/system-assemblers/controllers/ISystemAssembler.js.map +0 -1
  104. package/build/src/system-assemblers/controllers/SystemAssembler.controller.d.ts +0 -19
  105. package/build/src/system-assemblers/controllers/SystemAssembler.controller.js +0 -95
  106. package/build/src/system-assemblers/controllers/SystemAssembler.controller.js.map +0 -1
  107. package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.d.ts +0 -1
  108. package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.js +0 -54
  109. package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.js.map +0 -1
  110. package/build/src/system-assemblers/controllers/SystemAssembler.module.d.ts +0 -6
  111. package/build/src/system-assemblers/controllers/SystemAssembler.module.js +0 -28
  112. package/build/src/system-assemblers/controllers/SystemAssembler.module.js.map +0 -1
  113. package/build/src/system-assemblers/controllers/SystemAssembler.service.d.ts +0 -6
  114. package/build/src/system-assemblers/controllers/SystemAssembler.service.js +0 -24
  115. package/build/src/system-assemblers/controllers/SystemAssembler.service.js.map +0 -1
  116. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.d.ts +0 -4
  117. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.js +0 -46
  118. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.js.map +0 -1
  119. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.d.ts +0 -16
  120. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.js +0 -53
  121. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.js.map +0 -1
  122. package/build/src/system-element-extractors/env-variables/EnvVariables.module.d.ts +0 -4
  123. package/build/src/system-element-extractors/env-variables/EnvVariables.module.js +0 -25
  124. package/build/src/system-element-extractors/env-variables/EnvVariables.module.js.map +0 -1
  125. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.d.ts +0 -13
  126. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.js +0 -64
  127. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.js.map +0 -1
  128. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.d.ts +0 -1
  129. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.js +0 -56
  130. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.js.map +0 -1
  131. package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.d.ts +0 -4
  132. package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.js +0 -26
  133. package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.js.map +0 -1
  134. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.d.ts +0 -8
  135. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.js +0 -54
  136. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.js.map +0 -1
  137. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.d.ts +0 -10
  138. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.js +0 -345
  139. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.js.map +0 -1
  140. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.multiFile.test.d.ts +0 -1
  141. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.multiFile.test.js +0 -130
  142. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.multiFile.test.js.map +0 -1
  143. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.d.ts +0 -16
  144. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js +0 -47
  145. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js.map +0 -1
  146. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.singleFile.test.d.ts +0 -1
  147. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.singleFile.test.js +0 -177
  148. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.singleFile.test.js.map +0 -1
  149. package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.d.ts +0 -1
  150. package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.js +0 -3
  151. package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.js.map +0 -1
  152. package/build/src/system-element-extractors/experimental/code-pattern/model.d.ts +0 -116
  153. package/build/src/system-element-extractors/experimental/code-pattern/model.js +0 -23
  154. package/build/src/system-element-extractors/experimental/code-pattern/model.js.map +0 -1
  155. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.d.ts +0 -8
  156. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.js +0 -26
  157. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.js.map +0 -1
  158. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.d.ts +0 -0
  159. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js +0 -18
  160. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js.map +0 -1
  161. package/build/src/system-element-extractors/java/Java.module.d.ts +0 -4
  162. package/build/src/system-element-extractors/java/Java.module.js +0 -26
  163. package/build/src/system-element-extractors/java/Java.module.js.map +0 -1
  164. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.d.ts +0 -35
  165. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.js +0 -155
  166. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.js.map +0 -1
  167. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.d.ts +0 -1
  168. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.js +0 -85
  169. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.js.map +0 -1
  170. package/build/src/system-element-extractors/kubernetes/Kubernetes.module.d.ts +0 -7
  171. package/build/src/system-element-extractors/kubernetes/Kubernetes.module.js +0 -43
  172. package/build/src/system-element-extractors/kubernetes/Kubernetes.module.js.map +0 -1
  173. package/build/src/system-element-extractors/kubernetes/api/api.service.d.ts +0 -9
  174. package/build/src/system-element-extractors/kubernetes/api/api.service.js +0 -78
  175. package/build/src/system-element-extractors/kubernetes/api/api.service.js.map +0 -1
  176. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.d.ts +0 -10
  177. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.js +0 -80
  178. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.js.map +0 -1
  179. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.d.ts +0 -1
  180. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js +0 -32
  181. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js.map +0 -1
  182. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.d.ts +0 -12
  183. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.js +0 -82
  184. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.js.map +0 -1
  185. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.d.ts +0 -1
  186. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js +0 -30
  187. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js.map +0 -1
  188. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.d.ts +0 -12
  189. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.js +0 -67
  190. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.js.map +0 -1
  191. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.d.ts +0 -1
  192. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js +0 -38
  193. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js.map +0 -1
  194. package/build/src/system-element-extractors/kubernetes/transformer/testdata/api/deployments.json +0 -256
  195. package/build/src/system-element-extractors/kubernetes/transformer/testdata/api/pods.json +0 -101
  196. package/build/src/system-element-extractors/kubernetes/transformer/testdata/api/services.json +0 -75
  197. package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.d.ts +0 -6
  198. package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.js +0 -38
  199. package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.js.map +0 -1
  200. package/build/src/system-element-extractors/rabbitmq/api/api.service.d.ts +0 -11
  201. package/build/src/system-element-extractors/rabbitmq/api/api.service.js +0 -63
  202. package/build/src/system-element-extractors/rabbitmq/api/api.service.js.map +0 -1
  203. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.d.ts +0 -9
  204. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js +0 -117
  205. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js.map +0 -1
  206. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.d.ts +0 -1
  207. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js +0 -43
  208. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js.map +0 -1
  209. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.d.ts +0 -14
  210. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js +0 -117
  211. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js.map +0 -1
  212. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.d.ts +0 -1
  213. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js +0 -121
  214. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js.map +0 -1
  215. package/build/src/system-element-extractors/rabbitmq/transformer/testdata/api/bindings.json +0 -20
  216. package/build/src/system-element-extractors/rabbitmq/transformer/testdata/api/queues.json +0 -5
  217. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.d.ts +0 -15
  218. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.js +0 -131
  219. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.js.map +0 -1
  220. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.d.ts +0 -1
  221. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.js +0 -54
  222. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.js.map +0 -1
  223. package/build/src/system-element-extractors/spring-boot/SpringBoot.module.d.ts +0 -4
  224. package/build/src/system-element-extractors/spring-boot/SpringBoot.module.js +0 -25
  225. package/build/src/system-element-extractors/spring-boot/SpringBoot.module.js.map +0 -1
  226. package/build/src/test/expect-extensions.d.ts +0 -7
  227. package/build/src/test/expect-extensions.js +0 -20
  228. package/build/src/test/expect-extensions.js.map +0 -1
  229. package/build/src/test/verifiers.d.ts +0 -4
  230. package/build/src/test/verifiers.js +0 -19
  231. package/build/src/test/verifiers.js.map +0 -1
  232. package/build/src/utils/files/analysis.d.ts +0 -30
  233. package/build/src/utils/files/analysis.js +0 -109
  234. package/build/src/utils/files/analysis.js.map +0 -1
@@ -1,117 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- 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;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __metadata = (this && this.__metadata) || function (k, v) {
32
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
- };
34
- var OutgoingExchangesFromSourceCreator_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.OutgoingExchangesFromSourceCreator = void 0;
37
- const common_1 = require("@nestjs/common");
38
- const fs = __importStar(require("fs"));
39
- const analysis_1 = require("../../../utils/files/analysis");
40
- const Config_service_1 = require("../../../config/Config.service");
41
- const ms_1 = require("../../../model/ms");
42
- const fileEndingToAnalyze = '.java';
43
- const fileNameToAnalyzeMustInclude = 'send';
44
- const pathToAnalyzeMustNotInclude = 'migration';
45
- let OutgoingExchangesFromSourceCreator = OutgoingExchangesFromSourceCreator_1 = class OutgoingExchangesFromSourceCreator {
46
- constructor(config) {
47
- this.config = config;
48
- this.logger = new common_1.Logger(OutgoingExchangesFromSourceCreator_1.name);
49
- }
50
- async transform(system) {
51
- const scanResults = await this.scanPathForExchangesInSendConfigurations(this.config.getSourceFolder());
52
- for (const scanResult of scanResults) {
53
- const metadata = {
54
- transformer: OutgoingExchangesFromSourceCreator_1.name,
55
- context: 'service ' + scanResult.serviceName
56
- };
57
- const sourceService = system.addMicroService(scanResult.serviceName, undefined, metadata);
58
- const targetExchange = system.addMessageExchange(scanResult.exchangeName, undefined, metadata);
59
- const eventFlow = new ms_1.AsyncEventFlow(sourceService, targetExchange, undefined, metadata);
60
- system.edges.push(eventFlow);
61
- this.logger.log(`added async event flow: ${sourceService.getPayload().name} -> ${targetExchange.getPayload().name}`);
62
- }
63
- return system;
64
- }
65
- async scanPathForExchangesInSendConfigurations(path) {
66
- this.logger.log('scanning for exchange in ' + path);
67
- const filesToAnalyze = await (0, analysis_1.findFiles)(path, [fileEndingToAnalyze], undefined);
68
- this.logger.log('found ' +
69
- filesToAnalyze.length +
70
- ' files which end with ' +
71
- fileEndingToAnalyze);
72
- const sendConfigurations = [];
73
- filesToAnalyze
74
- .filter((file) => (0, analysis_1.isNoSourceOfThisProject)(file) && isSendConfiguration(file))
75
- .forEach((file) => {
76
- const exchangeNames = parseExchangeVariables(file);
77
- exchangeNames.forEach((exchangeName) => {
78
- const serviceName = (0, analysis_1.getServiceNameFromPath)(path, file);
79
- sendConfigurations.push({ file, serviceName, exchangeName });
80
- });
81
- });
82
- this.logger.log('found ' + sendConfigurations.length + ' send configuration');
83
- return sendConfigurations;
84
- }
85
- };
86
- OutgoingExchangesFromSourceCreator = OutgoingExchangesFromSourceCreator_1 = __decorate([
87
- (0, common_1.Injectable)(),
88
- __metadata("design:paramtypes", [Config_service_1.ConfigService])
89
- ], OutgoingExchangesFromSourceCreator);
90
- exports.OutgoingExchangesFromSourceCreator = OutgoingExchangesFromSourceCreator;
91
- function isSendConfiguration(file) {
92
- return (getFileNameWithoutPath(file)
93
- .toLowerCase()
94
- .includes(fileNameToAnalyzeMustInclude) &&
95
- !file.toLowerCase().includes(pathToAnalyzeMustNotInclude) &&
96
- isNotPartOfTestInSourceProject(file));
97
- }
98
- function isNotPartOfTestInSourceProject(file) {
99
- // TODO: make this configurable
100
- return !file.toLowerCase().includes('test') || process.env.NODE_ENV === 'test';
101
- }
102
- function parseExchangeVariables(file) {
103
- const exchangeNames = [];
104
- const pattern = /exchange[\w]*[\s]*=\s*"(\w+)"/gi;
105
- const fileContent = fs.readFileSync(file, 'utf8');
106
- let matches = pattern.exec(fileContent);
107
- while (matches != null) {
108
- exchangeNames.push(matches[1]);
109
- matches = pattern.exec(fileContent);
110
- }
111
- return exchangeNames;
112
- }
113
- function getFileNameWithoutPath(fileLocation) {
114
- const lastSlashIndex = fileLocation.lastIndexOf('/');
115
- return fileLocation.slice(lastSlashIndex + 1);
116
- }
117
- //# sourceMappingURL=OutgoingExchangesFromSourceCreator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OutgoingExchangesFromSourceCreator.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const testing_1 = require("@nestjs/testing");
4
- const Config_service_1 = require("../../../config/Config.service");
5
- const ms_1 = require("../../../model/ms");
6
- const OutgoingExchangesFromSourceCreator_1 = require("./OutgoingExchangesFromSourceCreator");
7
- const verifiers_1 = require("../../../test/verifiers");
8
- describe(OutgoingExchangesFromSourceCreator_1.OutgoingExchangesFromSourceCreator.name, () => {
9
- let app;
10
- beforeEach(() => {
11
- process.env.NODE_ENV = 'test';
12
- });
13
- beforeAll(async () => {
14
- app = await testing_1.Test.createTestingModule({
15
- controllers: [],
16
- providers: [Config_service_1.ConfigService, OutgoingExchangesFromSourceCreator_1.OutgoingExchangesFromSourceCreator]
17
- }).compile();
18
- const config = app.get(Config_service_1.ConfigService);
19
- jest.spyOn(config, 'getSourceFolder').mockImplementation(() => __dirname + '/testdata/source-folder');
20
- });
21
- it('transforms', async () => {
22
- const inputSystem = new ms_1.System('test');
23
- const addExchangesFormSourceStep = app.get(OutgoingExchangesFromSourceCreator_1.OutgoingExchangesFromSourceCreator);
24
- const outputSystem = await addExchangesFormSourceStep.transform(inputSystem);
25
- expect(outputSystem).not.toBeNull();
26
- expect(outputSystem.getMicroServices()).toHaveLength(1);
27
- expect(outputSystem.getMessageExchanges()).toHaveLength(2);
28
- const exchangeNames = outputSystem.getMessageExchanges().map(exchange => exchange.getPayload().name);
29
- expect(exchangeNames).toContainEqual('exchangeInSource1');
30
- expect(exchangeNames).toContainEqual('exchangeInSource2');
31
- (0, verifiers_1.verifyEachContentHasTransformer)(outputSystem, OutgoingExchangesFromSourceCreator_1.OutgoingExchangesFromSourceCreator.name);
32
- });
33
- it('ignores source found in current project when not run in test mode', async () => {
34
- process.env.NODE_ENV = 'non-test';
35
- const inputSystem = new ms_1.System('test');
36
- const addExchangesFormSourceStep = app.get(OutgoingExchangesFromSourceCreator_1.OutgoingExchangesFromSourceCreator);
37
- const outputSystem = await addExchangesFormSourceStep.transform(inputSystem);
38
- expect(outputSystem).not.toBeNull();
39
- expect(outputSystem.getMicroServices()).toHaveLength(0);
40
- expect(outputSystem.getMessageExchanges()).toHaveLength(0);
41
- });
42
- });
43
- //# sourceMappingURL=OutgoingExchangesFromSourceCreator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OutgoingExchangesFromSourceCreator.test.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.ts"],"names":[],"mappings":";;AAAA,6CAAqD;AAErD,mEAA8D;AAE9D,0CAA0C;AAC1C,6FAAyF;AACzF,uDAAyE;AAEzE,QAAQ,CAAC,uEAAkC,CAAC,IAAI,EAAE,GAAG,EAAE;IACrD,IAAI,GAAkB,CAAA;IAEtB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,KAAK,IAAG,EAAE;QAClB,GAAG,GAAG,MAAM,cAAI,CAAC,mBAAmB,CAAC;YACnC,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,CAAC,8BAAa,EAAE,uEAAkC,CAAC;SAC/D,CAAC,CAAC,OAAO,EAAE,CAAA;QAEZ,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAgB,8BAAa,CAAC,CAAA;QACpD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,kBAAkB,CACtD,GAAG,EAAE,CAAC,SAAS,GAAG,yBAAyB,CAC5C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,YAAY,EAAE,KAAK,IAAG,EAAE;QACzB,MAAM,WAAW,GAAG,IAAI,WAAM,CAAC,MAAM,CAAC,CAAA;QAEtC,MAAM,0BAA0B,GAAG,GAAG,CAAC,GAAG,CAAqC,uEAAkC,CAAC,CAAA;QAClH,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE5E,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAEnC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;QACpG,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACzD,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QAEzD,IAAA,2CAA+B,EAAC,YAAY,EAAE,uEAAkC,CAAC,IAAI,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAG,EAAE;QAChF,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAA;QAEjC,MAAM,WAAW,GAAG,IAAI,WAAM,CAAC,MAAM,CAAC,CAAA;QAEtC,MAAM,0BAA0B,GAAG,GAAG,CAAC,GAAG,CAAqC,uEAAkC,CAAC,CAAA;QAClH,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE5E,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAEnC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,14 +0,0 @@
1
- import { ConfigService } from '../../../config/Config.service';
2
- import { System } from '../../../model/ms';
3
- import { RabbitMqManagementApiService } from '../api/api.service';
4
- export declare class RabbitMqBindingsFromApiAnalyzer {
5
- private readonly config;
6
- private readonly apiService;
7
- private readonly logger;
8
- constructor(config: ConfigService, apiService: RabbitMqManagementApiService);
9
- transform(system: System): Promise<System>;
10
- private getQueueNames;
11
- private addEdgesFromBindings;
12
- private ensureTargetNodeExists;
13
- private getBindings;
14
- }
@@ -1,117 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- 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;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __metadata = (this && this.__metadata) || function (k, v) {
32
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
- };
34
- var RabbitMqBindingsFromApiAnalyzer_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.RabbitMqBindingsFromApiAnalyzer = void 0;
37
- const common_1 = require("@nestjs/common");
38
- const _ = __importStar(require("lodash"));
39
- const Config_service_1 = require("../../../config/Config.service");
40
- const ms_1 = require("../../../model/ms");
41
- const api_service_1 = require("../api/api.service");
42
- // this analyzer assumes that a queue starts with the name of the microservice
43
- // which the queue belongs to. after the microservice name the delimiter below follows.
44
- const microServiceNameDelimiter = '.';
45
- let RabbitMqBindingsFromApiAnalyzer = RabbitMqBindingsFromApiAnalyzer_1 = class RabbitMqBindingsFromApiAnalyzer {
46
- constructor(config, apiService) {
47
- this.config = config;
48
- this.apiService = apiService;
49
- this.logger = new common_1.Logger(RabbitMqBindingsFromApiAnalyzer_1.name);
50
- }
51
- async transform(system) {
52
- const queueNames = await this.getQueueNames();
53
- const bindingsPromises = queueNames.map(queue => this.getBindings(queue));
54
- const bindings = await Promise.all(bindingsPromises);
55
- const allBindings = _.flatMap(bindings);
56
- this.addEdgesFromBindings(system, allBindings);
57
- return system;
58
- }
59
- async getQueueNames() {
60
- const queues = await this.apiService.getQueues();
61
- if (!queues)
62
- return [];
63
- return queues.map(queue => { return queue.name; });
64
- }
65
- addEdgesFromBindings(system, bindings) {
66
- bindings
67
- .filter(binding => binding.exchange !== '')
68
- .forEach(binding => {
69
- const metadata = {
70
- transformer: RabbitMqBindingsFromApiAnalyzer_1.name,
71
- context: 'queue ' + binding.queue + ' bound to exchange ' + binding.exchange
72
- };
73
- const sourceExchangName = binding.exchange;
74
- const sourceExchange = system.addMessageExchange(sourceExchangName, undefined, metadata);
75
- const targetNode = this.ensureTargetNodeExists(binding, system);
76
- system.edges.push(new ms_1.AsyncEventFlow(sourceExchange, targetNode, undefined, metadata));
77
- this.logger.log('added async event flow: message exchange ' + sourceExchangName + ' -> microservice ' + targetNode.getName());
78
- });
79
- return system;
80
- }
81
- ensureTargetNodeExists(binding, system) {
82
- if (binding.queue.indexOf(microServiceNameDelimiter) >= 0) {
83
- const queuePrefix = binding.queue.substring(0, binding.queue.indexOf(microServiceNameDelimiter));
84
- const existingService = system.findMicroService(queuePrefix);
85
- if (existingService) {
86
- return existingService;
87
- }
88
- }
89
- const metadata = {
90
- transformer: RabbitMqBindingsFromApiAnalyzer_1.name,
91
- context: 'queue ' + binding.queue + ' bound to exchange ' + binding.exchange
92
- };
93
- const targetNodeName = binding.queue;
94
- const queueNode = system.addOrExtendNamedNode(ms_1.MessageQueue, targetNodeName, undefined, metadata);
95
- return queueNode;
96
- }
97
- async getBindings(queueName) {
98
- const bindingsData = await this.apiService.getBindings(queueName);
99
- const bindings = bindingsData.filter(element => element.source !== '')
100
- .map(element => {
101
- const binding = {
102
- 'exchange': element.source,
103
- 'queue': queueName
104
- };
105
- this.logger.log('found binding of queue ' + binding.queue + ' to exchange ' + binding.exchange);
106
- return binding;
107
- });
108
- return bindings;
109
- }
110
- };
111
- RabbitMqBindingsFromApiAnalyzer = RabbitMqBindingsFromApiAnalyzer_1 = __decorate([
112
- (0, common_1.Injectable)(),
113
- __metadata("design:paramtypes", [Config_service_1.ConfigService,
114
- api_service_1.RabbitMqManagementApiService])
115
- ], RabbitMqBindingsFromApiAnalyzer);
116
- exports.RabbitMqBindingsFromApiAnalyzer = RabbitMqBindingsFromApiAnalyzer;
117
- //# sourceMappingURL=RabbitMqBindingsFromApiAnalyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RabbitMqBindingsFromApiAnalyzer.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const testing_1 = require("@nestjs/testing");
7
- const Config_service_1 = require("../../../config/Config.service");
8
- const ms_1 = require("../../../model/ms");
9
- const RabbitMqBindingsFromApiAnalyzer_1 = require("./RabbitMqBindingsFromApiAnalyzer");
10
- const api_service_1 = require("../api/api.service");
11
- const queues_json_1 = __importDefault(require("./testdata/api/queues.json"));
12
- const bindings_json_1 = __importDefault(require("./testdata/api/bindings.json"));
13
- const verifiers_1 = require("../../../test/verifiers");
14
- const axios_1 = require("@nestjs/axios");
15
- describe(RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer.name, () => {
16
- let app;
17
- beforeAll(async () => {
18
- app = await testing_1.Test.createTestingModule({
19
- controllers: [],
20
- imports: [axios_1.HttpModule],
21
- providers: [
22
- Config_service_1.ConfigService,
23
- RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer,
24
- api_service_1.RabbitMqManagementApiService
25
- ]
26
- }).compile();
27
- });
28
- it('creates message exchanges and flows for each queue binding to an existing microservice', async () => {
29
- const apiService = app.get(api_service_1.RabbitMqManagementApiService);
30
- jest
31
- .spyOn(apiService, 'getQueues')
32
- .mockImplementation(async () => queues_json_1.default);
33
- jest
34
- .spyOn(apiService, 'getBindings')
35
- .mockImplementation(async () => bindings_json_1.default);
36
- const addExchangesFormSourceStep = app.get(RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer);
37
- const inputSystem = new ms_1.System('test');
38
- inputSystem.addMicroService('receiver-service');
39
- const outputSystem = await addExchangesFormSourceStep.transform(inputSystem);
40
- expect(outputSystem).not.toBeNull();
41
- expect(outputSystem.getMicroServices()).toHaveLength(1);
42
- expect(outputSystem.getMessageExchanges()).toHaveLength(2);
43
- expect(outputSystem.getMicroServices()[0].getName()).toEqual('receiver-service');
44
- expect(outputSystem.getMessageExchanges()[0].getName()).toEqual('source-exchange-1');
45
- expect(outputSystem.getMessageExchanges()[1].getName()).toEqual('source-exchange-2');
46
- expect(outputSystem.getAsyncEventFlows()).toHaveLength(2);
47
- expect(outputSystem.getAsyncEventFlows()[0].source.id).toEqual(outputSystem.getMessageExchanges()[0].id);
48
- expect(outputSystem.getAsyncEventFlows()[0].target.id).toEqual(outputSystem.getMicroServices()[0].id);
49
- expect(outputSystem.getAsyncEventFlows()[1].source.id).toEqual(outputSystem.getMessageExchanges()[1].id);
50
- expect(outputSystem.getAsyncEventFlows()[1].target.id).toEqual(outputSystem.getMicroServices()[0].id);
51
- (0, verifiers_1.verifyEachContentHasTransformer)(outputSystem, RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer.name);
52
- });
53
- it('does not create a microservice from a queue pattern when the microservice does not exist in the input system', async () => {
54
- const apiService = app.get(api_service_1.RabbitMqManagementApiService);
55
- jest
56
- .spyOn(apiService, 'getQueues')
57
- .mockImplementation(async () => queues_json_1.default);
58
- jest
59
- .spyOn(apiService, 'getBindings')
60
- .mockImplementation(async () => bindings_json_1.default);
61
- const addExchangesFormSourceStep = app.get(RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer);
62
- const inputSystem = new ms_1.System('test');
63
- const outputSystem = await addExchangesFormSourceStep.transform(inputSystem);
64
- expect(outputSystem.getMicroServices()).toHaveLength(0);
65
- expect(outputSystem.getMessageExchanges()).toHaveLength(2);
66
- const queueNode = outputSystem.nodes.find((node) => node.content.type === ms_1.MessageQueue.name);
67
- expect(queueNode).toBeDefined();
68
- expect(queueNode.getName()).toEqual('receiver-service.routingKey.publish.update');
69
- expect(outputSystem.getAsyncEventFlows()[0].source.id).toEqual(outputSystem.getMessageExchanges()[0].id);
70
- expect(outputSystem.getAsyncEventFlows()[0].target.id).toEqual(queueNode.id);
71
- (0, verifiers_1.verifyEachContentHasTransformer)(outputSystem, RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer.name);
72
- });
73
- it('creates queues for queues which do not match the name pattern', async () => {
74
- const apiService = app.get(api_service_1.RabbitMqManagementApiService);
75
- jest.spyOn(apiService, 'getQueues').mockImplementation(async () => [
76
- {
77
- name: 'no-service-prefix'
78
- }
79
- ]);
80
- jest.spyOn(apiService, 'getBindings').mockImplementation(async () => [
81
- {
82
- source: 'source-exchange-1',
83
- vhost: '/',
84
- destination: 'no-service-prefix',
85
- destination_type: 'queue'
86
- }
87
- ]);
88
- const addExchangesFormSourceStep = app.get(RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer);
89
- const inputSystem = new ms_1.System('test');
90
- const outputSystem = await addExchangesFormSourceStep.transform(inputSystem);
91
- expect(outputSystem.getMicroServices()).toHaveLength(0);
92
- expect(outputSystem.getMessageExchanges()).toHaveLength(1);
93
- const queueNode = outputSystem.nodes.find((node) => node.content.type === ms_1.MessageQueue.name);
94
- expect(queueNode).toBeDefined();
95
- expect(queueNode.getName()).toEqual('no-service-prefix');
96
- (0, verifiers_1.verifyEachContentHasTransformer)(outputSystem, RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer.name);
97
- });
98
- it('does not create empty exchanges when there are only empty source properties in bindings', async () => {
99
- const apiService = app.get(api_service_1.RabbitMqManagementApiService);
100
- jest
101
- .spyOn(apiService, 'getQueues')
102
- .mockImplementation(async () => queues_json_1.default);
103
- jest.spyOn(apiService, 'getBindings').mockImplementation(async () => [
104
- {
105
- source: '',
106
- vhost: '/',
107
- destination: queues_json_1.default[0].name,
108
- destination_type: 'queue',
109
- routing_key: queues_json_1.default[0].name,
110
- arguments: {},
111
- properties_key: queues_json_1.default[0].name
112
- }
113
- ]);
114
- const addExchangesFormSourceStep = app.get(RabbitMqBindingsFromApiAnalyzer_1.RabbitMqBindingsFromApiAnalyzer);
115
- const outputSystem = await addExchangesFormSourceStep.transform(new ms_1.System('test'));
116
- expect(outputSystem).not.toBeNull();
117
- expect(outputSystem.nodes).toHaveLength(0);
118
- expect(outputSystem.edges).toHaveLength(0);
119
- });
120
- });
121
- //# sourceMappingURL=RabbitMqBindingsFromApiAnalyzer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RabbitMqBindingsFromApiAnalyzer.test.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- [
2
- {
3
- "source": "",
4
- "vhost": "/",
5
- "destination": "receiver-service.routingKey.publish.update",
6
- "destination_type": "queue"
7
- },
8
- {
9
- "source": "source-exchange-1",
10
- "vhost": "/",
11
- "destination": "receiver-service.routingKey.publish.update",
12
- "destination_type": "queue"
13
- },
14
- {
15
- "source": "source-exchange-2",
16
- "vhost": "/",
17
- "destination": "receiver-service.routingKey.publish.update",
18
- "destination_type": "queue"
19
- }
20
- ]
@@ -1,5 +0,0 @@
1
- [
2
- {
3
- "name": "receiver-service.routingKey.publish.update"
4
- }
5
- ]
@@ -1,15 +0,0 @@
1
- import { ConfigService } from '../../config/Config.service';
2
- import { System } from '../../model/ms';
3
- /**
4
- * Searches for @FeignClient annotations in the source code of a microservice
5
- * and adds a SyncDataFlow between the microservice and the target service
6
- * which is referred to in the value element of the annotation.
7
- */
8
- export declare class FeignClientAnnotationAnalyzer {
9
- private readonly config;
10
- private readonly className;
11
- private readonly logger;
12
- constructor(config: ConfigService);
13
- transform(system: System): Promise<System>;
14
- private scanPathForFeignClients;
15
- }
@@ -1,131 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- 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;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __metadata = (this && this.__metadata) || function (k, v) {
32
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
- };
34
- var FeignClientAnnotationAnalyzer_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.FeignClientAnnotationAnalyzer = void 0;
37
- const common_1 = require("@nestjs/common");
38
- const fs = __importStar(require("fs"));
39
- const analysis_1 = require("../../utils/files/analysis");
40
- const Config_service_1 = require("../../config/Config.service");
41
- const ms_1 = require("../../model/ms");
42
- /**
43
- * Searches for @FeignClient annotations in the source code of a microservice
44
- * and adds a SyncDataFlow between the microservice and the target service
45
- * which is referred to in the value element of the annotation.
46
- */
47
- let FeignClientAnnotationAnalyzer = FeignClientAnnotationAnalyzer_1 = class FeignClientAnnotationAnalyzer {
48
- constructor(config) {
49
- this.config = config;
50
- this.className = FeignClientAnnotationAnalyzer_1.name;
51
- this.logger = new common_1.Logger(this.className);
52
- }
53
- async transform(system) {
54
- const scanResults = await this.scanPathForFeignClients(this.config.getSourceFolder());
55
- for (const scanResult of scanResults) {
56
- const metadata = {
57
- transformer: this.className,
58
- context: 'service ' + scanResult.serviceName
59
- };
60
- const sourceService = system.addMicroService(scanResult.serviceName, undefined, metadata);
61
- const targetService = system.addMicroService(scanResult.feignClient.targetServiceName, undefined, metadata);
62
- // adds links in reverse to visualize information flow, TODO: make this configurable
63
- const definedEndpoints = scanResult.feignClient.requestMappings.map((mapping) => ({ path: mapping.value }));
64
- const dataFlow = new ms_1.SyncDataFlow(targetService, sourceService, { definedEndpoints }, metadata);
65
- system.edges.push(dataFlow);
66
- this.logger.log(`added sync data flow: ${targetService.getPayload().name} -> ${sourceService.getPayload().name}`);
67
- }
68
- return system;
69
- }
70
- async scanPathForFeignClients(path) {
71
- this.logger.log('scanning for feign clients in ' + path);
72
- const javaFiles = await (0, analysis_1.findFiles)(path, ['.java'], undefined);
73
- this.logger.log('found ' + javaFiles.length + ' java files');
74
- const scanResults = [];
75
- javaFiles
76
- .filter((file) => (0, analysis_1.isNoSourceOfThisProject)(file))
77
- .forEach((file) => {
78
- const feignClient = getFeignClientInFile(file);
79
- if (feignClient) {
80
- const serviceName = (0, analysis_1.getServiceNameFromPath)(path, file);
81
- const scanResult = {
82
- file,
83
- serviceName,
84
- feignClient
85
- };
86
- scanResults.push(scanResult);
87
- this.logger.log('found feign client annotation in service ' + scanResult.serviceName);
88
- }
89
- });
90
- return scanResults;
91
- }
92
- };
93
- FeignClientAnnotationAnalyzer = FeignClientAnnotationAnalyzer_1 = __decorate([
94
- (0, common_1.Injectable)(),
95
- __metadata("design:paramtypes", [Config_service_1.ConfigService])
96
- ], FeignClientAnnotationAnalyzer);
97
- exports.FeignClientAnnotationAnalyzer = FeignClientAnnotationAnalyzer;
98
- function getFeignClientInFile(path) {
99
- // TODO: make this async
100
- const fileContent = fs.readFileSync(path, 'utf8');
101
- const feignPattern = /@FeignClient\s*\(\s*(value\s*=)?\s*"([\w-]+)"/;
102
- const feignMatch = fileContent.match(feignPattern);
103
- if (feignMatch) {
104
- return {
105
- targetServiceName: feignMatch[2],
106
- requestMappings: getRequestMappings(fileContent)
107
- };
108
- }
109
- return undefined;
110
- }
111
- function getRequestMappings(fileContent) {
112
- const requestBodyList = getAllPatternMatches(/@RequestMapping\s*\(([^\)]+)\)/gi, fileContent, (matchArray) => matchArray[1]);
113
- const mappings = [];
114
- requestBodyList.forEach((requestBody) => {
115
- const valueElements = getAllPatternMatches(/value\s*=\s*"([^"]+)"/gi, requestBody, (matchArray) => matchArray[1]);
116
- if (valueElements.length > 0) {
117
- mappings.push({ value: valueElements[0] });
118
- }
119
- });
120
- return mappings;
121
- }
122
- function getAllPatternMatches(pattern, content, matchTransformer) {
123
- const allMatches = [];
124
- let matches = pattern.exec(content);
125
- while (matches != null) {
126
- allMatches.push(matchTransformer(matches));
127
- matches = pattern.exec(content);
128
- }
129
- return allMatches;
130
- }
131
- //# sourceMappingURL=FeignClientAnnotationAnalyzer.js.map