cdk-dia 0.0.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -4
  3. package/{bin → dist/bin}/cli.d.ts +0 -0
  4. package/{bin → dist/bin}/cli.js +18 -16
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/index.d.ts +4 -0
  7. package/dist/index.js +17 -0
  8. package/dist/index.js.map +1 -0
  9. package/{src → dist/src}/cdk/cdk-tree.d.ts +10 -0
  10. package/{src → dist/src}/cdk/cdk-tree.js +21 -1
  11. package/dist/src/cdk/cdk-tree.js.map +1 -0
  12. package/{src → dist/src}/cdk/construct-decorator.d.ts +0 -0
  13. package/{src → dist/src}/cdk/construct-decorator.js +0 -0
  14. package/{src → dist/src}/cdk/construct-decorator.js.map +0 -0
  15. package/{src → dist/src}/cdk/index.d.ts +0 -0
  16. package/{src → dist/src}/cdk/index.js +0 -0
  17. package/{src → dist/src}/cdk/index.js.map +0 -0
  18. package/{src → dist/src}/cdk/tree-json-loader.d.ts +0 -0
  19. package/{src → dist/src}/cdk/tree-json-loader.js +0 -0
  20. package/{src → dist/src}/cdk/tree-json-loader.js.map +0 -0
  21. package/dist/src/cdk-dia.d.ts +4 -0
  22. package/{src → dist/src}/cdk-dia.js +7 -5
  23. package/dist/src/cdk-dia.js.map +1 -0
  24. package/{src → dist/src}/diagram/aws/aws-diagram-generator.d.ts +7 -6
  25. package/{src → dist/src}/diagram/aws/aws-diagram-generator.js +72 -52
  26. package/dist/src/diagram/aws/aws-diagram-generator.js.map +1 -0
  27. package/{src → dist/src}/diagram/aws/aws-edge-resolver.d.ts +0 -0
  28. package/{src → dist/src}/diagram/aws/aws-edge-resolver.js +2 -1
  29. package/dist/src/diagram/aws/aws-edge-resolver.js.map +1 -0
  30. package/{src → dist/src}/diagram/aws/aws-icon-supplier.d.ts +0 -0
  31. package/{src → dist/src}/diagram/aws/aws-icon-supplier.js +0 -0
  32. package/{src → dist/src}/diagram/aws/aws-icon-supplier.js.map +0 -0
  33. package/{src → dist/src}/diagram/aws/awsResouceIconMatches.json +21 -4
  34. package/{src → dist/src}/diagram/component/component.d.ts +3 -1
  35. package/{src → dist/src}/diagram/component/component.js +9 -0
  36. package/dist/src/diagram/component/component.js.map +1 -0
  37. package/{src → dist/src}/diagram/component/customizable-attribute.d.ts +0 -0
  38. package/{src → dist/src}/diagram/component/customizable-attribute.js +0 -0
  39. package/{src → dist/src}/diagram/component/customizable-attribute.js.map +0 -0
  40. package/{src → dist/src}/diagram/component/diagram-component.d.ts +0 -0
  41. package/{src → dist/src}/diagram/component/diagram-component.js +0 -0
  42. package/{src → dist/src}/diagram/component/diagram-component.js.map +0 -0
  43. package/{src → dist/src}/diagram/component/icon.d.ts +0 -0
  44. package/{src → dist/src}/diagram/component/icon.js +0 -0
  45. package/{src → dist/src}/diagram/component/icon.js.map +0 -0
  46. package/{src → dist/src}/diagram/component/link.d.ts +0 -0
  47. package/{src → dist/src}/diagram/component/link.js +0 -0
  48. package/{src → dist/src}/diagram/component/link.js.map +0 -0
  49. package/{src → dist/src}/diagram/component/root-component.d.ts +0 -0
  50. package/{src → dist/src}/diagram/component/root-component.js +0 -0
  51. package/{src → dist/src}/diagram/component/root-component.js.map +0 -0
  52. package/{src → dist/src}/diagram/component-links.d.ts +0 -0
  53. package/{src → dist/src}/diagram/component-links.js +0 -0
  54. package/{src → dist/src}/diagram/component-links.js.map +0 -0
  55. package/{src → dist/src}/diagram/diagram.d.ts +0 -0
  56. package/{src → dist/src}/diagram/diagram.js +0 -0
  57. package/{src → dist/src}/diagram/diagram.js.map +0 -0
  58. package/{src → dist/src}/diagram/index.d.ts +1 -0
  59. package/{src → dist/src}/diagram/index.js +1 -0
  60. package/{src → dist/src}/diagram/index.js.map +1 -1
  61. package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.d.ts +0 -0
  62. package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.js +0 -0
  63. package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.js.map +0 -0
  64. package/dist/src/diagram/tests/generator.test.d.ts +3 -0
  65. package/{src → dist/src}/diagram/tests/generator.test.js +52 -5
  66. package/dist/src/diagram/tests/generator.test.js.map +1 -0
  67. package/dist/src/render/diagram-renderer.d.ts +15 -0
  68. package/{src/graphviz/rendering-error.js → dist/src/render/diagram-renderer.js} +5 -2
  69. package/dist/src/render/diagram-renderer.js.map +1 -0
  70. package/dist/src/render/graphviz/GraphvizGenerator.d.ts +11 -0
  71. package/{src/graphviz/generator.js → dist/src/render/graphviz/GraphvizGenerator.js} +18 -95
  72. package/dist/src/render/graphviz/GraphvizGenerator.js.map +1 -0
  73. package/dist/src/render/graphviz/graphviz.d.ts +20 -0
  74. package/dist/src/render/graphviz/graphviz.js +115 -0
  75. package/dist/src/render/graphviz/graphviz.js.map +1 -0
  76. package/dist/src/render/graphviz/index.d.ts +1 -0
  77. package/{src → dist/src/render}/graphviz/index.js +1 -2
  78. package/dist/src/render/graphviz/index.js.map +1 -0
  79. package/dist/src/render/graphviz/styling.d.ts +9 -0
  80. package/dist/src/render/graphviz/styling.js +79 -0
  81. package/dist/src/render/graphviz/styling.js.map +1 -0
  82. package/{src → dist/src/render}/graphviz/tests/generator.test.d.ts +0 -0
  83. package/{src → dist/src/render}/graphviz/tests/generator.test.js +7 -7
  84. package/dist/src/render/graphviz/tests/generator.test.js.map +1 -0
  85. package/dist/src/render/index.d.ts +1 -0
  86. package/dist/src/render/index.js +14 -0
  87. package/dist/src/render/index.js.map +1 -0
  88. package/{src → dist/src}/test-fixtures/testCases.d.ts +0 -0
  89. package/{src → dist/src}/test-fixtures/testCases.js +18 -0
  90. package/{src → dist/src}/test-fixtures/testCases.js.map +1 -1
  91. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C6g-Instance_48_Dark.png +0 -0
  92. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3-Instance_48_Dark.png +0 -0
  93. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3en-Instance_48_Dark.png +0 -0
  94. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G4ad-Instance_48_Dark.png +0 -0
  95. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M6g-Instance_48_Dark.png +0 -0
  96. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Mac-Instance_48_Dark.png +0 -0
  97. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3dn-Instance_48_Dark.png +0 -0
  98. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4-Instance_48_Dark.png +0 -0
  99. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4d-Instance_48_Dark.png +0 -0
  100. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R6g-Instance_48_Dark.png +0 -0
  101. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3a-Instance_48_Dark.png +0 -0
  102. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T4g-Instance_48_Dark.png +0 -0
  103. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Trainium-Instance_48_Dark.png +0 -0
  104. package/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Cognito_64.png +0 -0
  105. package/icons/aws/cloudwatch_metric_filter.png +0 -0
  106. package/icons/aws/security_group.png +0 -0
  107. package/package.json +11 -6
  108. package/bin/cli.js.map +0 -1
  109. package/src/cdk/cdk-tree.js.map +0 -1
  110. package/src/cdk-dia.d.ts +0 -3
  111. package/src/cdk-dia.js.map +0 -1
  112. package/src/diagram/aws/aws-diagram-generator.js.map +0 -1
  113. package/src/diagram/aws/aws-edge-resolver.js.map +0 -1
  114. package/src/diagram/component/component.js.map +0 -1
  115. package/src/diagram/tests/generator.test.d.ts +0 -3
  116. package/src/diagram/tests/generator.test.js.map +0 -1
  117. package/src/graphviz/generator.d.ts +0 -15
  118. package/src/graphviz/generator.js.map +0 -1
  119. package/src/graphviz/index.d.ts +0 -2
  120. package/src/graphviz/index.js.map +0 -1
  121. package/src/graphviz/rendering-error.d.ts +0 -5
  122. package/src/graphviz/rendering-error.js.map +0 -1
  123. package/src/graphviz/styling.d.ts +0 -5
  124. package/src/graphviz/styling.js +0 -43
  125. package/src/graphviz/styling.js.map +0 -1
  126. package/src/graphviz/tests/generator.test.js.map +0 -1
