mermaid-ast 0.5.1 → 0.6.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/dist/flowchart.js +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/journey.d.ts +4 -0
- package/dist/journey.d.ts.map +1 -1
- package/dist/journey.js +6 -0
- package/dist/parser/er-parser.d.ts +4 -0
- package/dist/parser/er-parser.d.ts.map +1 -1
- package/dist/parser/er-parser.js +8 -0
- package/dist/parser/flowchart-parser.d.ts.map +1 -1
- package/dist/parser/flowchart-parser.js +10 -2
- package/dist/parser/gantt-parser.d.ts +4 -0
- package/dist/parser/gantt-parser.d.ts.map +1 -1
- package/dist/parser/gantt-parser.js +8 -0
- package/dist/parser/index.d.ts +8 -0
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +51 -2
- package/dist/parser/journey-parser.d.ts +4 -0
- package/dist/parser/journey-parser.d.ts.map +1 -1
- package/dist/parser/journey-parser.js +9 -1
- package/dist/parser/mindmap-parser.d.ts +4 -0
- package/dist/parser/mindmap-parser.d.ts.map +1 -1
- package/dist/parser/mindmap-parser.js +8 -0
- package/dist/parser/quadrant-parser.d.ts +17 -0
- package/dist/parser/quadrant-parser.d.ts.map +1 -0
- package/dist/parser/quadrant-parser.js +102 -0
- package/dist/parser/sankey-parser.d.ts +17 -0
- package/dist/parser/sankey-parser.d.ts.map +1 -0
- package/dist/parser/sankey-parser.js +62 -0
- package/dist/parser/timeline-parser.d.ts +4 -0
- package/dist/parser/timeline-parser.d.ts.map +1 -1
- package/dist/parser/timeline-parser.js +8 -0
- package/dist/quadrant.d.ts +122 -0
- package/dist/quadrant.d.ts.map +1 -0
- package/dist/quadrant.js +260 -0
- package/dist/renderer/class-renderer.d.ts.map +1 -1
- package/dist/renderer/class-renderer.js +12 -2
- package/dist/renderer/flowchart-renderer.d.ts.map +1 -1
- package/dist/renderer/flowchart-renderer.js +21 -17
- package/dist/renderer/index.d.ts +2 -0
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +11 -1
- package/dist/renderer/quadrant-renderer.d.ts +12 -0
- package/dist/renderer/quadrant-renderer.d.ts.map +1 -0
- package/dist/renderer/quadrant-renderer.js +75 -0
- package/dist/renderer/sankey-renderer.d.ts +12 -0
- package/dist/renderer/sankey-renderer.d.ts.map +1 -0
- package/dist/renderer/sankey-renderer.js +27 -0
- package/dist/renderer/sequence-renderer.d.ts.map +1 -1
- package/dist/renderer/sequence-renderer.js +3 -5
- package/dist/renderer/state-renderer.d.ts.map +1 -1
- package/dist/renderer/state-renderer.js +2 -6
- package/dist/sankey.d.ts +120 -0
- package/dist/sankey.d.ts.map +1 -0
- package/dist/sankey.js +217 -0
- package/dist/timeline.d.ts +4 -0
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +6 -0
- package/dist/types/index.d.ts +20 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +21 -0
- package/dist/types/quadrant.d.ts +66 -0
- package/dist/types/quadrant.d.ts.map +1 -0
- package/dist/types/quadrant.js +15 -0
- package/dist/types/sankey.d.ts +40 -0
- package/dist/types/sankey.d.ts.map +1 -0
- package/dist/types/sankey.js +15 -0
- package/dist/vendored/grammars/block.jison +290 -0
- package/dist/vendored/grammars/c4.jison +322 -0
- package/dist/vendored/grammars/kanban.jison +166 -0
- package/dist/vendored/grammars/quadrant.jison +187 -0
- package/dist/vendored/grammars/requirement.jison +267 -0
- package/dist/vendored/grammars/sankey.jison +67 -0
- package/dist/vendored/grammars/xychart.jison +172 -0
- package/dist/vendored/parsers/block.js +897 -0
- package/dist/vendored/parsers/c4.js +915 -0
- package/dist/vendored/parsers/class.js +369 -329
- package/dist/vendored/parsers/er.js +369 -329
- package/dist/vendored/parsers/flowchart.js +369 -329
- package/dist/vendored/parsers/gantt.js +369 -329
- package/dist/vendored/parsers/journey.js +369 -329
- package/dist/vendored/parsers/kanban.js +745 -0
- package/dist/vendored/parsers/mindmap.js +369 -329
- package/dist/vendored/parsers/quadrant.js +782 -0
- package/dist/vendored/parsers/requirement.js +871 -0
- package/dist/vendored/parsers/sankey.js +616 -0
- package/dist/vendored/parsers/sequence.js +369 -329
- package/dist/vendored/parsers/state.js +369 -329
- package/dist/vendored/parsers/timeline.js +369 -329
- package/dist/vendored/parsers/xychart.js +763 -0
- package/dist/vendored/sync-info.json +57 -2
- package/package.json +2 -1
- package/LICENSE +0 -21
- package/README.md +0 -722
package/dist/flowchart.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -31,9 +31,13 @@ export { Journey } from './journey.js';
|
|
|
31
31
|
export type { AddMindmapNodeOptions, FindMindmapNodesQuery } from './mindmap.js';
|
|
32
32
|
export { Mindmap } from './mindmap.js';
|
|
33
33
|
export { parseErDiagram } from './parser/er-parser.js';
|
|
34
|
-
export { detectDiagramType, isClassDiagram, isFlowchartDiagram, isSequenceDiagram, parse, parseClassDiagram, parseFlowchart, parseSequence, } from './parser/index.js';
|
|
34
|
+
export { detectDiagramType, isClassDiagram, isFlowchartDiagram, isQuadrantDiagram, isSankeyDiagram, isSequenceDiagram, parse, parseClassDiagram, parseFlowchart, parseQuadrant, parseSankey, parseSequence, } from './parser/index.js';
|
|
35
|
+
export type { AddQuadrantPointOptions, FindQuadrantPointsQuery, } from './quadrant.js';
|
|
36
|
+
export { Quadrant } from './quadrant.js';
|
|
35
37
|
export { renderErDiagram } from './renderer/er-renderer.js';
|
|
36
|
-
export { render, renderClassDiagram, renderFlowchart, renderSequence, } from './renderer/index.js';
|
|
38
|
+
export { render, renderClassDiagram, renderFlowchart, renderQuadrant, renderSankey, renderSequence, } from './renderer/index.js';
|
|
39
|
+
export type { FindSankeyLinksQuery, FindSankeyNodesQuery, } from './sankey.js';
|
|
40
|
+
export { Sankey } from './sankey.js';
|
|
37
41
|
export type { AddActorOptions, AddMessageOptions, AddNoteOptions, } from './sequence.js';
|
|
38
42
|
export { Sequence } from './sequence.js';
|
|
39
43
|
export type { AddStateOptions, AddTransitionOptions, } from './state-diagram.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGjF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,QAAQ,EACR,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGjF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -32,10 +32,14 @@ export { Journey } from './journey.js';
|
|
|
32
32
|
export { Mindmap } from './mindmap.js';
|
|
33
33
|
export { parseErDiagram } from './parser/er-parser.js';
|
|
34
34
|
// Export parser functions
|
|
35
|
-
export { detectDiagramType, isClassDiagram, isFlowchartDiagram, isSequenceDiagram, parse, parseClassDiagram, parseFlowchart, parseSequence, } from './parser/index.js';
|
|
35
|
+
export { detectDiagramType, isClassDiagram, isFlowchartDiagram, isQuadrantDiagram, isSankeyDiagram, isSequenceDiagram, parse, parseClassDiagram, parseFlowchart, parseQuadrant, parseSankey, parseSequence, } from './parser/index.js';
|
|
36
|
+
// Export Quadrant wrapper class
|
|
37
|
+
export { Quadrant } from './quadrant.js';
|
|
36
38
|
export { renderErDiagram } from './renderer/er-renderer.js';
|
|
37
39
|
// Export renderer functions
|
|
38
|
-
export { render, renderClassDiagram, renderFlowchart, renderSequence, } from './renderer/index.js';
|
|
40
|
+
export { render, renderClassDiagram, renderFlowchart, renderQuadrant, renderSankey, renderSequence, } from './renderer/index.js';
|
|
41
|
+
// Export Sankey wrapper class
|
|
42
|
+
export { Sankey } from './sankey.js';
|
|
39
43
|
// Export Sequence wrapper class
|
|
40
44
|
export { Sequence } from './sequence.js';
|
|
41
45
|
// Export StateDiagram wrapper class
|
package/dist/journey.d.ts
CHANGED
package/dist/journey.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey.d.ts","sourceRoot":"","sources":["../src/journey.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"journey.d.ts","sourceRoot":"","sources":["../src/journey.ts"],"names":[],"mappings":"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"}
|
package/dist/journey.js
CHANGED
|
@@ -10,4 +10,8 @@ import type { ErDiagramAST } from '../types/er.js';
|
|
|
10
10
|
* @returns The parsed AST
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseErDiagram(input: string): ErDiagramAST;
|
|
13
|
+
/**
|
|
14
|
+
* Check if input is an ER diagram
|
|
15
|
+
*/
|
|
16
|
+
export declare function isErDiagram(input: string): boolean;
|
|
13
17
|
//# sourceMappingURL=er-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"er-parser.d.ts","sourceRoot":"","sources":["../../src/parser/er-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAGV,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAuHxB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAgB1D"}
|
|
1
|
+
{"version":3,"file":"er-parser.d.ts","sourceRoot":"","sources":["../../src/parser/er-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAGV,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAuHxB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAgB1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIlD"}
|
package/dist/parser/er-parser.js
CHANGED
|
@@ -117,3 +117,11 @@ export function parseErDiagram(input) {
|
|
|
117
117
|
erParser.parse(normalizedInput);
|
|
118
118
|
return ast;
|
|
119
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Check if input is an ER diagram
|
|
122
|
+
*/
|
|
123
|
+
export function isErDiagram(input) {
|
|
124
|
+
const trimmed = input.trim();
|
|
125
|
+
const firstLine = trimmed.split('\n')[0].trim().toLowerCase();
|
|
126
|
+
return firstLine.startsWith('erdiagram') || firstLine.startsWith('er-diagram');
|
|
127
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowchart-parser.d.ts","sourceRoot":"","sources":["../../src/parser/flowchart-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,YAAY,EAOlB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"flowchart-parser.d.ts","sourceRoot":"","sources":["../../src/parser/flowchart-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,YAAY,EAOlB,MAAM,uBAAuB,CAAC;AAoc/B;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAkB1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQzD"}
|
|
@@ -341,7 +341,11 @@ function createFlowchartYY(ast) {
|
|
|
341
341
|
updateLink(indices, stylesOpt) {
|
|
342
342
|
const parsedStyles = parseStylesOpt(stylesOpt);
|
|
343
343
|
for (const index of indices) {
|
|
344
|
-
const idx = index === 'default'
|
|
344
|
+
const idx = index === 'default'
|
|
345
|
+
? 'default'
|
|
346
|
+
: typeof index === 'number'
|
|
347
|
+
? index
|
|
348
|
+
: Number.parseInt(index, 10);
|
|
345
349
|
ast.linkStyles.push({
|
|
346
350
|
index: idx,
|
|
347
351
|
styles: parsedStyles,
|
|
@@ -353,7 +357,11 @@ function createFlowchartYY(ast) {
|
|
|
353
357
|
// Store interpolation info - will be merged with styles when updateLink is called
|
|
354
358
|
// For now, just track it
|
|
355
359
|
for (const index of indices) {
|
|
356
|
-
const idx = index === 'default'
|
|
360
|
+
const idx = index === 'default'
|
|
361
|
+
? 'default'
|
|
362
|
+
: typeof index === 'number'
|
|
363
|
+
? index
|
|
364
|
+
: Number.parseInt(index, 10);
|
|
357
365
|
// Find existing linkStyle or create new one
|
|
358
366
|
const existing = ast.linkStyles.find((ls) => ls.index === idx);
|
|
359
367
|
if (existing) {
|
|
@@ -10,4 +10,8 @@ import type { GanttAST } from '../types/gantt.js';
|
|
|
10
10
|
* @returns The parsed AST
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseGantt(input: string): GanttAST;
|
|
13
|
+
/**
|
|
14
|
+
* Check if input is a Gantt chart
|
|
15
|
+
*/
|
|
16
|
+
export declare function isGanttDiagram(input: string): boolean;
|
|
13
17
|
//# sourceMappingURL=gantt-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gantt-parser.d.ts","sourceRoot":"","sources":["../../src/parser/gantt-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,mBAAmB,CAAC;AA8K3B;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAgBlD"}
|
|
1
|
+
{"version":3,"file":"gantt-parser.d.ts","sourceRoot":"","sources":["../../src/parser/gantt-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,mBAAmB,CAAC;AA8K3B;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAgBlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIrD"}
|
|
@@ -180,3 +180,11 @@ export function parseGantt(input) {
|
|
|
180
180
|
ganttParser.parse(normalizedInput);
|
|
181
181
|
return ast;
|
|
182
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Check if input is a Gantt chart
|
|
185
|
+
*/
|
|
186
|
+
export function isGanttDiagram(input) {
|
|
187
|
+
const trimmed = input.trim();
|
|
188
|
+
const firstLine = trimmed.split('\n')[0].trim().toLowerCase();
|
|
189
|
+
return firstLine.startsWith('gantt');
|
|
190
|
+
}
|
package/dist/parser/index.d.ts
CHANGED
|
@@ -4,8 +4,16 @@
|
|
|
4
4
|
* Main entry point for parsing Mermaid diagrams into ASTs.
|
|
5
5
|
*/
|
|
6
6
|
export { isClassDiagram, parseClassDiagram } from './class-parser.js';
|
|
7
|
+
export { isErDiagram, parseErDiagram } from './er-parser.js';
|
|
7
8
|
export { isFlowchartDiagram, parseFlowchart } from './flowchart-parser.js';
|
|
9
|
+
export { isGanttDiagram, parseGantt } from './gantt-parser.js';
|
|
10
|
+
export { isJourneyDiagram, parseJourney } from './journey-parser.js';
|
|
11
|
+
export { isMindmapDiagram, parseMindmap } from './mindmap-parser.js';
|
|
12
|
+
export { isQuadrantDiagram, parseQuadrant } from './quadrant-parser.js';
|
|
13
|
+
export { isSankeyDiagram, parseSankey } from './sankey-parser.js';
|
|
8
14
|
export { isSequenceDiagram, parseSequence } from './sequence-parser.js';
|
|
15
|
+
export { isStateDiagram, parseStateDiagram } from './state-parser.js';
|
|
16
|
+
export { isTimelineDiagram, parseTimeline } from './timeline-parser.js';
|
|
9
17
|
import type { DiagramType, MermaidAST } from '../types/index.js';
|
|
10
18
|
/**
|
|
11
19
|
* Detect the diagram type from input text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAcjE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAanE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAmC/C"}
|
package/dist/parser/index.js
CHANGED
|
@@ -4,11 +4,28 @@
|
|
|
4
4
|
* Main entry point for parsing Mermaid diagrams into ASTs.
|
|
5
5
|
*/
|
|
6
6
|
export { isClassDiagram, parseClassDiagram } from './class-parser.js';
|
|
7
|
+
export { isErDiagram, parseErDiagram } from './er-parser.js';
|
|
7
8
|
export { isFlowchartDiagram, parseFlowchart } from './flowchart-parser.js';
|
|
9
|
+
export { isGanttDiagram, parseGantt } from './gantt-parser.js';
|
|
10
|
+
export { isJourneyDiagram, parseJourney } from './journey-parser.js';
|
|
11
|
+
export { isMindmapDiagram, parseMindmap } from './mindmap-parser.js';
|
|
12
|
+
export { isQuadrantDiagram, parseQuadrant } from './quadrant-parser.js';
|
|
13
|
+
export { isSankeyDiagram, parseSankey } from './sankey-parser.js';
|
|
8
14
|
export { isSequenceDiagram, parseSequence } from './sequence-parser.js';
|
|
15
|
+
export { isStateDiagram, parseStateDiagram } from './state-parser.js';
|
|
16
|
+
export { isTimelineDiagram, parseTimeline } from './timeline-parser.js';
|
|
17
|
+
import { assertNever } from '../utils.js';
|
|
9
18
|
import { isClassDiagram, parseClassDiagram } from './class-parser.js';
|
|
19
|
+
import { isErDiagram, parseErDiagram } from './er-parser.js';
|
|
10
20
|
import { isFlowchartDiagram, parseFlowchart } from './flowchart-parser.js';
|
|
21
|
+
import { isGanttDiagram, parseGantt } from './gantt-parser.js';
|
|
22
|
+
import { isJourneyDiagram, parseJourney } from './journey-parser.js';
|
|
23
|
+
import { isMindmapDiagram, parseMindmap } from './mindmap-parser.js';
|
|
24
|
+
import { isQuadrantDiagram, parseQuadrant } from './quadrant-parser.js';
|
|
25
|
+
import { isSankeyDiagram, parseSankey } from './sankey-parser.js';
|
|
11
26
|
import { isSequenceDiagram, parseSequence } from './sequence-parser.js';
|
|
27
|
+
import { isStateDiagram, parseStateDiagram } from './state-parser.js';
|
|
28
|
+
import { isTimelineDiagram, parseTimeline } from './timeline-parser.js';
|
|
12
29
|
/**
|
|
13
30
|
* Detect the diagram type from input text
|
|
14
31
|
*/
|
|
@@ -19,6 +36,22 @@ export function detectDiagramType(input) {
|
|
|
19
36
|
return 'sequence';
|
|
20
37
|
if (isClassDiagram(input))
|
|
21
38
|
return 'class';
|
|
39
|
+
if (isStateDiagram(input))
|
|
40
|
+
return 'state';
|
|
41
|
+
if (isErDiagram(input))
|
|
42
|
+
return 'erDiagram';
|
|
43
|
+
if (isGanttDiagram(input))
|
|
44
|
+
return 'gantt';
|
|
45
|
+
if (isMindmapDiagram(input))
|
|
46
|
+
return 'mindmap';
|
|
47
|
+
if (isJourneyDiagram(input))
|
|
48
|
+
return 'journey';
|
|
49
|
+
if (isTimelineDiagram(input))
|
|
50
|
+
return 'timeline';
|
|
51
|
+
if (isSankeyDiagram(input))
|
|
52
|
+
return 'sankey';
|
|
53
|
+
if (isQuadrantDiagram(input))
|
|
54
|
+
return 'quadrant';
|
|
22
55
|
return null;
|
|
23
56
|
}
|
|
24
57
|
/**
|
|
@@ -27,7 +60,7 @@ export function detectDiagramType(input) {
|
|
|
27
60
|
export function parse(input) {
|
|
28
61
|
const type = detectDiagramType(input);
|
|
29
62
|
if (!type) {
|
|
30
|
-
throw new Error('Unable to detect diagram type. Supported types: flowchart, sequence, class');
|
|
63
|
+
throw new Error('Unable to detect diagram type. Supported types: flowchart, sequence, class, state, erDiagram, gantt, mindmap, journey, timeline, sankey, quadrant');
|
|
31
64
|
}
|
|
32
65
|
switch (type) {
|
|
33
66
|
case 'flowchart':
|
|
@@ -36,7 +69,23 @@ export function parse(input) {
|
|
|
36
69
|
return parseSequence(input);
|
|
37
70
|
case 'class':
|
|
38
71
|
return parseClassDiagram(input);
|
|
72
|
+
case 'state':
|
|
73
|
+
return parseStateDiagram(input);
|
|
74
|
+
case 'erDiagram':
|
|
75
|
+
return parseErDiagram(input);
|
|
76
|
+
case 'gantt':
|
|
77
|
+
return parseGantt(input);
|
|
78
|
+
case 'mindmap':
|
|
79
|
+
return parseMindmap(input);
|
|
80
|
+
case 'journey':
|
|
81
|
+
return parseJourney(input);
|
|
82
|
+
case 'timeline':
|
|
83
|
+
return parseTimeline(input);
|
|
84
|
+
case 'sankey':
|
|
85
|
+
return parseSankey(input);
|
|
86
|
+
case 'quadrant':
|
|
87
|
+
return parseQuadrant(input);
|
|
39
88
|
default:
|
|
40
|
-
|
|
89
|
+
return assertNever(type);
|
|
41
90
|
}
|
|
42
91
|
}
|
|
@@ -10,4 +10,8 @@ import type { JourneyAST } from '../types/journey.js';
|
|
|
10
10
|
* @returns The parsed AST
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseJourney(input: string): JourneyAST;
|
|
13
|
+
/**
|
|
14
|
+
* Check if input is a journey diagram
|
|
15
|
+
*/
|
|
16
|
+
export declare function isJourneyDiagram(input: string): boolean;
|
|
13
17
|
//# sourceMappingURL=journey-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-parser.d.ts","sourceRoot":"","sources":["../../src/parser/journey-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA+B,MAAM,qBAAqB,CAAC;AA+FnF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAgBtD"}
|
|
1
|
+
{"version":3,"file":"journey-parser.d.ts","sourceRoot":"","sources":["../../src/parser/journey-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA+B,MAAM,qBAAqB,CAAC;AA+FnF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAgBtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvD"}
|
|
@@ -14,7 +14,7 @@ function parseTaskData(taskData) {
|
|
|
14
14
|
// taskData comes in format ": 5: Me, You" or ": 5"
|
|
15
15
|
const trimmed = taskData.replace(/^:\s*/, '').trim();
|
|
16
16
|
const parts = trimmed.split(':');
|
|
17
|
-
const score = parseInt(parts[0].trim(), 10) || 5;
|
|
17
|
+
const score = Number.parseInt(parts[0].trim(), 10) || 5;
|
|
18
18
|
const actors = [];
|
|
19
19
|
if (parts.length > 1) {
|
|
20
20
|
const actorPart = parts.slice(1).join(':').trim();
|
|
@@ -97,3 +97,11 @@ export function parseJourney(input) {
|
|
|
97
97
|
journeyParser.parse(normalizedInput);
|
|
98
98
|
return ast;
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if input is a journey diagram
|
|
102
|
+
*/
|
|
103
|
+
export function isJourneyDiagram(input) {
|
|
104
|
+
const trimmed = input.trim();
|
|
105
|
+
const firstLine = trimmed.split('\n')[0].trim().toLowerCase();
|
|
106
|
+
return firstLine.startsWith('journey');
|
|
107
|
+
}
|
|
@@ -10,4 +10,8 @@ import type { MindmapAST } from '../types/mindmap.js';
|
|
|
10
10
|
* @returns The parsed AST
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseMindmap(input: string): MindmapAST;
|
|
13
|
+
/**
|
|
14
|
+
* Check if input is a mindmap diagram
|
|
15
|
+
*/
|
|
16
|
+
export declare function isMindmapDiagram(input: string): boolean;
|
|
13
17
|
//# sourceMappingURL=mindmap-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mindmap-parser.d.ts","sourceRoot":"","sources":["../../src/parser/mindmap-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAiC,MAAM,qBAAqB,CAAC;AA+LrF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAgBtD"}
|
|
1
|
+
{"version":3,"file":"mindmap-parser.d.ts","sourceRoot":"","sources":["../../src/parser/mindmap-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAiC,MAAM,qBAAqB,CAAC;AA+LrF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAgBtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvD"}
|
|
@@ -194,3 +194,11 @@ export function parseMindmap(input) {
|
|
|
194
194
|
mindmapParser.parse(normalizedInput);
|
|
195
195
|
return ast;
|
|
196
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Check if input is a mindmap diagram
|
|
199
|
+
*/
|
|
200
|
+
export function isMindmapDiagram(input) {
|
|
201
|
+
const trimmed = input.trim();
|
|
202
|
+
const firstLine = trimmed.split('\n')[0].trim().toLowerCase();
|
|
203
|
+
return firstLine.startsWith('mindmap');
|
|
204
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quadrant Chart Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Mermaid quadrant chart syntax into an AST using the vendored JISON parser.
|
|
5
|
+
*/
|
|
6
|
+
import type { QuadrantAST } from '../types/quadrant.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check if input is a quadrant chart
|
|
9
|
+
*/
|
|
10
|
+
export declare function isQuadrantDiagram(input: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Parse quadrant chart syntax into an AST
|
|
13
|
+
* @param input - Mermaid quadrant chart syntax
|
|
14
|
+
* @returns The parsed AST
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseQuadrant(input: string): QuadrantAST;
|
|
17
|
+
//# sourceMappingURL=quadrant-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quadrant-parser.d.ts","sourceRoot":"","sources":["../../src/parser/quadrant-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,sBAAsB,CAAC;AAiGvE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAgBxD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quadrant Chart Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Mermaid quadrant chart syntax into an AST using the vendored JISON parser.
|
|
5
|
+
*/
|
|
6
|
+
import { createEmptyQuadrantAST } from '../types/quadrant.js';
|
|
7
|
+
// @ts-expect-error - JISON parser has no types
|
|
8
|
+
import quadrantParser from '../vendored/parsers/quadrant.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create the yy object that the JISON parser uses to build the AST
|
|
11
|
+
*/
|
|
12
|
+
function createQuadrantYY(ast) {
|
|
13
|
+
return {
|
|
14
|
+
// Class definitions
|
|
15
|
+
addClass(className, styles) {
|
|
16
|
+
if (!ast.classes) {
|
|
17
|
+
ast.classes = new Map();
|
|
18
|
+
}
|
|
19
|
+
ast.classes.set(className, {
|
|
20
|
+
name: className,
|
|
21
|
+
styles,
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
// Metadata
|
|
25
|
+
setDiagramTitle(title) {
|
|
26
|
+
ast.title = title;
|
|
27
|
+
},
|
|
28
|
+
setAccTitle(title) {
|
|
29
|
+
ast.accTitle = title;
|
|
30
|
+
},
|
|
31
|
+
setAccDescription(description) {
|
|
32
|
+
ast.accDescription = description;
|
|
33
|
+
},
|
|
34
|
+
// Add data point
|
|
35
|
+
// Note: JISON grammar passes text as {text: string, type: string} object
|
|
36
|
+
addPoint(name, className, xValue, yValue, styles) {
|
|
37
|
+
const point = {
|
|
38
|
+
name: typeof name === 'string' ? name : name.text,
|
|
39
|
+
x: xValue,
|
|
40
|
+
y: yValue,
|
|
41
|
+
};
|
|
42
|
+
if (className) {
|
|
43
|
+
point.className = className;
|
|
44
|
+
}
|
|
45
|
+
if (styles && styles.length > 0) {
|
|
46
|
+
point.styles = styles;
|
|
47
|
+
}
|
|
48
|
+
ast.points.push(point);
|
|
49
|
+
},
|
|
50
|
+
// Axis labels
|
|
51
|
+
setXAxisLeftText(textObj) {
|
|
52
|
+
ast.xAxisLeft = textObj.text;
|
|
53
|
+
},
|
|
54
|
+
setXAxisRightText(textObj) {
|
|
55
|
+
ast.xAxisRight = textObj.text;
|
|
56
|
+
},
|
|
57
|
+
setYAxisBottomText(textObj) {
|
|
58
|
+
ast.yAxisBottom = textObj.text;
|
|
59
|
+
},
|
|
60
|
+
setYAxisTopText(textObj) {
|
|
61
|
+
ast.yAxisTop = textObj.text;
|
|
62
|
+
},
|
|
63
|
+
// Quadrant labels
|
|
64
|
+
setQuadrant1Text(textObj) {
|
|
65
|
+
ast.quadrant1 = textObj.text;
|
|
66
|
+
},
|
|
67
|
+
setQuadrant2Text(textObj) {
|
|
68
|
+
ast.quadrant2 = textObj.text;
|
|
69
|
+
},
|
|
70
|
+
setQuadrant3Text(textObj) {
|
|
71
|
+
ast.quadrant3 = textObj.text;
|
|
72
|
+
},
|
|
73
|
+
setQuadrant4Text(textObj) {
|
|
74
|
+
ast.quadrant4 = textObj.text;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if input is a quadrant chart
|
|
80
|
+
*/
|
|
81
|
+
export function isQuadrantDiagram(input) {
|
|
82
|
+
const trimmed = input.trim();
|
|
83
|
+
return /^quadrantChart(\s|$)/i.test(trimmed);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Parse quadrant chart syntax into an AST
|
|
87
|
+
* @param input - Mermaid quadrant chart syntax
|
|
88
|
+
* @returns The parsed AST
|
|
89
|
+
*/
|
|
90
|
+
export function parseQuadrant(input) {
|
|
91
|
+
const ast = createEmptyQuadrantAST();
|
|
92
|
+
// Normalize input - ensure it starts with quadrantChart
|
|
93
|
+
let normalizedInput = input.trim();
|
|
94
|
+
if (!normalizedInput.toLowerCase().startsWith('quadrantchart')) {
|
|
95
|
+
normalizedInput = `quadrantChart\n${normalizedInput}`;
|
|
96
|
+
}
|
|
97
|
+
// Set up the yy object
|
|
98
|
+
quadrantParser.yy = createQuadrantYY(ast);
|
|
99
|
+
// Parse the input
|
|
100
|
+
quadrantParser.parse(normalizedInput);
|
|
101
|
+
return ast;
|
|
102
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sankey Diagram Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Mermaid sankey diagram syntax into an AST using the vendored JISON parser.
|
|
5
|
+
*/
|
|
6
|
+
import type { SankeyAST } from '../types/sankey.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check if input is a sankey diagram
|
|
9
|
+
*/
|
|
10
|
+
export declare function isSankeyDiagram(input: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Parse sankey diagram syntax into an AST
|
|
13
|
+
* @param input - Mermaid sankey diagram syntax
|
|
14
|
+
* @returns The parsed AST
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseSankey(input: string): SankeyAST;
|
|
17
|
+
//# sourceMappingURL=sankey-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sankey-parser.d.ts","sourceRoot":"","sources":["../../src/parser/sankey-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAqChE;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAgBpD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sankey Diagram Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Mermaid sankey diagram syntax into an AST using the vendored JISON parser.
|
|
5
|
+
*/
|
|
6
|
+
import { createEmptySankeyAST } from '../types/sankey.js';
|
|
7
|
+
// @ts-expect-error - JISON parser has no types
|
|
8
|
+
import sankeyParser from '../vendored/parsers/sankey.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create the yy object that the JISON parser uses to build the AST
|
|
11
|
+
*/
|
|
12
|
+
function createSankeyYY(ast) {
|
|
13
|
+
return {
|
|
14
|
+
/**
|
|
15
|
+
* Find or create a node by name
|
|
16
|
+
*/
|
|
17
|
+
findOrCreateNode(name) {
|
|
18
|
+
if (!ast.nodes.has(name)) {
|
|
19
|
+
ast.nodes.set(name, {
|
|
20
|
+
id: name,
|
|
21
|
+
label: name,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return ast.nodes.get(name);
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Add a link between two nodes
|
|
28
|
+
*/
|
|
29
|
+
addLink(source, target, value) {
|
|
30
|
+
ast.links.push({
|
|
31
|
+
source: source.id,
|
|
32
|
+
target: target.id,
|
|
33
|
+
value,
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if input is a sankey diagram
|
|
40
|
+
*/
|
|
41
|
+
export function isSankeyDiagram(input) {
|
|
42
|
+
const trimmed = input.trim();
|
|
43
|
+
return /^sankey(-beta)?(\s|$)/i.test(trimmed);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse sankey diagram syntax into an AST
|
|
47
|
+
* @param input - Mermaid sankey diagram syntax
|
|
48
|
+
* @returns The parsed AST
|
|
49
|
+
*/
|
|
50
|
+
export function parseSankey(input) {
|
|
51
|
+
const ast = createEmptySankeyAST();
|
|
52
|
+
// Normalize input - ensure it starts with sankey
|
|
53
|
+
let normalizedInput = input.trim();
|
|
54
|
+
if (!normalizedInput.toLowerCase().startsWith('sankey')) {
|
|
55
|
+
normalizedInput = `sankey\n${normalizedInput}`;
|
|
56
|
+
}
|
|
57
|
+
// Set up the yy object
|
|
58
|
+
sankeyParser.yy = createSankeyYY(ast);
|
|
59
|
+
// Parse the input
|
|
60
|
+
sankeyParser.parse(normalizedInput);
|
|
61
|
+
return ast;
|
|
62
|
+
}
|
|
@@ -10,4 +10,8 @@ import type { TimelineAST } from '../types/timeline.js';
|
|
|
10
10
|
* @returns The parsed AST
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseTimeline(input: string): TimelineAST;
|
|
13
|
+
/**
|
|
14
|
+
* Check if input is a timeline diagram
|
|
15
|
+
*/
|
|
16
|
+
export declare function isTimelineDiagram(input: string): boolean;
|
|
13
17
|
//# sourceMappingURL=timeline-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-parser.d.ts","sourceRoot":"","sources":["../../src/parser/timeline-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmC,MAAM,sBAAsB,CAAC;AAqFzF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAgBxD"}
|
|
1
|
+
{"version":3,"file":"timeline-parser.d.ts","sourceRoot":"","sources":["../../src/parser/timeline-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmC,MAAM,sBAAsB,CAAC;AAqFzF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAgBxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIxD"}
|
|
@@ -95,3 +95,11 @@ export function parseTimeline(input) {
|
|
|
95
95
|
timelineParser.parse(normalizedInput);
|
|
96
96
|
return ast;
|
|
97
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Check if input is a timeline diagram
|
|
100
|
+
*/
|
|
101
|
+
export function isTimelineDiagram(input) {
|
|
102
|
+
const trimmed = input.trim();
|
|
103
|
+
const firstLine = trimmed.split('\n')[0].trim().toLowerCase();
|
|
104
|
+
return firstLine.startsWith('timeline');
|
|
105
|
+
}
|