tadis-analyzer 1.1.1 → 2.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -5
- package/build/src/{main.d.ts → app/code-pattern/main.d.ts} +0 -0
- package/build/src/{main.js → app/code-pattern/main.js} +3 -2
- package/build/src/app/code-pattern/main.js.map +1 -0
- package/build/src/{common-transformers/StaticNodeFilter.test.d.ts → app/default/main.d.ts} +0 -0
- package/build/src/app/default/main.js +15 -0
- package/build/src/app/default/main.js.map +1 -0
- package/build/src/app/error.d.ts +3 -0
- package/build/src/app/error.js +10 -0
- package/build/src/app/error.js.map +1 -0
- package/build/src/config/Config.module.js +3 -2
- package/build/src/config/Config.module.js.map +1 -1
- package/build/src/config/Config.service.js +35 -13
- package/build/src/config/Config.service.js.map +1 -1
- package/build/src/config/Config.service.test.js +7 -4
- package/build/src/config/Config.service.test.js.map +1 -1
- package/build/src/deprecated-modules/CommonTransformers.module.d.ts +5 -0
- package/build/src/deprecated-modules/CommonTransformers.module.js +34 -0
- package/build/src/deprecated-modules/CommonTransformers.module.js.map +1 -0
- package/build/src/deprecated-modules/Msa.module.d.ts +13 -0
- package/build/src/deprecated-modules/Msa.module.js +63 -0
- package/build/src/deprecated-modules/Msa.module.js.map +1 -0
- package/build/src/deprecated-modules/SourceCodeAnalysis.module.d.ts +6 -0
- package/build/src/deprecated-modules/SourceCodeAnalysis.module.js +60 -0
- package/build/src/deprecated-modules/SourceCodeAnalysis.module.js.map +1 -0
- package/build/src/git/Git.module.d.ts +5 -0
- package/build/src/git/Git.module.js +28 -0
- package/build/src/git/Git.module.js.map +1 -0
- package/build/src/git/GitStorage.controller.d.ts +17 -0
- package/build/src/{source-code-analysis/git → git}/GitStorage.controller.js +35 -7
- package/build/src/git/GitStorage.controller.js.map +1 -0
- package/build/src/{source-code-analysis/git → git}/GitStorage.controller.test.d.ts +0 -0
- package/build/src/{source-code-analysis/git → git}/GitStorage.controller.test.js +4 -2
- package/build/src/git/GitStorage.controller.test.js.map +1 -0
- package/build/src/{source-code-analysis/git → git}/GitStorage.d.ts +0 -0
- package/build/src/{source-code-analysis/git → git}/GitStorage.js +30 -6
- package/build/src/git/GitStorage.js.map +1 -0
- package/build/src/{source-code-analysis/git → git}/GitStorage.service.d.ts +1 -1
- package/build/src/{source-code-analysis/git → git}/GitStorage.service.js +3 -2
- package/build/src/git/GitStorage.service.js.map +1 -0
- package/build/src/{source-code-analysis/git → git}/SourceLocationDecorator.d.ts +1 -1
- package/build/src/{source-code-analysis/git → git}/SourceLocationDecorator.js +7 -5
- package/build/src/git/SourceLocationDecorator.js.map +1 -0
- package/build/src/{source-code-analysis/git → git}/SourceLocationDecorator.test.d.ts +0 -0
- package/build/src/{source-code-analysis/git → git}/SourceLocationDecorator.test.js +2 -2
- package/build/src/git/SourceLocationDecorator.test.js.map +1 -0
- package/build/src/lib.d.ts +17 -8
- package/build/src/lib.js +50 -14
- package/build/src/lib.js.map +1 -1
- package/build/src/model/core-typed.d.ts +4 -5
- package/build/src/model/core-typed.js +29 -8
- package/build/src/model/core-typed.js.map +1 -1
- package/build/src/model/core.js +25 -1
- package/build/src/model/core.js.map +1 -1
- package/build/src/model/ms.js +1 -0
- package/build/src/model/ms.js.map +1 -1
- package/build/src/model/transport.js +1 -0
- package/build/src/model/transport.js.map +1 -1
- package/build/src/model/v1-legacy/model.js +1 -0
- package/build/src/model/v1-legacy/model.js.map +1 -1
- package/build/src/model/v1-legacy/v1-adapter.js +25 -1
- package/build/src/model/v1-legacy/v1-adapter.js.map +1 -1
- package/build/src/model/v1-legacy/v1-adapter.test.js +2 -2
- package/build/src/model/v1-legacy/v1-adapter.test.js.map +1 -1
- package/build/src/{msa/rabbitmq/transformer → post-processors}/MicroserviceWithOutgoingExchangeMerger.d.ts +1 -1
- package/build/src/{msa/rabbitmq/transformer → post-processors}/MicroserviceWithOutgoingExchangeMerger.js +34 -25
- package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.js.map +1 -0
- package/build/src/{msa/rabbitmq/transformer → post-processors}/MicroserviceWithOutgoingExchangeMerger.test.d.ts +0 -0
- package/build/src/{msa/rabbitmq/transformer → post-processors}/MicroserviceWithOutgoingExchangeMerger.test.js +13 -10
- package/build/src/post-processors/MicroserviceWithOutgoingExchangeMerger.test.js.map +1 -0
- package/build/src/post-processors/PostProcessors.module.d.ts +6 -0
- package/build/src/post-processors/PostProcessors.module.js +37 -0
- package/build/src/post-processors/PostProcessors.module.js.map +1 -0
- package/build/src/{common-transformers/SubSystemFromPayloadTransformer.test.d.ts → post-processors/PostProcessors.module.test.d.ts} +0 -0
- package/build/src/post-processors/PostProcessors.module.test.js +23 -0
- package/build/src/post-processors/PostProcessors.module.test.js.map +1 -0
- package/build/src/{common-transformers → post-processors}/StaticNodeFilter.d.ts +0 -0
- package/build/src/{common-transformers → post-processors}/StaticNodeFilter.js +26 -2
- package/build/src/post-processors/StaticNodeFilter.js.map +1 -0
- package/build/src/{java/JavaAnnotationAnalyzer.test.d.ts → post-processors/StaticNodeFilter.test.d.ts} +0 -0
- package/build/src/{common-transformers → post-processors}/StaticNodeFilter.test.js +0 -0
- package/build/src/post-processors/StaticNodeFilter.test.js.map +1 -0
- package/build/src/{common-transformers → post-processors}/SubSystemFromPayloadTransformer.d.ts +0 -0
- package/build/src/{common-transformers → post-processors}/SubSystemFromPayloadTransformer.js +8 -5
- package/build/src/post-processors/SubSystemFromPayloadTransformer.js.map +1 -0
- package/build/src/{msa/collector/Collector.controller.test.d.ts → post-processors/SubSystemFromPayloadTransformer.test.d.ts} +0 -0
- package/build/src/{common-transformers → post-processors}/SubSystemFromPayloadTransformer.test.js +10 -10
- package/build/src/post-processors/SubSystemFromPayloadTransformer.test.js.map +1 -0
- package/build/src/{msa/collector/Collector.d.ts → system-assemblers/controllers/ISystemAssembler.d.ts} +1 -1
- package/build/src/system-assemblers/controllers/ISystemAssembler.js +3 -0
- package/build/src/system-assemblers/controllers/ISystemAssembler.js.map +1 -0
- package/build/src/system-assemblers/controllers/SystemAssembler.controller.d.ts +19 -0
- package/build/src/system-assemblers/controllers/SystemAssembler.controller.js +94 -0
- package/build/src/system-assemblers/controllers/SystemAssembler.controller.js.map +1 -0
- package/build/src/{msa/feign/FeignClientAnnotationAnalyzer.test.d.ts → system-assemblers/controllers/SystemAssembler.controller.test.d.ts} +0 -0
- package/build/src/{msa/collector/Collector.controller.test.js → system-assemblers/controllers/SystemAssembler.controller.test.js} +18 -15
- package/build/src/system-assemblers/controllers/SystemAssembler.controller.test.js.map +1 -0
- package/build/src/system-assemblers/controllers/SystemAssembler.module.d.ts +6 -0
- package/build/src/system-assemblers/controllers/SystemAssembler.module.js +28 -0
- package/build/src/system-assemblers/controllers/SystemAssembler.module.js.map +1 -0
- package/build/src/{msa/collector/DefaultCollector.d.ts → system-assemblers/controllers/SystemAssembler.service.d.ts} +2 -2
- package/build/src/{msa/collector/DefaultCollector.js → system-assemblers/controllers/SystemAssembler.service.js} +7 -6
- package/build/src/system-assemblers/controllers/SystemAssembler.service.js.map +1 -0
- package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.d.ts +4 -0
- package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.js +46 -0
- package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.module.js.map +1 -0
- package/build/src/{msa/collector/KubernetesRabbitMqCollector.d.ts → system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.d.ts} +5 -5
- package/build/src/{msa/collector/KubernetesRabbitMqCollector.js → system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.js} +11 -10
- package/build/src/system-assemblers/kubernetes-rabbitmq/KubernetesRabbitMqAssembler.service.js.map +1 -0
- package/build/src/system-element-extractors/env-variables/EnvVariables.module.d.ts +2 -0
- package/build/src/system-element-extractors/env-variables/EnvVariables.module.js +24 -0
- package/build/src/system-element-extractors/env-variables/EnvVariables.module.js.map +1 -0
- package/build/src/{msa/rabbitmq/transformer → system-element-extractors/env-variables}/ExchangesFromEnvPayloadCreator.d.ts +2 -2
- package/build/src/{msa/rabbitmq/transformer → system-element-extractors/env-variables}/ExchangesFromEnvPayloadCreator.js +8 -6
- package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.js.map +1 -0
- package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.d.ts +1 -0
- package/build/src/{msa/rabbitmq/transformer → system-element-extractors/env-variables}/ExchangesFromEnvPayloadCreator.test.js +17 -19
- package/build/src/system-element-extractors/env-variables/ExchangesFromEnvPayloadCreator.test.js.map +1 -0
- package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.d.ts +4 -0
- package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.js +26 -0
- package/build/src/system-element-extractors/experimental/code-pattern/CodePattern.module.js.map +1 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.d.ts +8 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.js +54 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.controller.js.map +1 -0
- package/build/src/{source-pattern-dsl → system-element-extractors/experimental/code-pattern}/PatternAnalyzer.d.ts +3 -5
- package/build/src/{msa/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.d.ts → system-element-extractors/experimental/code-pattern/PatternAnalyzer.interFileId.test.d.ts} +0 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.interFileId.test.js +80 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.interFileId.test.js.map +1 -0
- package/build/src/{msa/kubernetes/transformer/LabelsFromDeploymentDecorator.test.d.ts → system-element-extractors/experimental/code-pattern/PatternAnalyzer.intraFileId.test.d.ts} +0 -0
- package/build/src/{source-pattern-dsl/PatternAnalyzer.test.js → system-element-extractors/experimental/code-pattern/PatternAnalyzer.intraFileId.test.js} +55 -58
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.intraFileId.test.js.map +1 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.js +314 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.js.map +1 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.d.ts +16 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js +47 -0
- package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js.map +1 -0
- package/build/src/{msa/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.d.ts → system-element-extractors/experimental/code-pattern/behavior-model.d.ts} +0 -0
- package/build/src/{msa/collector/Collector.js → system-element-extractors/experimental/code-pattern/behavior-model.js} +1 -1
- package/build/src/system-element-extractors/experimental/code-pattern/behavior-model.js.map +1 -0
- package/build/src/system-element-extractors/experimental/code-pattern/model.d.ts +96 -0
- package/build/src/{source-pattern-dsl → system-element-extractors/experimental/code-pattern}/model.js +9 -0
- package/build/src/system-element-extractors/experimental/code-pattern/model.js.map +1 -0
- package/build/src/{source-pattern-dsl → system-element-extractors/experimental/code-pattern/prototyping}/pattern-dsl.d.ts +0 -0
- package/build/src/{source-pattern-dsl → system-element-extractors/experimental/code-pattern/prototyping}/pattern-dsl.js +1 -1
- package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.js.map +1 -0
- package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.d.ts +0 -0
- package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js +18 -0
- package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js.map +1 -0
- package/build/src/{java → system-element-extractors/java}/Java.module.d.ts +0 -0
- package/build/src/{java → system-element-extractors/java}/Java.module.js +8 -14
- package/build/src/system-element-extractors/java/Java.module.js.map +1 -0
- package/build/src/{java → system-element-extractors/java}/JavaAnnotationAnalyzer.d.ts +2 -2
- package/build/src/{java → system-element-extractors/java}/JavaAnnotationAnalyzer.js +50 -14
- package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.js.map +1 -0
- package/build/src/{msa/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.d.ts → system-element-extractors/java/JavaAnnotationAnalyzer.test.d.ts} +0 -0
- package/build/src/{java → system-element-extractors/java}/JavaAnnotationAnalyzer.test.js +20 -22
- package/build/src/system-element-extractors/java/JavaAnnotationAnalyzer.test.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/Kubernetes.module.d.ts +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/Kubernetes.module.js +6 -5
- package/build/src/system-element-extractors/kubernetes/Kubernetes.module.js.map +1 -0
- package/build/src/system-element-extractors/kubernetes/api/api.service.d.ts +9 -0
- package/build/src/system-element-extractors/kubernetes/api/api.service.js +78 -0
- package/build/src/system-element-extractors/kubernetes/api/api.service.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/EnvDefinitionFromPodDecorator.d.ts +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/EnvDefinitionFromPodDecorator.js +26 -2
- package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.js.map +1 -0
- package/build/src/{msa/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.d.ts → system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.d.ts} +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js +0 -0
- package/build/src/system-element-extractors/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/LabelsFromDeploymentDecorator.d.ts +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/LabelsFromDeploymentDecorator.js +26 -2
- package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.js.map +1 -0
- package/build/src/{source-pattern-dsl/PatternAnalyzer.test.d.ts → system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.d.ts} +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js +0 -0
- package/build/src/system-element-extractors/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/MicroservicesFromKubernetesCreator.d.ts +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/MicroservicesFromKubernetesCreator.js +9 -5
- package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.js.map +1 -0
- package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.d.ts +1 -0
- package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js +38 -0
- package/build/src/system-element-extractors/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/testdata/api/deployments.json +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/testdata/api/pods.json +0 -0
- package/build/src/{msa → system-element-extractors}/kubernetes/transformer/testdata/api/services.json +0 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/RabbitMq.module.d.ts +1 -3
- package/build/src/{msa → system-element-extractors}/rabbitmq/RabbitMq.module.js +9 -17
- package/build/src/system-element-extractors/rabbitmq/RabbitMq.module.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/api/api.service.d.ts +4 -2
- package/build/src/{msa → system-element-extractors}/rabbitmq/api/api.service.js +25 -23
- package/build/src/system-element-extractors/rabbitmq/api/api.service.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.d.ts +0 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js +42 -13
- package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js.map +1 -0
- package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.d.ts +1 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js +2 -6
- package/build/src/system-element-extractors/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.d.ts +0 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js +26 -2
- package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js.map +1 -0
- package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.d.ts +1 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js +46 -27
- package/build/src/system-element-extractors/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js.map +1 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/testdata/api/bindings.json +0 -0
- package/build/src/{msa → system-element-extractors}/rabbitmq/transformer/testdata/api/queues.json +0 -0
- package/build/src/{msa/feign → system-element-extractors/spring-boot}/FeignClientAnnotationAnalyzer.d.ts +0 -0
- package/build/src/{msa/feign → system-element-extractors/spring-boot}/FeignClientAnnotationAnalyzer.js +34 -11
- package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.js.map +1 -0
- package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.d.ts +1 -0
- package/build/src/{msa/feign → system-element-extractors/spring-boot}/FeignClientAnnotationAnalyzer.test.js +2 -6
- package/build/src/system-element-extractors/spring-boot/FeignClientAnnotationAnalyzer.test.js.map +1 -0
- package/build/src/system-element-extractors/spring-boot/SpringBoot.module.d.ts +4 -0
- package/build/src/system-element-extractors/spring-boot/SpringBoot.module.js +25 -0
- package/build/src/system-element-extractors/spring-boot/SpringBoot.module.js.map +1 -0
- package/build/src/test/verifiers.js +2 -1
- package/build/src/test/verifiers.js.map +1 -1
- package/build/src/{source-code-analysis/file-analysis → utils/files}/analysis.d.ts +2 -2
- package/build/src/utils/files/analysis.js +109 -0
- package/build/src/utils/files/analysis.js.map +1 -0
- package/package.json +40 -33
- package/build/src/common-transformers/CommonTransformers.module.d.ts +0 -5
- package/build/src/common-transformers/CommonTransformers.module.js +0 -34
- package/build/src/common-transformers/CommonTransformers.module.js.map +0 -1
- package/build/src/common-transformers/StaticNodeFilter.js.map +0 -1
- package/build/src/common-transformers/StaticNodeFilter.test.js.map +0 -1
- package/build/src/common-transformers/SubSystemFromPayloadTransformer.js.map +0 -1
- package/build/src/common-transformers/SubSystemFromPayloadTransformer.test.js.map +0 -1
- package/build/src/java/Java.module.js.map +0 -1
- package/build/src/java/JavaAnnotationAnalyzer.js.map +0 -1
- package/build/src/java/JavaAnnotationAnalyzer.test.js.map +0 -1
- package/build/src/main.js.map +0 -1
- package/build/src/msa/Msa.module.d.ts +0 -9
- package/build/src/msa/Msa.module.js +0 -57
- package/build/src/msa/Msa.module.js.map +0 -1
- package/build/src/msa/collector/Collector.controller.d.ts +0 -11
- package/build/src/msa/collector/Collector.controller.js +0 -68
- package/build/src/msa/collector/Collector.controller.js.map +0 -1
- package/build/src/msa/collector/Collector.controller.test.js.map +0 -1
- package/build/src/msa/collector/Collector.js.map +0 -1
- package/build/src/msa/collector/DefaultCollector.js.map +0 -1
- package/build/src/msa/collector/KubernetesRabbitMqCollector.js.map +0 -1
- package/build/src/msa/feign/FeignClientAnnotationAnalyzer.js.map +0 -1
- package/build/src/msa/feign/FeignClientAnnotationAnalyzer.test.js.map +0 -1
- package/build/src/msa/kubernetes/Kubernetes.module.js.map +0 -1
- package/build/src/msa/kubernetes/api/api.service.d.ts +0 -10
- package/build/src/msa/kubernetes/api/api.service.js +0 -60
- package/build/src/msa/kubernetes/api/api.service.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/EnvDefinitionFromPodDecorator.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/EnvDefinitionFromPodDecorator.test.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/LabelsFromDeploymentDecorator.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/LabelsFromDeploymentDecorator.test.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/MicroservicesFromKubernetesCreator.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js +0 -35
- package/build/src/msa/kubernetes/transformer/MicroservicesFromKubernetesCreator.test.js.map +0 -1
- package/build/src/msa/kubernetes/transformer/testdata/api/deployments.d.ts +0 -96
- package/build/src/msa/kubernetes/transformer/testdata/api/pods.d.ts +0 -61
- package/build/src/msa/kubernetes/transformer/testdata/api/services.d.ts +0 -38
- package/build/src/msa/rabbitmq/RabbitMq.module.js.map +0 -1
- package/build/src/msa/rabbitmq/api/api.service.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/ExchangesFromEnvPayloadCreator.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/ExchangesFromEnvPayloadCreator.test.d.ts +0 -1
- package/build/src/msa/rabbitmq/transformer/ExchangesFromEnvPayloadCreator.test.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/MicroserviceWithOutgoingExchangeMerger.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/MicroserviceWithOutgoingExchangeMerger.test.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/OutgoingExchangesFromSourceCreator.test.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/RabbitMqBindingsFromApiAnalyzer.test.js.map +0 -1
- package/build/src/msa/rabbitmq/transformer/testdata/api/bindings.d.ts +0 -7
- package/build/src/msa/rabbitmq/transformer/testdata/api/queues.d.ts +0 -4
- package/build/src/source-code-analysis/SourceCodeAnalysis.module.d.ts +0 -6
- package/build/src/source-code-analysis/SourceCodeAnalysis.module.js +0 -39
- package/build/src/source-code-analysis/SourceCodeAnalysis.module.js.map +0 -1
- package/build/src/source-code-analysis/file-analysis/analysis.js +0 -79
- package/build/src/source-code-analysis/file-analysis/analysis.js.map +0 -1
- package/build/src/source-code-analysis/git/GitStorage.controller.d.ts +0 -9
- package/build/src/source-code-analysis/git/GitStorage.controller.js.map +0 -1
- package/build/src/source-code-analysis/git/GitStorage.controller.test.js.map +0 -1
- package/build/src/source-code-analysis/git/GitStorage.js.map +0 -1
- package/build/src/source-code-analysis/git/GitStorage.service.js.map +0 -1
- package/build/src/source-code-analysis/git/SourceLocationDecorator.js.map +0 -1
- package/build/src/source-code-analysis/git/SourceLocationDecorator.test.js.map +0 -1
- package/build/src/source-pattern-dsl/PatternAnalyzer.js +0 -151
- package/build/src/source-pattern-dsl/PatternAnalyzer.js.map +0 -1
- package/build/src/source-pattern-dsl/PatternAnalyzer.test.js.map +0 -1
- package/build/src/source-pattern-dsl/SourcePatternDsl.module.d.ts +0 -4
- package/build/src/source-pattern-dsl/SourcePatternDsl.module.js +0 -32
- package/build/src/source-pattern-dsl/SourcePatternDsl.module.js.map +0 -1
- package/build/src/source-pattern-dsl/model.d.ts +0 -67
- package/build/src/source-pattern-dsl/model.js.map +0 -1
- package/build/src/source-pattern-dsl/pattern-dsl.js.map +0 -1
|
@@ -0,0 +1,314 @@
|
|
|
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.PatternAnalyzer = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const immer = __importStar(require("immer"));
|
|
30
|
+
const analysis_1 = require("../../../utils/files/analysis");
|
|
31
|
+
const model_1 = require("./model");
|
|
32
|
+
const common_1 = require("@nestjs/common");
|
|
33
|
+
// tslint:disable-next-line
|
|
34
|
+
const ms = __importStar(require("../../../model/ms"));
|
|
35
|
+
/**
|
|
36
|
+
* The PatternAnalyzer allows to derive a system from source code patterns defined by regular expressions.
|
|
37
|
+
*/
|
|
38
|
+
class PatternAnalyzer {
|
|
39
|
+
constructor(sourceFolder) {
|
|
40
|
+
this.sourceFolder = sourceFolder;
|
|
41
|
+
}
|
|
42
|
+
async transform(system, systemPattern) {
|
|
43
|
+
const systemPatternWithoutVariables = replaceVariablesInPatterns(systemPattern, this.sourceFolder);
|
|
44
|
+
await transformSystemFromPattern(system, systemPatternWithoutVariables, this.sourceFolder);
|
|
45
|
+
return system;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.PatternAnalyzer = PatternAnalyzer;
|
|
49
|
+
function replaceVariablesInPatterns(systemPattern, sourceFolder) {
|
|
50
|
+
return immer.produce(systemPattern, (systemPatternDraft) => {
|
|
51
|
+
systemPatternDraft.nodePatterns.forEach((pattern) => {
|
|
52
|
+
pattern.regExp = replaceVariablesInRegExp(pattern.regExp, sourceFolder);
|
|
53
|
+
if (pattern.nameResolutionPattern) {
|
|
54
|
+
pattern.nameResolutionPattern.regExp = replaceVariablesInRegExp(pattern.nameResolutionPattern.regExp, sourceFolder);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
systemPatternDraft.edgePatterns.forEach((pattern) => {
|
|
58
|
+
pattern.sourceNodePattern.regExp = replaceVariablesInRegExp(pattern.sourceNodePattern.regExp, sourceFolder);
|
|
59
|
+
pattern.targetNodePattern.regExp = replaceVariablesInRegExp(pattern.targetNodePattern.regExp, sourceFolder);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// TODO: add variable to name memory
|
|
64
|
+
function replaceVariablesInRegExp(regExp, sourceFolder) {
|
|
65
|
+
return regExp.replace('$sourceRoot', path.resolve(sourceFolder));
|
|
66
|
+
}
|
|
67
|
+
async function transformSystemFromPattern(system, systemPattern, sourceFolder) {
|
|
68
|
+
common_1.Logger.log('scanning all files in ' + sourceFolder);
|
|
69
|
+
const allFiles = await (0, analysis_1.findFilesSafe)(sourceFolder, systemPattern.includedFileEndings, systemPattern.excludedFolders);
|
|
70
|
+
common_1.Logger.log('found ' + allFiles.length + ' files');
|
|
71
|
+
allFiles.forEach((filePath) => {
|
|
72
|
+
systemPattern.nodePatterns.forEach((nodePattern) => addNodesFromPattern(system, nodePattern, filePath, allFiles));
|
|
73
|
+
systemPattern.edgePatterns.forEach((edgePattern) => addEdgesFromPattern(system, edgePattern, filePath, allFiles));
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function addNodesFromPattern(system, nodePattern, filePath, allFiles) {
|
|
77
|
+
findNodes(nodePattern, filePath, allFiles, new NameMemory()).forEach((node) => {
|
|
78
|
+
const nodeName = node.nodeName;
|
|
79
|
+
system.addOrExtendTypedNode(nodePattern.nodeType, nodeName);
|
|
80
|
+
common_1.Logger.log(`added node '${nodeName}'`);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function addEdgesFromPattern(system, edgePattern, filePath, allFiles) {
|
|
84
|
+
findNodes(edgePattern.sourceNodePattern, filePath, allFiles, new NameMemory()).forEach((sourceNode) => {
|
|
85
|
+
const sourceNodeName = sourceNode.nodeName;
|
|
86
|
+
common_1.Logger.log(`found source node '${sourceNodeName}'`);
|
|
87
|
+
findNodes(edgePattern.targetNodePattern, filePath, allFiles, sourceNode.nameMemory).forEach((targetNode) => {
|
|
88
|
+
const targetNodeName = targetNode.nodeName;
|
|
89
|
+
common_1.Logger.log(`found target node '${targetNodeName}'`);
|
|
90
|
+
createEdgeOnce(system, edgePattern, sourceNodeName, targetNodeName);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function createEdgeOnce(system, edgePattern, sourceNodeName, targetNodeName) {
|
|
95
|
+
if (system
|
|
96
|
+
.getAllEdges()
|
|
97
|
+
.find((edge) => edge.source.getName() === sourceNodeName &&
|
|
98
|
+
edge.target.getName() === targetNodeName)) {
|
|
99
|
+
common_1.Logger.log(`skipping already existing edge '${sourceNodeName}' --(${edgePattern.edgeType})--> '${targetNodeName}'`);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const metadata = {
|
|
103
|
+
transformer: PatternAnalyzer.name,
|
|
104
|
+
context: `edge pattern with source node '${sourceNodeName}'`,
|
|
105
|
+
info: `matched target node '${targetNodeName}'`
|
|
106
|
+
};
|
|
107
|
+
const sourceNode = system.addOrExtendTypedNode(edgePattern.sourceNodePattern.nodeType, sourceNodeName, null, metadata);
|
|
108
|
+
const targetNode = system.addOrExtendTypedNode(edgePattern.targetNodePattern.nodeType, targetNodeName, null, metadata);
|
|
109
|
+
const edge = new ms[edgePattern.edgeType](sourceNode, targetNode, undefined, metadata);
|
|
110
|
+
system.edges.push(edge);
|
|
111
|
+
common_1.Logger.log(`added edge '${sourceNodeName}' --(${edgePattern.edgeType})--> '${targetNodeName}'`);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* a node which was matched from a pattern including all matched names.
|
|
115
|
+
*/
|
|
116
|
+
class MatchedNode {
|
|
117
|
+
constructor(nodeName, nameMemory) {
|
|
118
|
+
this.nodeName = nodeName;
|
|
119
|
+
this.nameMemory = nameMemory;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* a memory of all the names found during a chain of pattern matchings.
|
|
124
|
+
*/
|
|
125
|
+
class NameMemory {
|
|
126
|
+
constructor(inheritedNameMemory) {
|
|
127
|
+
this.inheritedNameMemory = inheritedNameMemory;
|
|
128
|
+
this.names = new Map();
|
|
129
|
+
}
|
|
130
|
+
saveName(name, value) {
|
|
131
|
+
this.names.set(name, value);
|
|
132
|
+
}
|
|
133
|
+
getCurrentNames() {
|
|
134
|
+
return this.names;
|
|
135
|
+
}
|
|
136
|
+
findName(name) {
|
|
137
|
+
const directName = this.names.get(name);
|
|
138
|
+
if (!directName && this.inheritedNameMemory)
|
|
139
|
+
return this.inheritedNameMemory.findName(name);
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
toString() {
|
|
143
|
+
let result = '';
|
|
144
|
+
for (const entry of this.names.entries()) {
|
|
145
|
+
result += entry[0] + ': ' + entry[1] + '\n';
|
|
146
|
+
}
|
|
147
|
+
return (result +
|
|
148
|
+
(this.inheritedNameMemory ? this.inheritedNameMemory.toString() : ''));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// TODO: add individual tests
|
|
152
|
+
function findNodes(pattern, filePath, allFiles, nameMemory) {
|
|
153
|
+
const matchedNodes = matchNode(pattern, filePath, nameMemory);
|
|
154
|
+
if (!pattern.nameResolutionPattern)
|
|
155
|
+
return matchedNodes;
|
|
156
|
+
const nameResolution = pattern.nameResolutionPattern;
|
|
157
|
+
return matchedNodes.map((node) => {
|
|
158
|
+
const foundNames = new NameMemory(nameMemory);
|
|
159
|
+
const nameVariable = getVariableForName(pattern.variableForName);
|
|
160
|
+
foundNames.saveName(nameVariable, node.nodeName);
|
|
161
|
+
const resolvedName = resolveName(nameResolution, filePath, allFiles, foundNames);
|
|
162
|
+
if (!resolvedName) {
|
|
163
|
+
common_1.Logger.warn(`could not resolve name '${node.nodeName}'`);
|
|
164
|
+
return new MatchedNode(node.nodeName, foundNames);
|
|
165
|
+
}
|
|
166
|
+
common_1.Logger.log(`resolved node with name '${node.nodeName}' to actual name '${resolvedName}'.\ncurrent name memory\n---\n${foundNames.toString()}`);
|
|
167
|
+
return new MatchedNode(resolvedName, foundNames);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function getVariableForName(variableForName) {
|
|
171
|
+
return variableForName !== null && variableForName !== void 0 ? variableForName : 'name';
|
|
172
|
+
}
|
|
173
|
+
class FileContent {
|
|
174
|
+
constructor(file) {
|
|
175
|
+
this.file = file;
|
|
176
|
+
}
|
|
177
|
+
read() {
|
|
178
|
+
return fs.readFileSync(this.file, 'utf8');
|
|
179
|
+
}
|
|
180
|
+
filePath() {
|
|
181
|
+
return this.file;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
class PathContent {
|
|
185
|
+
constructor(path) {
|
|
186
|
+
this.path = path;
|
|
187
|
+
}
|
|
188
|
+
read() {
|
|
189
|
+
return this.path;
|
|
190
|
+
}
|
|
191
|
+
filePath() {
|
|
192
|
+
return this.path;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* resolves a final name by traversing a chain of name resolution patterns.
|
|
197
|
+
* when the end of the chain is reached, the name is either resolved and returned or undefined.
|
|
198
|
+
* when traversing the chain, each matched name is added to the matchedNames map
|
|
199
|
+
* and it may be referenced by its variable name in the next chain elements.
|
|
200
|
+
*
|
|
201
|
+
* @param nameResolution the name resolution pattern used for resolving the name
|
|
202
|
+
* @param filePath the current file to be searched in
|
|
203
|
+
* @param allFiles list of all files which are used in the search
|
|
204
|
+
* @param foundNames map of names found by matching regular expressions in name resolution chains so far
|
|
205
|
+
*/
|
|
206
|
+
// TODO: add individual tests
|
|
207
|
+
function resolveName(nameResolution, filePath, allFiles, foundNames) {
|
|
208
|
+
const regExp = replaceNameVariables(nameResolution.regExp, foundNames);
|
|
209
|
+
const contents = getContentsToResolveNameFrom(nameResolution, filePath, allFiles);
|
|
210
|
+
for (const content of contents) {
|
|
211
|
+
const resolvedNames = matchNodeByRegExp(regExp, content.read(), 1, nameResolution.variableForName, foundNames);
|
|
212
|
+
if (resolvedNames.length > 0) {
|
|
213
|
+
const resolvedName = resolvedNames[0];
|
|
214
|
+
if (resolvedNames.length >= 2) {
|
|
215
|
+
const allNames = resolvedNames.map((node) => node.nodeName).join(', ');
|
|
216
|
+
common_1.Logger.warn('name resolution returned with multiple possible names. choosing first name from list: ' +
|
|
217
|
+
allNames);
|
|
218
|
+
}
|
|
219
|
+
const nameVariable = getVariableForName(nameResolution.variableForName);
|
|
220
|
+
foundNames.saveName(nameVariable, resolvedName.nodeName);
|
|
221
|
+
if (!nameResolution.nameResolutionPattern) {
|
|
222
|
+
// TODO: add metadata to node for debugging
|
|
223
|
+
common_1.Logger.log(`resolved name '${resolvedName}' in file ${content.filePath()} using pattern ${nameResolution.regExp}`);
|
|
224
|
+
return resolvedName.nodeName;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
// continue with next resolution pattern
|
|
228
|
+
const nextFilePath = shouldSearchInPath(nameResolution.searchTextLocation)
|
|
229
|
+
? content.filePath()
|
|
230
|
+
: filePath;
|
|
231
|
+
common_1.Logger.log(`continue to resolve name in file '${nextFilePath}' using pattern '${nameResolution.regExp}'`);
|
|
232
|
+
const resolvedName = resolveName(nameResolution.nameResolutionPattern, nextFilePath, allFiles, foundNames);
|
|
233
|
+
if (resolvedName) {
|
|
234
|
+
// TODO: add metadata to node for debugging
|
|
235
|
+
common_1.Logger.log(`resolved name '${resolvedName}' in file ${content.filePath()} using pattern ${nameResolution.regExp}`);
|
|
236
|
+
return resolvedName;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
function shouldSearchInPath(searchTextLocation) {
|
|
244
|
+
return (searchTextLocation === model_1.SearchTextLocation.FILE_PATH ||
|
|
245
|
+
searchTextLocation === model_1.SearchTextLocation.ANY_FILE_PATH);
|
|
246
|
+
}
|
|
247
|
+
function replaceNameVariables(regExp, nameMemory) {
|
|
248
|
+
for (const variable of nameMemory.getCurrentNames().entries()) {
|
|
249
|
+
regExp = regExp.replace('$' + variable[0], variable[1]);
|
|
250
|
+
}
|
|
251
|
+
if (nameMemory.inheritedNameMemory) {
|
|
252
|
+
regExp = replaceNameVariables(regExp, nameMemory.inheritedNameMemory);
|
|
253
|
+
}
|
|
254
|
+
return regExp;
|
|
255
|
+
}
|
|
256
|
+
function getContentsToResolveNameFrom(nameResolution, filePath, allFiles) {
|
|
257
|
+
if (nameResolution.searchTextLocation === model_1.SearchTextLocation.FILE_PATH) {
|
|
258
|
+
return [new PathContent(filePath)];
|
|
259
|
+
}
|
|
260
|
+
else if (nameResolution.searchTextLocation === model_1.SearchTextLocation.FILE_CONTENT) {
|
|
261
|
+
return [new FileContent(filePath)];
|
|
262
|
+
}
|
|
263
|
+
else if (nameResolution.searchTextLocation === model_1.SearchTextLocation.ANY_FILE_CONTENT) {
|
|
264
|
+
return allFiles.map((file) => new FileContent(file));
|
|
265
|
+
}
|
|
266
|
+
else if (nameResolution.searchTextLocation === model_1.SearchTextLocation.ANY_FILE_PATH) {
|
|
267
|
+
return allFiles.map((file) => new PathContent(file));
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
return [];
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
// TODO: add individual tests
|
|
274
|
+
function matchNode(pattern, filePath, nameMemory) {
|
|
275
|
+
if (shouldSearchInPath(pattern.searchTextLocation)) {
|
|
276
|
+
return matchNodeByPattern(pattern, filePath, nameMemory);
|
|
277
|
+
}
|
|
278
|
+
if (pattern.searchTextLocation === model_1.SearchTextLocation.FILE_CONTENT) {
|
|
279
|
+
const fileContent = fs.readFileSync(filePath, 'utf8');
|
|
280
|
+
return matchNodeByPattern(pattern, fileContent, nameMemory);
|
|
281
|
+
}
|
|
282
|
+
return [];
|
|
283
|
+
}
|
|
284
|
+
function matchNodeByPattern(pattern, searchText, nameMemory) {
|
|
285
|
+
const variableForName = getVariableForName(pattern.variableForName);
|
|
286
|
+
return matchNodeByRegExp(pattern.regExp, searchText, pattern.capturingGroupIndexForName, variableForName, nameMemory);
|
|
287
|
+
}
|
|
288
|
+
function matchNodeByRegExp(regExpString, searchText, capturingGroupIndexForName, variableForName, inheritedNameMemory) {
|
|
289
|
+
const regExpWithReplacedVariables = replaceNameVariables(regExpString, inheritedNameMemory);
|
|
290
|
+
const regExp = new RegExp(regExpWithReplacedVariables, 'g');
|
|
291
|
+
return getAllPatternMatches(regExp, searchText, (matchArray) => {
|
|
292
|
+
if (matchArray.length >= capturingGroupIndexForName) {
|
|
293
|
+
const name = matchArray[capturingGroupIndexForName];
|
|
294
|
+
common_1.Logger.log(`matched name '${name}' from regexp '${regExpString}'`);
|
|
295
|
+
const nameMemory = new NameMemory(inheritedNameMemory);
|
|
296
|
+
nameMemory.saveName(variableForName, name);
|
|
297
|
+
return new MatchedNode(name, nameMemory);
|
|
298
|
+
}
|
|
299
|
+
return null;
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
function getAllPatternMatches(pattern, content, matchTransformer) {
|
|
303
|
+
const allMatches = [];
|
|
304
|
+
let matches = pattern.exec(content);
|
|
305
|
+
while (matches !== null) {
|
|
306
|
+
const capturedValue = matchTransformer(matches);
|
|
307
|
+
if (capturedValue) {
|
|
308
|
+
allMatches.push(capturedValue);
|
|
309
|
+
}
|
|
310
|
+
matches = pattern.exec(content);
|
|
311
|
+
}
|
|
312
|
+
return allMatches;
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=PatternAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternAnalyzer.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.ts"],"names":[],"mappings":"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"}
|
package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ConfigService } from '../../../config/Config.service';
|
|
2
|
+
import { System } from '../../../model/ms';
|
|
3
|
+
import { SystemPattern } from './model';
|
|
4
|
+
export { SystemPattern, NodePattern, EdgePattern, NamePattern, SearchTextLocation } from './model';
|
|
5
|
+
/**
|
|
6
|
+
* The PatternAnalyzer allows to derive a system from source code patterns defined by regular expressions.
|
|
7
|
+
*/
|
|
8
|
+
export declare class PatternAnalyzerService {
|
|
9
|
+
private readonly config;
|
|
10
|
+
private readonly patternAnalyzer;
|
|
11
|
+
private currentPattern;
|
|
12
|
+
constructor(config: ConfigService);
|
|
13
|
+
getSystem(): Promise<System>;
|
|
14
|
+
updateSystemPattern(pattern: SystemPattern): void;
|
|
15
|
+
transform(system: System, systemPattern: SystemPattern): Promise<System>;
|
|
16
|
+
}
|
package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PatternAnalyzerService = exports.SearchTextLocation = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const Config_service_1 = require("../../../config/Config.service");
|
|
15
|
+
const ms_1 = require("../../../model/ms");
|
|
16
|
+
var model_1 = require("./model");
|
|
17
|
+
Object.defineProperty(exports, "SearchTextLocation", { enumerable: true, get: function () { return model_1.SearchTextLocation; } });
|
|
18
|
+
const PatternAnalyzer_1 = require("./PatternAnalyzer");
|
|
19
|
+
/**
|
|
20
|
+
* The PatternAnalyzer allows to derive a system from source code patterns defined by regular expressions.
|
|
21
|
+
*/
|
|
22
|
+
let PatternAnalyzerService = class PatternAnalyzerService {
|
|
23
|
+
constructor(config) {
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.patternAnalyzer = new PatternAnalyzer_1.PatternAnalyzer(this.config.getSourceFolder());
|
|
26
|
+
this.currentPattern = {
|
|
27
|
+
nodePatterns: [],
|
|
28
|
+
edgePatterns: []
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async getSystem() {
|
|
32
|
+
return this.transform(new ms_1.System(''), this.currentPattern);
|
|
33
|
+
}
|
|
34
|
+
updateSystemPattern(pattern) {
|
|
35
|
+
common_1.Logger.log('updated system pattern:\n' + JSON.stringify(pattern, null, 2));
|
|
36
|
+
this.currentPattern = pattern;
|
|
37
|
+
}
|
|
38
|
+
async transform(system, systemPattern) {
|
|
39
|
+
return this.patternAnalyzer.transform(system, systemPattern);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
PatternAnalyzerService = __decorate([
|
|
43
|
+
(0, common_1.Injectable)(),
|
|
44
|
+
__metadata("design:paramtypes", [Config_service_1.ConfigService])
|
|
45
|
+
], PatternAnalyzerService);
|
|
46
|
+
exports.PatternAnalyzerService = PatternAnalyzerService;
|
|
47
|
+
//# sourceMappingURL=PatternAnalyzer.service.js.map
|
package/build/src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternAnalyzer.service.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/experimental/code-pattern/PatternAnalyzer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmD;AAEnD,mEAA8D;AAC9D,0CAA0C;AAQ1C,iCAMgB;AADd,2GAAA,kBAAkB,OAAA;AAGpB,uDAAmD;AAEnD;;GAEG;AAEH,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAIjC,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,cAAc,GAAG;YACpB,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,WAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5D,CAAC;IAEM,mBAAmB,CAAC,OAAsB;QAC/C,eAAM,CAAC,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1E,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;IAC/B,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,MAAc,EACd,aAA4B;QAE5B,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC9D,CAAC;CACF,CAAA;AA3BY,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAK0B,8BAAa;GAJvC,sBAAsB,CA2BlC;AA3BY,wDAAsB"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-model.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/experimental/code-pattern/behavior-model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A system pattern defines patterns from which nodes and edges are derived.
|
|
3
|
+
* special variables allowed in all regExp attributes:
|
|
4
|
+
* - $sourceRoot holds the location of the configured source folder
|
|
5
|
+
*/
|
|
6
|
+
export declare type SystemPattern = {
|
|
7
|
+
nodePatterns: NodePattern[];
|
|
8
|
+
edgePatterns: EdgePattern[];
|
|
9
|
+
includedFileEndings?: string[];
|
|
10
|
+
excludedFolders?: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare type NodePattern = NamePattern & {
|
|
13
|
+
/**
|
|
14
|
+
* a name which describes this pattern.
|
|
15
|
+
* the name is used in logs and in system model metadata.
|
|
16
|
+
*/
|
|
17
|
+
name?: string;
|
|
18
|
+
/**
|
|
19
|
+
* the class name of the node to create. this class must exist in model/ms.ts
|
|
20
|
+
* @see ../model/ms.ts
|
|
21
|
+
*/
|
|
22
|
+
nodeType: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* defines a pattern by a regular expression with a capturing group from which a name is derived.
|
|
26
|
+
*/
|
|
27
|
+
export declare type NamePattern = {
|
|
28
|
+
/**
|
|
29
|
+
* location of the search text that is used for matching the regular expression.
|
|
30
|
+
*/
|
|
31
|
+
searchTextLocation: SearchTextLocation;
|
|
32
|
+
/**
|
|
33
|
+
* a JavaScript regular expression that defines the pattern to be matched.
|
|
34
|
+
* the expression must define at least one capturing group from which an intermediate name is derived.
|
|
35
|
+
* this name can be referenced in further name resolutions.
|
|
36
|
+
*/
|
|
37
|
+
regExp: string;
|
|
38
|
+
/**
|
|
39
|
+
* the index of the capturing group to derive the name from.
|
|
40
|
+
*/
|
|
41
|
+
capturingGroupIndexForName: number;
|
|
42
|
+
/**
|
|
43
|
+
* name of a variable which can be used in regular expressions of upcoming name resolutions in order
|
|
44
|
+
* to reference the captured name
|
|
45
|
+
*/
|
|
46
|
+
variableForName?: string;
|
|
47
|
+
/**
|
|
48
|
+
* a name resolution translates a name that represents a variable to its value.
|
|
49
|
+
* the value is discovered by another regular expression applied to the current file.
|
|
50
|
+
*
|
|
51
|
+
* in this case, the provided regular expression defines a pattern from which
|
|
52
|
+
* the name can be resolved.
|
|
53
|
+
*
|
|
54
|
+
* special variables allowed:
|
|
55
|
+
* - $name can be used to refer to the node name discovered before
|
|
56
|
+
* - additional variables are available for names matched in regular expressions before
|
|
57
|
+
*/
|
|
58
|
+
nameResolutionPattern?: NamePattern;
|
|
59
|
+
};
|
|
60
|
+
export declare enum SearchTextLocation {
|
|
61
|
+
/**
|
|
62
|
+
* absolute path of the source code file under analysis
|
|
63
|
+
*/
|
|
64
|
+
FILE_PATH = 0,
|
|
65
|
+
/**
|
|
66
|
+
* content of the source code file under analysis
|
|
67
|
+
*/
|
|
68
|
+
FILE_CONTENT = 1,
|
|
69
|
+
/**
|
|
70
|
+
* the path of any file in the source code folder
|
|
71
|
+
*/
|
|
72
|
+
ANY_FILE_PATH = 2,
|
|
73
|
+
/**
|
|
74
|
+
* the content of any file in the source code folder
|
|
75
|
+
*/
|
|
76
|
+
ANY_FILE_CONTENT = 3
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* defines patterns of source and target nodes from which the nodes and edges
|
|
80
|
+
* connecting them are derived. the source node pattern must match first.
|
|
81
|
+
* next, the target node pattern is matched for each derived source node.
|
|
82
|
+
*/
|
|
83
|
+
export declare type EdgePattern = {
|
|
84
|
+
sourceNodePattern: NodePattern;
|
|
85
|
+
targetNodePattern: NodePattern;
|
|
86
|
+
/**
|
|
87
|
+
* the class name of the edge to create. this class must exist in model/ms.ts
|
|
88
|
+
* @see ../model/ms.ts
|
|
89
|
+
*/
|
|
90
|
+
edgeType: string;
|
|
91
|
+
/**
|
|
92
|
+
* a name which describes this pattern.
|
|
93
|
+
* the name is used in logs and in system model metadata.
|
|
94
|
+
*/
|
|
95
|
+
name?: string;
|
|
96
|
+
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchTextLocation = void 0;
|
|
3
4
|
var SearchTextLocation;
|
|
4
5
|
(function (SearchTextLocation) {
|
|
5
6
|
/**
|
|
@@ -10,5 +11,13 @@ var SearchTextLocation;
|
|
|
10
11
|
* content of the source code file under analysis
|
|
11
12
|
*/
|
|
12
13
|
SearchTextLocation[SearchTextLocation["FILE_CONTENT"] = 1] = "FILE_CONTENT";
|
|
14
|
+
/**
|
|
15
|
+
* the path of any file in the source code folder
|
|
16
|
+
*/
|
|
17
|
+
SearchTextLocation[SearchTextLocation["ANY_FILE_PATH"] = 2] = "ANY_FILE_PATH";
|
|
18
|
+
/**
|
|
19
|
+
* the content of any file in the source code folder
|
|
20
|
+
*/
|
|
21
|
+
SearchTextLocation[SearchTextLocation["ANY_FILE_CONTENT"] = 3] = "ANY_FILE_CONTENT";
|
|
13
22
|
})(SearchTextLocation = exports.SearchTextLocation || (exports.SearchTextLocation = {}));
|
|
14
23
|
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../src/system-element-extractors/experimental/code-pattern/model.ts"],"names":[],"mappings":";;;AA8DA,IAAY,kBAiBX;AAjBD,WAAY,kBAAkB;IAC5B;;OAEG;IACH,qEAAS,CAAA;IACT;;OAEG;IACH,2EAAY,CAAA;IACZ;;OAEG;IACH,6EAAa,CAAA;IACb;;OAEG;IACH,mFAAgB,CAAA;AAClB,CAAC,EAjBW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAiB7B"}
|
|
File without changes
|
package/build/src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-dsl.js","sourceRoot":"","sources":["../../../../../../src/system-element-extractors/experimental/code-pattern/prototyping/pattern-dsl.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;CAUf,CAAA;AACD,MAAM,EAAE,GAAG,MAAM,CAAA;AACjB,MAAM,EAAE,GAAG,KAAK,CAAA;AAChB,MAAM,QAAQ,GAAG,MAAM,CAAA;AAEvB,MAAM,OAAO,GAAG,kDAAkD,CAAA;AAClE,IAAI,EAAE,GAAG,OAAO,CAAA;AAChB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAClC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC7B,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAClC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACnC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAE5B,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAA;AACxB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACnB,OAAO,CAAC,GAAG,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,CAAC,CAAA"}
|
package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.d.ts
ADDED
|
File without changes
|
package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const content = `
|
|
3
|
+
env:
|
|
4
|
+
# Kafka Topics
|
|
5
|
+
- name: SOME_KAFKA_TOPIC
|
|
6
|
+
value: actual_topic_name
|
|
7
|
+
- name: XX
|
|
8
|
+
value: 1
|
|
9
|
+
`;
|
|
10
|
+
const ws = '\\s*';
|
|
11
|
+
const id = '\\w';
|
|
12
|
+
const anything = '[^]*';
|
|
13
|
+
const r = new RegExp(`name:\\s*SOME_KAFKA_TOPIC\\s*value:\\s*(\\w+)`);
|
|
14
|
+
const result = content.match(r);
|
|
15
|
+
console.log(result);
|
|
16
|
+
console.log(result === null || result === void 0 ? void 0 : result[1]);
|
|
17
|
+
})();
|
|
18
|
+
//# sourceMappingURL=regexp-test.js.map
|
package/build/src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regexp-test.js","sourceRoot":"","sources":["../../../../../../src/system-element-extractors/experimental/code-pattern/prototyping/regexp-test.ts"],"names":[],"mappings":"AAAA,CAAC,GAAG,EAAE;IACJ,MAAM,OAAO,GAAG;;;;;;;CAOjB,CAAA;IACC,MAAM,EAAE,GAAG,MAAM,CAAA;IACjB,MAAM,EAAE,GAAG,KAAK,CAAA;IAChB,MAAM,QAAQ,GAAG,MAAM,CAAA;IAEvB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,+CAA+C,CAAC,CAAA;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,CAAC,CAAA;AAC1B,CAAC,CAAC,EAAE,CAAA"}
|
|
File without changes
|
|
@@ -6,26 +6,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.JavaAnnotationAnalyzer = exports.JavaModule = void 0;
|
|
9
10
|
const common_1 = require("@nestjs/common");
|
|
10
|
-
const Config_module_1 = require("
|
|
11
|
-
const SourceCodeAnalysis_module_1 = require("../source-code-analysis/SourceCodeAnalysis.module");
|
|
11
|
+
const Config_module_1 = require("../../config/Config.module");
|
|
12
12
|
const JavaAnnotationAnalyzer_1 = require("./JavaAnnotationAnalyzer");
|
|
13
|
-
exports
|
|
13
|
+
Object.defineProperty(exports, "JavaAnnotationAnalyzer", { enumerable: true, get: function () { return JavaAnnotationAnalyzer_1.JavaAnnotationAnalyzer; } });
|
|
14
|
+
const Git_module_1 = require("../../git/Git.module");
|
|
14
15
|
let JavaModule = class JavaModule {
|
|
15
16
|
};
|
|
16
17
|
JavaModule = __decorate([
|
|
17
|
-
common_1.Module({
|
|
18
|
-
imports: [
|
|
19
|
-
Config_module_1.ConfigModule,
|
|
20
|
-
SourceCodeAnalysis_module_1.SourceCodeAnalysisModule
|
|
21
|
-
],
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
imports: [Config_module_1.ConfigModule, Git_module_1.GitModule],
|
|
22
20
|
controllers: [],
|
|
23
|
-
providers: [
|
|
24
|
-
|
|
25
|
-
],
|
|
26
|
-
exports: [
|
|
27
|
-
JavaAnnotationAnalyzer_1.JavaAnnotationAnalyzer
|
|
28
|
-
]
|
|
21
|
+
providers: [JavaAnnotationAnalyzer_1.JavaAnnotationAnalyzer],
|
|
22
|
+
exports: [JavaAnnotationAnalyzer_1.JavaAnnotationAnalyzer]
|
|
29
23
|
})
|
|
30
24
|
], JavaModule);
|
|
31
25
|
exports.JavaModule = JavaModule;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Java.module.js","sourceRoot":"","sources":["../../../../src/system-element-extractors/java/Java.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AAEvC,8DAAyD;AAEzD,qEAGiC;AAWZ,uGAbnB,+CAAsB,OAamB;AAV3C,qDAAgD;AAQhD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,UAAU;IANf,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,sBAAS,CAAC;QAClC,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,CAAC,+CAAsB,CAAC;QACnC,OAAO,EAAE,CAAC,+CAAsB,CAAC;KAClC,CAAC;GACI,UAAU,CAAG;AAEV,gCAAU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConfigService } from '
|
|
2
|
-
import { System } from '
|
|
1
|
+
import { ConfigService } from '../../config/Config.service';
|
|
2
|
+
import { System } from '../../model/ms';
|
|
3
3
|
export declare class JavaAnnotationAnalyzer {
|
|
4
4
|
private readonly config;
|
|
5
5
|
private readonly logger;
|