@@ -71,20 +71,34 @@
71
71
  "C4": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C4-Instance_48_Dark.png",
72
72
  "C5": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5-Instance_48_Dark.png",
73
73
  "C5N": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5n-Instance_48_Dark.png",
74
+ "C5A": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5a-Instance_48_Dark.png",
75
+ "C5D": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5d-Instance_48_Dark.png",
76
+ "C5AD": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C5ad-Instance_48_Dark.png",
74
77
  "C6G": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C6g-Instance_48_Dark.png",
75
78
  "D2": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D2-Instance_48_Dark.png",
79
+ "D3": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3-Instance_48_Dark.png",
80
+ "D3EN": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3en-Instance_48_Dark.png",
76
81
  "DB": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_DB-Instance_48_Dark.png",
77
82
  "F1": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_F1-Instance_48_Dark.png",
78
83
  "G3": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G3-Instance_48_Dark.png",
84
+ "G4AD": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G4ad-Instance_48_Dark.png",
85
+ "G4DN": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G4dn-Instance_48_Dark.png",
79
86
  "H1": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_H1-Instance_48_Dark.png",
87
+ "I2": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_I2-Instance_48_Dark.png",
80
88
  "I3": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_I3-Instance_48_Dark.png",
89
+ "I3EN": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_I3en-Instance_48_Dark.png",
90
+ "INF1": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Inf1-Instance_48_Dark.png",
81
91
  "M4": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M4-Instance_48_Dark.png",
