cdk-dia 0.3.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -4
  3. package/{bin → dist/bin}/cli.d.ts +0 -0
  4. package/{bin → dist/bin}/cli.js +17 -18
  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 +8 -7
  10. package/{src → dist/src}/cdk/cdk-tree.js +28 -14
  11. package/dist/src/cdk/cdk-tree.js.map +1 -0
  12. package/{src → dist/src}/cdk/construct-decorator.d.ts +4 -0
  13. package/{src → dist/src}/cdk/construct-decorator.js +10 -1
  14. package/{src → dist/src}/cdk/construct-decorator.js.map +1 -1
  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/diagram/tests/aws-edge-resolver.test.d.ts → dist/src/cdk/tests/cdk-tree.test.d.ts} +0 -0
  19. package/dist/src/cdk/tests/cdk-tree.test.js +65 -0
  20. package/dist/src/cdk/tests/cdk-tree.test.js.map +1 -0
  21. package/{src → dist/src}/cdk/tree-json-loader.d.ts +0 -0
  22. package/{src → dist/src}/cdk/tree-json-loader.js +0 -0
  23. package/{src → dist/src}/cdk/tree-json-loader.js.map +0 -0
  24. package/dist/src/cdk-dia.d.ts +9 -0
  25. package/{src → dist/src}/cdk-dia.js +23 -5
  26. package/dist/src/cdk-dia.js.map +1 -0
  27. package/{src → dist/src}/diagram/aws/aws-diagram-generator.d.ts +0 -0
  28. package/{src → dist/src}/diagram/aws/aws-diagram-generator.js +31 -3
  29. package/dist/src/diagram/aws/aws-diagram-generator.js.map +1 -0
  30. package/{src → dist/src}/diagram/aws/aws-edge-resolver.d.ts +3 -2
  31. package/{src → dist/src}/diagram/aws/aws-edge-resolver.js +47 -29
  32. package/dist/src/diagram/aws/aws-edge-resolver.js.map +1 -0
  33. package/{src → dist/src}/diagram/aws/aws-icon-supplier.d.ts +0 -0
  34. package/{src → dist/src}/diagram/aws/aws-icon-supplier.js +0 -0
  35. package/{src → dist/src}/diagram/aws/aws-icon-supplier.js.map +0 -0
  36. package/{src → dist/src}/diagram/aws/awsResouceIconMatches.json +21 -4
  37. package/dist/src/diagram/aws/edge-target.d.ts +17 -0
  38. package/dist/src/diagram/aws/edge-target.js +45 -0
  39. package/dist/src/diagram/aws/edge-target.js.map +1 -0
  40. package/dist/src/diagram/aws/stack-exports-container.d.ts +8 -0
  41. package/dist/src/diagram/aws/stack-exports-container.js +35 -0
  42. package/dist/src/diagram/aws/stack-exports-container.js.map +1 -0
  43. package/{src → dist/src}/diagram/component/component.d.ts +3 -1
  44. package/{src → dist/src}/diagram/component/component.js +6 -1
  45. package/{src → dist/src}/diagram/component/component.js.map +1 -1
  46. package/{src → dist/src}/diagram/component/customizable-attribute.d.ts +0 -0
  47. package/{src → dist/src}/diagram/component/customizable-attribute.js +0 -0
  48. package/{src → dist/src}/diagram/component/customizable-attribute.js.map +0 -0
  49. package/{src → dist/src}/diagram/component/diagram-component.d.ts +0 -0
  50. package/{src → dist/src}/diagram/component/diagram-component.js +0 -0
  51. package/{src → dist/src}/diagram/component/diagram-component.js.map +0 -0
  52. package/{src → dist/src}/diagram/component/icon.d.ts +0 -0
  53. package/{src → dist/src}/diagram/component/icon.js +0 -0
  54. package/{src → dist/src}/diagram/component/icon.js.map +0 -0
  55. package/{src → dist/src}/diagram/component/link.d.ts +0 -0
  56. package/{src → dist/src}/diagram/component/link.js +0 -0
  57. package/{src → dist/src}/diagram/component/link.js.map +0 -0
  58. package/{src → dist/src}/diagram/component/root-component.d.ts +0 -0
  59. package/{src → dist/src}/diagram/component/root-component.js +0 -0
  60. package/{src → dist/src}/diagram/component/root-component.js.map +0 -0
  61. package/{src → dist/src}/diagram/component-links.d.ts +0 -0
  62. package/{src → dist/src}/diagram/component-links.js +0 -0
  63. package/{src → dist/src}/diagram/component-links.js.map +0 -0
  64. package/{src → dist/src}/diagram/diagram.d.ts +0 -0
  65. package/{src → dist/src}/diagram/diagram.js +0 -0
  66. package/{src → dist/src}/diagram/diagram.js.map +0 -0
  67. package/{src → dist/src}/diagram/index.d.ts +1 -0
  68. package/{src → dist/src}/diagram/index.js +1 -0
  69. package/{src → dist/src}/diagram/index.js.map +1 -1
  70. package/{src/graphviz/tests/generator.test.d.ts → dist/src/diagram/tests/aws-edge-resolver.test.d.ts} +0 -0
  71. package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.js +75 -14
  72. package/dist/src/diagram/tests/aws-edge-resolver.test.js.map +1 -0
  73. package/{src → dist/src}/diagram/tests/generator.test.d.ts +0 -0
  74. package/{src → dist/src}/diagram/tests/generator.test.js +0 -0
  75. package/{src → dist/src}/diagram/tests/generator.test.js.map +0 -0
  76. package/dist/src/diagram/tests/stack-exports-container.test.d.ts +1 -0
  77. package/dist/src/diagram/tests/stack-exports-container.test.js +50 -0
  78. package/dist/src/diagram/tests/stack-exports-container.test.js.map +1 -0
  79. package/dist/src/render/cytoscape/base/bundle.css +4 -0
  80. package/dist/src/render/cytoscape/base/bundle.css.map +1 -0
  81. package/dist/src/render/cytoscape/base/index.html +1 -0
  82. package/dist/src/render/cytoscape/base/js/app.8e9fe77f.js +39504 -0
  83. package/dist/src/render/cytoscape/base/js/app.8e9fe77f.js.map +1 -0
  84. package/dist/src/render/cytoscape/cytoscape-element.d.ts +16 -0
  85. package/dist/src/render/cytoscape/cytoscape-element.js +3 -0
  86. package/dist/src/render/cytoscape/cytoscape-element.js.map +1 -0
  87. package/dist/src/render/cytoscape/cytoscape-generator.d.ts +8 -0
  88. package/dist/src/render/cytoscape/cytoscape-generator.js +126 -0
  89. package/dist/src/render/cytoscape/cytoscape-generator.js.map +1 -0
  90. package/dist/src/render/cytoscape/cytoscape.d.ts +18 -0
  91. package/dist/src/render/cytoscape/cytoscape.js +75 -0
  92. package/dist/src/render/cytoscape/cytoscape.js.map +1 -0
  93. package/dist/src/render/cytoscape/index.d.ts +1 -0
  94. package/{src/graphviz → dist/src/render/cytoscape}/index.js +1 -2
  95. package/dist/src/render/cytoscape/index.js.map +1 -0
  96. package/dist/src/render/cytoscape/tests/generator.test.d.ts +1 -0
  97. package/dist/src/render/cytoscape/tests/generator.test.js +56 -0
  98. package/dist/src/render/cytoscape/tests/generator.test.js.map +1 -0
  99. package/dist/src/render/diagram-renderer.d.ts +15 -0
  100. package/{src/graphviz/rendering-error.js → dist/src/render/diagram-renderer.js} +5 -2
  101. package/dist/src/render/diagram-renderer.js.map +1 -0
  102. package/dist/src/render/graphviz/GraphvizGenerator.d.ts +11 -0
  103. package/{src/graphviz/generator.js → dist/src/render/graphviz/GraphvizGenerator.js} +16 -70
  104. package/dist/src/render/graphviz/GraphvizGenerator.js.map +1 -0
  105. package/dist/src/render/graphviz/graphviz.d.ts +20 -0
  106. package/dist/src/render/graphviz/graphviz.js +115 -0
  107. package/dist/src/render/graphviz/graphviz.js.map +1 -0
  108. package/dist/src/render/graphviz/index.d.ts +1 -0
  109. package/dist/src/render/graphviz/index.js +14 -0
  110. package/dist/src/render/graphviz/index.js.map +1 -0
  111. package/{src → dist/src/render}/graphviz/styling.d.ts +1 -4
  112. package/{src → dist/src/render}/graphviz/styling.js +4 -15
  113. package/dist/src/render/graphviz/styling.js.map +1 -0
  114. package/dist/src/render/graphviz/tests/generator.test.d.ts +1 -0
  115. package/{src → dist/src/render}/graphviz/tests/generator.test.js +8 -13
  116. package/dist/src/render/graphviz/tests/generator.test.js.map +1 -0
  117. package/dist/src/render/index.d.ts +1 -0
  118. package/dist/src/render/index.js +14 -0
  119. package/dist/src/render/index.js.map +1 -0
  120. package/dist/src/render/styling.d.ts +3 -0
  121. package/dist/src/render/styling.js +16 -0
  122. package/dist/src/render/styling.js.map +1 -0
  123. package/{src → dist/src}/test-fixtures/testCases.d.ts +0 -0
  124. package/{src → dist/src}/test-fixtures/testCases.js +7 -1
  125. package/{src → dist/src}/test-fixtures/testCases.js.map +1 -1
  126. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C6g-Instance_48_Dark.png +0 -0
  127. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3-Instance_48_Dark.png +0 -0
  128. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3en-Instance_48_Dark.png +0 -0
  129. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G4ad-Instance_48_Dark.png +0 -0
  130. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M6g-Instance_48_Dark.png +0 -0
  131. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Mac-Instance_48_Dark.png +0 -0
  132. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3dn-Instance_48_Dark.png +0 -0
  133. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4-Instance_48_Dark.png +0 -0
  134. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4d-Instance_48_Dark.png +0 -0
  135. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R6g-Instance_48_Dark.png +0 -0
  136. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3a-Instance_48_Dark.png +0 -0
  137. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T4g-Instance_48_Dark.png +0 -0
  138. package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Trainium-Instance_48_Dark.png +0 -0
  139. package/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Cognito_64.png +0 -0
  140. package/icons/aws/cloudwatch_metric_filter.png +0 -0
  141. package/icons/aws/security_group.png +0 -0
  142. package/package.json +10 -6
  143. package/bin/cli.js.map +0 -1
  144. package/src/cdk/cdk-tree.js.map +0 -1
  145. package/src/cdk-dia.d.ts +0 -3
  146. package/src/cdk-dia.js.map +0 -1
  147. package/src/diagram/aws/aws-diagram-generator.js.map +0 -1
  148. package/src/diagram/aws/aws-edge-resolver.js.map +0 -1
  149. package/src/diagram/tests/aws-edge-resolver.test.js.map +0 -1
  150. package/src/graphviz/generator.d.ts +0 -15
  151. package/src/graphviz/generator.js.map +0 -1
  152. package/src/graphviz/index.d.ts +0 -2
  153. package/src/graphviz/index.js.map +0 -1
  154. package/src/graphviz/rendering-error.d.ts +0 -5
  155. package/src/graphviz/rendering-error.js.map +0 -1
  156. package/src/graphviz/styling.js.map +0 -1
  157. package/src/graphviz/tests/generator.test.js.map +0 -1
