@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,32 @@
|
|
|
1
|
+
function ibmStyle(shape) {
|
|
2
|
+
return `sketch=0;aspect=fixed;html=1;dashed=0;fillColor=#4376BB;strokeColor=#ffffff;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.ibm.${shape};`;
|
|
3
|
+
}
|
|
4
|
+
export const IBM_PACK = {
|
|
5
|
+
id: "ibm",
|
|
6
|
+
name: "IBM Cloud",
|
|
7
|
+
prefix: "mxgraph.ibm",
|
|
8
|
+
entries: [
|
|
9
|
+
// Compute
|
|
10
|
+
{ id: "ibm-vm", label: "Virtual Server", category: "Compute", baseStyle: ibmStyle("virtual_server_classic"), defaultWidth: 50, defaultHeight: 50 },
|
|
11
|
+
{ id: "ibm-bare-metal", label: "Bare Metal", category: "Compute", baseStyle: ibmStyle("bare_metal_server"), defaultWidth: 50, defaultHeight: 50 },
|
|
12
|
+
{ id: "ibm-functions", label: "Cloud Functions", category: "Compute", baseStyle: ibmStyle("cloud_functions"), defaultWidth: 50, defaultHeight: 50 },
|
|
13
|
+
{ id: "ibm-code-engine", label: "Code Engine", category: "Compute", baseStyle: ibmStyle("code_engine"), defaultWidth: 50, defaultHeight: 50 },
|
|
14
|
+
// Containers
|
|
15
|
+
{ id: "ibm-k8s", label: "Kubernetes Service", category: "Containers", baseStyle: ibmStyle("kubernetes_service"), defaultWidth: 50, defaultHeight: 50 },
|
|
16
|
+
{ id: "ibm-openshift", label: "OpenShift", category: "Containers", baseStyle: ibmStyle("openshift"), defaultWidth: 50, defaultHeight: 50 },
|
|
17
|
+
{ id: "ibm-registry", label: "Container Registry", category: "Containers", baseStyle: ibmStyle("container_registry"), defaultWidth: 50, defaultHeight: 50 },
|
|
18
|
+
// Networking
|
|
19
|
+
{ id: "ibm-vpc", label: "VPC", category: "Networking", baseStyle: ibmStyle("vpc"), defaultWidth: 50, defaultHeight: 50 },
|
|
20
|
+
{ id: "ibm-lb", label: "Load Balancer", category: "Networking", baseStyle: ibmStyle("load_balancer_classic"), defaultWidth: 50, defaultHeight: 50 },
|
|
21
|
+
{ id: "ibm-dns", label: "DNS Services", category: "Networking", baseStyle: ibmStyle("dns_services"), defaultWidth: 50, defaultHeight: 50 },
|
|
22
|
+
// Storage
|
|
23
|
+
{ id: "ibm-cos", label: "Object Storage", category: "Storage", baseStyle: ibmStyle("cloud_object_storage"), defaultWidth: 50, defaultHeight: 50 },
|
|
24
|
+
{ id: "ibm-block", label: "Block Storage", category: "Storage", baseStyle: ibmStyle("block_storage"), defaultWidth: 50, defaultHeight: 50 },
|
|
25
|
+
// Database
|
|
26
|
+
{ id: "ibm-db2", label: "Db2", category: "Database", baseStyle: ibmStyle("db2"), defaultWidth: 50, defaultHeight: 50 },
|
|
27
|
+
{ id: "ibm-cloudant", label: "Cloudant", category: "Database", baseStyle: ibmStyle("cloudant"), defaultWidth: 50, defaultHeight: 50 },
|
|
28
|
+
// AI
|
|
29
|
+
{ id: "ibm-watson", label: "Watson", category: "AI", baseStyle: ibmStyle("watson"), defaultWidth: 50, defaultHeight: 50 },
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=ibm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ibm.js","sourceRoot":"","sources":["../../../src/lib/stencils/ibm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { StencilPack } from "./types.js";
|
|
2
|
+
export type { StencilEntry, StencilPack } from "./types.js";
|
|
3
|
+
export declare function getStencilPack(id: string): StencilPack | undefined;
|
|
4
|
+
export declare function listStencilPacks(): Array<{
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
entryCount: number;
|
|
8
|
+
}>;
|
|
9
|
+
/** Get all registered stencil pack prefixes for deserialize detection. */
|
|
10
|
+
export declare function getStencilPrefixes(): Map<string, string>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AWS_PACK } from "./aws.js";
|
|
2
|
+
import { AZURE_PACK } from "./azure.js";
|
|
3
|
+
import { GCP_PACK } from "./gcp.js";
|
|
4
|
+
import { K8S_PACK } from "./k8s.js";
|
|
5
|
+
import { CISCO_PACK } from "./cisco.js";
|
|
6
|
+
import { IBM_PACK } from "./ibm.js";
|
|
7
|
+
const STENCIL_REGISTRY = new Map([
|
|
8
|
+
["aws", AWS_PACK],
|
|
9
|
+
["azure", AZURE_PACK],
|
|
10
|
+
["gcp", GCP_PACK],
|
|
11
|
+
["k8s", K8S_PACK],
|
|
12
|
+
["cisco", CISCO_PACK],
|
|
13
|
+
["ibm", IBM_PACK],
|
|
14
|
+
]);
|
|
15
|
+
export function getStencilPack(id) {
|
|
16
|
+
return STENCIL_REGISTRY.get(id);
|
|
17
|
+
}
|
|
18
|
+
export function listStencilPacks() {
|
|
19
|
+
const result = [];
|
|
20
|
+
for (const [id, pack] of STENCIL_REGISTRY) {
|
|
21
|
+
result.push({ id, name: pack.name, entryCount: pack.entries.length });
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
/** Get all registered stencil pack prefixes for deserialize detection. */
|
|
26
|
+
export function getStencilPrefixes() {
|
|
27
|
+
const prefixes = new Map();
|
|
28
|
+
for (const [id, pack] of STENCIL_REGISTRY) {
|
|
29
|
+
prefixes.set(pack.prefix, id);
|
|
30
|
+
}
|
|
31
|
+
return prefixes;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/stencils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC,MAAM,gBAAgB,GAA6B,IAAI,GAAG,CAAC;IACzD,CAAC,KAAK,EAAE,QAAQ,CAAC;IACjB,CAAC,OAAO,EAAE,UAAU,CAAC;IACrB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACjB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACjB,CAAC,OAAO,EAAE,UAAU,CAAC;IACrB,CAAC,KAAK,EAAE,QAAQ,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GAA4D,EAAE,CAAC;IAC3E,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC1C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function k8sStyle(shape) {
|
|
2
|
+
return `sketch=0;aspect=fixed;html=1;dashed=0;fillColor=#326CE5;strokeColor=#ffffff;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.kubernetes.${shape};`;
|
|
3
|
+
}
|
|
4
|
+
export const K8S_PACK = {
|
|
5
|
+
id: "k8s",
|
|
6
|
+
name: "Kubernetes",
|
|
7
|
+
prefix: "mxgraph.kubernetes",
|
|
8
|
+
entries: [
|
|
9
|
+
// Workloads
|
|
10
|
+
{ id: "pod", label: "Pod", category: "Workloads", baseStyle: k8sStyle("pod"), defaultWidth: 50, defaultHeight: 50 },
|
|
11
|
+
{ id: "deployment", label: "Deployment", category: "Workloads", baseStyle: k8sStyle("deploy"), defaultWidth: 50, defaultHeight: 50 },
|
|
12
|
+
{ id: "statefulset", label: "StatefulSet", category: "Workloads", baseStyle: k8sStyle("stateful_set"), defaultWidth: 50, defaultHeight: 50 },
|
|
13
|
+
{ id: "daemonset", label: "DaemonSet", category: "Workloads", baseStyle: k8sStyle("ds"), defaultWidth: 50, defaultHeight: 50 },
|
|
14
|
+
{ id: "job", label: "Job", category: "Workloads", baseStyle: k8sStyle("job"), defaultWidth: 50, defaultHeight: 50 },
|
|
15
|
+
{ id: "cronjob", label: "CronJob", category: "Workloads", baseStyle: k8sStyle("cronjob"), defaultWidth: 50, defaultHeight: 50 },
|
|
16
|
+
{ id: "replicaset", label: "ReplicaSet", category: "Workloads", baseStyle: k8sStyle("rs"), defaultWidth: 50, defaultHeight: 50 },
|
|
17
|
+
// Networking
|
|
18
|
+
{ id: "k8s-service", label: "Service", category: "Networking", baseStyle: k8sStyle("svc"), defaultWidth: 50, defaultHeight: 50 },
|
|
19
|
+
{ id: "ingress", label: "Ingress", category: "Networking", baseStyle: k8sStyle("ing"), defaultWidth: 50, defaultHeight: 50 },
|
|
20
|
+
{ id: "endpoint", label: "Endpoint", category: "Networking", baseStyle: k8sStyle("ep"), defaultWidth: 50, defaultHeight: 50 },
|
|
21
|
+
{ id: "netpol", label: "NetworkPolicy", category: "Networking", baseStyle: k8sStyle("netpol"), defaultWidth: 50, defaultHeight: 50 },
|
|
22
|
+
// Config/Storage
|
|
23
|
+
{ id: "configmap", label: "ConfigMap", category: "Config", baseStyle: k8sStyle("cm"), defaultWidth: 50, defaultHeight: 50 },
|
|
24
|
+
{ id: "secret", label: "Secret", category: "Config", baseStyle: k8sStyle("secret"), defaultWidth: 50, defaultHeight: 50 },
|
|
25
|
+
{ id: "pv", label: "PersistentVolume", category: "Storage", baseStyle: k8sStyle("pv"), defaultWidth: 50, defaultHeight: 50 },
|
|
26
|
+
{ id: "pvc", label: "PersistentVolumeClaim", category: "Storage", baseStyle: k8sStyle("pvc"), defaultWidth: 50, defaultHeight: 50 },
|
|
27
|
+
// Cluster
|
|
28
|
+
{ id: "node", label: "Node", category: "Cluster", baseStyle: k8sStyle("node"), defaultWidth: 50, defaultHeight: 50 },
|
|
29
|
+
{ id: "namespace", label: "Namespace", category: "Cluster", baseStyle: k8sStyle("ns"), defaultWidth: 50, defaultHeight: 50 },
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=k8s.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s.js","sourceRoot":"","sources":["../../../src/lib/stencils/k8s.ts"],"names":[],"mappings":"AAEA,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,qLAAqL,KAAK,GAAG,CAAC;AACvM,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE;QACP,YAAY;QACZ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACnH,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACpI,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5I,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC9H,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACnH,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC/H,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAEhI,aAAa;QACb,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAChI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5H,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC7H,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAEpI,iBAAiB;QACjB,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC3H,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACzH,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5H,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAEnI,UAAU;QACV,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACpH,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;KAC7H;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface StencilEntry {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
category: string;
|
|
5
|
+
baseStyle: string;
|
|
6
|
+
defaultWidth: number;
|
|
7
|
+
defaultHeight: number;
|
|
8
|
+
}
|
|
9
|
+
export interface StencilPack {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
prefix: string;
|
|
13
|
+
entries: StencilEntry[];
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/stencils/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ThemeColors, ThemeName } from "../types/index.js";
|
|
2
|
+
export declare const THEMES: Record<ThemeName, ThemeColors>;
|
|
3
|
+
export declare function isThemeName(name: string): name is ThemeName;
|
|
4
|
+
export declare function resolveTheme(name: string): ThemeColors | null;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a color value: either a theme name (returns fill color) or a hex color.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveColor(value: string): string | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const THEMES = {
|
|
2
|
+
blue: { fill: "#dae8fc", stroke: "#6c8ebf" },
|
|
3
|
+
green: { fill: "#d5e8d4", stroke: "#82b366" },
|
|
4
|
+
red: { fill: "#f8cecc", stroke: "#b85450" },
|
|
5
|
+
yellow: { fill: "#fff2cc", stroke: "#d6b656" },
|
|
6
|
+
orange: { fill: "#ffe6cc", stroke: "#d79b00" },
|
|
7
|
+
purple: { fill: "#e1d5e7", stroke: "#9673a6" },
|
|
8
|
+
gray: { fill: "#f5f5f5", stroke: "#666666" },
|
|
9
|
+
dark: { fill: "#1a1a2e", stroke: "#16213e", fontColor: "#e0e0e0" },
|
|
10
|
+
white: { fill: "#ffffff", stroke: "#000000" },
|
|
11
|
+
};
|
|
12
|
+
const THEME_NAMES = new Set(Object.keys(THEMES));
|
|
13
|
+
export function isThemeName(name) {
|
|
14
|
+
return THEME_NAMES.has(name);
|
|
15
|
+
}
|
|
16
|
+
export function resolveTheme(name) {
|
|
17
|
+
if (isThemeName(name)) {
|
|
18
|
+
return THEMES[name];
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a color value: either a theme name (returns fill color) or a hex color.
|
|
24
|
+
*/
|
|
25
|
+
export function resolveColor(value) {
|
|
26
|
+
if (value.startsWith("#")) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
const theme = resolveTheme(value);
|
|
30
|
+
return theme ? theme.fill : null;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=themes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/lib/themes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAmC;IACpD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7C,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;IAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAClE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;CAC9C,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEjD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function createDefaultStyle() {
|
|
2
|
+
return {
|
|
3
|
+
fillColor: null,
|
|
4
|
+
strokeColor: null,
|
|
5
|
+
fontColor: null,
|
|
6
|
+
fontSize: null,
|
|
7
|
+
fontFamily: null,
|
|
8
|
+
fontStyle: null,
|
|
9
|
+
rounded: false,
|
|
10
|
+
dashed: false,
|
|
11
|
+
shadow: false,
|
|
12
|
+
opacity: 100,
|
|
13
|
+
align: null,
|
|
14
|
+
verticalAlign: null,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function createDefaultEdgeStyle() {
|
|
18
|
+
return {
|
|
19
|
+
...createDefaultStyle(),
|
|
20
|
+
edgeStyle: "orthogonalEdgeStyle",
|
|
21
|
+
curved: false,
|
|
22
|
+
flowAnimation: false,
|
|
23
|
+
dotted: false,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/model/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,GAAG,kBAAkB,EAAE;QACvB,SAAS,EAAE,qBAAqB;QAChC,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,KAAK;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { Diagram, Page, Shape, Edge, Group, Layer, Bounds, Point, EdgeStyleSet, ShapeType, ArrowType, ThemeName, DiagramEvent, CustomType, CustomTheme, FlowDirection } from "../types/index.js";
|
|
2
|
+
import { EventLog } from "@aetherwing/fcp-core";
|
|
3
|
+
import { ReferenceRegistry } from "./reference-registry.js";
|
|
4
|
+
export declare class DiagramModel {
|
|
5
|
+
diagram: Diagram;
|
|
6
|
+
eventLog: EventLog<DiagramEvent>;
|
|
7
|
+
registry: ReferenceRegistry;
|
|
8
|
+
constructor();
|
|
9
|
+
createNew(title: string): void;
|
|
10
|
+
private createEmptyDiagram;
|
|
11
|
+
getActivePage(): Page;
|
|
12
|
+
getPageByName(name: string): Page | undefined;
|
|
13
|
+
switchPage(name: string): Page | null;
|
|
14
|
+
addPage(name: string): Page;
|
|
15
|
+
removePage(name: string): boolean;
|
|
16
|
+
addShape(label: string, type: ShapeType, options?: {
|
|
17
|
+
theme?: ThemeName;
|
|
18
|
+
near?: string;
|
|
19
|
+
dir?: string;
|
|
20
|
+
at?: Point;
|
|
21
|
+
inGroup?: string;
|
|
22
|
+
size?: {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
};
|
|
26
|
+
baseStyleOverride?: string;
|
|
27
|
+
skipDefaultTheme?: boolean;
|
|
28
|
+
}): Shape;
|
|
29
|
+
modifyShape(id: string, changes: Partial<Pick<Shape, "label" | "type" | "bounds" | "style" | "parentGroup" | "metadata">>): Shape | null;
|
|
30
|
+
removeShape(id: string): Shape | null;
|
|
31
|
+
addEdge(sourceId: string, targetId: string, options?: {
|
|
32
|
+
label?: string;
|
|
33
|
+
style?: Partial<EdgeStyleSet>;
|
|
34
|
+
sourceArrow?: ArrowType;
|
|
35
|
+
targetArrow?: ArrowType;
|
|
36
|
+
}): Edge | null;
|
|
37
|
+
removeEdge(id: string): Edge | null;
|
|
38
|
+
modifyEdge(id: string, changes: Partial<Pick<Edge, "label" | "style" | "sourceArrow" | "targetArrow">>): Edge | null;
|
|
39
|
+
findEdge(sourceId: string, targetId: string): Edge | undefined;
|
|
40
|
+
createGroup(name: string, memberIds: string[]): Group | null;
|
|
41
|
+
dissolveGroup(groupId: string): Group | null;
|
|
42
|
+
getGroupByName(name: string): Group | undefined;
|
|
43
|
+
addLayer(name: string): Layer;
|
|
44
|
+
modifyLayer(layerId: string, changes: Partial<Pick<Layer, "visible" | "locked" | "name">>): Layer | null;
|
|
45
|
+
setFlowDirection(dir: FlowDirection): void;
|
|
46
|
+
setTitle(title: string): void;
|
|
47
|
+
defineCustomType(name: string, base: ShapeType, options?: {
|
|
48
|
+
theme?: ThemeName;
|
|
49
|
+
badge?: string;
|
|
50
|
+
size?: {
|
|
51
|
+
width: number;
|
|
52
|
+
height: number;
|
|
53
|
+
};
|
|
54
|
+
}): CustomType;
|
|
55
|
+
defineCustomTheme(name: string, fill: string, stroke: string, fontColor?: string): CustomTheme;
|
|
56
|
+
checkpoint(name: string): void;
|
|
57
|
+
undo(count?: number): DiagramEvent[];
|
|
58
|
+
undoTo(checkpointName: string): DiagramEvent[] | null;
|
|
59
|
+
redo(count?: number): DiagramEvent[];
|
|
60
|
+
getHistory(count: number): DiagramEvent[];
|
|
61
|
+
canUndo(): boolean;
|
|
62
|
+
canRedo(): boolean;
|
|
63
|
+
/** Compact state digest for drift detection. */
|
|
64
|
+
getDigest(): string;
|
|
65
|
+
/** Compute the bounding box of all shapes and groups on the active page. */
|
|
66
|
+
computeCanvasBounds(): Bounds | null;
|
|
67
|
+
/**
|
|
68
|
+
* Resolve a named canvas region to absolute coordinates.
|
|
69
|
+
* Regions: top-left, top-center, top-right, middle-left, center, middle-right,
|
|
70
|
+
* bottom-left, bottom-center, bottom-right
|
|
71
|
+
* Centers the entity of given size within the region.
|
|
72
|
+
*/
|
|
73
|
+
resolveCanvasRegion(region: string, entitySize: {
|
|
74
|
+
width: number;
|
|
75
|
+
height: number;
|
|
76
|
+
}): Point | null;
|
|
77
|
+
private resolveRegionInBounds;
|
|
78
|
+
/** Public wrapper for recomputing group bounds. */
|
|
79
|
+
recomputeGroupBoundsPublic(groupId: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Detect and resolve collisions after moving an entity.
|
|
82
|
+
* Pushes overlapping downstream items in the flow direction.
|
|
83
|
+
* Returns the number of items shifted.
|
|
84
|
+
*/
|
|
85
|
+
detectAndResolveCollisions(entityId: string, isGroup: boolean, maxDepth?: number): number;
|
|
86
|
+
private pushShape;
|
|
87
|
+
private pushGroup;
|
|
88
|
+
/**
|
|
89
|
+
* Apply an ELK layout result: update shape positions, edge waypoints, and recompute group bounds.
|
|
90
|
+
* Emits shape_modified/edge_modified events for undo support.
|
|
91
|
+
*/
|
|
92
|
+
applyLayout(result: {
|
|
93
|
+
shapePositions: Map<string, {
|
|
94
|
+
x: number;
|
|
95
|
+
y: number;
|
|
96
|
+
}>;
|
|
97
|
+
edgeWaypoints: Map<string, Point[]>;
|
|
98
|
+
}): number;
|
|
99
|
+
private computePosition;
|
|
100
|
+
positionRelativeTo(ref: Bounds, size: {
|
|
101
|
+
width: number;
|
|
102
|
+
height: number;
|
|
103
|
+
}, dir: string): Point;
|
|
104
|
+
private buildShapeStyle;
|
|
105
|
+
private recomputeGroupBounds;
|
|
106
|
+
private emit;
|
|
107
|
+
private reverseEvent;
|
|
108
|
+
private replayEvent;
|
|
109
|
+
rebuildRegistry(): void;
|
|
110
|
+
}
|