tadis-analyzer 2.4.1 → 2.4.3

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/build/src/app/code-pattern/main.d.ts +1 -0
  2. package/build/src/app/code-pattern/main.js +14 -0
  3. package/build/src/app/code-pattern/main.js.map +1 -0
  4. package/build/src/app/default/main.d.ts +1 -0
  5. package/build/src/app/default/main.js +15 -0
  6. package/build/src/app/default/main.js.map +1 -0
  7. package/build/src/app/error.d.ts +3 -0
  8. package/build/src/app/error.js +10 -0
  9. package/build/src/app/error.js.map +1 -0
  10. package/build/src/config/Config.module.d.ts +4 -0
  11. package/build/src/config/Config.module.js +28 -0
  12. package/build/src/config/Config.module.js.map +1 -0
  13. package/build/src/config/Config.service.d.ts +19 -0
  14. package/build/src/config/Config.service.js +105 -0
  15. package/build/src/config/Config.service.js.map +1 -0
  16. package/build/src/config/Config.service.test.d.ts +1 -0
  17. package/build/src/config/Config.service.test.js +33 -0
  18. package/build/src/config/Config.service.test.js.map +1 -0
  19. package/build/src/deprecated-modules/CommonTransformers.module.d.ts +5 -0
  20. package/build/src/deprecated-modules/CommonTransformers.module.js +34 -0
  21. package/build/src/deprecated-modules/CommonTransformers.module.js.map +1 -0
  22. package/build/src/deprecated-modules/Msa.module.d.ts +13 -0
  23. package/build/src/deprecated-modules/Msa.module.js +63 -0
  24. package/build/src/deprecated-modules/Msa.module.js.map +1 -0
  25. package/build/src/deprecated-modules/SourceCodeAnalysis.module.d.ts +6 -0
  26. package/build/src/deprecated-modules/SourceCodeAnalysis.module.js +60 -0
  27. package/build/src/deprecated-modules/SourceCodeAnalysis.module.js.map +1 -0
  28. package/build/src/git/Git.module.d.ts +5 -0
  29. package/build/src/git/Git.module.js +28 -0
  30. package/build/src/git/Git.module.js.map +1 -0
  31. package/build/src/git/GitStorage.controller.d.ts +17 -0
  32. package/build/src/git/GitStorage.controller.js +88 -0
  33. package/build/src/git/GitStorage.controller.js.map +1 -0
  34. package/build/src/git/GitStorage.controller.test.d.ts +1 -0
  35. package/build/src/git/GitStorage.controller.test.js +30 -0
  36. package/build/src/git/GitStorage.controller.test.js.map +1 -0
  37. package/build/src/git/GitStorage.d.ts +23 -0
  38. package/build/src/git/GitStorage.js +153 -0
  39. package/build/src/git/GitStorage.js.map +1 -0
  40. package/build/src/git/GitStorage.service.d.ts +10 -0
  41. package/build/src/git/GitStorage.service.js +36 -0
  42. package/build/src/git/GitStorage.service.js.map +1 -0
  43. package/build/src/git/SourceLocationDecorator.d.ts +12 -0
  44. package/build/src/git/SourceLocationDecorator.js +46 -0
  45. package/build/src/git/SourceLocationDecorator.js.map +1 -0
  46. package/build/src/git/SourceLocationDecorator.test.d.ts +1 -0
  47. package/build/src/git/SourceLocationDecorator.test.js +35 -0
  48. package/build/src/git/SourceLocationDecorator.test.js.map +1 -0
  49. package/build/src/lib.d.ts +21 -0
  50. package/build/src/lib.js +57 -0
  51. package/build/src/lib.js.map +1 -0
  52. package/build/src/model/core-typed.d.ts +21 -0
  53. package/build/src/model/core-typed.js +89 -0
  54. package/build/src/model/core-typed.js.map +1 -0
  55. package/build/src/model/core-typed.test.d.ts +1 -0
  56. package/build/src/model/core-typed.test.js +29 -0
  57. package/build/src/model/core-typed.test.js.map +1 -0
  58. package/build/src/model/core.d.ts +33 -0
  59. package/build/src/model/core.js +117 -0
  60. package/build/src/model/core.js.map +1 -0
  61. package/build/src/model/ms.d.ts +58 -0
  62. package/build/src/model/ms.js +83 -0
  63. package/build/src/model/ms.js.map +1 -0
  64. package/build/src/model/transport.d.ts +17 -0
  65. package/build/src/model/transport.js +20 -0
  66. package/build/src/model/transport.js.map +1 -0
  67. package/build/src/model/v1-legacy/model.d.ts +53 -0
  68. package/build/src/model/v1-legacy/model.js +85 -0
  69. package/build/src/model/v1-legacy/model.js.map +1 -0
  70. package/build/src/model/v1-legacy/v1-adapter.d.ts +3 -0
  71. package/build/src/model/v1-legacy/v1-adapter.js +68 -0
  72. package/build/src/model/v1-legacy/v1-adapter.js.map +1 -0
  73. package/build/src/model/v1-legacy/v1-adapter.test.d.ts +1 -0
  74. package/build/src/model/v1-legacy/v1-adapter.test.js +66 -0
  75. package/build/src/model/v1-legacy/v1-adapter.test.js.map +1 -0
  76. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.d.ts +12 -0
  77. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.js +107 -0
  78. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.js.map +1 -0
  79. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.d.ts +1 -0
  80. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.js +111 -0
  81. package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.js.map +1 -0
  82. package/build/src/post-processors/PostProcessors.module.d.ts +6 -0
  83. package/build/src/post-processors/PostProcessors.module.js +37 -0
  84. package/build/src/post-processors/PostProcessors.module.js.map +1 -0
  85. package/build/src/post-processors/PostProcessors.module.test.d.ts +1 -0
  86. package/build/src/post-processors/PostProcessors.module.test.js +23 -0
  87. package/build/src/post-processors/PostProcessors.module.test.js.map +1 -0
  88. package/build/src/post-processors/StaticNodeFilter.d.ts +9 -0
  89. package/build/src/post-processors/StaticNodeFilter.js +91 -0
  90. package/build/src/post-processors/StaticNodeFilter.js.map +1 -0
  91. package/build/src/post-processors/StaticNodeFilter.test.d.ts +1 -0
  92. package/build/src/post-processors/StaticNodeFilter.test.js +36 -0
  93. package/build/src/post-processors/StaticNodeFilter.test.js.map +1 -0
  94. package/build/src/post-processors/SubSystemFromPayloadTransformer.d.ts +13 -0
  95. package/build/src/post-processors/SubSystemFromPayloadTransformer.js +103 -0
  96. package/build/src/post-processors/SubSystemFromPayloadTransformer.js.map +1 -0
  97. package/build/src/post-processors/SubSystemFromPayloadTransformer.test.d.ts +1 -0
  98. package/build/src/post-processors/SubSystemFromPayloadTransformer.test.js +56 -0
  99. package/build/src/post-processors/SubSystemFromPayloadTransformer.test.js.map +1 -0
  100. package/build/src/system-assemblers/controllers/ISystemAssembler.d.ts +5 -0
  101. package/build/src/system-assemblers/controllers/ISystemAssembler.js +3 -0
  102. package/build/src/system-assemblers/controllers/ISystemAssembler.js.map +1 -0
  103. package/build/src/system-assemblers/controllers/SystemAssembler.controller.d.ts +19 -0
  104. package/build/src/system-assemblers/controllers/SystemAssembler.controller.js +95 -0
  105. package/build/src/system-assemblers/controllers/SystemAssembler.controller.js.map +1 -0
  106. package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.d.ts +1 -0
  107. package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.js +54 -0
  108. package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.js.map +1 -0
  109. package/build/src/system-assemblers/controllers/SystemAssembler.module.d.ts +6 -0
  110. package/build/src/system-assemblers/controllers/SystemAssembler.module.js +28 -0
  111. package/build/src/system-assemblers/controllers/SystemAssembler.module.js.map +1 -0
  112. package/build/src/system-assemblers/controllers/SystemAssembler.service.d.ts +6 -0
  113. package/build/src/system-assemblers/controllers/SystemAssembler.service.js +24 -0
  114. package/build/src/system-assemblers/controllers/SystemAssembler.service.js.map +1 -0
  115. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.d.ts +4 -0
  116. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.js +46 -0
  117. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.js.map +1 -0
  118. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.d.ts +16 -0
  119. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.js +53 -0
  120. package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.js.map +1 -0
  121. package/build/src/system-element-extractors/env-variables/EnvVariables.module.d.ts +4 -0
  122. package/build/src/system-element-extractors/env-variables/EnvVariables.module.js +25 -0
  123. package/build/src/system-element-extractors/env-variables/EnvVariables.module.js.map +1 -0
  124. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.d.ts +13 -0
  125. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.js +64 -0
  126. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.js.map +1 -0
  127. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.d.ts +1 -0
  128. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.js +56 -0
  129. package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.js.map +1 -0
  130. package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.d.ts +4 -0
  131. package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.js +26 -0
  132. package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.js.map +1 -0
  133. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.d.ts +8 -0
  134. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.js +54 -0
  135. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.js.map +1 -0
  136. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.d.ts +10 -0
  137. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.js +345 -0
  138. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.js.map +1 -0
  139. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.multiFile.test.d.ts +1 -0
  140. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.multiFile.test.js +130 -0
  141. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.multiFile.test.js.map +1 -0
  142. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.d.ts +16 -0
  143. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js +47 -0
  144. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js.map +1 -0
  145. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.singleFile.test.d.ts +1 -0
  146. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.singleFile.test.js +177 -0
  147. package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.singleFile.test.js.map +1 -0
  148. package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.d.ts +1 -0
  149. package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.js +3 -0
  150. package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.js.map +1 -0
  151. package/build/src/system-element-extractors/experimental/code-pattern/model.d.ts +116 -0
  152. package/build/src/system-element-extractors/experimental/code-pattern/model.js +23 -0
  153. package/build/src/system-element-extractors/experimental/code-pattern/model.js.map +1 -0
  154. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.d.ts +8 -0
  155. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.js +26 -0
  156. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.js.map +1 -0
  157. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.d.ts +0 -0
  158. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js +18 -0
  159. package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js.map +1 -0
  160. package/build/src/system-element-extractors/java/Java.module.d.ts +4 -0
  161. package/build/src/system-element-extractors/java/Java.module.js +26 -0
  162. package/build/src/system-element-extractors/java/Java.module.js.map +1 -0
  163. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.d.ts +35 -0
  164. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.js +155 -0
  165. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.js.map +1 -0
  166. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.d.ts +1 -0
  167. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.js +85 -0
  168. package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.js.map +1 -0
  169. package/build/src/system-element-extractors/kubernetes/Kubernetes.module.d.ts +7 -0
  170. package/build/src/system-element-extractors/kubernetes/Kubernetes.module.js +43 -0
  171. package/build/src/system-element-extractors/kubernetes/Kubernetes.module.js.map +1 -0
  172. package/build/src/system-element-extractors/kubernetes/api/api.service.d.ts +9 -0
  173. package/build/src/system-element-extractors/kubernetes/api/api.service.js +78 -0
  174. package/build/src/system-element-extractors/kubernetes/api/api.service.js.map +1 -0
  175. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.d.ts +10 -0
  176. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.js +80 -0
  177. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.js.map +1 -0
  178. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.d.ts +1 -0
  179. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js +32 -0
  180. package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js.map +1 -0
  181. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.d.ts +12 -0
  182. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.js +82 -0
  183. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.js.map +1 -0
  184. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.d.ts +1 -0
  185. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js +30 -0
  186. package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js.map +1 -0
  187. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.d.ts +12 -0
  188. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.js +67 -0
  189. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.js.map +1 -0
  190. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.d.ts +1 -0
  191. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js +38 -0
  192. package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js.map +1 -0
  193. package/build/src/system-element-extractors/kubernetes/transformer/testdata/api/deployments.json +256 -0
  194. package/build/src/system-element-extractors/kubernetes/transformer/testdata/api/pods.json +101 -0
  195. package/build/src/system-element-extractors/kubernetes/transformer/testdata/api/services.json +75 -0
  196. package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.d.ts +6 -0
  197. package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.js +38 -0
  198. package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.js.map +1 -0
  199. package/build/src/system-element-extractors/rabbitmq/api/api.service.d.ts +11 -0
  200. package/build/src/system-element-extractors/rabbitmq/api/api.service.js +63 -0
  201. package/build/src/system-element-extractors/rabbitmq/api/api.service.js.map +1 -0
  202. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.d.ts +9 -0
  203. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js +117 -0
  204. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js.map +1 -0
  205. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.d.ts +1 -0
  206. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js +43 -0
  207. package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js.map +1 -0
  208. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.d.ts +14 -0
  209. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js +117 -0
  210. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js.map +1 -0
  211. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.d.ts +1 -0
  212. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js +121 -0
  213. package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js.map +1 -0
  214. package/build/src/system-element-extractors/rabbitmq/transformer/testdata/api/bindings.json +20 -0
  215. package/build/src/system-element-extractors/rabbitmq/transformer/testdata/api/queues.json +5 -0
  216. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.d.ts +15 -0
  217. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.js +131 -0
  218. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.js.map +1 -0
  219. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.d.ts +1 -0
  220. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.js +54 -0
  221. package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.js.map +1 -0
  222. package/build/src/system-element-extractors/spring-boot/SpringBoot.module.d.ts +4 -0
  223. package/build/src/system-element-extractors/spring-boot/SpringBoot.module.js +25 -0
  224. package/build/src/system-element-extractors/spring-boot/SpringBoot.module.js.map +1 -0
  225. package/build/src/test/expect-extensions.d.ts +7 -0
  226. package/build/src/test/expect-extensions.js +20 -0
  227. package/build/src/test/expect-extensions.js.map +1 -0
  228. package/build/src/test/verifiers.d.ts +4 -0
  229. package/build/src/test/verifiers.js +19 -0
  230. package/build/src/test/verifiers.js.map +1 -0
  231. package/build/src/utils/files/analysis.d.ts +30 -0
  232. package/build/src/utils/files/analysis.js +109 -0
  233. package/build/src/utils/files/analysis.js.map +1 -0
  234. package/package.json +1 -1
