@executioncontrolprotocol/format-mermaid 0.10.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.
@@ -0,0 +1,3 @@
1
+ /** Mermaid format extension (encode-only). @category Extensions */
2
+ export declare const formatMermaidExtension: import("@executioncontrolprotocol/core").ExtensionDefinition;
3
+ //# sourceMappingURL=extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAqDA,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,8DAOzB,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { catalogExtension, capabilityFor, defineExtension, ecpEncodeInputSchema, ecpEncodeResultSchema, encodeFailure, validateWorkflow, } from "@executioncontrolprotocol/core";
2
+ import { LATEST_ECP_VERSION } from "@executioncontrolprotocol/types";
3
+ import { workflowToMermaid } from "./workflow-to-mermaid.js";
4
+ function encodeToMermaid(input) {
5
+ const sourceSchema = input.sourceSchema;
6
+ if (sourceSchema !== "@executioncontrolprotocol.workflow") {
7
+ return encodeFailure({
8
+ format: "mermaid",
9
+ sourceSchema,
10
+ diagnostics: [
11
+ {
12
+ severity: "error",
13
+ code: "FORMAT_UNSUPPORTED_SOURCE_SCHEMA",
14
+ message: "Mermaid encoder supports @executioncontrolprotocol.workflow only",
15
+ },
16
+ ],
17
+ });
18
+ }
19
+ const validation = validateWorkflow(input.source);
20
+ if (!validation.valid) {
21
+ return encodeFailure({
22
+ format: "mermaid",
23
+ sourceSchema,
24
+ validation,
25
+ diagnostics: [...validation.errors, ...validation.warnings],
26
+ });
27
+ }
28
+ return {
29
+ schema: "@executioncontrolprotocol.encode.result",
30
+ version: LATEST_ECP_VERSION,
31
+ success: true,
32
+ format: "mermaid",
33
+ mediaType: "text/vnd.mermaid",
34
+ sourceSchema,
35
+ sourceVersion: input.sourceVersion,
36
+ result: workflowToMermaid(input.source, input.options),
37
+ diagnostics: [],
38
+ };
39
+ }
40
+ /** Mermaid format extension (encode-only). @category Extensions */
41
+ export const formatMermaidExtension = defineExtension("@executioncontrolprotocol", "format-mermaid")
42
+ .withCapabilities([
43
+ capabilityFor("@executioncontrolprotocol/format-mermaid", "encode")
44
+ .withInput(ecpEncodeInputSchema)
45
+ .withOutput(ecpEncodeResultSchema)
46
+ .withHandler((input) => encodeToMermaid(input)),
47
+ ])
48
+ .build();
49
+ catalogExtension(formatMermaidExtension);
50
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAA0C,MAAM,iCAAiC,CAAA;AAE5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG5D,SAAS,eAAe,CAAC,KAAqB;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;IACvC,IAAI,YAAY,KAAK,oCAAoC,EAAE,CAAC;QAC1D,OAAO,aAAa,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,YAAY;YACZ,WAAW,EAAE;gBACX;oBACE,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,kCAAkC;oBACxC,OAAO,EAAE,kEAAkE;iBAC5E;aACF;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAA0B,CAAC,CAAA;IACrE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,YAAY;YACZ,UAAU;YACV,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,yCAAyC;QACjD,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,kBAAkB;QAC7B,YAAY;QACZ,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAA0B,EAAE,KAAK,CAAC,OAA+B,CAAC;QAClG,WAAW,EAAE,EAAE;KAChB,CAAA;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC,2BAA2B,EAAE,gBAAgB,CAAC;KACjG,gBAAgB,CAAC;IAChB,aAAa,CAAC,0CAA0C,EAAE,QAAQ,CAAC;SAChE,SAAS,CAAC,oBAAoB,CAAC;SAC/B,UAAU,CAAC,qBAAqB,CAAC;SACjC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAuB,CAAC,CAAC;CACpE,CAAC;KACD,KAAK,EAAE,CAAA;AAEV,gBAAgB,CAAC,sBAAsB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { type Registry } from "@executioncontrolprotocol/core";
2
+ export { formatMermaidExtension } from "./extension.js";
3
+ export { workflowToMermaid, workflowToMermaid as renderWorkflowToMermaid } from "./workflow-to-mermaid.js";
4
+ export type { MermaidEncodeOptions, MermaidFlowchartDirection } from "./options.js";
5
+ export { mermaidFlowchartHeader } from "./options.js";
6
+ /** Register Mermaid format extension. @category Extensions */
7
+ export declare function registerFormatMermaidExtension(registry?: Registry): Promise<void>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAG9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAC1G,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,8DAA8D;AAC9D,wBAAsB,8BAA8B,CAClD,QAAQ,GAAE,QAAyB,GAClC,OAAO,CAAC,IAAI,CAAC,CAIf"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import { globalRegistry } from "@executioncontrolprotocol/core";
2
+ import { formatMermaidExtension } from "./extension.js";
3
+ export { formatMermaidExtension } from "./extension.js";
4
+ export { workflowToMermaid, workflowToMermaid as renderWorkflowToMermaid } from "./workflow-to-mermaid.js";
5
+ export { mermaidFlowchartHeader } from "./options.js";
6
+ /** Register Mermaid format extension. @category Extensions */
7
+ export async function registerFormatMermaidExtension(registry = globalRegistry) {
8
+ if (!registry.getExtension("@executioncontrolprotocol/format-mermaid")) {
9
+ await registry.registerExtension(formatMermaidExtension);
10
+ }
11
+ }
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAE1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAqB,cAAc;IAEnC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,0CAA0C,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Mermaid flowchart direction (first line: `flowchart <direction>`). @category Encoding */
2
+ export type MermaidFlowchartDirection = "TD" | "LR" | "RL" | "BT";
3
+ /** Options for `@executioncontrolprotocol/format-mermaid` encode (via `ecp.encode(...).uses("@executioncontrolprotocol/format-mermaid").with({...})`). @category Encoding */
4
+ export interface MermaidEncodeOptions {
5
+ /** Flowchart direction. Default `TD`. Use `LR` for left-to-right. */
6
+ direction?: MermaidFlowchartDirection;
7
+ }
8
+ /** Resolve Mermaid header line from encode options. @category Encoding */
9
+ export declare function mermaidFlowchartHeader(options?: MermaidEncodeOptions): string;
10
+ /** Flow direction for chart and subgraph layout. @category Encoding */
11
+ export declare function resolveMermaidDirection(options?: MermaidEncodeOptions): MermaidFlowchartDirection;
12
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,MAAM,yBAAyB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEjE,6KAA6K;AAC7K,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,SAAS,CAAC,EAAE,yBAAyB,CAAA;CACtC;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAE7E;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,yBAAyB,CAEjG"}
@@ -0,0 +1,9 @@
1
+ /** Resolve Mermaid header line from encode options. @category Encoding */
2
+ export function mermaidFlowchartHeader(options) {
3
+ return `flowchart ${resolveMermaidDirection(options)}`;
4
+ }
5
+ /** Flow direction for chart and subgraph layout. @category Encoding */
6
+ export function resolveMermaidDirection(options) {
7
+ return options?.direction ?? "TD";
8
+ }
9
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AASA,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB,CAAC,OAA8B;IACnE,OAAO,aAAa,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAA;AACxD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,uBAAuB,CAAC,OAA8B;IACpE,OAAO,OAAO,EAAE,SAAS,IAAI,IAAI,CAAA;AACnC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { WorkflowManifest } from "@executioncontrolprotocol/types";
2
+ import { type MermaidEncodeOptions } from "./options.js";
3
+ /**
4
+ * Render a workflow manifest as a Mermaid flowchart (encode-only).
5
+ * @category Encoding
6
+ */
7
+ export declare function workflowToMermaid(manifest: WorkflowManifest, options?: MermaidEncodeOptions): string;
8
+ //# sourceMappingURL=workflow-to-mermaid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-to-mermaid.d.ts","sourceRoot":"","sources":["../src/workflow-to-mermaid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,gBAAgB,EAAgB,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,cAAc,CAAA;AAmMrB;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAgBR"}
@@ -0,0 +1,154 @@
1
+ import { mermaidFlowchartHeader, resolveMermaidDirection, } from "./options.js";
2
+ function indent(level) {
3
+ return " ".repeat(level);
4
+ }
5
+ function escapeTitle(text) {
6
+ return text.replace(/"/g, "'");
7
+ }
8
+ /** Mermaid subgraph ids must be alphanumeric/underscore and not start with a digit. */
9
+ function sanitizeSubgraphId(id) {
10
+ const cleaned = id.replace(/[^a-zA-Z0-9_]/g, "_").replace(/_+/g, "_").replace(/^_|_$/g, "");
11
+ const base = cleaned.length > 0 ? cleaned : "group";
12
+ return /^[0-9]/.test(base) ? `g_${base}` : base;
13
+ }
14
+ function stepLabel(node) {
15
+ const label = node.label ?? node.id;
16
+ return escapeTitle(label);
17
+ }
18
+ function nodeTitle(node, fallback) {
19
+ return escapeTitle(node.label ?? node.id ?? fallback);
20
+ }
21
+ /** Step nodes may omit `type` (e.g. compact TOON rows); match runtime executor rules. */
22
+ function isStepNode(node) {
23
+ return !node.type || node.type === "step";
24
+ }
25
+ function openSubgraph(lines, groupId, title, level, direction) {
26
+ lines.push(`${indent(level)}subgraph ${groupId} [${title}]`);
27
+ lines.push(`${indent(level + 1)}direction ${direction}`);
28
+ }
29
+ function connectSegments(lines, fromIds, toIds, level) {
30
+ if (fromIds.length === 0 || toIds.length === 0)
31
+ return;
32
+ const pad = indent(level);
33
+ for (const from of fromIds) {
34
+ for (const to of toIds) {
35
+ lines.push(`${pad}${from} --> ${to}`);
36
+ }
37
+ }
38
+ }
39
+ function renderStep(node, nodeId, level) {
40
+ const pad = indent(level);
41
+ return {
42
+ lines: [`${pad}${nodeId}["${stepLabel(node)}"]`],
43
+ entryIds: [nodeId],
44
+ exitIds: [nodeId],
45
+ };
46
+ }
47
+ function renderParallel(node, prefix, level, direction) {
48
+ const groupId = sanitizeSubgraphId(`${prefix}${node.id}`);
49
+ const lines = [];
50
+ openSubgraph(lines, groupId, nodeTitle(node, "parallel"), level, direction);
51
+ const entryIds = [];
52
+ const exitIds = [];
53
+ node.branches.forEach((branch, bi) => {
54
+ const branchId = sanitizeSubgraphId(`${groupId}_b${bi}`);
55
+ lines.push(`${indent(level + 1)}subgraph ${branchId} [branch ${bi}]`);
56
+ lines.push(`${indent(level + 2)}direction ${direction}`);
57
+ const branchSeg = renderNodes(branch, `${prefix}${bi}_`, level + 2, direction);
58
+ lines.push(...branchSeg.lines);
59
+ lines.push(`${indent(level + 1)}end`);
60
+ if (branchSeg.entryIds.length > 0) {
61
+ entryIds.push(...branchSeg.entryIds);
62
+ exitIds.push(...branchSeg.exitIds);
63
+ }
64
+ });
65
+ lines.push(`${indent(level)}end`);
66
+ return { lines, entryIds, exitIds };
67
+ }
68
+ function renderBranch(node, prefix, level, direction) {
69
+ const groupId = sanitizeSubgraphId(`${prefix}${node.id}`);
70
+ const lines = [];
71
+ openSubgraph(lines, groupId, nodeTitle(node, "branch"), level, direction);
72
+ const entryIds = [];
73
+ const exitIds = [];
74
+ node.branches.forEach((arm, bi) => {
75
+ const branchId = sanitizeSubgraphId(`${groupId}_b${bi}`);
76
+ lines.push(`${indent(level + 1)}subgraph ${branchId} [${nodeTitle(arm, `branch ${bi}`)}]`);
77
+ lines.push(`${indent(level + 2)}direction ${direction}`);
78
+ const armSeg = renderNodes(arm.steps, `${prefix}${bi}_`, level + 2, direction);
79
+ lines.push(...armSeg.lines);
80
+ lines.push(`${indent(level + 1)}end`);
81
+ if (armSeg.entryIds.length > 0) {
82
+ entryIds.push(...armSeg.entryIds);
83
+ exitIds.push(...armSeg.exitIds);
84
+ }
85
+ });
86
+ lines.push(`${indent(level)}end`);
87
+ return { lines, entryIds, exitIds };
88
+ }
89
+ function renderLoop(node, prefix, level, direction) {
90
+ const groupId = sanitizeSubgraphId(`${prefix}${node.id}`);
91
+ const lines = [];
92
+ openSubgraph(lines, groupId, nodeTitle(node, "loop"), level, direction);
93
+ const inner = renderNodes(node.steps, `${prefix}_`, level + 1, direction);
94
+ lines.push(...inner.lines);
95
+ lines.push(`${indent(level)}end`);
96
+ return {
97
+ lines,
98
+ entryIds: inner.entryIds,
99
+ exitIds: inner.exitIds.length > 0 ? inner.exitIds : [],
100
+ };
101
+ }
102
+ function renderNode(node, prefix, index, level, direction) {
103
+ const nodeId = `${prefix}${index}`;
104
+ if (isStepNode(node)) {
105
+ return renderStep(node, nodeId, level);
106
+ }
107
+ if (node.type === "parallel") {
108
+ return renderParallel(node, `${nodeId}_`, level, direction);
109
+ }
110
+ if (node.type === "branch") {
111
+ return renderBranch(node, `${nodeId}_`, level, direction);
112
+ }
113
+ return renderLoop(node, `${nodeId}`, level, direction);
114
+ }
115
+ function renderNodes(nodes, prefix, level, direction) {
116
+ const lines = [];
117
+ let entryIds = [];
118
+ let exitIds = [];
119
+ nodes.forEach((node, index) => {
120
+ const segment = renderNode(node, prefix, index, level, direction);
121
+ lines.push(...segment.lines);
122
+ if (segment.entryIds.length === 0)
123
+ return;
124
+ if (entryIds.length === 0) {
125
+ entryIds = segment.entryIds;
126
+ }
127
+ else {
128
+ connectSegments(lines, exitIds, segment.entryIds, level);
129
+ }
130
+ exitIds = segment.exitIds;
131
+ });
132
+ return { lines, entryIds, exitIds };
133
+ }
134
+ /**
135
+ * Render a workflow manifest as a Mermaid flowchart (encode-only).
136
+ * @category Encoding
137
+ */
138
+ export function workflowToMermaid(manifest, options) {
139
+ const direction = resolveMermaidDirection(options);
140
+ const wfId = sanitizeSubgraphId(manifest.workflow.id);
141
+ const wfTitle = escapeTitle(manifest.workflow.label ?? manifest.workflow.id);
142
+ const lines = [mermaidFlowchartHeader(options)];
143
+ openSubgraph(lines, wfId, wfTitle, 1, direction);
144
+ if (manifest.steps.length === 0) {
145
+ lines.push(`${indent(2)}empty["no steps"]`);
146
+ }
147
+ else {
148
+ const body = renderNodes(manifest.steps, "s", 2, direction);
149
+ lines.push(...body.lines);
150
+ }
151
+ lines.push(`${indent(1)}end`);
152
+ return lines.join("\n");
153
+ }
154
+ //# sourceMappingURL=workflow-to-mermaid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-to-mermaid.js","sourceRoot":"","sources":["../src/workflow-to-mermaid.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AAQrB,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,uFAAuF;AACvF,SAAS,kBAAkB,CAAC,EAAU;IACpC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAA;IACnC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,IAAqC,EAAE,QAAgB;IACxE,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAA;AACvD,CAAC;AAED,yFAAyF;AACzF,SAAS,UAAU,CAAC,IAAkB;IACpC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAC3C,CAAC;AAED,SAAS,YAAY,CACnB,KAAe,EACf,OAAe,EACf,KAAa,EACb,KAAa,EACb,SAAoC;IAEpC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,KAAK,KAAK,GAAG,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,SAAS,EAAE,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,eAAe,CACtB,KAAe,EACf,OAAiB,EACjB,KAAe,EACf,KAAa;IAEb,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,MAAc,EAAE,KAAa;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CACrB,IAAiD,EACjD,MAAc,EACd,KAAa,EACb,SAAoC;IAEpC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACzD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,OAAO,KAAK,EAAE,EAAE,CAAC,CAAA;QACxD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,YAAY,QAAQ,YAAY,EAAE,GAAG,CAAC,CAAA;QACrE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,SAAS,EAAE,CAAC,CAAA;QACxD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;QAC9E,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YACpC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,YAAY,CACnB,IAA+C,EAC/C,MAAc,EACd,KAAa,EACb,SAAoC;IAEpC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACzD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,OAAO,KAAK,EAAE,EAAE,CAAC,CAAA;QACxD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,YAAY,QAAQ,KAAK,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QAC1F,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,SAAS,EAAE,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;QAC9E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,UAAU,CACjB,IAA6C,EAC7C,MAAc,EACd,KAAa,EACb,SAAoC;IAEpC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACzD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IACvE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KACvD,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CACjB,IAAkB,EAClB,MAAc,EACd,KAAa,EACb,KAAa,EACb,SAAoC;IAEpC,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAA;IAClC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,WAAW,CAClB,KAAqB,EACrB,MAAc,EACd,KAAa,EACb,SAAoC;IAEpC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,QAAQ,GAAa,EAAE,CAAA;IAC3B,IAAI,OAAO,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;QACjE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAA0B,EAC1B,OAA8B;IAE9B,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/C,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IAEhD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAA;IAC7C,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@executioncontrolprotocol/format-mermaid",
3
+ "version": "0.10.0",
4
+ "description": "ECP Mermaid diagram encode extension (encode-only)",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc -b"
21
+ },
22
+ "peerDependencies": {
23
+ "@executioncontrolprotocol/core": "^0.10.0",
24
+ "@executioncontrolprotocol/types": "^0.10.0",
25
+ "zod": "^3.24.0"
26
+ },
27
+ "devDependencies": {
28
+ "@executioncontrolprotocol/core": "0.10.0",
29
+ "@executioncontrolprotocol/types": "0.10.0",
30
+ "typescript": "^5.7.0",
31
+ "zod": "^3.24.0"
32
+ }
33
+ }