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.
- package/LICENSE +21 -0
- package/README.md +37 -4
- package/{bin → dist/bin}/cli.d.ts +0 -0
- package/{bin → dist/bin}/cli.js +18 -16
- package/dist/bin/cli.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/{src → dist/src}/cdk/cdk-tree.d.ts +10 -0
- package/{src → dist/src}/cdk/cdk-tree.js +21 -1
- package/dist/src/cdk/cdk-tree.js.map +1 -0
- package/{src → dist/src}/cdk/construct-decorator.d.ts +0 -0
- package/{src → dist/src}/cdk/construct-decorator.js +0 -0
- package/{src → dist/src}/cdk/construct-decorator.js.map +0 -0
- package/{src → dist/src}/cdk/index.d.ts +0 -0
- package/{src → dist/src}/cdk/index.js +0 -0
- package/{src → dist/src}/cdk/index.js.map +0 -0
- package/{src → dist/src}/cdk/tree-json-loader.d.ts +0 -0
- package/{src → dist/src}/cdk/tree-json-loader.js +0 -0
- package/{src → dist/src}/cdk/tree-json-loader.js.map +0 -0
- package/dist/src/cdk-dia.d.ts +4 -0
- package/{src → dist/src}/cdk-dia.js +7 -5
- package/dist/src/cdk-dia.js.map +1 -0
- package/{src → dist/src}/diagram/aws/aws-diagram-generator.d.ts +7 -6
- package/{src → dist/src}/diagram/aws/aws-diagram-generator.js +72 -52
- package/dist/src/diagram/aws/aws-diagram-generator.js.map +1 -0
- package/{src → dist/src}/diagram/aws/aws-edge-resolver.d.ts +0 -0
- package/{src → dist/src}/diagram/aws/aws-edge-resolver.js +2 -1
- package/dist/src/diagram/aws/aws-edge-resolver.js.map +1 -0
- package/{src → dist/src}/diagram/aws/aws-icon-supplier.d.ts +0 -0
- package/{src → dist/src}/diagram/aws/aws-icon-supplier.js +0 -0
- package/{src → dist/src}/diagram/aws/aws-icon-supplier.js.map +0 -0
- package/{src → dist/src}/diagram/aws/awsResouceIconMatches.json +21 -4
- package/{src → dist/src}/diagram/component/component.d.ts +3 -1
- package/{src → dist/src}/diagram/component/component.js +9 -0
- package/dist/src/diagram/component/component.js.map +1 -0
- package/{src → dist/src}/diagram/component/customizable-attribute.d.ts +0 -0
- package/{src → dist/src}/diagram/component/customizable-attribute.js +0 -0
- package/{src → dist/src}/diagram/component/customizable-attribute.js.map +0 -0
- package/{src → dist/src}/diagram/component/diagram-component.d.ts +0 -0
- package/{src → dist/src}/diagram/component/diagram-component.js +0 -0
- package/{src → dist/src}/diagram/component/diagram-component.js.map +0 -0
- package/{src → dist/src}/diagram/component/icon.d.ts +0 -0
- package/{src → dist/src}/diagram/component/icon.js +0 -0
- package/{src → dist/src}/diagram/component/icon.js.map +0 -0
- package/{src → dist/src}/diagram/component/link.d.ts +0 -0
- package/{src → dist/src}/diagram/component/link.js +0 -0
- package/{src → dist/src}/diagram/component/link.js.map +0 -0
- package/{src → dist/src}/diagram/component/root-component.d.ts +0 -0
- package/{src → dist/src}/diagram/component/root-component.js +0 -0
- package/{src → dist/src}/diagram/component/root-component.js.map +0 -0
- package/{src → dist/src}/diagram/component-links.d.ts +0 -0
- package/{src → dist/src}/diagram/component-links.js +0 -0
- package/{src → dist/src}/diagram/component-links.js.map +0 -0
- package/{src → dist/src}/diagram/diagram.d.ts +0 -0
- package/{src → dist/src}/diagram/diagram.js +0 -0
- package/{src → dist/src}/diagram/diagram.js.map +0 -0
- package/{src → dist/src}/diagram/index.d.ts +1 -0
- package/{src → dist/src}/diagram/index.js +1 -0
- package/{src → dist/src}/diagram/index.js.map +1 -1
- package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.d.ts +0 -0
- package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.js +0 -0
- package/{src → dist/src}/diagram/tests/aws-edge-resolver.test.js.map +0 -0
- package/dist/src/diagram/tests/generator.test.d.ts +3 -0
- package/{src → dist/src}/diagram/tests/generator.test.js +52 -5
- package/dist/src/diagram/tests/generator.test.js.map +1 -0
- package/dist/src/render/diagram-renderer.d.ts +15 -0
- package/{src/graphviz/rendering-error.js → dist/src/render/diagram-renderer.js} +5 -2
- package/dist/src/render/diagram-renderer.js.map +1 -0
- package/dist/src/render/graphviz/GraphvizGenerator.d.ts +11 -0
- package/{src/graphviz/generator.js → dist/src/render/graphviz/GraphvizGenerator.js} +18 -95
- package/dist/src/render/graphviz/GraphvizGenerator.js.map +1 -0
- package/dist/src/render/graphviz/graphviz.d.ts +20 -0
- package/dist/src/render/graphviz/graphviz.js +115 -0
- package/dist/src/render/graphviz/graphviz.js.map +1 -0
- package/dist/src/render/graphviz/index.d.ts +1 -0
- package/{src → dist/src/render}/graphviz/index.js +1 -2
- package/dist/src/render/graphviz/index.js.map +1 -0
- package/dist/src/render/graphviz/styling.d.ts +9 -0
- package/dist/src/render/graphviz/styling.js +79 -0
- package/dist/src/render/graphviz/styling.js.map +1 -0
- package/{src → dist/src/render}/graphviz/tests/generator.test.d.ts +0 -0
- package/{src → dist/src/render}/graphviz/tests/generator.test.js +7 -7
- package/dist/src/render/graphviz/tests/generator.test.js.map +1 -0
- package/dist/src/render/index.d.ts +1 -0
- package/dist/src/render/index.js +14 -0
- package/dist/src/render/index.js.map +1 -0
- package/{src → dist/src}/test-fixtures/testCases.d.ts +0 -0
- package/{src → dist/src}/test-fixtures/testCases.js +18 -0
- package/{src → dist/src}/test-fixtures/testCases.js.map +1 -1
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_C6g-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_D3en-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_G4ad-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_M6g-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Mac-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P3dn-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_P4d-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_R6g-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T3a-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_T4g-Instance_48_Dark.png +0 -0
- package/icons/aws/Resource/Res_Compute/Res_48_Dark/Res_Amazon-EC2_Trainium-Instance_48_Dark.png +0 -0
- package/icons/aws/Service/Arch_Security-Identity-Compliance/64/Arch_Amazon-Cognito_64.png +0 -0
- package/icons/aws/cloudwatch_metric_filter.png +0 -0
- package/icons/aws/security_group.png +0 -0
- package/package.json +11 -6
- package/bin/cli.js.map +0 -1
- package/src/cdk/cdk-tree.js.map +0 -1
- package/src/cdk-dia.d.ts +0 -3
- package/src/cdk-dia.js.map +0 -1
- package/src/diagram/aws/aws-diagram-generator.js.map +0 -1
- package/src/diagram/aws/aws-edge-resolver.js.map +0 -1
- package/src/diagram/component/component.js.map +0 -1
- package/src/diagram/tests/generator.test.d.ts +0 -3
- package/src/diagram/tests/generator.test.js.map +0 -1
- package/src/graphviz/generator.d.ts +0 -15
- package/src/graphviz/generator.js.map +0 -1
- package/src/graphviz/index.d.ts +0 -2
- package/src/graphviz/index.js.map +0 -1
- package/src/graphviz/rendering-error.d.ts +0 -5
- package/src/graphviz/rendering-error.js.map +0 -1
- package/src/graphviz/styling.d.ts +0 -5
- package/src/graphviz/styling.js +0 -43
- package/src/graphviz/styling.js.map +0 -1
- 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":
|
|
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/
|
|
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":
|
|
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":
|
|
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):
|
|
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
|
|
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
|
|
@@ -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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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)).
|
|
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)).
|
|
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)).
|
|
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=
|
|
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.
|
|
26
|
-
const
|
|
27
|
-
const
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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(
|
|
123
|
-
const root =
|
|
124
|
-
this.addToGraph(root,
|
|
125
|
-
this.addEdges(
|
|
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
|
-
|
|
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
|
-
|
|
105
|
+
styling.applyBasicNodeStyling(gnode, labelFontSize);
|
|
149
106
|
if (node.icon != null && node.icon.path != null) {
|
|
150
|
-
|
|
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.
|
|
215
|
-
|
|
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
|
+
}
|