mermaid-ast 0.5.1 → 0.6.1

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 (95) hide show
  1. package/dist/flowchart.js +1 -1
  2. package/dist/index.d.ts +6 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -2
  5. package/dist/journey.d.ts +4 -0
  6. package/dist/journey.d.ts.map +1 -1
  7. package/dist/journey.js +6 -0
  8. package/dist/parser/er-parser.d.ts +4 -0
  9. package/dist/parser/er-parser.d.ts.map +1 -1
  10. package/dist/parser/er-parser.js +8 -0
  11. package/dist/parser/flowchart-parser.d.ts.map +1 -1
  12. package/dist/parser/flowchart-parser.js +10 -2
  13. package/dist/parser/gantt-parser.d.ts +4 -0
  14. package/dist/parser/gantt-parser.d.ts.map +1 -1
  15. package/dist/parser/gantt-parser.js +8 -0
  16. package/dist/parser/index.d.ts +8 -0
  17. package/dist/parser/index.d.ts.map +1 -1
  18. package/dist/parser/index.js +51 -2
  19. package/dist/parser/journey-parser.d.ts +4 -0
  20. package/dist/parser/journey-parser.d.ts.map +1 -1
  21. package/dist/parser/journey-parser.js +9 -1
  22. package/dist/parser/mindmap-parser.d.ts +4 -0
  23. package/dist/parser/mindmap-parser.d.ts.map +1 -1
  24. package/dist/parser/mindmap-parser.js +8 -0
  25. package/dist/parser/quadrant-parser.d.ts +17 -0
  26. package/dist/parser/quadrant-parser.d.ts.map +1 -0
  27. package/dist/parser/quadrant-parser.js +102 -0
  28. package/dist/parser/sankey-parser.d.ts +17 -0
  29. package/dist/parser/sankey-parser.d.ts.map +1 -0
  30. package/dist/parser/sankey-parser.js +62 -0
  31. package/dist/parser/timeline-parser.d.ts +4 -0
  32. package/dist/parser/timeline-parser.d.ts.map +1 -1
  33. package/dist/parser/timeline-parser.js +8 -0
  34. package/dist/quadrant.d.ts +122 -0
  35. package/dist/quadrant.d.ts.map +1 -0
  36. package/dist/quadrant.js +260 -0
  37. package/dist/renderer/class-renderer.d.ts.map +1 -1
  38. package/dist/renderer/class-renderer.js +12 -2
  39. package/dist/renderer/flowchart-renderer.d.ts.map +1 -1
  40. package/dist/renderer/flowchart-renderer.js +21 -17
  41. package/dist/renderer/index.d.ts +2 -0
  42. package/dist/renderer/index.d.ts.map +1 -1
  43. package/dist/renderer/index.js +11 -1
  44. package/dist/renderer/quadrant-renderer.d.ts +12 -0
  45. package/dist/renderer/quadrant-renderer.d.ts.map +1 -0
  46. package/dist/renderer/quadrant-renderer.js +75 -0
  47. package/dist/renderer/sankey-renderer.d.ts +12 -0
  48. package/dist/renderer/sankey-renderer.d.ts.map +1 -0
  49. package/dist/renderer/sankey-renderer.js +27 -0
  50. package/dist/renderer/sequence-renderer.d.ts.map +1 -1
  51. package/dist/renderer/sequence-renderer.js +3 -5
  52. package/dist/renderer/state-renderer.d.ts.map +1 -1
  53. package/dist/renderer/state-renderer.js +2 -6
  54. package/dist/sankey.d.ts +120 -0
  55. package/dist/sankey.d.ts.map +1 -0
  56. package/dist/sankey.js +217 -0
  57. package/dist/timeline.d.ts +4 -0
  58. package/dist/timeline.d.ts.map +1 -1
  59. package/dist/timeline.js +6 -0
  60. package/dist/types/index.d.ts +20 -2
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/index.js +21 -0
  63. package/dist/types/quadrant.d.ts +66 -0
  64. package/dist/types/quadrant.d.ts.map +1 -0
  65. package/dist/types/quadrant.js +15 -0
  66. package/dist/types/sankey.d.ts +40 -0
  67. package/dist/types/sankey.d.ts.map +1 -0
  68. package/dist/types/sankey.js +15 -0
  69. package/dist/vendored/grammars/block.jison +290 -0
  70. package/dist/vendored/grammars/c4.jison +322 -0
  71. package/dist/vendored/grammars/kanban.jison +166 -0
  72. package/dist/vendored/grammars/quadrant.jison +187 -0
  73. package/dist/vendored/grammars/requirement.jison +267 -0
  74. package/dist/vendored/grammars/sankey.jison +67 -0
  75. package/dist/vendored/grammars/xychart.jison +172 -0
  76. package/dist/vendored/parsers/block.js +897 -0
  77. package/dist/vendored/parsers/c4.js +915 -0
  78. package/dist/vendored/parsers/class.js +369 -329
  79. package/dist/vendored/parsers/er.js +369 -329
  80. package/dist/vendored/parsers/flowchart.js +369 -329
  81. package/dist/vendored/parsers/gantt.js +369 -329
  82. package/dist/vendored/parsers/journey.js +369 -329
  83. package/dist/vendored/parsers/kanban.js +745 -0
  84. package/dist/vendored/parsers/mindmap.js +369 -329
  85. package/dist/vendored/parsers/quadrant.js +782 -0
  86. package/dist/vendored/parsers/requirement.js +871 -0
  87. package/dist/vendored/parsers/sankey.js +616 -0
  88. package/dist/vendored/parsers/sequence.js +369 -329
  89. package/dist/vendored/parsers/state.js +369 -329
  90. package/dist/vendored/parsers/timeline.js +369 -329
  91. package/dist/vendored/parsers/xychart.js +763 -0
  92. package/dist/vendored/sync-info.json +57 -2
  93. package/package.json +2 -1
  94. package/LICENSE +0 -21
  95. package/README.md +0 -722
package/dist/flowchart.js CHANGED
@@ -447,7 +447,7 @@ export class Flowchart extends DiagramWrapper {
447
447
  link.text = { text, type: 'text' };
448
448
  }
449
449
  else {
450
- delete link.text;
450
+ link.text = undefined;
451
451
  }
452
452
  }
453
453
  return this;
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';
@@ -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
@@ -66,6 +66,10 @@ export declare class Journey extends DiagramWrapper<JourneyAST> {
66
66
  * Get all sections
67
67
  */
68
68
  get sections(): JourneySection[];
69
+ /**
70
+ * Get section count
71
+ */
72
+ get sectionCount(): number;
69
73
  /**
70
74
  * Get total task count
71
75
  */
@@ -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
@@ -84,6 +84,12 @@ export class Journey extends DiagramWrapper {
84
84
  get sections() {
85
85
  return this.ast.sections;
86
86
  }
87
+ /**
88
+ * Get section count
89
+ */
90
+ get sectionCount() {
91
+ return this.ast.sections.length;
92
+ }
87
93
  /**
88
94
  * Get total task count
89
95
  */
@@ -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"}
@@ -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;AA4b/B;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAkB1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQzD"}
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' ? 'default' : typeof index === 'number' ? index : parseInt(index, 10);
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' ? 'default' : typeof index === 'number' ? index : parseInt(index, 10);
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
+ }
@@ -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;AAKjE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAKnE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAiB/C"}
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"}
@@ -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
- throw new Error(`Unsupported diagram type: ${type}`);
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
+ }