@@ -0,0 +1,33 @@
1
+ export declare class Node {
2
+ id: string;
3
+ content: Content;
4
+ nodes: Node[];
5
+ edges: Edge[];
6
+ constructor(id: string, content: Content, nodes?: Node[], edges?: Edge[]);
7
+ ensureContainsNodeOfTypeAndName(typeName: string, nodeName: string, extraPayload?: any, metadata?: Metadata): Node;
8
+ findNodeOfTypeWithName(typeName: string, nodeName: string): Node;
9
+ findContainedNodeByIdRecursive(nodeId: string): Node | undefined;
10
+ hasName(name: string): boolean;
11
+ getName(): string | undefined;
12
+ hasSameNameAs(otherNode: Node): boolean;
13
+ getAllEdges(): Edge[];
14
+ hasNodes(): boolean;
15
+ private findContainedNodeById;
16
+ }
17
+ export declare class Edge {
18
+ source: Node;
19
+ target: Node;
20
+ content?: Content;
21
+ constructor(source: Node, target: Node, content?: Content);
22
+ }
23
+ export declare class Content {
24
+ type: string;
25
+ metadata?: Metadata;
26
+ payload?: any;
27
+ constructor(type: string, metadata?: Metadata, payload?: any);
28
+ }
29
+ export type Metadata = {
30
+ transformer: string;
31
+ context: string;
32
+ info?: string;
33
+ };
@@ -0,0 +1,117 @@
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 __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Content = exports.Edge = exports.Node = void 0;
27
+ const _ = __importStar(require("lodash"));
28
+ class Node {
29
+ constructor(id, content, nodes, edges) {
30
+ this.id = id;
31
+ this.content = content;
32
+ this.nodes = nodes || [];
33
+ this.edges = edges || [];
34
+ }
35
+ ensureContainsNodeOfTypeAndName(typeName, nodeName, extraPayload = {}, metadata) {
36
+ const existingNode = this.findNodeOfTypeWithName(typeName, nodeName);
37
+ if (existingNode) {
38
+ if (extraPayload) {
39
+ Object.getOwnPropertyNames(extraPayload)
40
+ .forEach(payloadPropertyName => existingNode.content.payload[payloadPropertyName] = extraPayload[payloadPropertyName]);
41
+ }
42
+ return existingNode;
43
+ }
44
+ const id = this.id + '__' + typeName + '_' + nodeName;
45
+ const content = {
46
+ type: typeName,
47
+ metadata,
48
+ payload: {
49
+ name: nodeName,
50
+ ...extraPayload
51
+ }
52
+ };
53
+ const node = new Node(id, content);
54
+ this.nodes.push(node);
55
+ return node;
56
+ }
57
+ findNodeOfTypeWithName(typeName, nodeName) {
58
+ const node = this.nodes
59
+ .find(node => node.content.type === typeName && node.content.payload && node.content.payload.name === nodeName);
60
+ if (node) {
61
+ return node;
62
+ }
63
+ return undefined;
64
+ }
65
+ findContainedNodeByIdRecursive(nodeId) {
66
+ if (this.id === nodeId) {
67
+ return this;
68
+ }
69
+ const directNode = this.findContainedNodeById(nodeId);
70
+ if (directNode) {
71
+ return directNode;
72
+ }
73
+ for (const containedNode of this.nodes) {
74
+ const indirectNode = containedNode.findContainedNodeByIdRecursive(nodeId);
75
+ if (indirectNode) {
76
+ return indirectNode;
77
+ }
78
+ }
79
+ return undefined;
80
+ }
81
+ hasName(name) {
82
+ return this.content.payload.name === name;
83
+ }
84
+ getName() {
85
+ return this.content.payload.name;
86
+ }
87
+ hasSameNameAs(otherNode) {
88
+ return this.getName() !== undefined && this.hasName(otherNode.getName());
89
+ }
90
+ getAllEdges() {
91
+ return _.union(this.edges, _.flatten(this.nodes.map(node => node.edges)));
92
+ }
93
+ hasNodes() {
94
+ return this.nodes.length > 0;
95
+ }
96
+ findContainedNodeById(nodeId) {
97
+ return this.nodes.find(node => node.id === nodeId);
98
+ }
99
+ }
100
+ exports.Node = Node;
101
+ class Edge {
102
+ constructor(source, target, content) {
103
+ this.source = source;
104
+ this.target = target;
105
+ this.content = content;
106
+ }
107
+ }
108
+ exports.Edge = Edge;
109
+ class Content {
110
+ constructor(type, metadata, payload) {
111
+ this.type = type;
112
+ this.metadata = metadata;
113
+ this.payload = payload;
114
+ }
115
+ }
116
+ exports.Content = Content;
117
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/model/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { TypedNode, TypedEdge } from './core-typed';
2
+ import { Node, Metadata } from './core';
3
+ /**
4
+ * this model provides type-safe access to nodes in a microservice system.
5
+ */
6
+ export declare class System extends TypedNode<NamePayload> {
7
+ constructor(id: string, metadata?: Metadata);
8
+ addMicroService(name: string, extraPayload?: any, metadata?: Metadata): MicroService;
9
+ getMicroServices(): MicroService[];
10
+ findMicroService(name: string): MicroService;
11
+ addMessageExchange(name: string, extraPayload?: any, metadata?: Metadata): MessageExchange;
12
+ getMessageExchanges(): MessageExchange[];
13
+ findMessageExchange(name: string): MessageExchange;
14
+ addMessageQueue(name: string, extraPayload?: any, metadata?: Metadata): MicroService;
15
+ getSyncDataFlows(): SyncDataFlow[];
16
+ getAsyncEventFlows(): AsyncEventFlow[];
17
+ }
18
+ export declare class MicroService extends TypedNode<MicroServicePayload> {
19
+ constructor(id: string, payload: MicroServicePayload, metadata?: Metadata);
20
+ }
21
+ export declare class MicroServicePayload {
22
+ name: string;
23
+ env?: EnvEntry[];
24
+ labels?: any;
25
+ sourceLocation?: string;
26
+ }
27
+ type EnvEntry = {
28
+ name: string;
29
+ value: string;
30
+ };
31
+ export declare class MessageExchangePayload {
32
+ name: string;
33
+ }
34
+ export declare class MessageExchange extends TypedNode<MessageExchangePayload> {
35
+ constructor(id: string, payload: NamePayload, metadata?: Metadata);
36
+ }
37
+ export declare class MessageQueue extends TypedNode<NamePayload> {
38
+ constructor(id: string, payload: NamePayload, metadata?: Metadata);
39
+ }
40
+ export declare class NamePayload {
41
+ name: string;
42
+ }
43
+ type AsyncEventFlowPayload = {
44
+ routingKey: string;
45
+ };
46
+ export declare class AsyncEventFlow extends TypedEdge<AsyncEventFlowPayload> {
47
+ constructor(source: Node, target: Node, payload?: AsyncEventFlowPayload, metadata?: Metadata);
48
+ }
49
+ type SyncDataFlowPayload = {
50
+ definedEndpoints: Endpoint[];
51
+ };
52
+ type Endpoint = {
53
+ path: string;
54
+ };
55
+ export declare class SyncDataFlow extends TypedEdge<SyncDataFlowPayload> {
56
+ constructor(source: Node, target: Node, payload?: SyncDataFlowPayload, metadata?: Metadata);
57
+ }
58
+ export {};
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SyncDataFlow = exports.AsyncEventFlow = exports.NamePayload = exports.MessageQueue = exports.MessageExchange = exports.MessageExchangePayload = exports.MicroServicePayload = exports.MicroService = exports.System = void 0;
4
+ const core_typed_1 = require("./core-typed");
5
+ /**
6
+ * this model provides type-safe access to nodes in a microservice system.
7
+ */
8
+ // TODO: move to msa/model/msa.ts
9
+ class System extends core_typed_1.TypedNode {
10
+ constructor(id, metadata) {
11
+ super(id, { name: id }, metadata, System.name);
12
+ }
13
+ // TODO: these public methods could be generated from a model definition in the future
14
+ addMicroService(name, extraPayload = {}, metadata) {
15
+ return this.addOrExtendNamedNode(MicroService, name, extraPayload, metadata);
16
+ }
17
+ getMicroServices() {
18
+ return this.getNodes(MicroService);
19
+ }
20
+ findMicroService(name) {
21
+ return this.findTypedNodeWithName(MicroService, name);
22
+ }
23
+ addMessageExchange(name, extraPayload = {}, metadata) {
24
+ return this.addOrExtendNamedNode(MessageExchange, name, extraPayload, metadata);
25
+ }
26
+ getMessageExchanges() {
27
+ return this.getNodes(MessageExchange);
28
+ }
29
+ findMessageExchange(name) {
30
+ return this.findTypedNodeWithName(MessageExchange, name);
31
+ }
32
+ addMessageQueue(name, extraPayload = {}, metadata) {
33
+ return this.addOrExtendNamedNode(MessageQueue, name, extraPayload, metadata);
34
+ }
35
+ getSyncDataFlows() {
36
+ return this.getEdges(SyncDataFlow);
37
+ }
38
+ getAsyncEventFlows() {
39
+ return this.getEdges(AsyncEventFlow);
40
+ }
41
+ }
42
+ exports.System = System;
43
+ class MicroService extends core_typed_1.TypedNode {
44
+ constructor(id, payload, metadata) {
45
+ super(id, payload, metadata, MicroService.name);
46
+ }
47
+ }
48
+ exports.MicroService = MicroService;
49
+ class MicroServicePayload {
50
+ }
51
+ exports.MicroServicePayload = MicroServicePayload;
52
+ class MessageExchangePayload {
53
+ }
54
+ exports.MessageExchangePayload = MessageExchangePayload;
55
+ class MessageExchange extends core_typed_1.TypedNode {
56
+ constructor(id, payload, metadata) {
57
+ super(id, payload, metadata, MessageExchange.name);
58
+ }
59
+ }
60
+ exports.MessageExchange = MessageExchange;
61
+ class MessageQueue extends core_typed_1.TypedNode {
62
+ constructor(id, payload, metadata) {
63
+ super(id, payload, metadata, MessageQueue.name);
64
+ }
65
+ }
66
+ exports.MessageQueue = MessageQueue;
67
+ class NamePayload {
68
+ }
69
+ exports.NamePayload = NamePayload;
70
+ // TODO: can this be simplified? too much boilerplate code for constructor
71
+ class AsyncEventFlow extends core_typed_1.TypedEdge {
72
+ constructor(source, target, payload, metadata) {
73
+ super(source, target, payload, metadata, AsyncEventFlow.name);
74
+ }
75
+ }
76
+ exports.AsyncEventFlow = AsyncEventFlow;
77
+ class SyncDataFlow extends core_typed_1.TypedEdge {
78
+ constructor(source, target, payload, metadata) {
79
+ super(source, target, payload, metadata, SyncDataFlow.name);
80
+ }
81
+ }
82
+ exports.SyncDataFlow = SyncDataFlow;
83
+ //# sourceMappingURL=ms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ms.js","sourceRoot":"","sources":["../../../src/model/ms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as core from './core';
2
+ export interface Node {
3
+ id: string;
4
+ content: Content;
5
+ nodes?: Node[];
6
+ edges?: Edge[];
7
+ }
8
+ export interface Edge {
9
+ sourceId: string;
10
+ targetId: string;
11
+ content?: Content;
12
+ }
13
+ export interface Content {
14
+ type: string;
15
+ payload?: any;
16
+ }
17
+ export declare function convertCoreToTransportNode(coreNode: core.Node): Node;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertCoreToTransportNode = void 0;
4
+ function convertCoreToTransportNode(coreNode) {
5
+ return {
6
+ id: coreNode.id,
7
+ content: coreNode.content,
8
+ nodes: coreNode.nodes.map(node => convertCoreToTransportNode(node)),
9
+ edges: coreNode.edges.map(coreEdge => convertCoreToTransportEdge(coreEdge))
10
+ };
11
+ }
12
+ exports.convertCoreToTransportNode = convertCoreToTransportNode;
13
+ function convertCoreToTransportEdge(coreEdge) {
14
+ return {
15
+ sourceId: coreEdge.source.id,
16
+ targetId: coreEdge.target.id,
17
+ content: coreEdge.content
18
+ };
19
+ }
20
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/model/transport.ts"],"names":[],"mappings":";;;AAoBA,SAAgB,0BAA0B,CAAC,QAAmB;IAC5D,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC5E,CAAA;AACH,CAAC;AAPD,gEAOC;AAED,SAAS,0BAA0B,CAAC,QAAmB;IACrD,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC5B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAA;AACH,CAAC"}
@@ -0,0 +1,53 @@
1
+ export interface INode {
2
+ id: string;
3
+ name?: string;
4
+ type?: string;
5
+ nodes?: INode[];
6
+ edges?: IEdge[];
7
+ properties?: Props;
8
+ }
9
+ export interface IEdge {
10
+ sourceId: string;
11
+ targetId: string;
12
+ type?: string;
13
+ properties?: Props;
14
+ }
15
+ export interface Props {
16
+ [key: string]: any;
17
+ }
18
+ export declare class Node {
19
+ readonly id: string;
20
+ readonly type: string;
21
+ private name;
22
+ private nodes;
23
+ private edges;
24
+ private properties;
25
+ constructor(id: string, name: string, type: string, nodes: Node[], edges: Edge[], properties?: Props);
26
+ static ofRawNode(rawNode: INode): Node;
27
+ getName(): string;
28
+ setName(name: string): void;
29
+ sameId(otherId: string): boolean;
30
+ getLabel(): string;
31
+ getNodes(): Node[];
32
+ hasNodes(): boolean;
33
+ getEdges(): Edge[];
34
+ hasEdges(): boolean;
35
+ getProps(): Props;
36
+ getProp(propName: string, alternativeValue: any): any;
37
+ addProp(propName: string, value: any): any;
38
+ }
39
+ export declare class Edge {
40
+ readonly sourceId: string;
41
+ readonly targetId: string;
42
+ readonly type: string;
43
+ private source;
44
+ private target;
45
+ private properties;
46
+ constructor(sourceId: string, targetId: string, type: string, properties?: Props);
47
+ static ofRawEdge(rawEdge: IEdge): Edge;
48
+ setSource(source: Node): void;
49
+ getSource(): Node;
50
+ setTarget(target: Node): void;
51
+ getTarget(): Node;
52
+ getProperties(): Props;
53
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Edge = exports.Node = void 0;
4
+ class Node {
5
+ constructor(id, name, type, nodes, edges, properties) {
6
+ this.id = id;
7
+ this.name = name;
8
+ this.type = type;
9
+ this.nodes = nodes ? nodes : [];
10
+ this.edges = edges ? edges : [];
11
+ this.properties = properties || {};
12
+ }
13
+ static ofRawNode(rawNode) {
14
+ const nodes = rawNode.nodes ? rawNode.nodes.map(node => Node.ofRawNode(node)) : [];
15
+ const edges = rawNode.edges ? rawNode.edges.map(edge => Edge.ofRawEdge(edge)) : [];
16
+ const properties = rawNode.properties ? JSON.parse(JSON.stringify(rawNode.properties)) : {};
17
+ return new Node(rawNode.id, rawNode.name, rawNode.type, nodes, edges, properties);
18
+ }
19
+ getName() {
20
+ return this.name;
21
+ }
22
+ setName(name) {
23
+ this.name = name;
24
+ }
25
+ sameId(otherId) {
26
+ return this.id === otherId;
27
+ }
28
+ getLabel() {
29
+ return this.properties.label ? this.properties.label : this.id;
30
+ }
31
+ getNodes() {
32
+ return this.nodes;
33
+ }
34
+ hasNodes() {
35
+ return this.nodes.length > 0;
36
+ }
37
+ getEdges() {
38
+ return this.edges;
39
+ }
40
+ hasEdges() {
41
+ return this.edges.length > 0;
42
+ }
43
+ getProps() {
44
+ return this.properties;
45
+ }
46
+ getProp(propName, alternativeValue) {
47
+ const value = this.properties ? this.properties[propName] : undefined;
48
+ return value ? value : alternativeValue;
49
+ }
50
+ addProp(propName, value) {
51
+ this.properties[propName] = value;
52
+ }
53
+ }
54
+ exports.Node = Node;
55
+ class Edge {
56
+ constructor(sourceId, targetId, type, properties) {
57
+ this.source = null;
58
+ this.target = null;
59
+ this.sourceId = sourceId;
60
+ this.targetId = targetId;
61
+ this.type = type;
62
+ this.properties = properties || {};
63
+ }
64
+ static ofRawEdge(rawEdge) {
65
+ const properties = rawEdge.properties ? JSON.parse(JSON.stringify(rawEdge.properties)) : {};
66
+ return new Edge(rawEdge.sourceId, rawEdge.targetId, rawEdge.type, properties);
67
+ }
68
+ setSource(source) {
69
+ this.source = source;
70
+ }
71
+ getSource() {
72
+ return this.source;
73
+ }
74
+ setTarget(target) {
75
+ this.target = target;
76
+ }
77
+ getTarget() {
78
+ return this.target;
79
+ }
80
+ getProperties() {
81
+ return this.properties;
82
+ }
83
+ }
84
+ exports.Edge = Edge;
85
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/model/v1-legacy/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { System } from '../ms';
2
+ import * as v1 from './model';
3
+ export declare function adaptToV1(system: System): v1.Node;
@@ -0,0 +1,68 @@
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 __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.adaptToV1 = void 0;
27
+ const common_1 = require("@nestjs/common");
28
+ const ms_1 = require("../ms");
29
+ const v1 = __importStar(require("./model"));
30
+ const logger = new common_1.Logger('v1-adapter');
31
+ function adaptToV1(system) {
32
+ const v1System = adaptNodeWithNestedNodes(system);
33
+ addAdaptedEdgesNested(system, v1System);
34
+ return v1System;
35
+ }
36
+ exports.adaptToV1 = adaptToV1;
37
+ function adaptNodeWithNestedNodes(node) {
38
+ const v1Node = new v1.Node(node.id, node.content.payload.name, node.content.type, [], [], node.content.payload);
39
+ v1Node.addProp('metadata', node.content.metadata);
40
+ node.nodes.forEach(childNode => {
41
+ const v1ChildNode = adaptNodeWithNestedNodes(childNode);
42
+ v1Node.getNodes().push(v1ChildNode);
43
+ });
44
+ return v1Node;
45
+ }
46
+ function addAdaptedEdgesNested(originNode, v1Node) {
47
+ originNode.edges.forEach(edge => {
48
+ if (!edge.content) {
49
+ logger.warn('edge is missing content: ' + `${edge.source.id} -> ${edge.target.id}`);
50
+ }
51
+ const v1Edge = new v1.Edge(edge.source.id, edge.target.id, adaptEdgeType(edge.content.type), edge.content.payload);
52
+ v1Edge.getProperties().metadata = edge.content.metadata;
53
+ v1Node.getEdges().push(v1Edge);
54
+ });
55
+ originNode.nodes.forEach(childNode => {
56
+ const matchingV1ChildNode = v1Node.getNodes().find(v1NodeChildNode => v1NodeChildNode.id === childNode.id);
57
+ addAdaptedEdgesNested(childNode, matchingV1ChildNode);
58
+ });
59
+ }
60
+ function adaptEdgeType(type) {
61
+ if (type === ms_1.SyncDataFlow.name)
62
+ return 'SyncInfoFlow';
63
+ else if (type === ms_1.AsyncEventFlow.name)
64
+ return 'AsyncInfoFlow';
65
+ else
66
+ return type;
67
+ }
68
+ //# sourceMappingURL=v1-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1-adapter.js","sourceRoot":"","sources":["../../../../src/model/v1-legacy/v1-adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuC;AAEvC,8BAA4D;AAE5D,4CAA6B;AAE7B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAA;AAEvC,SAAgB,SAAS,CAAC,MAAc;IACtC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACjD,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAJD,8BAIC;AAED,SAAS,wBAAwB,CAAC,IAAU;IAC1C,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/G,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAEjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAgB,EAAE,MAAe;IAC9D,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;SACpF;QACD,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EACvD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACzD,MAAM,CAAC,aAAa,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;QACvD,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1G,qBAAqB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,KAAK,iBAAY,CAAC,IAAI;QAAE,OAAO,cAAc,CAAA;SAChD,IAAI,IAAI,KAAK,mBAAc,CAAC,IAAI;QAAE,OAAO,eAAe,CAAA;;QACxD,OAAO,IAAI,CAAA;AAClB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ms_1 = require("../ms");
4
+ const v1_adapter_1 = require("./v1-adapter");
5
+ describe('adaptToV1', () => {
6
+ it('adapts a nested model to a nested v1 model', async () => {
7
+ const system = new ms_1.System('system');
8
+ const serviceA = system.addMicroService('A');
9
+ const exchangeB = system.addMessageExchange('B');
10
+ system.edges.push(new ms_1.AsyncEventFlow(serviceA, exchangeB));
11
+ const subSystem = new ms_1.System('sub-system');
12
+ system.nodes.push(subSystem);
13
+ const serviceC = subSystem.addMicroService('C');
14
+ const serviceD = subSystem.addMicroService('D');
15
+ subSystem.edges.push(new ms_1.SyncDataFlow(serviceC, serviceD));
16
+ system.edges.push(new ms_1.SyncDataFlow(serviceA, serviceC));
17
+ const adaptedSystem = (0, v1_adapter_1.adaptToV1)(system);
18
+ expect(adaptedSystem.getName()).toEqual(system.getPayload().name);
19
+ expect(adaptedSystem.getNodes()).toHaveLength(3);
20
+ const adaptedServiceA = adaptedSystem.getNodes().find(node => node.getName() === 'A');
21
+ expect(adaptedServiceA).toBeDefined();
22
+ expect(adaptedServiceA.type).toEqual('MicroService');
23
+ const adaptedExchangeB = adaptedSystem.getNodes().find(node => node.getName() === 'B');
24
+ expect(adaptedExchangeB).toBeDefined();
25
+ expect(adaptedExchangeB.type).toEqual('MessageExchange');
26
+ expect(adaptedSystem.getEdges()).toHaveLength(2);
27
+ const abEdge = adaptedSystem.getEdges().find(edge => edge.sourceId === serviceA.id && edge.targetId === exchangeB.id);
28
+ expect(abEdge).toBeDefined();
29
+ expect(abEdge.type).toEqual('AsyncInfoFlow');
30
+ expect(adaptedSystem.getEdges().find(edge => edge.sourceId === serviceA.id && edge.targetId === serviceC.id)).toBeDefined();
31
+ const adaptedSubSystem = adaptedSystem.getNodes().find(node => node.getName() === 'sub-system');
32
+ expect(adaptedSubSystem).toBeDefined();
33
+ expect(adaptedSubSystem.getNodes()).toHaveLength(2);
34
+ expect(adaptedSubSystem.getNodes().find(node => node.getName() === 'C')).toBeDefined();
35
+ expect(adaptedSubSystem.getNodes().find(node => node.getName() === 'D')).toBeDefined();
36
+ expect(adaptedSubSystem.getEdges()).toHaveLength(1);
37
+ const cdEdge = adaptedSubSystem.getEdges().find(edge => edge.sourceId === serviceC.id && edge.targetId === serviceD.id);
38
+ expect(cdEdge).toBeDefined();
39
+ expect(cdEdge.type).toEqual('SyncInfoFlow');
40
+ });
41
+ it('puts payload fields and metadata into v1-properties', async () => {
42
+ const system = new ms_1.System('system');
43
+ const metadata = {
44
+ transformer: 'T',
45
+ context: 'C'
46
+ };
47
+ const serviceA = system.addMicroService('A', { x: '1' }, metadata);
48
+ const exchangeB = system.addMessageExchange('B', { y: '2' });
49
+ const eventFlow = new ms_1.AsyncEventFlow(serviceA, exchangeB);
50
+ eventFlow.content.payload = {
51
+ x: '1'
52
+ };
53
+ eventFlow.content.metadata = metadata;
54
+ system.edges.push(eventFlow);
55
+ const adaptedSystem = (0, v1_adapter_1.adaptToV1)(system);
56
+ expect(adaptedSystem.getNodes()).toHaveLength(2);
57
+ expect(adaptedSystem.getNodes().find(node => node.getName() === 'A').getProp('x', null)).toEqual('1');
58
+ expect(adaptedSystem.getNodes().find(node => node.getName() === 'B').getProp('y', null)).toEqual('2');
59
+ expect(adaptedSystem.getNodes()
60
+ .find(node => node.getName() === 'A')
61
+ .getProp('metadata', null)).toEqual(metadata);
62
+ expect(adaptedSystem.getEdges()[0].getProperties().x).toEqual('1');
63
+ expect(adaptedSystem.getEdges()[0].getProperties().metadata).toEqual(metadata);
64
+ });
65
+ });
66
+ //# sourceMappingURL=v1-adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1-adapter.test.js","sourceRoot":"","sources":["../../../../src/model/v1-legacy/v1-adapter.test.ts"],"names":[],"mappings":"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"}