@@ -24,6 +24,7 @@ const _ = __importStar(require("lodash"));
24
24
  const uniqueid_1 = require("@aws-cdk/core/lib/private/uniqueid");
25
25
  const component_1 = require("../component/component");
26
26
  const aws_diagram_generator_1 = require("./aws-diagram-generator");
27
+ const edge_target_1 = require("./edge-target");
27
28
  class AwsEdgeResolver {
28
29
  resolveEdges(tree, diagram) {
29
30
  this.addEdges(tree, diagram);
@@ -41,66 +42,83 @@ class AwsEdgeResolver {
41
42
  }
42
43
  addEdge(targetString, originComponent) {
43
44
  const cdkStackTree = originComponent.treeAncestorWithTag(component_1.ComponentTags.isCdkStack, "true");
44
- let targetComponent = this.findTargetComponent(cdkStackTree, targetString);
45
- if (targetComponent != null) {
46
- originComponent.links.addLink(targetComponent);
45
+ if (cdkStackTree) {
46
+ let targetComponent = this.findTargetComponent(cdkStackTree, targetString);
47
+ if (targetComponent != null) {
48
+ originComponent.links.addLink(targetComponent);
49
+ }
47
50
  }
48
51
  }
49
52
  findTargetComponent(cdkStackTree, targetString) {
50
- const perfectMatch = cdkStackTree.subTreeFindComponent((component) => {
51
- const uniqueResourceId = this.findUniqueResourceId(component);
52
- return targetString === uniqueResourceId;
53
- });
54
- if (perfectMatch != null)
55
- return perfectMatch;
56
- return cdkStackTree.subTreeFindComponent((component) => {
57
- const uniqueResourceId = this.findUniqueResourceId(component);
58
- return targetString.toLowerCase() === uniqueResourceId;
59
- });
53
+ if (targetString instanceof edge_target_1.EdgeTargetSimpleString) {
54
+ const perfectMatch = cdkStackTree.subTreeFindComponent((component) => {
55
+ const uniqueResourceId = this.findUniqueResourceId(component);
56
+ return targetString.value === uniqueResourceId;
57
+ });
58
+ if (perfectMatch != null)
59
+ return perfectMatch;
60
+ return cdkStackTree.subTreeFindComponent((component) => {
61
+ const uniqueResourceId = this.findUniqueResourceId(component);
62
+ return targetString.value.toLowerCase() === uniqueResourceId;
63
+ });
64
+ }
65
+ if (targetString instanceof edge_target_1.EdgeTargetStackExport) {
66
+ const treeRoot = cdkStackTree.treeRoot();
67
+ const exportingStack = treeRoot.subTreeFindComponent((component) => {
68
+ return component.tags.get(component_1.ComponentTags.isCdkStack) && component.id == targetString.stackId;
69
+ });
70
+ if (exportingStack && exportingStack.stackExportsContainer) {
71
+ const targetComponentIdInTargetStack = exportingStack.stackExportsContainer.getExport(targetString);
72
+ return exportingStack.subTreeFindComponent(component => {
73
+ return this.findUniqueResourceId(component) == targetComponentIdInTargetStack;
74
+ });
75
+ }
76
+ }
60
77
  }
61
78
  findUniqueResourceId(component) {
62
79
  const stackDepth = component.treeAncestorWithTag(component_1.ComponentTags.isCdkStack, "true");
63
80
  const pathParts = component.idPathParts().slice(stackDepth.depth());
64
81
  if (pathParts.length === 0)
65
82
  return false;
66
- return uniqueid_1.makeUniqueId(pathParts);
83
+ return (0, uniqueid_1.makeUniqueId)(pathParts);
67
84
  }
68
85
  edgeTargets(node) {
69
86
  const props = node.attributes.get("aws:cdk:cloudformation:props");
70
87
  if (props == undefined)
71
88
  return Array();
72
- const targets = Array.from(this.scrapePossibleEdgeTargets(props));
73
- return targets.map(path => aws_diagram_generator_1.AwsDiagramGenerator.sanitizeComponentId(path));
89
+ return Array.from(this.scrapePossibleEdgeTargets(props));
74
90
  }
75
91
  scrapePossibleEdgeTargets(object) {
76
92
  if (object === null || typeof object === "string")
77
- return new Set();
78
- const edgeTargets = new Set();
93
+ return new Array();
94
+ const edgeTargets = new Array();
79
95
  for (const key in object) {
80
96
  if (key === "Fn::GetAtt" && object[key][0] !== undefined) {
81
97
  this.scrapeAllStrings(object[key]).forEach(it => {
82
- edgeTargets.add(it);
98
+ edgeTargets.push(it);
83
99
  });
84
100
  }
101
+ if (key === "Fn::ImportValue" && object[key] !== undefined) {
102
+ try {
103
+ edgeTargets.push(edge_target_1.EdgeTargetStackExport.fromFnImportValue(object[key]));
104
+ }
105
+ catch (e) { }
106
+ }
85
107
  if (key === "Ref" && (typeof object[key] === "string")) {
86
- this.scrapeAllStrings(object[key]).forEach(it => {
87
- edgeTargets.add(it);
88
- });
108
+ edgeTargets.push(new edge_target_1.EdgeTargetSimpleString(object[key]));
89
109
  }
90
110
  this.scrapePossibleEdgeTargets(object[key]).forEach(target => {
91
- edgeTargets.add(target);
111
+ edgeTargets.push(target);
92
112
  });
93
113
  }
94
- return edgeTargets;
114
+ return _.uniqWith(edgeTargets, ((a, b) => a.isEqual(b)));
95
115
  }
96
116
  scrapeAllStrings(object) {
97
117
  if (object === null || object === undefined) {
98
118
  return new Set();
99
119
  }
100
120
  if (typeof object === "string") {
101
- const set = new Set();
102
- set.add(object);
103
- return set;
121
+ return new Set([new edge_target_1.EdgeTargetSimpleString(object)]);
104
122
  }
105
123
  if (Array.isArray(object)) {
106
124
  const array = object.map(it => {
@@ -113,10 +131,10 @@ class AwsEdgeResolver {
113
131
  if (typeof object === "object") {
114
132
  for (const key in object) {
115
133
  if (key === "Fn::GetAtt" && object[key][0] !== undefined) {
116
- edgeTargets.add(object[key][0]);
134
+ edgeTargets.add(new edge_target_1.EdgeTargetSimpleString(object[key][0]));
117
135
  }
118
136
  if (key === "Ref" && (typeof object[key] === "string")) {
119
- edgeTargets.add(object[key]);
137
+ edgeTargets.add(new edge_target_1.EdgeTargetSimpleString(object[key]));
120
138
  }
121
139
  this.scrapePossibleEdgeTargets(object[key]).forEach(target => {
122
140
  edgeTargets.add(target);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-edge-resolver.js","sourceRoot":"","sources":["../../../../src/diagram/aws/aws-edge-resolver.ts"],"names":[],"mappings":"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"}
@@ -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
  },
@@ -0,0 +1,17 @@
1
+ export declare abstract class EdgeTarget {
2
+ abstract isEqual(other: EdgeTarget): any;
3
+ }
4
+ export declare class EdgeTargetSimpleString extends EdgeTarget {
5
+ value: string;
6
+ constructor(value: string);
7
+ isEqual(other: EdgeTarget): any;
8
+ toString(): string;
9
+ }
10
+ export declare class EdgeTargetStackExport extends EdgeTarget {
11
+ stackId: string;
12
+ exportValue: string;
13
+ constructor(stackId: string, exportValue: string);
14
+ static fromFnImportValue(value: string): EdgeTargetStackExport;
15
+ isEqual(other: EdgeTarget): any;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EdgeTargetStackExport = exports.EdgeTargetSimpleString = exports.EdgeTarget = void 0;
4
+ const aws_diagram_generator_1 = require("./aws-diagram-generator");
5
+ class EdgeTarget {
6
+ }
7
+ exports.EdgeTarget = EdgeTarget;
8
+ class EdgeTargetSimpleString extends EdgeTarget {
9
+ constructor(value) {
10
+ super();
11
+ this.value = aws_diagram_generator_1.AwsDiagramGenerator.sanitizeComponentId(value);
12
+ }
13
+ isEqual(other) {
14
+ if (!(other instanceof EdgeTargetSimpleString))
15
+ return false;
16
+ return this.value == other.value;
17
+ }
18
+ toString() {
19
+ return `EdgeTargetSimpleString: ${this.value}`;
20
+ }
21
+ }
22
+ exports.EdgeTargetSimpleString = EdgeTargetSimpleString;
23
+ class EdgeTargetStackExport extends EdgeTarget {
24
+ constructor(stackId, exportValue) {
25
+ super();
26
+ this.stackId = stackId;
27
+ this.exportValue = exportValue;
28
+ }
29
+ static fromFnImportValue(value) {
30
+ const matches = value.match(/([^:]*):(.*)/);
31
+ if (!matches)
32
+ throw new Error(`FnImportValue not in expected form: ${value}`);
33
+ return new EdgeTargetStackExport(matches[1], matches[2]);
34
+ }
35
+ isEqual(other) {
36
+ if (!(other instanceof EdgeTargetStackExport))
37
+ return false;
38
+ return this.exportValue == other.exportValue && this.stackId == other.stackId;
39
+ }
40
+ toString() {
41
+ return `EdgeTargetStackExport: ${this.stackId} ${this.exportValue}`;
42
+ }
43
+ }
44
+ exports.EdgeTargetStackExport = EdgeTargetStackExport;
45
+ //# sourceMappingURL=edge-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-target.js","sourceRoot":"","sources":["../../../../src/diagram/aws/edge-target.ts"],"names":[],"mappings":";;;AAAA,mEAA2D;AAE3D,MAAsB,UAAU;CAE/B;AAFD,gCAEC;AAED,MAAa,sBAAuB,SAAQ,UAAU;IAGlD,YAAY,KAAa;QACrB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,2CAAmB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,CAAC,KAAiB;QACrB,IAAI,CAAC,CAAC,KAAK,YAAa,sBAAsB,CAAC;YAAE,OAAO,KAAK,CAAA;QAE7D,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;IACpC,CAAC;IAGD,QAAQ;QACJ,OAAO,2BAA2B,IAAI,CAAC,KAAK,EAAE,CAAA;IAClD,CAAC;CACJ;AAlBD,wDAkBC;AAED,MAAa,qBAAsB,SAAQ,UAAU;IAEjD,YAAmB,OAAe,EAAS,WAAmB;QAC1D,KAAK,EAAE,CAAA;QADQ,YAAO,GAAP,OAAO,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAQ;IAE9D,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAa;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAE3C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAA;QAE7E,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,CAAC,KAAiB;QACrB,IAAI,CAAC,CAAC,KAAK,YAAa,qBAAqB,CAAC;YAAE,OAAO,KAAK,CAAA;QAE5D,OAAO,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAA;IACjF,CAAC;IAED,QAAQ;QACJ,OAAO,0BAA0B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;IACvE,CAAC;CACJ;AAvBD,sDAuBC"}
@@ -0,0 +1,8 @@
1
+ import * as cdk from "../../cdk";
2
+ import { EdgeTargetStackExport } from "./edge-target";
3
+ export declare class StackExportsContainer {
4
+ private readonly exports;
5
+ private constructor();
6
+ static fromComponent(exportsComponent: cdk.Node): StackExportsContainer;
7
+ getExport(edgeTargetStackExport: EdgeTargetStackExport): string | undefined;
8
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StackExportsContainer = void 0;
4
+ const uniqueid_1 = require("@aws-cdk/core/lib/private/uniqueid");
5
+ class StackExport {
6
+ constructor(targetId, fullId) {
7
+ this.targetId = targetId;
8
+ this.fullId = fullId;
9
+ }
10
+ }
11
+ class StackExportsContainer {
12
+ constructor() {
13
+ this.exports = [];
14
+ }
15
+ static fromComponent(exportsComponent) {
16
+ const container = new StackExportsContainer();
17
+ exportsComponent.children.forEach(exportNode => {
18
+ const matches = exportNode.id.match(new RegExp('Output\{"Ref":"(.*)"\}'));
19
+ if (matches) {
20
+ const refTargetId = matches[1];
21
+ container.exports.push(new StackExport(refTargetId, exportNode.id));
22
+ }
23
+ });
24
+ return container;
25
+ }
26
+ getExport(edgeTargetStackExport) {
27
+ const stackExport = this.exports.find(stackExport => {
28
+ const calculatedExportName = (0, uniqueid_1.makeUniqueId)(['Exports', stackExport.fullId]);
29
+ return calculatedExportName == edgeTargetStackExport.exportValue;
30
+ });
31
+ return stackExport ? stackExport.targetId : undefined;
32
+ }
33
+ }
34
+ exports.StackExportsContainer = StackExportsContainer;
35
+ //# sourceMappingURL=stack-exports-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-exports-container.js","sourceRoot":"","sources":["../../../../src/diagram/aws/stack-exports-container.ts"],"names":[],"mappings":";;;AACA,iEAA+D;AAG/D,MAAM,WAAW;IACb,YACa,QAAgB,EAChB,MAAc;QADd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;IACxB,CAAC;CACP;AAED,MAAa,qBAAqB;IAI9B;QAFiB,YAAO,GAAkB,EAAE,CAAA;IAErB,CAAC;IAExB,MAAM,CAAC,aAAa,CAAC,gBAA0B;QAC3C,MAAM,SAAS,GAAG,IAAI,qBAAqB,EAAE,CAAA;QAE7C,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAE,UAAU,CAAC,EAAE;YAE5C,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,CAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAA;YAC1E,IAAI,OAAO,EAAC;gBACR,MAAM,WAAW,GAAW,OAAO,CAAC,CAAC,CAAC,CAAA;gBACtC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;aACtE;QACL,CAAC,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,SAAS,CAAC,qBAA4C;QAElD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAChD,MAAM,oBAAoB,GAAG,IAAA,uBAAY,EAAC,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1E,OAAO,oBAAoB,IAAI,qBAAqB,CAAC,WAAW,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACxD,CAAC;CACJ;AA7BD,sDA6BC"}
@@ -2,6 +2,7 @@ import { ComponentLinks } from "../component-links";
2
2
  import { Link } from "./link";
3
3
  import { ComponentIcon } from "./icon";
4
4
  import { RootComponent } from "./root-component";
5
+ import { StackExportsContainer } from "../aws/stack-exports-container";
5
6
  export declare type ComponentId = string;
6
7
  export declare enum ComponentTags {
7
8
  isCdkStack = "isCdkStack",
@@ -11,6 +12,7 @@ export declare enum ComponentTags {
11
12
  export declare abstract class Component {
12
13
  protected constructor(id: ComponentId);
13
14
  private _id;
15
+ stackExportsContainer: StackExportsContainer;
14
16
  idPathParts: () => Array<string>;
15
17
  get id(): ComponentId;
16
18
  private setId;
@@ -46,6 +48,6 @@ export declare abstract class Component {
46
48
  private subTreeReverseLinksRec;
47
49
  subTreeLinks(): Array<Link>;
48
50
  private subTreeLinksRec;
49
- treeAncestorWithTag(tagKey: ComponentTags, tagVal: string): Component;
51
+ treeAncestorWithTag(tagKey: ComponentTags, tagVal: string): Component | undefined;
50
52
  isAncestor(possibleAncestor: Component): boolean;
51
53
  }
@@ -177,7 +177,12 @@ class Component {
177
177
  treeAncestorWithTag(tagKey, tagVal) {
178
178
  if (this.tags.get(tagKey) === tagVal)
179
179
  return this;
180
- return this.parent().treeAncestorWithTag(tagKey, tagVal);
180
+ try {
181
+ return this.parent().treeAncestorWithTag(tagKey, tagVal);
182
+ }
183
+ catch (e) {
184
+ return undefined;
185
+ }
181
186
  }
182
187
  isAncestor(possibleAncestor) {
183
188
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/diagram/component/component.ts"],"names":[],"mappings":"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"}
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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const aws_edge_resolver_1 = require("../aws/aws-edge-resolver");
4
+ const edge_target_1 = require("../aws/edge-target");
4
5
  describe("candidate target edges are well scraped from any thing", () => {
5
6
  it(`sample no.1`, () => {
6
7
  const haystack = {
@@ -17,9 +18,12 @@ describe("candidate target edges are well scraped from any thing", () => {
17
18
  ]
18
19
  };
19
20
  const targets = new aws_edge_resolver_1.AwsEdgeResolver().scrapePossibleEdgeTargets(haystack);
20
- expect(targets.has("mayQueue111")).toBeTruthy();
21
- expect(targets.has("QueueName")).toBeTruthy();
22
- expect(targets.size).toEqual(2);
21
+ const expectedTargetValues = [
22
+ new edge_target_1.EdgeTargetSimpleString("mayQueue111"),
23
+ new edge_target_1.EdgeTargetSimpleString("QueueName")
24
+ ];
25
+ expectTargetValuesToBeInSet(targets, expectedTargetValues);
26
+ expect(targets.length).toEqual(2);
23
27
  });
24
28
  it(`sample no.2`, () => {
25
29
  const haystack = {
@@ -176,14 +180,22 @@ describe("candidate target edges are well scraped from any thing", () => {
176
180
  }
177
181
  };
178
182
  const targets = new aws_edge_resolver_1.AwsEdgeResolver().scrapePossibleEdgeTargets(haystack);
179
- expect(targets.has("queue333")).toBeTruthy();
180
- expect(targets.has("queue123")).toBeTruthy();
181
- expect(targets.has("topic123")).toBeTruthy();
182
- expect(targets.has("bkt1")).toBeTruthy();
183
- expect(targets.has("table123")).toBeTruthy();
184
- expect(targets.has("queue222")).toBeTruthy();
185
- expect(targets.size).toEqual(7);
183
+ const expectedTargetValues = [
184
+ new edge_target_1.EdgeTargetSimpleString("queue333"),
185
+ new edge_target_1.EdgeTargetSimpleString("queue123"),
186
+ new edge_target_1.EdgeTargetSimpleString("topic123"),
187
+ new edge_target_1.EdgeTargetSimpleString("bkt1"),
188
+ new edge_target_1.EdgeTargetSimpleString("table123"),
189
+ new edge_target_1.EdgeTargetSimpleString("queue222")
190
+ ];
191
+ expectTargetValuesToBeInSet(targets, expectedTargetValues);
192
+ expect(targets.length).toEqual(7);
186
193
  });
194
+ function expectTargetValuesToBeInSet(targets, expectedTargetInArray) {
195
+ expectedTargetInArray.forEach(targetValue => {
196
+ expect(targets).arrayToContainEdgeTarget(targetValue);
197
+ });
198
+ }
187
199
  it(`sample no.3`, () => {
188
200
  const haystack = {
189
201
  "policyDocument": {
@@ -213,10 +225,59 @@ describe("candidate target edges are well scraped from any thing", () => {
213
225
  }
214
226
  };
215
227
  const targets = new aws_edge_resolver_1.AwsEdgeResolver().scrapePossibleEdgeTargets(haystack);
216
- expect(targets.has("TopicX")).toBeTruthy();
217
- expect(targets.has("queueX2")).toBeTruthy();
218
- expect(targets.has("Arn")).toBeTruthy();
219
- expect(targets.size).toEqual(3);
228
+ const expectedTargetValues = [
229
+ new edge_target_1.EdgeTargetSimpleString("TopicX"),
230
+ new edge_target_1.EdgeTargetSimpleString("queueX2"),
231
+ new edge_target_1.EdgeTargetSimpleString("Arn")
232
+ ];
233
+ expectTargetValuesToBeInSet(targets, expectedTargetValues);
234
+ expect(targets.length).toEqual(3);
220
235
  });
236
+ it(`sample no.4 `, () => {
237
+ const haystack = {
238
+ "dimensions": [
239
+ {
240
+ "name": "QueueName",
241
+ "value": {
242
+ "Fn::GetAtt": [
243
+ "mayQueue111",
244
+ "QueueName"
245
+ ]
246
+ }
247
+ },
248
+ {
249
+ "name": "QueueName2",
250
+ "value": {
251
+ "Fn::ImportValue": "stack-name-here:export-name-here"
252
+ }
253
+ }
254
+ ]
255
+ };
256
+ const targets = new aws_edge_resolver_1.AwsEdgeResolver().scrapePossibleEdgeTargets(haystack);
257
+ const expectedTargetValues = [
258
+ new edge_target_1.EdgeTargetSimpleString("mayQueue111"),
259
+ new edge_target_1.EdgeTargetSimpleString("QueueName"),
260
+ new edge_target_1.EdgeTargetStackExport('stack-name-here', 'export-name-here')
261
+ ];
262
+ expectTargetValuesToBeInSet(targets, expectedTargetValues);
263
+ expect(targets.length).toEqual(3);
264
+ });
265
+ });
266
+ expect.extend({
267
+ arrayToContainEdgeTarget(array, expected) {
268
+ const foundTarget = array.find((target) => target.isEqual(expected));
269
+ if (foundTarget) {
270
+ return {
271
+ message: () => `Found ${expected} in array`,
272
+ pass: true
273
+ };
274
+ }
275
+ else {
276
+ return {
277
+ message: () => `array does not contain expected EdgeTarget:${expected}`,
278
+ pass: false
279
+ };
280
+ }
281
+ }
221
282
  });
222
283
  //# sourceMappingURL=aws-edge-resolver.test.js.map