@aetherwing/fcp-drawio 0.2.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 +119 -0
- package/dist/adapter.d.ts +38 -0
- package/dist/adapter.js +259 -0
- package/dist/adapter.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/elk-layout.d.ts +49 -0
- package/dist/layout/elk-layout.js +144 -0
- package/dist/layout/elk-layout.js.map +1 -0
- package/dist/lib/drawio-cli.d.ts +22 -0
- package/dist/lib/drawio-cli.js +88 -0
- package/dist/lib/drawio-cli.js.map +1 -0
- package/dist/lib/node-types.d.ts +22 -0
- package/dist/lib/node-types.js +174 -0
- package/dist/lib/node-types.js.map +1 -0
- package/dist/lib/stencils/aws.d.ts +2 -0
- package/dist/lib/stencils/aws.js +69 -0
- package/dist/lib/stencils/aws.js.map +1 -0
- package/dist/lib/stencils/azure.d.ts +2 -0
- package/dist/lib/stencils/azure.js +54 -0
- package/dist/lib/stencils/azure.js.map +1 -0
- package/dist/lib/stencils/cisco.d.ts +2 -0
- package/dist/lib/stencils/cisco.js +30 -0
- package/dist/lib/stencils/cisco.js.map +1 -0
- package/dist/lib/stencils/gcp.d.ts +2 -0
- package/dist/lib/stencils/gcp.js +38 -0
- package/dist/lib/stencils/gcp.js.map +1 -0
- package/dist/lib/stencils/ibm.d.ts +2 -0
- package/dist/lib/stencils/ibm.js +32 -0
- package/dist/lib/stencils/ibm.js.map +1 -0
- package/dist/lib/stencils/index.d.ts +10 -0
- package/dist/lib/stencils/index.js +33 -0
- package/dist/lib/stencils/index.js.map +1 -0
- package/dist/lib/stencils/k8s.d.ts +2 -0
- package/dist/lib/stencils/k8s.js +32 -0
- package/dist/lib/stencils/k8s.js.map +1 -0
- package/dist/lib/stencils/types.d.ts +14 -0
- package/dist/lib/stencils/types.js +2 -0
- package/dist/lib/stencils/types.js.map +1 -0
- package/dist/lib/themes.d.ts +8 -0
- package/dist/lib/themes.js +32 -0
- package/dist/lib/themes.js.map +1 -0
- package/dist/model/defaults.d.ts +3 -0
- package/dist/model/defaults.js +26 -0
- package/dist/model/defaults.js.map +1 -0
- package/dist/model/diagram-model.d.ts +110 -0
- package/dist/model/diagram-model.js +938 -0
- package/dist/model/diagram-model.js.map +1 -0
- package/dist/model/event-log.d.ts +30 -0
- package/dist/model/event-log.js +112 -0
- package/dist/model/event-log.js.map +1 -0
- package/dist/model/id.d.ts +9 -0
- package/dist/model/id.js +35 -0
- package/dist/model/id.js.map +1 -0
- package/dist/model/reference-registry.d.ts +33 -0
- package/dist/model/reference-registry.js +143 -0
- package/dist/model/reference-registry.js.map +1 -0
- package/dist/model/spatial.d.ts +20 -0
- package/dist/model/spatial.js +59 -0
- package/dist/model/spatial.js.map +1 -0
- package/dist/parser/parse-op.d.ts +18 -0
- package/dist/parser/parse-op.js +430 -0
- package/dist/parser/parse-op.js.map +1 -0
- package/dist/parser/resolve-ref.d.ts +27 -0
- package/dist/parser/resolve-ref.js +232 -0
- package/dist/parser/resolve-ref.js.map +1 -0
- package/dist/parser/tokenizer.d.ts +6 -0
- package/dist/parser/tokenizer.js +7 -0
- package/dist/parser/tokenizer.js.map +1 -0
- package/dist/serialization/connector-intelligence.d.ts +35 -0
- package/dist/serialization/connector-intelligence.js +336 -0
- package/dist/serialization/connector-intelligence.js.map +1 -0
- package/dist/serialization/deserialize.d.ts +6 -0
- package/dist/serialization/deserialize.js +511 -0
- package/dist/serialization/deserialize.js.map +1 -0
- package/dist/serialization/serialize.d.ts +15 -0
- package/dist/serialization/serialize.js +332 -0
- package/dist/serialization/serialize.js.map +1 -0
- package/dist/server/intent-layer.d.ts +48 -0
- package/dist/server/intent-layer.js +1322 -0
- package/dist/server/intent-layer.js.map +1 -0
- package/dist/server/mcp-server.d.ts +7 -0
- package/dist/server/mcp-server.js +26 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/server/model-map.d.ts +8 -0
- package/dist/server/model-map.js +240 -0
- package/dist/server/model-map.js.map +1 -0
- package/dist/server/query-handler.d.ts +19 -0
- package/dist/server/query-handler.js +148 -0
- package/dist/server/query-handler.js.map +1 -0
- package/dist/server/response-formatter.d.ts +56 -0
- package/dist/server/response-formatter.js +351 -0
- package/dist/server/response-formatter.js.map +1 -0
- package/dist/server/session-handler.d.ts +6 -0
- package/dist/server/session-handler.js +127 -0
- package/dist/server/session-handler.js.map +1 -0
- package/dist/types/index.d.ts +238 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/verb-specs.d.ts +6 -0
- package/dist/verb-specs.js +144 -0
- package/dist/verb-specs.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect draw.io desktop CLI. Returns absolute path or null.
|
|
3
|
+
* Called once at server startup.
|
|
4
|
+
*/
|
|
5
|
+
export declare function detectDrawioCLI(): string | null;
|
|
6
|
+
export interface SnapshotOptions {
|
|
7
|
+
cliPath: string;
|
|
8
|
+
diagramXml: string;
|
|
9
|
+
width?: number;
|
|
10
|
+
page?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface SnapshotResult {
|
|
13
|
+
base64: string;
|
|
14
|
+
mimeType: "image/png";
|
|
15
|
+
width: number;
|
|
16
|
+
sizeBytes: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Render a diagram to PNG via draw.io CLI.
|
|
20
|
+
* Writes temp files, exports, reads result, cleans up.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderSnapshot(options: SnapshotOptions): Promise<SnapshotResult>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { existsSync, writeFileSync, readFileSync, unlinkSync } from "node:fs";
|
|
2
|
+
import { execFileSync, execFile } from "node:child_process";
|
|
3
|
+
import { platform, tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { randomBytes } from "node:crypto";
|
|
6
|
+
const CANDIDATE_PATHS = {
|
|
7
|
+
darwin: ["/Applications/draw.io.app/Contents/MacOS/draw.io"],
|
|
8
|
+
linux: ["/usr/bin/drawio", "/snap/bin/drawio", "/usr/local/bin/drawio"],
|
|
9
|
+
win32: [
|
|
10
|
+
"C:\\Program Files\\draw.io\\draw.io.exe",
|
|
11
|
+
`${process.env.LOCALAPPDATA ?? ""}\\draw.io\\draw.io.exe`,
|
|
12
|
+
],
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Detect draw.io desktop CLI. Returns absolute path or null.
|
|
16
|
+
* Called once at server startup.
|
|
17
|
+
*/
|
|
18
|
+
export function detectDrawioCLI() {
|
|
19
|
+
const os = platform();
|
|
20
|
+
const candidates = CANDIDATE_PATHS[os] ?? [];
|
|
21
|
+
for (const p of candidates) {
|
|
22
|
+
if (existsSync(p))
|
|
23
|
+
return p;
|
|
24
|
+
}
|
|
25
|
+
// Fallback: try PATH lookup
|
|
26
|
+
try {
|
|
27
|
+
const which = os === "win32" ? "where" : "which";
|
|
28
|
+
const result = execFileSync(which, ["drawio"], {
|
|
29
|
+
encoding: "utf-8",
|
|
30
|
+
timeout: 2000,
|
|
31
|
+
}).trim();
|
|
32
|
+
if (result && existsSync(result))
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// not on PATH
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Render a diagram to PNG via draw.io CLI.
|
|
42
|
+
* Writes temp files, exports, reads result, cleans up.
|
|
43
|
+
*/
|
|
44
|
+
export async function renderSnapshot(options) {
|
|
45
|
+
const { cliPath, diagramXml, width = 1200, page = 1 } = options;
|
|
46
|
+
const id = randomBytes(6).toString("hex");
|
|
47
|
+
const inputPath = join(tmpdir(), `drawio-snapshot-${id}.drawio`);
|
|
48
|
+
const outputPath = join(tmpdir(), `drawio-snapshot-${id}.png`);
|
|
49
|
+
try {
|
|
50
|
+
writeFileSync(inputPath, diagramXml, "utf-8");
|
|
51
|
+
await new Promise((resolve, reject) => {
|
|
52
|
+
execFile(cliPath, [
|
|
53
|
+
"--export",
|
|
54
|
+
"--format", "png",
|
|
55
|
+
"--width", String(width),
|
|
56
|
+
"--crop",
|
|
57
|
+
"--border", "10",
|
|
58
|
+
"--page-index", String(page), // CLI is 1-based, same as our API
|
|
59
|
+
"--output", outputPath,
|
|
60
|
+
inputPath,
|
|
61
|
+
], { timeout: 15_000 }, (error) => {
|
|
62
|
+
if (error)
|
|
63
|
+
reject(new Error(`draw.io export failed: ${error.message}`));
|
|
64
|
+
else
|
|
65
|
+
resolve();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
const pngBuffer = readFileSync(outputPath);
|
|
69
|
+
const base64 = pngBuffer.toString("base64");
|
|
70
|
+
return {
|
|
71
|
+
base64,
|
|
72
|
+
mimeType: "image/png",
|
|
73
|
+
width,
|
|
74
|
+
sizeBytes: pngBuffer.length,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
try {
|
|
79
|
+
unlinkSync(inputPath);
|
|
80
|
+
}
|
|
81
|
+
catch { /* cleaned up */ }
|
|
82
|
+
try {
|
|
83
|
+
unlinkSync(outputPath);
|
|
84
|
+
}
|
|
85
|
+
catch { /* cleaned up */ }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=drawio-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawio-cli.js","sourceRoot":"","sources":["../../src/lib/drawio-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { NodeTypeDefinition, ShapeType } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Built-in node types with their draw.io style mappings and default sizes.
|
|
4
|
+
*
|
|
5
|
+
* Style strings follow draw.io's semicolon-delimited format.
|
|
6
|
+
* The base style is a template — theme colors are merged at creation time.
|
|
7
|
+
*/
|
|
8
|
+
export declare const NODE_TYPES: Record<ShapeType, NodeTypeDefinition>;
|
|
9
|
+
export declare function isShapeType(name: string): name is ShapeType;
|
|
10
|
+
export declare function getNodeType(name: string): NodeTypeDefinition | null;
|
|
11
|
+
/**
|
|
12
|
+
* Infer shape type from a label using tokenized matching.
|
|
13
|
+
* Returns null if no pattern matches (caller should default to "svc").
|
|
14
|
+
*/
|
|
15
|
+
export declare function inferTypeFromLabel(label: string): ShapeType | null;
|
|
16
|
+
/**
|
|
17
|
+
* Compute default size for a shape type, potentially expanding width for long labels.
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeDefaultSize(type: ShapeType, label: string): {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in node types with their draw.io style mappings and default sizes.
|
|
3
|
+
*
|
|
4
|
+
* Style strings follow draw.io's semicolon-delimited format.
|
|
5
|
+
* The base style is a template — theme colors are merged at creation time.
|
|
6
|
+
*/
|
|
7
|
+
export const NODE_TYPES = {
|
|
8
|
+
box: {
|
|
9
|
+
shorthand: "box",
|
|
10
|
+
drawioShape: "rectangle",
|
|
11
|
+
baseStyle: "whiteSpace=wrap;html=1;",
|
|
12
|
+
defaultWidth: 120,
|
|
13
|
+
defaultHeight: 60,
|
|
14
|
+
description: "Plain rectangle (generic)",
|
|
15
|
+
},
|
|
16
|
+
svc: {
|
|
17
|
+
shorthand: "svc",
|
|
18
|
+
drawioShape: "rounded rectangle",
|
|
19
|
+
baseStyle: "rounded=1;whiteSpace=wrap;html=1;",
|
|
20
|
+
defaultWidth: 140,
|
|
21
|
+
defaultHeight: 60,
|
|
22
|
+
description: "Rounded rectangle (services, components)",
|
|
23
|
+
},
|
|
24
|
+
circle: {
|
|
25
|
+
shorthand: "circle",
|
|
26
|
+
drawioShape: "ellipse",
|
|
27
|
+
baseStyle: "ellipse;whiteSpace=wrap;html=1;aspect=fixed;",
|
|
28
|
+
defaultWidth: 60,
|
|
29
|
+
defaultHeight: 60,
|
|
30
|
+
description: "Ellipse (states, events)",
|
|
31
|
+
},
|
|
32
|
+
decision: {
|
|
33
|
+
shorthand: "decision",
|
|
34
|
+
drawioShape: "rhombus",
|
|
35
|
+
baseStyle: "rhombus;whiteSpace=wrap;html=1;",
|
|
36
|
+
defaultWidth: 100,
|
|
37
|
+
defaultHeight: 80,
|
|
38
|
+
description: "Diamond (decisions, conditions)",
|
|
39
|
+
},
|
|
40
|
+
db: {
|
|
41
|
+
shorthand: "db",
|
|
42
|
+
drawioShape: "cylinder3",
|
|
43
|
+
baseStyle: "shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;",
|
|
44
|
+
defaultWidth: 120,
|
|
45
|
+
defaultHeight: 80,
|
|
46
|
+
description: "Cylinder (databases, storage)",
|
|
47
|
+
},
|
|
48
|
+
api: {
|
|
49
|
+
shorthand: "api",
|
|
50
|
+
drawioShape: "hexagon",
|
|
51
|
+
baseStyle: "shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=20;",
|
|
52
|
+
defaultWidth: 120,
|
|
53
|
+
defaultHeight: 80,
|
|
54
|
+
description: "Hexagon (APIs, gateways)",
|
|
55
|
+
},
|
|
56
|
+
cloud: {
|
|
57
|
+
shorthand: "cloud",
|
|
58
|
+
drawioShape: "cloud",
|
|
59
|
+
baseStyle: "ellipse;shape=cloud;whiteSpace=wrap;html=1;",
|
|
60
|
+
defaultWidth: 140,
|
|
61
|
+
defaultHeight: 60,
|
|
62
|
+
description: "Cloud (external services)",
|
|
63
|
+
},
|
|
64
|
+
actor: {
|
|
65
|
+
shorthand: "actor",
|
|
66
|
+
drawioShape: "shape=mxgraph.basic.person",
|
|
67
|
+
baseStyle: "shape=mxgraph.basic.person;whiteSpace=wrap;html=1;",
|
|
68
|
+
defaultWidth: 40,
|
|
69
|
+
defaultHeight: 60,
|
|
70
|
+
description: "Person shape (users, personas)",
|
|
71
|
+
},
|
|
72
|
+
doc: {
|
|
73
|
+
shorthand: "doc",
|
|
74
|
+
drawioShape: "document",
|
|
75
|
+
baseStyle: "shape=document;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=0.27;",
|
|
76
|
+
defaultWidth: 120,
|
|
77
|
+
defaultHeight: 80,
|
|
78
|
+
description: "Document shape (files, reports)",
|
|
79
|
+
},
|
|
80
|
+
queue: {
|
|
81
|
+
shorthand: "queue",
|
|
82
|
+
drawioShape: "parallelogram",
|
|
83
|
+
baseStyle: "shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;size=20;",
|
|
84
|
+
defaultWidth: 140,
|
|
85
|
+
defaultHeight: 60,
|
|
86
|
+
description: "Parallelogram (queues, streams)",
|
|
87
|
+
},
|
|
88
|
+
triangle: {
|
|
89
|
+
shorthand: "triangle",
|
|
90
|
+
drawioShape: "triangle",
|
|
91
|
+
baseStyle: "triangle;whiteSpace=wrap;html=1;",
|
|
92
|
+
defaultWidth: 80,
|
|
93
|
+
defaultHeight: 80,
|
|
94
|
+
description: "Triangle (warnings, deltas)",
|
|
95
|
+
},
|
|
96
|
+
process: {
|
|
97
|
+
shorthand: "process",
|
|
98
|
+
drawioShape: "process",
|
|
99
|
+
baseStyle: "shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;size=0.1;",
|
|
100
|
+
defaultWidth: 120,
|
|
101
|
+
defaultHeight: 60,
|
|
102
|
+
description: "Double-bordered rect (predefined processes)",
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
const SHAPE_TYPES = new Set(Object.keys(NODE_TYPES));
|
|
106
|
+
export function isShapeType(name) {
|
|
107
|
+
return SHAPE_TYPES.has(name);
|
|
108
|
+
}
|
|
109
|
+
export function getNodeType(name) {
|
|
110
|
+
if (isShapeType(name)) {
|
|
111
|
+
return NODE_TYPES[name];
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Split a label into tokens on camelCase, PascalCase, snake_case, kebab-case, and space boundaries.
|
|
117
|
+
* "UserDB" → ["User", "DB"], "event_bus" → ["event", "bus"], "Redis Cache" → ["Redis", "Cache"]
|
|
118
|
+
*/
|
|
119
|
+
function tokenizeLabel(label) {
|
|
120
|
+
return label
|
|
121
|
+
.replace(/([a-z])([A-Z])/g, "$1 $2") // camelCase split
|
|
122
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2") // consecutive uppercase split
|
|
123
|
+
.replace(/[_\-]/g, " ") // snake/kebab to spaces
|
|
124
|
+
.split(/\s+/)
|
|
125
|
+
.filter(Boolean);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Infer shape type from a label using tokenized matching.
|
|
129
|
+
* Returns null if no pattern matches (caller should default to "svc").
|
|
130
|
+
*/
|
|
131
|
+
export function inferTypeFromLabel(label) {
|
|
132
|
+
const tokens = tokenizeLabel(label).map((t) => t.toLowerCase());
|
|
133
|
+
const joined = tokens.join(" ");
|
|
134
|
+
// Database patterns
|
|
135
|
+
const dbWords = new Set(["database", "db", "store", "cache", "redis", "postgres", "mysql", "mongo"]);
|
|
136
|
+
if (tokens.some((t) => dbWords.has(t)))
|
|
137
|
+
return "db";
|
|
138
|
+
// Decision patterns
|
|
139
|
+
const decisionWords = new Set(["decision", "check", "condition"]);
|
|
140
|
+
if (tokens.some((t) => decisionWords.has(t)) || label.endsWith("?"))
|
|
141
|
+
return "decision";
|
|
142
|
+
// Actor patterns
|
|
143
|
+
const actorWords = new Set(["user", "actor", "person", "customer", "admin"]);
|
|
144
|
+
if (tokens.some((t) => actorWords.has(t)))
|
|
145
|
+
return "actor";
|
|
146
|
+
// Queue patterns
|
|
147
|
+
const queueWords = new Set(["queue", "buffer", "stream", "kafka", "sqs", "event"]);
|
|
148
|
+
if (tokens.some((t) => queueWords.has(t)))
|
|
149
|
+
return "queue";
|
|
150
|
+
// Cloud patterns
|
|
151
|
+
const cloudWords = new Set(["cloud", "external", "internet", "cdn"]);
|
|
152
|
+
if (tokens.some((t) => cloudWords.has(t)))
|
|
153
|
+
return "cloud";
|
|
154
|
+
// Document patterns
|
|
155
|
+
const docWords = new Set(["document", "file", "log", "report"]);
|
|
156
|
+
if (tokens.some((t) => docWords.has(t)))
|
|
157
|
+
return "doc";
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Compute default size for a shape type, potentially expanding width for long labels.
|
|
162
|
+
*/
|
|
163
|
+
export function computeDefaultSize(type, label) {
|
|
164
|
+
const def = NODE_TYPES[type];
|
|
165
|
+
let width = def.defaultWidth;
|
|
166
|
+
const height = def.defaultHeight;
|
|
167
|
+
// Expand width for long labels (rough: ~8px per character)
|
|
168
|
+
const labelWidth = label.length * 8 + 20; // padding
|
|
169
|
+
if (labelWidth > width) {
|
|
170
|
+
width = Math.ceil(labelWidth / 10) * 10; // round up to nearest 10
|
|
171
|
+
}
|
|
172
|
+
return { width, height };
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=node-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../src/lib/node-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// AWS category colors
|
|
2
|
+
const COMPUTE = "#ED7100";
|
|
3
|
+
const STORAGE = "#7AA116";
|
|
4
|
+
const DATABASE = "#C925D1";
|
|
5
|
+
const NETWORKING = "#8C4FFF";
|
|
6
|
+
const SECURITY = "#DD344C";
|
|
7
|
+
const INTEGRATION = "#E7157B";
|
|
8
|
+
const ML = "#01A88D";
|
|
9
|
+
const MANAGEMENT = "#E7157B";
|
|
10
|
+
const ANALYTICS = "#8C4FFF";
|
|
11
|
+
const CONTAINERS = "#ED7100";
|
|
12
|
+
function awsStyle(resIcon, color) {
|
|
13
|
+
return `sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=${color};strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.${resIcon};`;
|
|
14
|
+
}
|
|
15
|
+
function awsGroupStyle(shape, color) {
|
|
16
|
+
return `sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=${color};strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.${shape};`;
|
|
17
|
+
}
|
|
18
|
+
export const AWS_PACK = {
|
|
19
|
+
id: "aws",
|
|
20
|
+
name: "Amazon Web Services",
|
|
21
|
+
prefix: "mxgraph.aws4",
|
|
22
|
+
entries: [
|
|
23
|
+
// Compute
|
|
24
|
+
{ id: "lambda", label: "Lambda", category: "Compute", baseStyle: awsStyle("lambda", COMPUTE), defaultWidth: 60, defaultHeight: 60 },
|
|
25
|
+
{ id: "ec2", label: "EC2", category: "Compute", baseStyle: awsStyle("ec2", COMPUTE), defaultWidth: 60, defaultHeight: 60 },
|
|
26
|
+
{ id: "ecs", label: "ECS", category: "Compute", baseStyle: awsStyle("ecs", CONTAINERS), defaultWidth: 60, defaultHeight: 60 },
|
|
27
|
+
{ id: "eks", label: "EKS", category: "Compute", baseStyle: awsStyle("eks", CONTAINERS), defaultWidth: 60, defaultHeight: 60 },
|
|
28
|
+
{ id: "fargate", label: "Fargate", category: "Compute", baseStyle: awsStyle("fargate", CONTAINERS), defaultWidth: 60, defaultHeight: 60 },
|
|
29
|
+
{ id: "batch", label: "Batch", category: "Compute", baseStyle: awsStyle("batch", COMPUTE), defaultWidth: 60, defaultHeight: 60 },
|
|
30
|
+
{ id: "lightsail", label: "Lightsail", category: "Compute", baseStyle: awsStyle("lightsail", COMPUTE), defaultWidth: 60, defaultHeight: 60 },
|
|
31
|
+
// Storage
|
|
32
|
+
{ id: "s3", label: "S3", category: "Storage", baseStyle: awsGroupStyle("s3", STORAGE), defaultWidth: 60, defaultHeight: 60 },
|
|
33
|
+
{ id: "ebs", label: "EBS", category: "Storage", baseStyle: awsStyle("elastic_block_store", STORAGE), defaultWidth: 60, defaultHeight: 60 },
|
|
34
|
+
{ id: "efs", label: "EFS", category: "Storage", baseStyle: awsStyle("elastic_file_system", STORAGE), defaultWidth: 60, defaultHeight: 60 },
|
|
35
|
+
{ id: "glacier", label: "Glacier", category: "Storage", baseStyle: awsStyle("glacier", STORAGE), defaultWidth: 60, defaultHeight: 60 },
|
|
36
|
+
// Database
|
|
37
|
+
{ id: "dynamodb", label: "DynamoDB", category: "Database", baseStyle: awsStyle("dynamodb", DATABASE), defaultWidth: 60, defaultHeight: 60 },
|
|
38
|
+
{ id: "rds", label: "RDS", category: "Database", baseStyle: awsStyle("rds", DATABASE), defaultWidth: 60, defaultHeight: 60 },
|
|
39
|
+
{ id: "aurora", label: "Aurora", category: "Database", baseStyle: awsStyle("aurora", DATABASE), defaultWidth: 60, defaultHeight: 60 },
|
|
40
|
+
{ id: "elasticache", label: "ElastiCache", category: "Database", baseStyle: awsStyle("elasticache", DATABASE), defaultWidth: 60, defaultHeight: 60 },
|
|
41
|
+
{ id: "redshift", label: "Redshift", category: "Database", baseStyle: awsStyle("redshift", DATABASE), defaultWidth: 60, defaultHeight: 60 },
|
|
42
|
+
{ id: "neptune", label: "Neptune", category: "Database", baseStyle: awsStyle("neptune", DATABASE), defaultWidth: 60, defaultHeight: 60 },
|
|
43
|
+
// Networking
|
|
44
|
+
{ id: "vpc", label: "VPC", category: "Networking", baseStyle: awsStyle("vpc", NETWORKING), defaultWidth: 60, defaultHeight: 60 },
|
|
45
|
+
{ id: "cloudfront", label: "CloudFront", category: "Networking", baseStyle: awsStyle("cloudfront", NETWORKING), defaultWidth: 60, defaultHeight: 60 },
|
|
46
|
+
{ id: "route53", label: "Route 53", category: "Networking", baseStyle: awsStyle("route_53", NETWORKING), defaultWidth: 60, defaultHeight: 60 },
|
|
47
|
+
{ id: "elb", label: "ELB", category: "Networking", baseStyle: awsStyle("elastic_load_balancing", NETWORKING), defaultWidth: 60, defaultHeight: 60 },
|
|
48
|
+
{ id: "api-gateway", label: "API Gateway", category: "Networking", baseStyle: awsStyle("api_gateway", NETWORKING), defaultWidth: 60, defaultHeight: 60 },
|
|
49
|
+
// Security
|
|
50
|
+
{ id: "iam", label: "IAM", category: "Security", baseStyle: awsStyle("iam", SECURITY), defaultWidth: 60, defaultHeight: 60 },
|
|
51
|
+
{ id: "cognito", label: "Cognito", category: "Security", baseStyle: awsStyle("cognito", SECURITY), defaultWidth: 60, defaultHeight: 60 },
|
|
52
|
+
{ id: "kms", label: "KMS", category: "Security", baseStyle: awsStyle("key_management_service", SECURITY), defaultWidth: 60, defaultHeight: 60 },
|
|
53
|
+
// Integration
|
|
54
|
+
{ id: "sqs", label: "SQS", category: "Integration", baseStyle: awsStyle("sqs", INTEGRATION), defaultWidth: 60, defaultHeight: 60 },
|
|
55
|
+
{ id: "sns", label: "SNS", category: "Integration", baseStyle: awsStyle("sns", INTEGRATION), defaultWidth: 60, defaultHeight: 60 },
|
|
56
|
+
{ id: "eventbridge", label: "EventBridge", category: "Integration", baseStyle: awsStyle("eventbridge", INTEGRATION), defaultWidth: 60, defaultHeight: 60 },
|
|
57
|
+
{ id: "step-functions", label: "Step Functions", category: "Integration", baseStyle: awsStyle("step_functions", INTEGRATION), defaultWidth: 60, defaultHeight: 60 },
|
|
58
|
+
// Analytics
|
|
59
|
+
{ id: "kinesis", label: "Kinesis", category: "Analytics", baseStyle: awsStyle("kinesis", ANALYTICS), defaultWidth: 60, defaultHeight: 60 },
|
|
60
|
+
{ id: "athena", label: "Athena", category: "Analytics", baseStyle: awsStyle("athena", ANALYTICS), defaultWidth: 60, defaultHeight: 60 },
|
|
61
|
+
// ML
|
|
62
|
+
{ id: "sagemaker", label: "SageMaker", category: "ML", baseStyle: awsStyle("sagemaker", ML), defaultWidth: 60, defaultHeight: 60 },
|
|
63
|
+
{ id: "bedrock", label: "Bedrock", category: "ML", baseStyle: awsStyle("bedrock", ML), defaultWidth: 60, defaultHeight: 60 },
|
|
64
|
+
// Management
|
|
65
|
+
{ id: "cloudwatch", label: "CloudWatch", category: "Management", baseStyle: awsStyle("cloudwatch_2", MANAGEMENT), defaultWidth: 60, defaultHeight: 60 },
|
|
66
|
+
{ id: "cloudformation", label: "CloudFormation", category: "Management", baseStyle: awsStyle("cloudformation", MANAGEMENT), defaultWidth: 60, defaultHeight: 60 },
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=aws.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../../src/lib/stencils/aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Azure category colors
|
|
2
|
+
const COMPUTE = "#0078D4";
|
|
3
|
+
const NETWORKING = "#0078D4";
|
|
4
|
+
const STORAGE = "#0078D4";
|
|
5
|
+
const DATABASE = "#0078D4";
|
|
6
|
+
const AI = "#0078D4";
|
|
7
|
+
const INTEGRATION = "#0078D4";
|
|
8
|
+
const SECURITY = "#0078D4";
|
|
9
|
+
const DEVOPS = "#0078D4";
|
|
10
|
+
const CONTAINERS = "#0078D4";
|
|
11
|
+
function azureStyle(shape) {
|
|
12
|
+
return `sketch=0;aspect=fixed;html=1;dashed=0;fillColor=#0078D4;strokeColor=#ffffff;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.azure.${shape};`;
|
|
13
|
+
}
|
|
14
|
+
export const AZURE_PACK = {
|
|
15
|
+
id: "azure",
|
|
16
|
+
name: "Microsoft Azure",
|
|
17
|
+
prefix: "mxgraph.azure",
|
|
18
|
+
entries: [
|
|
19
|
+
// Compute
|
|
20
|
+
{ id: "azure-vm", label: "Virtual Machine", category: "Compute", baseStyle: azureStyle("virtual_machine"), defaultWidth: 50, defaultHeight: 50 },
|
|
21
|
+
{ id: "azure-functions", label: "Functions", category: "Compute", baseStyle: azureStyle("function_apps"), defaultWidth: 50, defaultHeight: 50 },
|
|
22
|
+
{ id: "azure-app-service", label: "App Service", category: "Compute", baseStyle: azureStyle("app_services"), defaultWidth: 50, defaultHeight: 50 },
|
|
23
|
+
{ id: "azure-logic-apps", label: "Logic Apps", category: "Compute", baseStyle: azureStyle("logic_apps"), defaultWidth: 50, defaultHeight: 50 },
|
|
24
|
+
// Containers
|
|
25
|
+
{ id: "azure-aks", label: "AKS", category: "Containers", baseStyle: azureStyle("kubernetes_services"), defaultWidth: 50, defaultHeight: 50 },
|
|
26
|
+
{ id: "azure-container", label: "Container Instances", category: "Containers", baseStyle: azureStyle("container_instances"), defaultWidth: 50, defaultHeight: 50 },
|
|
27
|
+
{ id: "azure-acr", label: "Container Registry", category: "Containers", baseStyle: azureStyle("container_registries"), defaultWidth: 50, defaultHeight: 50 },
|
|
28
|
+
// Networking
|
|
29
|
+
{ id: "azure-vnet", label: "Virtual Network", category: "Networking", baseStyle: azureStyle("virtual_network"), defaultWidth: 50, defaultHeight: 50 },
|
|
30
|
+
{ id: "azure-lb", label: "Load Balancer", category: "Networking", baseStyle: azureStyle("load_balancers"), defaultWidth: 50, defaultHeight: 50 },
|
|
31
|
+
{ id: "azure-appgw", label: "App Gateway", category: "Networking", baseStyle: azureStyle("application_gateways"), defaultWidth: 50, defaultHeight: 50 },
|
|
32
|
+
{ id: "azure-dns", label: "DNS", category: "Networking", baseStyle: azureStyle("dns_zones"), defaultWidth: 50, defaultHeight: 50 },
|
|
33
|
+
{ id: "azure-cdn", label: "CDN", category: "Networking", baseStyle: azureStyle("cdn_profiles"), defaultWidth: 50, defaultHeight: 50 },
|
|
34
|
+
{ id: "azure-frontdoor", label: "Front Door", category: "Networking", baseStyle: azureStyle("front_doors"), defaultWidth: 50, defaultHeight: 50 },
|
|
35
|
+
// Storage
|
|
36
|
+
{ id: "azure-storage", label: "Storage Account", category: "Storage", baseStyle: azureStyle("storage"), defaultWidth: 50, defaultHeight: 50 },
|
|
37
|
+
{ id: "azure-blob", label: "Blob Storage", category: "Storage", baseStyle: azureStyle("storage_blob"), defaultWidth: 50, defaultHeight: 50 },
|
|
38
|
+
// Database
|
|
39
|
+
{ id: "azure-sql", label: "SQL Database", category: "Database", baseStyle: azureStyle("sql_databases"), defaultWidth: 50, defaultHeight: 50 },
|
|
40
|
+
{ id: "azure-cosmos", label: "Cosmos DB", category: "Database", baseStyle: azureStyle("cosmos_db"), defaultWidth: 50, defaultHeight: 50 },
|
|
41
|
+
{ id: "azure-redis", label: "Redis Cache", category: "Database", baseStyle: azureStyle("cache_redis"), defaultWidth: 50, defaultHeight: 50 },
|
|
42
|
+
// Integration
|
|
43
|
+
{ id: "azure-service-bus", label: "Service Bus", category: "Integration", baseStyle: azureStyle("service_bus"), defaultWidth: 50, defaultHeight: 50 },
|
|
44
|
+
{ id: "azure-event-hub", label: "Event Hubs", category: "Integration", baseStyle: azureStyle("event_hubs"), defaultWidth: 50, defaultHeight: 50 },
|
|
45
|
+
{ id: "azure-event-grid", label: "Event Grid", category: "Integration", baseStyle: azureStyle("event_grid_domains"), defaultWidth: 50, defaultHeight: 50 },
|
|
46
|
+
{ id: "azure-api-mgmt", label: "API Management", category: "Integration", baseStyle: azureStyle("api_management_services"), defaultWidth: 50, defaultHeight: 50 },
|
|
47
|
+
// Security
|
|
48
|
+
{ id: "azure-ad", label: "Entra ID", category: "Security", baseStyle: azureStyle("active_directory"), defaultWidth: 50, defaultHeight: 50 },
|
|
49
|
+
{ id: "azure-keyvault", label: "Key Vault", category: "Security", baseStyle: azureStyle("key_vaults"), defaultWidth: 50, defaultHeight: 50 },
|
|
50
|
+
// AI
|
|
51
|
+
{ id: "azure-openai", label: "OpenAI Service", category: "AI", baseStyle: azureStyle("cognitive_services"), defaultWidth: 50, defaultHeight: 50 },
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=azure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure.js","sourceRoot":"","sources":["../../../src/lib/stencils/azure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
function ciscoStyle(shape) {
|
|
2
|
+
return `sketch=0;aspect=fixed;html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.cisco19.${shape};`;
|
|
3
|
+
}
|
|
4
|
+
export const CISCO_PACK = {
|
|
5
|
+
id: "cisco",
|
|
6
|
+
name: "Cisco Networking",
|
|
7
|
+
prefix: "mxgraph.cisco19",
|
|
8
|
+
entries: [
|
|
9
|
+
// Network Devices
|
|
10
|
+
{ id: "router", label: "Router", category: "Network Devices", baseStyle: ciscoStyle("rect_router"), defaultWidth: 50, defaultHeight: 50 },
|
|
11
|
+
{ id: "switch", label: "Switch", category: "Network Devices", baseStyle: ciscoStyle("rect_switch"), defaultWidth: 50, defaultHeight: 50 },
|
|
12
|
+
{ id: "firewall", label: "Firewall", category: "Network Devices", baseStyle: ciscoStyle("firewall"), defaultWidth: 50, defaultHeight: 50 },
|
|
13
|
+
{ id: "access-point", label: "Access Point", category: "Network Devices", baseStyle: ciscoStyle("access_point"), defaultWidth: 50, defaultHeight: 50 },
|
|
14
|
+
{ id: "cisco-server", label: "Server", category: "Network Devices", baseStyle: ciscoStyle("rack_server"), defaultWidth: 50, defaultHeight: 50 },
|
|
15
|
+
// Wireless
|
|
16
|
+
{ id: "wireless-router", label: "Wireless Router", category: "Wireless", baseStyle: ciscoStyle("wireless_router"), defaultWidth: 50, defaultHeight: 50 },
|
|
17
|
+
{ id: "wlan-controller", label: "WLAN Controller", category: "Wireless", baseStyle: ciscoStyle("wireless_lan_controller"), defaultWidth: 50, defaultHeight: 50 },
|
|
18
|
+
// Security
|
|
19
|
+
{ id: "cisco-vpn", label: "VPN Gateway", category: "Security", baseStyle: ciscoStyle("vpn_gateway"), defaultWidth: 50, defaultHeight: 50 },
|
|
20
|
+
{ id: "cisco-ips", label: "IPS", category: "Security", baseStyle: ciscoStyle("intrusion_protection_system"), defaultWidth: 50, defaultHeight: 50 },
|
|
21
|
+
{ id: "cisco-asa", label: "ASA", category: "Security", baseStyle: ciscoStyle("asa_5500"), defaultWidth: 50, defaultHeight: 50 },
|
|
22
|
+
// Infrastructure
|
|
23
|
+
{ id: "cisco-cloud", label: "Cloud", category: "Infrastructure", baseStyle: ciscoStyle("cloud"), defaultWidth: 50, defaultHeight: 50 },
|
|
24
|
+
{ id: "cisco-internet", label: "Internet", category: "Infrastructure", baseStyle: ciscoStyle("internet"), defaultWidth: 50, defaultHeight: 50 },
|
|
25
|
+
{ id: "cisco-storage", label: "Storage", category: "Infrastructure", baseStyle: ciscoStyle("storage"), defaultWidth: 50, defaultHeight: 50 },
|
|
26
|
+
{ id: "cisco-workstation", label: "Workstation", category: "Infrastructure", baseStyle: ciscoStyle("workstation"), defaultWidth: 50, defaultHeight: 50 },
|
|
27
|
+
{ id: "cisco-phone", label: "IP Phone", category: "Infrastructure", baseStyle: ciscoStyle("ip_phone"), defaultWidth: 50, defaultHeight: 50 },
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=cisco.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cisco.js","sourceRoot":"","sources":["../../../src/lib/stencils/cisco.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function gcpStyle(shape) {
|
|
2
|
+
return `sketch=0;aspect=fixed;html=1;dashed=0;fillColor=#4285F4;strokeColor=#ffffff;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.gcp2.${shape};`;
|
|
3
|
+
}
|
|
4
|
+
export const GCP_PACK = {
|
|
5
|
+
id: "gcp",
|
|
6
|
+
name: "Google Cloud Platform",
|
|
7
|
+
prefix: "mxgraph.gcp2",
|
|
8
|
+
entries: [
|
|
9
|
+
// Compute
|
|
10
|
+
{ id: "cloud-run", label: "Cloud Run", category: "Compute", baseStyle: gcpStyle("cloud_run"), defaultWidth: 50, defaultHeight: 50 },
|
|
11
|
+
{ id: "cloud-functions", label: "Cloud Functions", category: "Compute", baseStyle: gcpStyle("cloud_functions"), defaultWidth: 50, defaultHeight: 50 },
|
|
12
|
+
{ id: "compute-engine", label: "Compute Engine", category: "Compute", baseStyle: gcpStyle("compute_engine"), defaultWidth: 50, defaultHeight: 50 },
|
|
13
|
+
{ id: "app-engine", label: "App Engine", category: "Compute", baseStyle: gcpStyle("app_engine"), defaultWidth: 50, defaultHeight: 50 },
|
|
14
|
+
{ id: "gke", label: "GKE", category: "Compute", baseStyle: gcpStyle("google_kubernetes_engine"), defaultWidth: 50, defaultHeight: 50 },
|
|
15
|
+
// Storage
|
|
16
|
+
{ id: "cloud-storage", label: "Cloud Storage", category: "Storage", baseStyle: gcpStyle("cloud_storage"), defaultWidth: 50, defaultHeight: 50 },
|
|
17
|
+
{ id: "persistent-disk", label: "Persistent Disk", category: "Storage", baseStyle: gcpStyle("persistent_disk"), defaultWidth: 50, defaultHeight: 50 },
|
|
18
|
+
{ id: "filestore", label: "Filestore", category: "Storage", baseStyle: gcpStyle("filestore"), defaultWidth: 50, defaultHeight: 50 },
|
|
19
|
+
// Database
|
|
20
|
+
{ id: "cloud-sql", label: "Cloud SQL", category: "Database", baseStyle: gcpStyle("cloud_sql"), defaultWidth: 50, defaultHeight: 50 },
|
|
21
|
+
{ id: "cloud-spanner", label: "Cloud Spanner", category: "Database", baseStyle: gcpStyle("cloud_spanner"), defaultWidth: 50, defaultHeight: 50 },
|
|
22
|
+
{ id: "bigtable", label: "Bigtable", category: "Database", baseStyle: gcpStyle("cloud_bigtable"), defaultWidth: 50, defaultHeight: 50 },
|
|
23
|
+
{ id: "firestore", label: "Firestore", category: "Database", baseStyle: gcpStyle("cloud_firestore"), defaultWidth: 50, defaultHeight: 50 },
|
|
24
|
+
{ id: "memorystore", label: "Memorystore", category: "Database", baseStyle: gcpStyle("cloud_memorystore"), defaultWidth: 50, defaultHeight: 50 },
|
|
25
|
+
// Networking
|
|
26
|
+
{ id: "cloud-load-balancing", label: "Load Balancing", category: "Networking", baseStyle: gcpStyle("cloud_load_balancing"), defaultWidth: 50, defaultHeight: 50 },
|
|
27
|
+
{ id: "cloud-cdn", label: "Cloud CDN", category: "Networking", baseStyle: gcpStyle("cloud_cdn"), defaultWidth: 50, defaultHeight: 50 },
|
|
28
|
+
{ id: "cloud-dns", label: "Cloud DNS", category: "Networking", baseStyle: gcpStyle("cloud_dns"), defaultWidth: 50, defaultHeight: 50 },
|
|
29
|
+
// Integration
|
|
30
|
+
{ id: "pubsub", label: "Pub/Sub", category: "Integration", baseStyle: gcpStyle("cloud_pubsub"), defaultWidth: 50, defaultHeight: 50 },
|
|
31
|
+
// Analytics
|
|
32
|
+
{ id: "bigquery", label: "BigQuery", category: "Analytics", baseStyle: gcpStyle("bigquery"), defaultWidth: 50, defaultHeight: 50 },
|
|
33
|
+
{ id: "dataflow", label: "Dataflow", category: "Analytics", baseStyle: gcpStyle("cloud_dataflow"), defaultWidth: 50, defaultHeight: 50 },
|
|
34
|
+
// AI
|
|
35
|
+
{ id: "vertex-ai", label: "Vertex AI", category: "AI", baseStyle: gcpStyle("vertexai"), defaultWidth: 50, defaultHeight: 50 },
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=gcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcp.js","sourceRoot":"","sources":["../../../src/lib/stencils/gcp.ts"],"names":[],"mappings":"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"}
|