@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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/adapter.d.ts +38 -0
  4. package/dist/adapter.js +259 -0
  5. package/dist/adapter.js.map +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.js +6 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/layout/elk-layout.d.ts +49 -0
  10. package/dist/layout/elk-layout.js +144 -0
  11. package/dist/layout/elk-layout.js.map +1 -0
  12. package/dist/lib/drawio-cli.d.ts +22 -0
  13. package/dist/lib/drawio-cli.js +88 -0
  14. package/dist/lib/drawio-cli.js.map +1 -0
  15. package/dist/lib/node-types.d.ts +22 -0
  16. package/dist/lib/node-types.js +174 -0
  17. package/dist/lib/node-types.js.map +1 -0
  18. package/dist/lib/stencils/aws.d.ts +2 -0
  19. package/dist/lib/stencils/aws.js +69 -0
  20. package/dist/lib/stencils/aws.js.map +1 -0
  21. package/dist/lib/stencils/azure.d.ts +2 -0
  22. package/dist/lib/stencils/azure.js +54 -0
  23. package/dist/lib/stencils/azure.js.map +1 -0
  24. package/dist/lib/stencils/cisco.d.ts +2 -0
  25. package/dist/lib/stencils/cisco.js +30 -0
  26. package/dist/lib/stencils/cisco.js.map +1 -0
  27. package/dist/lib/stencils/gcp.d.ts +2 -0
  28. package/dist/lib/stencils/gcp.js +38 -0
  29. package/dist/lib/stencils/gcp.js.map +1 -0
  30. package/dist/lib/stencils/ibm.d.ts +2 -0
  31. package/dist/lib/stencils/ibm.js +32 -0
  32. package/dist/lib/stencils/ibm.js.map +1 -0
  33. package/dist/lib/stencils/index.d.ts +10 -0
  34. package/dist/lib/stencils/index.js +33 -0
  35. package/dist/lib/stencils/index.js.map +1 -0
  36. package/dist/lib/stencils/k8s.d.ts +2 -0
  37. package/dist/lib/stencils/k8s.js +32 -0
  38. package/dist/lib/stencils/k8s.js.map +1 -0
  39. package/dist/lib/stencils/types.d.ts +14 -0
  40. package/dist/lib/stencils/types.js +2 -0
  41. package/dist/lib/stencils/types.js.map +1 -0
  42. package/dist/lib/themes.d.ts +8 -0
  43. package/dist/lib/themes.js +32 -0
  44. package/dist/lib/themes.js.map +1 -0
  45. package/dist/model/defaults.d.ts +3 -0
  46. package/dist/model/defaults.js +26 -0
  47. package/dist/model/defaults.js.map +1 -0
  48. package/dist/model/diagram-model.d.ts +110 -0
  49. package/dist/model/diagram-model.js +938 -0
  50. package/dist/model/diagram-model.js.map +1 -0
  51. package/dist/model/event-log.d.ts +30 -0
  52. package/dist/model/event-log.js +112 -0
  53. package/dist/model/event-log.js.map +1 -0
  54. package/dist/model/id.d.ts +9 -0
  55. package/dist/model/id.js +35 -0
  56. package/dist/model/id.js.map +1 -0
  57. package/dist/model/reference-registry.d.ts +33 -0
  58. package/dist/model/reference-registry.js +143 -0
  59. package/dist/model/reference-registry.js.map +1 -0
  60. package/dist/model/spatial.d.ts +20 -0
  61. package/dist/model/spatial.js +59 -0
  62. package/dist/model/spatial.js.map +1 -0
  63. package/dist/parser/parse-op.d.ts +18 -0
  64. package/dist/parser/parse-op.js +430 -0
  65. package/dist/parser/parse-op.js.map +1 -0
  66. package/dist/parser/resolve-ref.d.ts +27 -0
  67. package/dist/parser/resolve-ref.js +232 -0
  68. package/dist/parser/resolve-ref.js.map +1 -0
  69. package/dist/parser/tokenizer.d.ts +6 -0
  70. package/dist/parser/tokenizer.js +7 -0
  71. package/dist/parser/tokenizer.js.map +1 -0
  72. package/dist/serialization/connector-intelligence.d.ts +35 -0
  73. package/dist/serialization/connector-intelligence.js +336 -0
  74. package/dist/serialization/connector-intelligence.js.map +1 -0
  75. package/dist/serialization/deserialize.d.ts +6 -0
  76. package/dist/serialization/deserialize.js +511 -0
  77. package/dist/serialization/deserialize.js.map +1 -0
  78. package/dist/serialization/serialize.d.ts +15 -0
  79. package/dist/serialization/serialize.js +332 -0
  80. package/dist/serialization/serialize.js.map +1 -0
  81. package/dist/server/intent-layer.d.ts +48 -0
  82. package/dist/server/intent-layer.js +1322 -0
  83. package/dist/server/intent-layer.js.map +1 -0
  84. package/dist/server/mcp-server.d.ts +7 -0
  85. package/dist/server/mcp-server.js +26 -0
  86. package/dist/server/mcp-server.js.map +1 -0
  87. package/dist/server/model-map.d.ts +8 -0
  88. package/dist/server/model-map.js +240 -0
  89. package/dist/server/model-map.js.map +1 -0
  90. package/dist/server/query-handler.d.ts +19 -0
  91. package/dist/server/query-handler.js +148 -0
  92. package/dist/server/query-handler.js.map +1 -0
  93. package/dist/server/response-formatter.d.ts +56 -0
  94. package/dist/server/response-formatter.js +351 -0
  95. package/dist/server/response-formatter.js.map +1 -0
  96. package/dist/server/session-handler.d.ts +6 -0
  97. package/dist/server/session-handler.js +127 -0
  98. package/dist/server/session-handler.js.map +1 -0
  99. package/dist/types/index.d.ts +238 -0
  100. package/dist/types/index.js +3 -0
  101. package/dist/types/index.js.map +1 -0
  102. package/dist/verb-specs.d.ts +6 -0
  103. package/dist/verb-specs.js +144 -0
  104. package/dist/verb-specs.js.map +1 -0
  105. 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,2 @@
1
+ import type { StencilPack } from "./types.js";
2
+ export declare const AWS_PACK: StencilPack;
@@ -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,2 @@
1
+ import type { StencilPack } from "./types.js";
2
+ export declare const AZURE_PACK: StencilPack;
@@ -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,2 @@
1
+ import type { StencilPack } from "./types.js";
2
+ export declare const CISCO_PACK: StencilPack;
@@ -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,2 @@
1
+ import type { StencilPack } from "./types.js";
2
+ export declare const GCP_PACK: StencilPack;
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ import type { StencilPack } from "./types.js";
2
+ export declare const IBM_PACK: StencilPack;