82
92
  "M5": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M5-Instance_48_Dark.png",
83
93
  "M5A": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M5a-Instance_48_Dark.png",
84
94
  "M5N": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M5n-Instance_48_Dark.png",
85
95
  "M6G": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M6g-Instance_48_Dark.png",
96
+ "MAC": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Mac-Instance_48_Dark.png",
86
97
  "P2": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P2-Instance_48_Dark.png",
87
98
  "P3": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3-Instance_48_Dark.png",
99
+ "P3DN": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3dn-Instance_48_Dark.png",
100
+ "P4": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4-Instance_48_Dark.png",
101
+ "P4D": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4d-Instance_48_Dark.png",
88
102
  "R4": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R4-Instance_48_Dark.png",
89
103
  "R5": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R5-Instance_48_Dark.png",
90
104
  "R5A": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R5a-Instance_48_Dark.png",
@@ -93,6 +107,8 @@
93
107
  "T2": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T2-Instance_48_Dark.png",
94
108
  "T3": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3-Instance_48_Dark.png",
95
109
  "T3A": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3a-Instance_48_Dark.png",
110
+ "T4G": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T4g-Instance_48_Dark.png",
111
+ "TRAINIUM": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Trainium-Instance_48_Dark.png",
96
112
  "X1": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_X1-Instance_48_Dark.png",
97
113
  "X1E": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_X1e-Instance_48_Dark.png",
98
114
  "Z1D": "icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Z1D-Instance_48_Dark.png"
@@ -228,7 +244,7 @@
228
244
  },
229
245
  {
230
246
  "resourceType": "AWS::EC2::SecurityGroup",
231
- "filePath": null
247
+ "filePath": "icons/aws/security_group.png"
232
248
  },
233
249
  {
234
250
  "resourceType": "AWS::EC2::TrafficMirrorFilterRule",
@@ -1226,6 +1242,7 @@
1226
1242
  },
1227
1243
  {
1228
1244
  "resourcePrefix": "AWS::Cognito",
1245
+ "genericFilePath": "icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Cognito_64.png",
1229
1246
  "specificResources": [
1230
1247
  {
1231
1248
  "resourceType": "AWS::Cognito::UserPoolRiskConfigurationAttachment",
@@ -2166,7 +2183,7 @@
2166
2183
  "specificResources": [
2167
2184
  {
2168
2185
  "resourceType": "AWS::Logs::MetricFilter",
2169
- "filePath": "icons/aws/Resource/Res_Management-Governance/Res_48_Dark/Res_Amazon-Cloudwatch_Logs_48_Dark_gen.png"
2186
+ "filePath": "icons/aws/cloudwatch_metric_filter.png"
2170
2187
  },
2171
2188
  {
2172
2189
  "resourceType": "AWS::Logs::SubscriptionFilter",
@@ -2178,11 +2195,11 @@
2178
2195
  },
2179
2196
  {
2180
2197
  "resourceType": "AWS::Logs::LogGroup",
2181
- "filePath": null
2198
+ "filePath": "icons/aws/Resource/Res_Management-Governance/Res_48_Dark/Res_Amazon-Cloudwatch_Logs_48_Dark_gen.png"
2182
2199
  },
2183
2200
  {
2184
2201
  "resourceType": "AWS::Logs::LogStream",
2185
- "filePath": null
2202
+ "filePath": "icons/aws/Resource/Res_Management-Governance/Res_48_Dark/Res_Amazon-Cloudwatch_Logs_48_Dark_gen.png"
2186
2203
  }
2187
2204
  ]
2188
2205
  },
@@ -5,6 +5,7 @@ import { RootComponent } from "./root-component";
5
5
  export declare type ComponentId = string;
6
6
  export declare enum ComponentTags {
7
7
  isCdkStack = "isCdkStack",
8
+ isCdkStage = "isCdkStage",
8
9
  collapssingOverride = "collapssingOverride"
9
10
  }
10
11
  export declare abstract class Component {
@@ -45,5 +46,6 @@ export declare abstract class Component {
45
46
  private subTreeReverseLinksRec;
46
47
  subTreeLinks(): Array<Link>;
47
48
  private subTreeLinksRec;
48
- treeAncestorWithTag(tagKey: ComponentTags, tagVal: string): any;
49
+ treeAncestorWithTag(tagKey: ComponentTags, tagVal: string): Component;
50
+ isAncestor(possibleAncestor: Component): boolean;
49
51
  }
@@ -26,6 +26,7 @@ const link_1 = require("./link");
26
26
  var ComponentTags;
27
27
  (function (ComponentTags) {
28
28
  ComponentTags["isCdkStack"] = "isCdkStack";
29
+ ComponentTags["isCdkStage"] = "isCdkStage";
29
30
  ComponentTags["collapssingOverride"] = "collapssingOverride";
30
31
  })(ComponentTags = exports.ComponentTags || (exports.ComponentTags = {}));
31
32
  class Component {
@@ -178,6 +179,14 @@ class Component {
178
179
  return this;
179
180
  return this.parent().treeAncestorWithTag(tagKey, tagVal);
180
181
  }
182
+ isAncestor(possibleAncestor) {
183
+ try {
184
+ return this.parent() == possibleAncestor || this.parent().isAncestor(possibleAncestor);
185
+ }
186
+ catch (e) {
187
+ return false;
188
+ }
189
+ }
181
190
  }
182
191
  exports.Component = Component;
183
192
  //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/diagram/component/component.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,6 @@
1
1
  export * from "./diagram";
2
2
  export * from "./component/component";
3
+ export * from "./component/customizable-attribute";
3
4
  export * from "./component/diagram-component";
4
5
  export * from "./component/root-component";
5
6
  export * from "./component/link";
@@ -12,6 +12,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./diagram"), exports);
14
14
  __exportStar(require("./component/component"), exports);
15
+ __exportStar(require("./component/customizable-attribute"), exports);
15
16
  __exportStar(require("./component/diagram-component"), exports);
16
17
  __exportStar(require("./component/root-component"), exports);
17
18
  __exportStar(require("./component/link"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/diagram/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,wDAAqC;AACrC,gEAA6C;AAC7C,6DAA0C;AAC1C,mDAAgC;AAChC,oDAAiC;AACjC,0DAAuC;AACvC,8DAA2C;AAC3C,0DAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/diagram/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,wDAAqC;AACrC,qEAAkD;AAClD,gEAA6C;AAC7C,6DAA0C;AAC1C,mDAAgC;AAChC,oDAAiC;AACjC,0DAAuC;AACvC,8DAA2C;AAC3C,0DAAuC"}
@@ -0,0 +1,3 @@
1
+ import * as diagrams from "..";
2
+ import { TestConf } from "../../test-fixtures/testCases";
3
+ export declare function givenDiagram(testConf: TestConf, includedStacks?: string[] | false): diagrams.Diagram;
@@ -39,11 +39,55 @@ describe("diagram JSON as expected", () => {
39
39
  });
40
40
  });
41
41
  });
42
+ describe("setting specific Stacks works as expected", () => {
43
+ const twoSimpleStacksTestCase = {
44
+ id: `collapsed`,
45
+ jsonTreeFile: "multiple-similar-stacks",
46
+ cdkTreePath: "src/test-fixtures/",
47
+ collapsed: true
48
+ };
49
+ it(`it only diagrams the "microservice1" stack`, () => {
50
+ const diagram = givenDiagram(twoSimpleStacksTestCase, ["microservice1"]);
51
+ const pathToSnap = path.resolve(process.cwd(), `./snapshots/settingSpecificStacks_only_microservice1.snapshot`);
52
+ expect(diagram.toSimpleObject()).toMatchSpecificSnapshot(pathToSnap);
53
+ });
54
+ it(`it only diagrams both "microservice1" and "microservice2" stacks`, () => {
55
+ const diagram = givenDiagram(twoSimpleStacksTestCase, ["microservice1", "microservice2"]);
56
+ const pathToSnap = path.resolve(process.cwd(), `./snapshots/settingSpecificStacks_both_microservices.snapshot`);
57
+ expect(diagram.toSimpleObject()).toMatchSpecificSnapshot(pathToSnap);
58
+ });
59
+ it(`when false set as includedStacks both "microservice1" and "microservice2" stacks are diagramed`, () => {
60
+ const diagram = givenDiagram(twoSimpleStacksTestCase, false);
61
+ const pathToSnap = path.resolve(process.cwd(), `./snapshots/settingSpecificStacks_both_microservices.snapshot`);
62
+ expect(diagram.toSimpleObject()).toMatchSpecificSnapshot(pathToSnap);
63
+ });
64
+ const pipelineNestedStacksTestCase = {
65
+ id: `non-collapsed`,
66
+ jsonTreeFile: "cdk_pipeline_with_stages_stacks_and_construct_infos",
67
+ cdkTreePath: "src/test-fixtures/",
68
+ collapsed: false
69
+ };
70
+ it(`use can use a path of a stack which is nested`, () => {
71
+ const diagram = givenDiagram(pipelineNestedStacksTestCase, ["pipelinestack/prod/database"]);
72
+ const pathToSnap = path.resolve(process.cwd(), `./snapshots/settingSpecificStacks_nested_stack_path.snapshot`);
73
+ expect(diagram.toSimpleObject()).toMatchSpecificSnapshot(pathToSnap);
74
+ });
75
+ it(`use can use a path of a stack which is nested`, () => {
76
+ const diagram = givenDiagram(pipelineNestedStacksTestCase, ["pipelinestack"]);
77
+ const pathToSnap = path.resolve(process.cwd(), `./snapshots/settingSpecificStacks_nested_stack_all.snapshot`);
78
+ expect(diagram.toSimpleObject()).toMatchSpecificSnapshot(pathToSnap);
79
+ });
80
+ it(`use can use a path of a stack which is nested`, () => {
81
+ const diagram = givenDiagram(pipelineNestedStacksTestCase, false);
82
+ const pathToSnap = path.resolve(process.cwd(), `./snapshots/settingSpecificStacks_nested_stack_all.snapshot`);
83
+ expect(diagram.toSimpleObject()).toMatchSpecificSnapshot(pathToSnap);
84
+ });
85
+ });
42
86
  describe("All Components linked from the Tree are also part of the tree", () => {
43
87
  testCases_1.testCases.forEach(test => {
44
88
  it(`${test.cdkTreePath} - ${test.jsonTreeFile} - ${test.id}`, () => {
45
89
  const diagram = givenDiagram(test);
46
- expect(testAllLinksInDiagram(diagram.root, diagram.root)).toBeUndefined();
90
+ expect(testAllLinksInDiagram(diagram.root, diagram.root)).toBeTruthy();
47
91
  });
48
92
  });
49
93
  function testAllLinksInDiagram(root, node) {
@@ -59,13 +103,14 @@ describe("All Components linked from the Tree are also part of the tree", () =>
59
103
  node.subComponents().forEach(it => {
60
104
  testAllLinksInDiagram(root, it);
61
105
  });
106
+ return true;
62
107
  }
63
108
  });
64
109
  describe("All Sub-Components are also part of the tree", () => {
65
110
  testCases_1.testCases.forEach(test => {
66
111
  it(`${test.cdkTreePath} - ${test.jsonTreeFile} - ${test.id}`, () => {
67
112
  const diagram = givenDiagram(test);
68
- expect(testAllSubComponentsInDiagram(diagram.root, diagram.root)).toBeUndefined();
113
+ expect(testAllSubComponentsInDiagram(diagram.root, diagram.root)).toBeTruthy();
69
114
  });
70
115
  });
71
116
  function testAllSubComponentsInDiagram(node, root) {
@@ -78,13 +123,14 @@ describe("All Sub-Components are also part of the tree", () => {
78
123
  node.subComponents().forEach(it => {
79
124
  testAllSubComponentsInDiagram(it, root);
80
125
  });
126
+ return true;
81
127
  }
82
128
  });
83
129
  describe("All Links are bi-directional", () => {
84
130
  testCases_1.testCases.forEach(test => {
85
131
  it(`${test.cdkTreePath} - ${test.jsonTreeFile} - ${test.id}`, () => {
86
132
  const diagram = givenDiagram(test);
87
- expect(testLinks(diagram.root)).toBeUndefined();
133
+ expect(testLinks(diagram.root)).toBeTruthy();
88
134
  });
89
135
  });
90
136
  function testLinks(node) {
@@ -97,12 +143,13 @@ describe("All Links are bi-directional", () => {
97
143
  node.subComponents().forEach(it => {
98
144
  testLinks(it);
99
145
  });
146
+ return true;
100
147
  }
101
148
  });
102
- function givenDiagram(testConf) {
149
+ function givenDiagram(testConf, includedStacks = false) {
103
150
  const cdkTree = cdk.TreeJsonLoader.load(`${testConf.cdkTreePath}${testConf.jsonTreeFile}.json`);
104
151
  const generator = new diagrams.AwsDiagramGenerator(new __1.AwsEdgeResolver(), new aws_icon_supplier_1.AwsIconSupplier(""));
105
- return generator.generate(cdkTree, testConf.collapsed);
152
+ return generator.generate(cdkTree, testConf.collapsed, includedStacks);
106
153
  }
107
154
  exports.givenDiagram = givenDiagram;
108
155
  //# sourceMappingURL=generator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.test.js","sourceRoot":"","sources":["../../../../src/diagram/tests/generator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import * as diagram from "../diagram/index";
2
+ export interface DiagramRenderer {
3
+ render(props: RenderingProps): Promise<RenderingOutput>;
4
+ }
5
+ export declare abstract class RenderingProps {
6
+ diagram: diagram.Diagram;
7
+ }
8
+ export interface RenderingOutput {
9
+ userOutput(): any;
10
+ }
11
+ export declare class RenderingError extends Error {
12
+ readonly debugInfo: string[];
13
+ readonly fixTips: string[];
14
+ constructor(message: string, debugInfo?: string[], fixTips?: string[]);
15
+ }
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderingError = void 0;
3
+ exports.RenderingError = exports.RenderingProps = void 0;
4
+ class RenderingProps {
5
+ }
6
+ exports.RenderingProps = RenderingProps;
4
7
  class RenderingError extends Error {
5
8
  constructor(message, debugInfo = [], fixTips = []) {
6
9
  super(message);
@@ -11,4 +14,4 @@ class RenderingError extends Error {
11
14
  }
12
15
  }
13
16
  exports.RenderingError = RenderingError;
14
- //# sourceMappingURL=rendering-error.js.map
17
+ //# sourceMappingURL=diagram-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-renderer.js","sourceRoot":"","sources":["../../../src/render/diagram-renderer.ts"],"names":[],"mappings":";;;AAMA,MAAsB,cAAc;CAEnC;AAFD,wCAEC;AAKD,MAAa,cAAe,SAAQ,KAAK;IAKrC,YAAY,OAAe,EAAE,YAAsB,EAAE,EAAE,UAAoB,EAAE;QACzE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;QAEhC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;CACJ;AAdD,wCAcC"}
@@ -0,0 +1,11 @@
1
+ import { Digraph } from "ts-graphviz";
2
+ import * as diagram from "../../diagram";
3
+ export declare class GraphvizGenerator {
4
+ generate(dia: diagram.Diagram): Digraph;
5
+ private breakLineEveryMaxChars;
6
+ private wordsToLabel;
7
+ private diagramGraph;
8
+ private addToGraph;
9
+ private addEdges;
10
+ private findFirstArbitraryClusterDirectLeaf;
11
+ }
@@ -22,52 +22,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.Generator = void 0;
26
- const fs = __importStar(require("fs"));
27
- const util = __importStar(require("util"));
25
+ exports.GraphvizGenerator = void 0;
26
+ const ts_graphviz_1 = require("ts-graphviz");
27
+ const styling = __importStar(require("./styling"));
28
28
  const _ = __importStar(require("lodash"));
29
- const hasbin = __importStar(require("hasbin"));
30
29
  const word_wrap_1 = __importDefault(require("word-wrap"));
31
- const child_process_1 = __importDefault(require("child_process"));
32
- const ts_graphviz_1 = require("ts-graphviz");
33
- const styling_1 = require("./styling");
34
- const icon_1 = require("../diagram/component/icon");
35
- const rendering_error_1 = require("./rendering-error");
36
- const exec = util.promisify(child_process_1.default.exec);
37
- class Generator {
38
- constructor(dia) {
39
- this.rootGraph = ts_graphviz_1.digraph('Diagram');
40
- styling_1.setBaseGraphAttributes(this.rootGraph);
41
- this.diagramGraph(dia);
42
- }
43
- async generatePng(path) {
44
- const dotFileName = this.generateDot(path);
45
- try {
46
- await this.dotToPng(dotFileName, path);
47
- }
48
- catch (e) {
49
- if (!hasbin.sync(Generator.graphvizBinary)) {
50
- throw new rendering_error_1.RenderingError("Graphvig '" + Generator.graphvizBinary + "' binary does not exist locally or in PATH", [], [
51
- "Install Graphviz and make sure it is available in PATH",
52
- "Using brew: 'brew install graphviz'"
53
- ]);
54
- }
55
- else {
56
- if (e instanceof rendering_error_1.RenderingError) {
57
- throw e;
58
- }
59
- else {
60
- throw new rendering_error_1.RenderingError(e.message);
61
- }
62
- }
63
- }
64
- return path;
65
- }
66
- generateDot(path) {
67
- const data = ts_graphviz_1.toDot(this.rootGraph);
68
- const fullPath = `${path}.dot`;
69
- fs.writeFileSync(fullPath, data);
70
- return fullPath;
30
+ class GraphvizGenerator {
31
+ generate(dia) {
32
+ const rootGraph = ts_graphviz_1.digraph('Diagram');
33
+ styling.applyBaseGraphStyling(rootGraph);
34
+ this.diagramGraph(rootGraph, dia);
35
+ return rootGraph;
71
36
  }
72
37
  breakLineEveryMaxChars(label, charsPerLine) {
73
38
  let fullWords;
@@ -119,50 +84,27 @@ class Generator {
119
84
  });
120
85
  return words;
121
86
  }
122
- diagramGraph(d) {
123
- const root = this.rootGraph.createSubgraph(d.root.id);
124
- this.addToGraph(root, d.root);
125
- this.addEdges(this.rootGraph, d.root);
87
+ diagramGraph(rootGraph, diagram1) {
88
+ const root = rootGraph.createSubgraph(diagram1.root.id);
89
+ this.addToGraph(root, diagram1.root);
90
+ this.addEdges(rootGraph, diagram1.root);
126
91
  }
127
92
  addToGraph(g, node) {
128
- const baseImgSize = 2;
129
93
  const labelFontSize = 12;
130
94
  const charsPerLine = labelFontSize * 1.8;
131
95
  if (node.subComponents().length > 0) {
132
96
  const subGraph = g.createSubgraph(`cluster-SubGraph.${node.label}`);
133
97
  subGraph.attributes.graph.set("label", node.label.join(" "));
134
- subGraph.attributes.graph.set("labelloc", "b");
135
- subGraph.attributes.graph.set("labeljust", "l");
136
- subGraph.attributes.graph.set("margin", "10");
137
- subGraph.attributes.graph.set("fontsize", "16");
138
- subGraph.attributes.graph.set("penwidth", "2");
139
- subGraph.attributes.graph.set("pencolor", "#888888");
140
- subGraph.attributes.graph.set("style", "filled,rounded");
141
- subGraph.attributes.graph.set("fillcolor", styling_1.ColorPalette.byInd(node.depth()));
98
+ styling.applyClusterStyling(subGraph, node.depth());
142
99
  node.subComponents().forEach(sub => this.addToGraph(subGraph, sub));
143
100
  }
144
101
  else {
145
102
  const gnode = g.createNode(node.id);
146
103
  const labelLines = this.breakLineEveryMaxChars(node.label, charsPerLine);
147
104
  gnode.attributes.set("label", labelLines.join("\n"));
148
- gnode.attributes.set("fontsize", labelFontSize);
105
+ styling.applyBasicNodeStyling(gnode, labelFontSize);
149
106
  if (node.icon != null && node.icon.path != null) {
150
- gnode.attributes.set("image", node.icon.path);
151
- gnode.attributes.set("imagescale", "true");
152
- gnode.attributes.set("imagepos", "tc");
153
- gnode.attributes.set("penwidth", "0");
154
- gnode.attributes.set("shape", "node");
155
- gnode.attributes.set("fixedsize", "true");
156
- gnode.attributes.set("labelloc", "b");
157
- if (node.icon.format == icon_1.ComponentIconFormat.NORMAL) {
158
- gnode.attributes.set("width", baseImgSize);
159
- gnode.attributes.set("height", baseImgSize + 0.05 + (labelLines.length * 0.018 * labelFontSize));
160
- }
161
- else {
162
- const ratio = 0.60;
163
- gnode.attributes.set("width", baseImgSize * ratio);
164
- gnode.attributes.set("height", (baseImgSize * ratio) + 0.05 + (labelLines.length * 0.018 * labelFontSize));
165
- }
107
+ styling.applyNodeWithIconStyling(gnode, node.icon, labelFontSize, labelLines.length);
166
108
  }
167
109
  }
168
110
  }
@@ -192,25 +134,6 @@ class Generator {
192
134
  findFirstArbitraryClusterDirectLeaf(node) {
193
135
  return node.subComponents().find(sub => { return sub.subComponents().length == 0; });
194
136
  }
195
- async dotToPng(sourceDotFile, targetPngFile) {
196
- const cmd = `${Generator.graphvizBinary} ${sourceDotFile} -T png > ${targetPngFile}`;
197
- try {
198
- const { stdout, stderr } = await exec(cmd);
199
- const fileExists = fs.existsSync(targetPngFile);
200
- if (!fileExists) {
201
- throw new rendering_error_1.RenderingError("Failed to generate PNG: file does not exist.");
202
- }
203
- const stats = fs.lstatSync(targetPngFile);
204
- if (stats.size < 2) {
205
- throw new rendering_error_1.RenderingError("Generated PNG doesn't seem valid: file size is too small.", [stdout, stderr], [". make sure Graphviz is installed and available in the PATH"]);
206
- }
207
- }
208
- catch (e) {
209
- throw new rendering_error_1.RenderingError(e.message);
210
- }
211
- return true;
212
- }
213
137
  }
214
- exports.Generator = Generator;
215
- Generator.graphvizBinary = "dot";
216
- //# sourceMappingURL=generator.js.map
138
+ exports.GraphvizGenerator = GraphvizGenerator;
139
+ //# sourceMappingURL=GraphvizGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphvizGenerator.js","sourceRoot":"","sources":["../../../../src/render/graphviz/GraphvizGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import * as diagram from "../../diagram";
2
+ import { DiagramRenderer, RenderingOutput, RenderingProps } from "../diagram-renderer";
3
+ export declare class GraphvizRenderingProps extends RenderingProps {
4
+ diagram: diagram.Diagram;
5
+ path: string;
6
+ }
7
+ export declare class GraphvizRenderingOutput implements RenderingOutput {
8
+ private imagePath;
9
+ private imageType;
10
+ constructor(imagePath: string, imageType: string);
11
+ userOutput(): void;
12
+ }
13
+ export declare class Graphviz implements DiagramRenderer {
14
+ render(props: GraphvizRenderingProps): Promise<GraphvizRenderingOutput>;
15
+ renderToDot(dia: diagram.Diagram, targetDotPath: string): void;
16
+ private static generatePng;
17
+ private static sanitizeAndResolvePath;
18
+ private static dotToPng;
19
+ private static GRAPHVIZ_BINARY;
20
+ }