From b7d31adda44d92dde06efeebb5218933c44b7e62 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sat, 11 Mar 2023 14:54:21 +0100 Subject: [PATCH 01/69] Support node16 module resolution The `node16` module resolution requires imports to use the `.js` file extension in type definitions. `@rollup/plugin-typescript` is needed to make this work with the Vite setup used by Mermaid. The module option for Mermaid internally is set to `nodenext`. This is needed to support `.json` imports. Note that setting `module` to `node16` or `nodenext` implies a matching `moduleResolution` value. --- .vite/build.ts | 10 ++++- __mocks__/d3.ts | 2 +- .../integration/other/configuration.spec.js | 2 +- .../other/external-diagrams.spec.js | 2 +- cypress/integration/other/ghsa.spec.js | 2 +- .../rendering/classDiagram-v2.spec.js | 2 +- .../rendering/classDiagram.spec.js | 2 +- cypress/integration/rendering/current.spec.js | 2 +- cypress/integration/rendering/debug.spec.js | 2 +- .../integration/rendering/erDiagram.spec.js | 2 +- .../rendering/flowchart-elk.spec.js | 2 +- .../rendering/flowchart-v2.spec.js | 2 +- .../integration/rendering/flowchart.spec.js | 2 +- .../rendering/sequencediagram.spec.js | 2 +- .../rendering/stateDiagram-v2.spec.js | 8 ++-- .../rendering/stateDiagram.spec.js | 2 +- cypress/platform/bundle-test.js | 2 +- cypress/platform/viewer.js | 4 +- docs/config/setup/modules/mermaidAPI.md | 12 +++--- package.json | 1 + .../src/diagram-definition.ts | 10 ++--- .../src/exampleDiagram.spec.js | 8 ++-- .../src/exampleDiagramDb.js | 2 +- .../src/exampleDiagramRenderer.js | 2 +- .../mermaid-example-diagram/tsconfig.json | 1 - packages/mermaid/src/Diagram.ts | 14 +++---- packages/mermaid/src/__mocks__/mermaidAPI.ts | 4 +- packages/mermaid/src/accessibility.spec.ts | 6 +-- packages/mermaid/src/accessibility.ts | 3 +- packages/mermaid/src/commonDb.ts | 4 +- packages/mermaid/src/config.spec.js | 2 +- packages/mermaid/src/config.ts | 10 ++--- .../mermaid/src/dagre-wrapper/clusters.js | 10 ++--- .../mermaid/src/dagre-wrapper/createLabel.js | 8 ++-- packages/mermaid/src/dagre-wrapper/edges.js | 10 ++--- .../mermaid/src/dagre-wrapper/edges.spec.js | 4 +- packages/mermaid/src/dagre-wrapper/index.js | 14 +++---- .../intersect/intersect-circle.js | 2 +- .../intersect/intersect-polygon.js | 2 +- packages/mermaid/src/dagre-wrapper/markers.js | 2 +- .../src/dagre-wrapper/mermaid-graphlib.js | 2 +- .../dagre-wrapper/mermaid-graphlib.spec.js | 4 +- packages/mermaid/src/dagre-wrapper/nodes.js | 14 +++---- .../mermaid/src/dagre-wrapper/patterns.js | 2 +- .../mermaid/src/dagre-wrapper/shapes/note.js | 4 +- .../mermaid/src/dagre-wrapper/shapes/util.js | 8 ++-- packages/mermaid/src/defaultConfig.ts | 4 +- .../mermaid/src/diagram-api/detectType.ts | 12 +++--- .../diagram-api/diagram-orchestration.spec.ts | 4 +- .../src/diagram-api/diagram-orchestration.ts | 42 +++++++++---------- .../src/diagram-api/diagramAPI.spec.ts | 10 ++--- .../mermaid/src/diagram-api/diagramAPI.ts | 18 ++++---- .../src/diagram-api/frontmatter.spec.ts | 2 +- .../mermaid/src/diagram-api/frontmatter.ts | 2 +- packages/mermaid/src/diagram-api/types.ts | 2 +- packages/mermaid/src/diagram.spec.ts | 6 +-- packages/mermaid/src/diagrams/c4/c4Db.js | 8 ++-- .../mermaid/src/diagrams/c4/c4Detector.ts | 4 +- packages/mermaid/src/diagrams/c4/c4Diagram.ts | 12 +++--- .../mermaid/src/diagrams/c4/c4Renderer.js | 18 ++++---- .../src/diagrams/c4/parser/c4Boundary.spec.js | 4 +- .../src/diagrams/c4/parser/c4Diagram.spec.js | 4 +- .../src/diagrams/c4/parser/c4Person.spec.js | 4 +- .../diagrams/c4/parser/c4PersonExt.spec.js | 4 +- .../src/diagrams/c4/parser/c4System.spec.js | 4 +- packages/mermaid/src/diagrams/c4/svgDraw.js | 2 +- .../mermaid/src/diagrams/class/classDb.ts | 14 +++---- .../src/diagrams/class/classDetector-V2.ts | 4 +- .../src/diagrams/class/classDetector.ts | 4 +- .../class/classDiagram-styles.spec.js | 4 +- .../src/diagrams/class/classDiagram-v2.ts | 10 ++--- .../src/diagrams/class/classDiagram.spec.ts | 4 +- .../src/diagrams/class/classDiagram.ts | 10 ++--- .../src/diagrams/class/classRenderer-v2.ts | 14 +++---- .../src/diagrams/class/classRenderer.js | 8 ++-- .../mermaid/src/diagrams/class/svgDraw.js | 6 +-- .../src/diagrams/class/svgDraw.spec.js | 2 +- .../src/diagrams/common/common.spec.js | 2 +- .../mermaid/src/diagrams/common/common.ts | 2 +- packages/mermaid/src/diagrams/er/erDb.js | 8 ++-- .../mermaid/src/diagrams/er/erDetector.ts | 4 +- packages/mermaid/src/diagrams/er/erDiagram.ts | 8 ++-- .../mermaid/src/diagrams/er/erRenderer.js | 12 +++--- .../src/diagrams/er/erRenderer.spec.ts | 2 +- .../src/diagrams/er/parser/erDiagram.spec.js | 6 +-- .../src/diagrams/error/errorDetector.ts | 4 +- .../src/diagrams/error/errorDiagram.ts | 6 +-- .../src/diagrams/error/errorRenderer.ts | 4 +- .../diagrams/flowchart/elk/detector.spec.ts | 2 +- .../src/diagrams/flowchart/elk/detector.ts | 4 +- .../flowchart/elk/flowRenderer-elk.js | 12 +++--- .../flowchart/elk/flowchart-elk-definition.ts | 8 ++-- .../flowchart/elk/render-utils.spec.ts | 2 +- .../flowchart/flowChartShapes.spec.js | 2 +- .../mermaid/src/diagrams/flowchart/flowDb.js | 12 +++--- .../src/diagrams/flowchart/flowDb.spec.js | 2 +- .../src/diagrams/flowchart/flowDetector-v2.ts | 6 +-- .../src/diagrams/flowchart/flowDetector.ts | 4 +- .../src/diagrams/flowchart/flowDiagram-v2.ts | 12 +++--- .../src/diagrams/flowchart/flowDiagram.ts | 12 +++--- .../src/diagrams/flowchart/flowRenderer-v2.js | 14 +++---- .../flowchart/flowRenderer.addEdges.spec.js | 8 ++-- .../src/diagrams/flowchart/flowRenderer.js | 12 +++--- .../diagrams/flowchart/flowRenderer.spec.js | 4 +- .../flowchart/parser/flow-arrows.spec.js | 6 +-- .../flowchart/parser/flow-comments.spec.js | 6 +-- .../flowchart/parser/flow-direction.spec.js | 6 +-- .../flowchart/parser/flow-edges.spec.js | 6 +-- .../flowchart/parser/flow-huge.spec.js | 6 +-- .../parser/flow-interactions.spec.js | 6 +-- .../flowchart/parser/flow-lines.spec.js | 6 +-- .../flowchart/parser/flow-singlenode.spec.js | 6 +-- .../flowchart/parser/flow-style.spec.js | 6 +-- .../flowchart/parser/flow-text.spec.js | 6 +-- .../parser/flow-vertice-chaining.spec.js | 6 +-- .../diagrams/flowchart/parser/flow.spec.js | 6 +-- .../flowchart/parser/subgraph.spec.js | 6 +-- .../mermaid/src/diagrams/gantt/ganttDb.js | 10 ++--- .../src/diagrams/gantt/ganttDb.spec.ts | 4 +- .../src/diagrams/gantt/ganttDetector.ts | 4 +- .../src/diagrams/gantt/ganttDiagram.ts | 10 ++--- .../src/diagrams/gantt/ganttRenderer.js | 8 ++-- .../src/diagrams/gantt/parser/gantt.spec.js | 6 +-- .../mermaid/src/diagrams/git/gitGraphAst.js | 14 +++---- .../src/diagrams/git/gitGraphDetector.ts | 6 +-- .../src/diagrams/git/gitGraphDiagram.ts | 10 ++--- .../src/diagrams/git/gitGraphParserV2.spec.js | 4 +- .../src/diagrams/git/gitGraphRenderer-old.js | 8 ++-- .../src/diagrams/git/gitGraphRenderer.js | 6 +-- packages/mermaid/src/diagrams/git/layout.js | 2 +- .../mermaid/src/diagrams/info/info.spec.js | 4 +- packages/mermaid/src/diagrams/info/infoDb.js | 4 +- .../mermaid/src/diagrams/info/infoDetector.ts | 4 +- .../mermaid/src/diagrams/info/infoDiagram.ts | 10 ++--- .../mermaid/src/diagrams/info/infoRenderer.js | 4 +- .../mermaid/src/diagrams/mindmap/detector.ts | 2 +- .../diagrams/mindmap/mindmap-definition.ts | 8 ++-- .../src/diagrams/mindmap/mindmap.spec.js | 6 +-- .../mermaid/src/diagrams/mindmap/mindmapDb.js | 6 +-- .../src/diagrams/mindmap/mindmapRenderer.js | 10 ++--- .../mermaid/src/diagrams/mindmap/svgDraw.js | 2 +- .../src/diagrams/pie/parser/pie.spec.js | 6 +-- packages/mermaid/src/diagrams/pie/pieDb.js | 10 ++--- .../mermaid/src/diagrams/pie/pieDetector.ts | 4 +- .../mermaid/src/diagrams/pie/pieDiagram.ts | 10 ++--- .../mermaid/src/diagrams/pie/pieRenderer.js | 8 ++-- .../parser/requirementDiagram.spec.js | 6 +-- .../src/diagrams/requirement/requirementDb.js | 8 ++-- .../requirement/requirementDetector.ts | 4 +- .../requirement/requirementDiagram.ts | 10 ++--- .../requirement/requirementRenderer.js | 10 ++--- .../src/diagrams/sequence/sequenceDb.js | 10 ++--- .../src/diagrams/sequence/sequenceDetector.ts | 4 +- .../diagrams/sequence/sequenceDiagram.spec.js | 8 ++-- .../src/diagrams/sequence/sequenceDiagram.ts | 10 ++--- .../src/diagrams/sequence/sequenceRenderer.ts | 16 +++---- .../mermaid/src/diagrams/sequence/svgDraw.js | 6 +-- .../src/diagrams/sequence/svgDraw.spec.js | 2 +- .../state/parser/state-parser.spec.js | 6 +-- .../diagrams/state/parser/state-style.spec.js | 6 +-- packages/mermaid/src/diagrams/state/shapes.js | 10 ++--- .../mermaid/src/diagrams/state/stateDb.js | 14 +++---- .../src/diagrams/state/stateDb.spec.js | 2 +- .../src/diagrams/state/stateDetector-V2.ts | 4 +- .../src/diagrams/state/stateDetector.ts | 4 +- .../diagrams/state/stateDiagram-v2.spec.js | 4 +- .../src/diagrams/state/stateDiagram-v2.ts | 10 ++--- .../src/diagrams/state/stateDiagram.spec.js | 4 +- .../src/diagrams/state/stateDiagram.ts | 10 ++--- .../src/diagrams/state/stateRenderer-v2.js | 12 +++--- .../diagrams/state/stateRenderer-v2.spec.js | 6 +-- .../src/diagrams/state/stateRenderer.js | 10 ++--- .../mermaid/src/diagrams/timeline/detector.ts | 2 +- .../diagrams/timeline/timeline-definition.ts | 6 +-- .../src/diagrams/timeline/timeline.spec.js | 12 +++--- .../src/diagrams/timeline/timelineDb.js | 4 +- .../src/diagrams/timeline/timelineRenderer.ts | 12 +++--- .../src/diagrams/user-journey/journeyDb.js | 6 +-- .../diagrams/user-journey/journeyDb.spec.js | 4 +- .../diagrams/user-journey/journeyDetector.ts | 4 +- .../diagrams/user-journey/journeyDiagram.ts | 10 ++--- .../diagrams/user-journey/journeyRenderer.ts | 6 +-- .../user-journey/parser/journey.spec.js | 4 +- packages/mermaid/src/directiveUtils.ts | 6 +-- .../mermaid/src/docs/.vitepress/config.ts | 2 +- .../src/docs/.vitepress/theme/index.ts | 4 +- .../docs/.vitepress/theme/redirect.spec.ts | 2 +- packages/mermaid/src/docs/vite.config.ts | 1 + packages/mermaid/src/mermaid.spec.ts | 6 +-- packages/mermaid/src/mermaid.ts | 22 +++++----- packages/mermaid/src/mermaidAPI.spec.ts | 16 +++---- packages/mermaid/src/mermaidAPI.ts | 29 +++++++------ packages/mermaid/src/setupGraphViewbox.js | 2 +- .../mermaid/src/setupGraphViewbox.spec.js | 10 ++--- packages/mermaid/src/styles.ts | 4 +- packages/mermaid/src/tests/MockedD3.ts | 2 +- packages/mermaid/src/themes/index.js | 10 ++--- packages/mermaid/src/themes/theme-base.js | 4 +- packages/mermaid/src/themes/theme-dark.js | 2 +- packages/mermaid/src/themes/theme-default.js | 4 +- packages/mermaid/src/themes/theme-forest.js | 4 +- packages/mermaid/src/themes/theme-neutral.js | 4 +- packages/mermaid/src/utils.spec.js | 10 ++--- packages/mermaid/src/utils.ts | 12 +++--- pnpm-lock.yaml | 35 ++++++++++++++++ tsconfig.json | 3 +- vite.config.ts | 4 +- 207 files changed, 707 insertions(+), 662 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index 268db3270..b3f1f64a4 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -3,6 +3,7 @@ import { resolve } from 'path'; import { fileURLToPath } from 'url'; import jisonPlugin from './jisonPlugin.js'; import { readFileSync } from 'fs'; +import typescript from '@rollup/plugin-typescript'; import { visualizer } from 'rollup-plugin-visualizer'; import type { TemplateType } from 'rollup-plugin-visualizer/dist/plugin/template-types.js'; @@ -102,9 +103,14 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) }, }, resolve: { - extensions: ['.jison', '.js', '.ts', '.json'], + extensions: [], }, - plugins: [jisonPlugin(), ...visualizerOptions(packageName, core)], + plugins: [ + jisonPlugin(), + // @ts-expect-error + typescript({ compilerOptions: { declaration: false } }), + ...visualizerOptions(packageName, core), + ], }; if (watch && config.build) { diff --git a/__mocks__/d3.ts b/__mocks__/d3.ts index af35020c5..b472a3181 100644 --- a/__mocks__/d3.ts +++ b/__mocks__/d3.ts @@ -1,5 +1,5 @@ // @ts-nocheck TODO: Fix TS -import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3'; +import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3.js'; export const select = function () { return new MockedD3(); diff --git a/cypress/integration/other/configuration.spec.js b/cypress/integration/other/configuration.spec.js index 513cf0714..6df7edd84 100644 --- a/cypress/integration/other/configuration.spec.js +++ b/cypress/integration/other/configuration.spec.js @@ -1,4 +1,4 @@ -import { renderGraph } from '../../helpers/util'; +import { renderGraph } from '../../helpers/util.js'; describe('Configuration', () => { describe('arrowMarkerAbsolute', () => { it('should handle default value false of arrowMarkerAbsolute', () => { diff --git a/cypress/integration/other/external-diagrams.spec.js b/cypress/integration/other/external-diagrams.spec.js index c94235162..4ade11e81 100644 --- a/cypress/integration/other/external-diagrams.spec.js +++ b/cypress/integration/other/external-diagrams.spec.js @@ -1,4 +1,4 @@ -import { urlSnapshotTest } from '../../helpers/util'; +import { urlSnapshotTest } from '../../helpers/util.js'; describe('mermaid', () => { describe('registerDiagram', () => { diff --git a/cypress/integration/other/ghsa.spec.js b/cypress/integration/other/ghsa.spec.js index 4fadc7855..8f28d9f53 100644 --- a/cypress/integration/other/ghsa.spec.js +++ b/cypress/integration/other/ghsa.spec.js @@ -1,4 +1,4 @@ -import { urlSnapshotTest } from '../../helpers/util'; +import { urlSnapshotTest } from '../../helpers/util.js'; describe('CSS injections', () => { it('should not allow CSS injections outside of the diagram', () => { diff --git a/cypress/integration/rendering/classDiagram-v2.spec.js b/cypress/integration/rendering/classDiagram-v2.spec.js index 71810cfa4..a11571814 100644 --- a/cypress/integration/rendering/classDiagram-v2.spec.js +++ b/cypress/integration/rendering/classDiagram-v2.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest } from '../../helpers/util'; +import { imgSnapshotTest } from '../../helpers/util.js'; describe('Class diagram V2', () => { it('0: should render a simple class diagram', () => { imgSnapshotTest( diff --git a/cypress/integration/rendering/classDiagram.spec.js b/cypress/integration/rendering/classDiagram.spec.js index e21be67ec..cda455f0e 100644 --- a/cypress/integration/rendering/classDiagram.spec.js +++ b/cypress/integration/rendering/classDiagram.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('Class diagram', () => { it('1: should render a simple class diagram', () => { diff --git a/cypress/integration/rendering/current.spec.js b/cypress/integration/rendering/current.spec.js index 033752c66..e0b36d53a 100644 --- a/cypress/integration/rendering/current.spec.js +++ b/cypress/integration/rendering/current.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest } from '../../helpers/util'; +import { imgSnapshotTest } from '../../helpers/util.js'; describe('Current diagram', () => { it('should render a state with states in it', () => { diff --git a/cypress/integration/rendering/debug.spec.js b/cypress/integration/rendering/debug.spec.js index 673cadf3e..afde4af3e 100644 --- a/cypress/integration/rendering/debug.spec.js +++ b/cypress/integration/rendering/debug.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest } from '../../helpers/util'; +import { imgSnapshotTest } from '../../helpers/util.js'; describe('Flowchart', () => { it('34: testing the label width in percy', () => { diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js index df1fac0cd..82b2920bc 100644 --- a/cypress/integration/rendering/erDiagram.spec.js +++ b/cypress/integration/rendering/erDiagram.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('Entity Relationship Diagram', () => { it('should render a simple ER diagram', () => { diff --git a/cypress/integration/rendering/flowchart-elk.spec.js b/cypress/integration/rendering/flowchart-elk.spec.js index 414037651..b11182d90 100644 --- a/cypress/integration/rendering/flowchart-elk.spec.js +++ b/cypress/integration/rendering/flowchart-elk.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe.skip('Flowchart ELK', () => { it('1-elk: should render a simple flowchart', () => { diff --git a/cypress/integration/rendering/flowchart-v2.spec.js b/cypress/integration/rendering/flowchart-v2.spec.js index abdb22265..d396d45e7 100644 --- a/cypress/integration/rendering/flowchart-v2.spec.js +++ b/cypress/integration/rendering/flowchart-v2.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('Flowchart v2', () => { it('1: should render a simple flowchart', () => { diff --git a/cypress/integration/rendering/flowchart.spec.js b/cypress/integration/rendering/flowchart.spec.js index c4ef54fcf..d25043d28 100644 --- a/cypress/integration/rendering/flowchart.spec.js +++ b/cypress/integration/rendering/flowchart.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('Graph', () => { it('1: should render a simple flowchart no htmlLabels', () => { diff --git a/cypress/integration/rendering/sequencediagram.spec.js b/cypress/integration/rendering/sequencediagram.spec.js index f8948240a..687fc245b 100644 --- a/cypress/integration/rendering/sequencediagram.spec.js +++ b/cypress/integration/rendering/sequencediagram.spec.js @@ -1,6 +1,6 @@ /// -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; context('Sequence diagram', () => { it('should render a sequence diagram with boxes', () => { diff --git a/cypress/integration/rendering/stateDiagram-v2.spec.js b/cypress/integration/rendering/stateDiagram-v2.spec.js index 047e240fc..700791621 100644 --- a/cypress/integration/rendering/stateDiagram-v2.spec.js +++ b/cypress/integration/rendering/stateDiagram-v2.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('State diagram', () => { it('v2 should render a simple info', () => { @@ -530,7 +530,7 @@ stateDiagram-v2 [*] --> A A --> B: test({ foo#colon; 'far' }) B --> [*] - classDef badBadEvent fill:#f00,color:white,font-weight:bold + classDef badBadEvent fill:#f00,color:white,font-weight:bold class B badBadEvent `, { logLevel: 0, fontFamily: 'courier' } @@ -543,14 +543,14 @@ stateDiagram-v2 classDef notMoving fill:white classDef movement font-style:italic; classDef badBadEvent fill:#f00,color:white,font-weight:bold - + [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] - + class Still notMoving class Moving, Crash movement class Crash badBadEvent diff --git a/cypress/integration/rendering/stateDiagram.spec.js b/cypress/integration/rendering/stateDiagram.spec.js index cdcc48a07..28c24d398 100644 --- a/cypress/integration/rendering/stateDiagram.spec.js +++ b/cypress/integration/rendering/stateDiagram.spec.js @@ -1,4 +1,4 @@ -import { imgSnapshotTest, renderGraph } from '../../helpers/util'; +import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('State diagram', () => { it('should render a simple state diagrams', () => { diff --git a/cypress/platform/bundle-test.js b/cypress/platform/bundle-test.js index edd3dfbc4..33677cd97 100644 --- a/cypress/platform/bundle-test.js +++ b/cypress/platform/bundle-test.js @@ -1,4 +1,4 @@ -import mermaid from '../../packages/mermaid/src/mermaid'; +import mermaid from '../../packages/mermaid/src/mermaid.js'; let code = `flowchart LR Power_Supply --> Transmitter_A diff --git a/cypress/platform/viewer.js b/cypress/platform/viewer.js index 2e1093519..395769c87 100644 --- a/cypress/platform/viewer.js +++ b/cypress/platform/viewer.js @@ -1,5 +1,5 @@ -import mermaid2 from '../../packages/mermaid/src/mermaid'; -import externalExample from '../../packages/mermaid-example-diagram/src/detector'; +import mermaid2 from '../../packages/mermaid/src/mermaid.js'; +import externalExample from '../../packages/mermaid-example-diagram/src/detector.js'; function b64ToUtf8(str) { return decodeURIComponent(escape(window.atob(str))); diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 4b8f57bd7..bcfcef235 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -95,7 +95,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:659](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L659) +[mermaidAPI.ts:662](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L662) ## Functions @@ -126,7 +126,7 @@ Return the last node appended #### Defined in -[mermaidAPI.ts:305](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L305) +[mermaidAPI.ts:308](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L308) --- @@ -152,7 +152,7 @@ the cleaned up svgCode #### Defined in -[mermaidAPI.ts:256](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L256) +[mermaidAPI.ts:259](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L259) --- @@ -201,7 +201,7 @@ the string with all the user styles #### Defined in -[mermaidAPI.ts:233](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L233) +[mermaidAPI.ts:236](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L236) --- @@ -294,7 +294,7 @@ Put the svgCode into an iFrame. Return the iFrame code #### Defined in -[mermaidAPI.ts:284](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L284) +[mermaidAPI.ts:287](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L287) --- @@ -319,4 +319,4 @@ Remove any existing elements from the given document #### Defined in -[mermaidAPI.ts:355](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L355) +[mermaidAPI.ts:358](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L358) diff --git a/package.json b/package.json index 89de95949..95bd68b0a 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@commitlint/cli": "^17.2.0", "@commitlint/config-conventional": "^17.2.0", "@cspell/eslint-plugin": "^6.14.2", + "@rollup/plugin-typescript": "^11.0.0", "@types/cors": "^2.8.13", "@types/eslint": "^8.4.10", "@types/express": "^4.17.17", diff --git a/packages/mermaid-example-diagram/src/diagram-definition.ts b/packages/mermaid-example-diagram/src/diagram-definition.ts index c31b3d6e7..f29c8ee7f 100644 --- a/packages/mermaid-example-diagram/src/diagram-definition.ts +++ b/packages/mermaid-example-diagram/src/diagram-definition.ts @@ -1,9 +1,9 @@ // @ts-ignore: TODO Fix ts errors -import parser from './parser/exampleDiagram'; -import * as db from './exampleDiagramDb'; -import renderer from './exampleDiagramRenderer'; -import styles from './styles'; -import { injectUtils } from './mermaidUtils'; +import parser from './parser/exampleDiagram.jison'; +import * as db from './exampleDiagramDb.js'; +import renderer from './exampleDiagramRenderer.js'; +import styles from './styles.js'; +import { injectUtils } from './mermaidUtils.js'; export const diagram = { db, diff --git a/packages/mermaid-example-diagram/src/exampleDiagram.spec.js b/packages/mermaid-example-diagram/src/exampleDiagram.spec.js index 96c8cd5b2..6ea655404 100644 --- a/packages/mermaid-example-diagram/src/exampleDiagram.spec.js +++ b/packages/mermaid-example-diagram/src/exampleDiagram.spec.js @@ -1,6 +1,6 @@ -import { parser } from './parser/exampleDiagram'; -import * as db from './exampleDiagramDb'; -import { injectUtils } from './mermaidUtils'; +import { parser } from './parser/exampleDiagram.js'; +import * as db from './exampleDiagramDb.js'; +import { injectUtils } from './mermaidUtils.js'; // Todo fix utils functions for tests import { log, @@ -8,7 +8,7 @@ import { getConfig, sanitizeText, setupGraphViewBox, -} from '../../mermaid/src/diagram-api/diagramAPI'; +} from '../../mermaid/src/diagram-api/diagramAPI.js'; injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox); diff --git a/packages/mermaid-example-diagram/src/exampleDiagramDb.js b/packages/mermaid-example-diagram/src/exampleDiagramDb.js index 8429ec5d6..a5fa88e6d 100644 --- a/packages/mermaid-example-diagram/src/exampleDiagramDb.js +++ b/packages/mermaid-example-diagram/src/exampleDiagramDb.js @@ -1,5 +1,5 @@ /** Created by knut on 15-01-14. */ -import { log } from './mermaidUtils'; +import { log } from './mermaidUtils.js'; var message = ''; var info = false; diff --git a/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js b/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js index 0d7340677..2c6839203 100644 --- a/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js +++ b/packages/mermaid-example-diagram/src/exampleDiagramRenderer.js @@ -1,6 +1,6 @@ /** Created by knut on 14-12-11. */ import { select } from 'd3'; -import { log, getConfig, setupGraphViewbox } from './mermaidUtils'; +import { log, getConfig, setupGraphViewbox } from './mermaidUtils.js'; /** * Draws a an info picture in the tag with id: id based on the graph definition in text. diff --git a/packages/mermaid-example-diagram/tsconfig.json b/packages/mermaid-example-diagram/tsconfig.json index 310137cc0..45076b7b5 100644 --- a/packages/mermaid-example-diagram/tsconfig.json +++ b/packages/mermaid-example-diagram/tsconfig.json @@ -1,6 +1,5 @@ { "extends": "../../tsconfig.json", - "module": "esnext", "compilerOptions": { "rootDir": "./src", "outDir": "./dist" diff --git a/packages/mermaid/src/Diagram.ts b/packages/mermaid/src/Diagram.ts index 3010ce130..e2a9a3816 100644 --- a/packages/mermaid/src/Diagram.ts +++ b/packages/mermaid/src/Diagram.ts @@ -1,10 +1,10 @@ -import * as configApi from './config'; -import { log } from './logger'; -import { getDiagram, registerDiagram } from './diagram-api/diagramAPI'; -import { detectType, getDiagramLoader } from './diagram-api/detectType'; -import { extractFrontMatter } from './diagram-api/frontmatter'; -import { UnknownDiagramError } from './errors'; -import { DetailedError } from './utils'; +import * as configApi from './config.js'; +import { log } from './logger.js'; +import { getDiagram, registerDiagram } from './diagram-api/diagramAPI.js'; +import { detectType, getDiagramLoader } from './diagram-api/detectType.js'; +import { extractFrontMatter } from './diagram-api/frontmatter.js'; +import { UnknownDiagramError } from './errors.js'; +import { DetailedError } from './utils.js'; export type ParseErrorFunction = (err: string | DetailedError | unknown, hash?: any) => void; diff --git a/packages/mermaid/src/__mocks__/mermaidAPI.ts b/packages/mermaid/src/__mocks__/mermaidAPI.ts index 95b87d990..a2d19ef24 100644 --- a/packages/mermaid/src/__mocks__/mermaidAPI.ts +++ b/packages/mermaid/src/__mocks__/mermaidAPI.ts @@ -3,9 +3,9 @@ * * We can't easily use `vi.spyOn(mermaidAPI, "function")` since the object is frozen with `Object.freeze()`. */ -import * as configApi from '../config'; +import * as configApi from '../config.js'; import { vi } from 'vitest'; -import { mermaidAPI as mAPI } from '../mermaidAPI'; +import { mermaidAPI as mAPI } from '../mermaidAPI.js'; // original version cannot be modified since it was frozen with `Object.freeze()` export const mermaidAPI = { diff --git a/packages/mermaid/src/accessibility.spec.ts b/packages/mermaid/src/accessibility.spec.ts index 60415ea37..eac82ee34 100644 --- a/packages/mermaid/src/accessibility.spec.ts +++ b/packages/mermaid/src/accessibility.spec.ts @@ -1,6 +1,6 @@ -import { MockedD3 } from './tests/MockedD3'; -import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility'; -import { D3Element } from './mermaidAPI'; +import { MockedD3 } from './tests/MockedD3.js'; +import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility.js'; +import { D3Element } from './mermaidAPI.js'; describe('accessibility', () => { const fauxSvgNode = new MockedD3(); diff --git a/packages/mermaid/src/accessibility.ts b/packages/mermaid/src/accessibility.ts index 8e073aa76..3518c9722 100644 --- a/packages/mermaid/src/accessibility.ts +++ b/packages/mermaid/src/accessibility.ts @@ -5,7 +5,7 @@ * @see https://www.w3.org/TR/svg-aam-1.0/ * */ -import { D3Element } from './mermaidAPI'; +import { D3Element } from './mermaidAPI.js'; import isEmpty from 'lodash-es/isEmpty.js'; @@ -28,6 +28,7 @@ const SVG_ROLE = 'graphics-document document'; */ export function setA11yDiagramInfo(svg: D3Element, diagramType: string | null | undefined) { svg.attr('role', SVG_ROLE); + // @ts-expect-error https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64684 if (!isEmpty(diagramType)) { svg.attr('aria-roledescription', diagramType); } diff --git a/packages/mermaid/src/commonDb.ts b/packages/mermaid/src/commonDb.ts index 42ffde004..19b16d11e 100644 --- a/packages/mermaid/src/commonDb.ts +++ b/packages/mermaid/src/commonDb.ts @@ -1,5 +1,5 @@ -import { sanitizeText as _sanitizeText } from './diagrams/common/common'; -import { getConfig } from './config'; +import { sanitizeText as _sanitizeText } from './diagrams/common/common.js'; +import { getConfig } from './config.js'; let title = ''; let diagramTitle = ''; let description = ''; diff --git a/packages/mermaid/src/config.spec.js b/packages/mermaid/src/config.spec.js index b104f37cc..1f7fd976b 100644 --- a/packages/mermaid/src/config.spec.js +++ b/packages/mermaid/src/config.spec.js @@ -1,4 +1,4 @@ -import * as configApi from './config'; +import * as configApi from './config.js'; describe('when working with site config', function () { beforeEach(() => { diff --git a/packages/mermaid/src/config.ts b/packages/mermaid/src/config.ts index bc0066cec..838716e2f 100644 --- a/packages/mermaid/src/config.ts +++ b/packages/mermaid/src/config.ts @@ -1,8 +1,8 @@ -import assignWithDepth from './assignWithDepth'; -import { log } from './logger'; -import theme from './themes'; -import config from './defaultConfig'; -import type { MermaidConfig } from './config.type'; +import assignWithDepth from './assignWithDepth.js'; +import { log } from './logger.js'; +import theme from './themes/index.js'; +import config from './defaultConfig.js'; +import type { MermaidConfig } from './config.type.js'; export const defaultConfig: MermaidConfig = Object.freeze(config); diff --git a/packages/mermaid/src/dagre-wrapper/clusters.js b/packages/mermaid/src/dagre-wrapper/clusters.js index 57c3ff513..959fff73d 100644 --- a/packages/mermaid/src/dagre-wrapper/clusters.js +++ b/packages/mermaid/src/dagre-wrapper/clusters.js @@ -1,9 +1,9 @@ -import intersectRect from './intersect/intersect-rect'; -import { log } from '../logger'; -import createLabel from './createLabel'; +import intersectRect from './intersect/intersect-rect.js'; +import { log } from '../logger.js'; +import createLabel from './createLabel.js'; import { select } from 'd3'; -import { getConfig } from '../config'; -import { evaluate } from '../diagrams/common/common'; +import { getConfig } from '../config.js'; +import { evaluate } from '../diagrams/common/common.js'; const rect = (parent, node) => { log.trace('Creating subgraph rect for ', node.id, node); diff --git a/packages/mermaid/src/dagre-wrapper/createLabel.js b/packages/mermaid/src/dagre-wrapper/createLabel.js index af5032096..330da31c1 100644 --- a/packages/mermaid/src/dagre-wrapper/createLabel.js +++ b/packages/mermaid/src/dagre-wrapper/createLabel.js @@ -1,8 +1,8 @@ import { select } from 'd3'; -import { log } from '../logger'; -import { getConfig } from '../config'; -import { evaluate } from '../diagrams/common/common'; -import { decodeEntities } from '../mermaidAPI'; +import { log } from '../logger.js'; +import { getConfig } from '../config.js'; +import { evaluate } from '../diagrams/common/common.js'; +import { decodeEntities } from '../mermaidAPI.js'; /** * @param dom diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index f8c113694..fc4864624 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -1,9 +1,9 @@ -import { log } from '../logger'; -import createLabel from './createLabel'; +import { log } from '../logger.js'; +import createLabel from './createLabel.js'; import { line, curveBasis, select } from 'd3'; -import { getConfig } from '../config'; -import utils from '../utils'; -import { evaluate } from '../diagrams/common/common'; +import { getConfig } from '../config.js'; +import utils from '../utils.js'; +import { evaluate } from '../diagrams/common/common.js'; let edgeLabels = {}; let terminalLabels = {}; diff --git a/packages/mermaid/src/dagre-wrapper/edges.spec.js b/packages/mermaid/src/dagre-wrapper/edges.spec.js index 627691a8e..9b2772ecd 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.spec.js +++ b/packages/mermaid/src/dagre-wrapper/edges.spec.js @@ -1,5 +1,5 @@ -import { intersection } from './edges'; -import { setLogLevel } from '../logger'; +import { intersection } from './edges.js'; +import { setLogLevel } from '../logger.js'; describe('Graphlib decorations', () => { let node; diff --git a/packages/mermaid/src/dagre-wrapper/index.js b/packages/mermaid/src/dagre-wrapper/index.js index ce3ef6014..dd764dd9e 100644 --- a/packages/mermaid/src/dagre-wrapper/index.js +++ b/packages/mermaid/src/dagre-wrapper/index.js @@ -1,18 +1,18 @@ import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import * as graphlibJson from 'dagre-d3-es/src/graphlib/json.js'; -import insertMarkers from './markers'; -import { updateNodeBounds } from './shapes/util'; +import insertMarkers from './markers.js'; +import { updateNodeBounds } from './shapes/util.js'; import { clear as clearGraphlib, clusterDb, adjustClustersAndEdges, findNonClusterChild, sortNodesByHierarchy, -} from './mermaid-graphlib'; -import { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes'; -import { insertCluster, clear as clearClusters } from './clusters'; -import { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges'; -import { log } from '../logger'; +} from './mermaid-graphlib.js'; +import { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes.js'; +import { insertCluster, clear as clearClusters } from './clusters.js'; +import { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges.js'; +import { log } from '../logger.js'; const recursiveRender = (_elem, graph, diagramtype, parentCluster) => { log.info('Graph in recursive render: XXX', graphlibJson.write(graph), parentCluster); diff --git a/packages/mermaid/src/dagre-wrapper/intersect/intersect-circle.js b/packages/mermaid/src/dagre-wrapper/intersect/intersect-circle.js index c4d320426..8f5ba72df 100644 --- a/packages/mermaid/src/dagre-wrapper/intersect/intersect-circle.js +++ b/packages/mermaid/src/dagre-wrapper/intersect/intersect-circle.js @@ -1,4 +1,4 @@ -import intersectEllipse from './intersect-ellipse'; +import intersectEllipse from './intersect-ellipse.js'; /** * @param node diff --git a/packages/mermaid/src/dagre-wrapper/intersect/intersect-polygon.js b/packages/mermaid/src/dagre-wrapper/intersect/intersect-polygon.js index cd124150f..6941372c7 100644 --- a/packages/mermaid/src/dagre-wrapper/intersect/intersect-polygon.js +++ b/packages/mermaid/src/dagre-wrapper/intersect/intersect-polygon.js @@ -1,6 +1,6 @@ /* eslint "no-console": off */ -import intersectLine from './intersect-line'; +import intersectLine from './intersect-line.js'; export default intersectPolygon; diff --git a/packages/mermaid/src/dagre-wrapper/markers.js b/packages/mermaid/src/dagre-wrapper/markers.js index 1a3f74bee..5ae70148d 100644 --- a/packages/mermaid/src/dagre-wrapper/markers.js +++ b/packages/mermaid/src/dagre-wrapper/markers.js @@ -1,6 +1,6 @@ /** Setup arrow head and define the marker. The result is appended to the svg. */ -import { log } from '../logger'; +import { log } from '../logger.js'; // Only add the number of markers that the diagram needs const insertMarkers = (elem, markerArray, type, id) => { diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js index 875ac4def..72ef96965 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.js @@ -1,5 +1,5 @@ /** Decorates with functions required by mermaids dagre-wrapper. */ -import { log } from '../logger'; +import { log } from '../logger.js'; import * as graphlibJson from 'dagre-d3-es/src/graphlib/json.js'; import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; diff --git a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js index 25fb75d64..1444a82c4 100644 --- a/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js +++ b/packages/mermaid/src/dagre-wrapper/mermaid-graphlib.spec.js @@ -5,8 +5,8 @@ import { adjustClustersAndEdges, extractDescendants, sortNodesByHierarchy, -} from './mermaid-graphlib'; -import { setLogLevel, log } from '../logger'; +} from './mermaid-graphlib.js'; +import { setLogLevel, log } from '../logger.js'; describe('Graphlib decorations', () => { let g; diff --git a/packages/mermaid/src/dagre-wrapper/nodes.js b/packages/mermaid/src/dagre-wrapper/nodes.js index 49b96b685..51764d818 100644 --- a/packages/mermaid/src/dagre-wrapper/nodes.js +++ b/packages/mermaid/src/dagre-wrapper/nodes.js @@ -1,12 +1,12 @@ import { select } from 'd3'; -import { log } from '../logger'; -import { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util'; -import { getConfig } from '../config'; +import { log } from '../logger.js'; +import { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util.js'; +import { getConfig } from '../config.js'; import intersect from './intersect/index.js'; -import createLabel from './createLabel'; -import note from './shapes/note'; -import { parseMember } from '../diagrams/class/svgDraw'; -import { evaluate } from '../diagrams/common/common'; +import createLabel from './createLabel.js'; +import note from './shapes/note.js'; +import { parseMember } from '../diagrams/class/svgDraw.js'; +import { evaluate } from '../diagrams/common/common.js'; const question = (parent, node) => { const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true); diff --git a/packages/mermaid/src/dagre-wrapper/patterns.js b/packages/mermaid/src/dagre-wrapper/patterns.js index 75afa8bcc..3025f8ef9 100644 --- a/packages/mermaid/src/dagre-wrapper/patterns.js +++ b/packages/mermaid/src/dagre-wrapper/patterns.js @@ -1,6 +1,6 @@ /** Setup arrow head and define the marker. The result is appended to the svg. */ -// import { log } from '../logger'; +// import { log } from '../logger.js'; // Only add the number of markers that the diagram needs const insertPatterns = (elem, patternArray, type, id) => { diff --git a/packages/mermaid/src/dagre-wrapper/shapes/note.js b/packages/mermaid/src/dagre-wrapper/shapes/note.js index 6b693fdf6..0051fbb11 100644 --- a/packages/mermaid/src/dagre-wrapper/shapes/note.js +++ b/packages/mermaid/src/dagre-wrapper/shapes/note.js @@ -1,5 +1,5 @@ -import { updateNodeBounds, labelHelper } from './util'; -import { log } from '../../logger'; +import { updateNodeBounds, labelHelper } from './util.js'; +import { log } from '../../logger.js'; import intersect from '../intersect/index.js'; const note = (parent, node) => { diff --git a/packages/mermaid/src/dagre-wrapper/shapes/util.js b/packages/mermaid/src/dagre-wrapper/shapes/util.js index 6de0da638..38300bb44 100644 --- a/packages/mermaid/src/dagre-wrapper/shapes/util.js +++ b/packages/mermaid/src/dagre-wrapper/shapes/util.js @@ -1,8 +1,8 @@ -import createLabel from '../createLabel'; -import { getConfig } from '../../config'; -import { decodeEntities } from '../../mermaidAPI'; +import createLabel from '../createLabel.js'; +import { getConfig } from '../../config.js'; +import { decodeEntities } from '../../mermaidAPI.js'; import { select } from 'd3'; -import { evaluate, sanitizeText } from '../../diagrams/common/common'; +import { evaluate, sanitizeText } from '../../diagrams/common/common.js'; export const labelHelper = (parent, node, _classes, isNode) => { let classes; if (!_classes) { diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index 666efc364..35527bf4d 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -1,5 +1,5 @@ -import theme from './themes'; -import { MermaidConfig } from './config.type'; +import theme from './themes/index.js'; +import { MermaidConfig } from './config.type.js'; /** * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click * here](8.6.0_docs.md)].** diff --git a/packages/mermaid/src/diagram-api/detectType.ts b/packages/mermaid/src/diagram-api/detectType.ts index 0d26487cf..8351a67df 100644 --- a/packages/mermaid/src/diagram-api/detectType.ts +++ b/packages/mermaid/src/diagram-api/detectType.ts @@ -1,14 +1,14 @@ -import { MermaidConfig } from '../config.type'; -import { log } from '../logger'; +import { MermaidConfig } from '../config.type.js'; +import { log } from '../logger.js'; import type { DetectorRecord, DiagramDetector, DiagramLoader, ExternalDiagramDefinition, -} from './types'; -import { frontMatterRegex } from './frontmatter'; -import { getDiagram, registerDiagram } from './diagramAPI'; -import { UnknownDiagramError } from '../errors'; +} from './types.js'; +import { frontMatterRegex } from './frontmatter.js'; +import { getDiagram, registerDiagram } from './diagramAPI.js'; +import { UnknownDiagramError } from '../errors.js'; const directive = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; const anyComment = /\s*%%.*\n/gm; diff --git a/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts b/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts index 81909fe5e..d6c6b3046 100644 --- a/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts +++ b/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts @@ -1,6 +1,6 @@ import { it, describe, expect } from 'vitest'; -import { detectType } from './detectType'; -import { addDiagrams } from './diagram-orchestration'; +import { detectType } from './detectType.js'; +import { addDiagrams } from './diagram-orchestration.js'; describe('diagram-orchestration', () => { it('should register diagrams', () => { diff --git a/packages/mermaid/src/diagram-api/diagram-orchestration.ts b/packages/mermaid/src/diagram-api/diagram-orchestration.ts index 73bfcf084..91d54f11b 100644 --- a/packages/mermaid/src/diagram-api/diagram-orchestration.ts +++ b/packages/mermaid/src/diagram-api/diagram-orchestration.ts @@ -1,24 +1,24 @@ -import c4 from '../diagrams/c4/c4Detector'; -import flowchart from '../diagrams/flowchart/flowDetector'; -import flowchartV2 from '../diagrams/flowchart/flowDetector-v2'; -import er from '../diagrams/er/erDetector'; -import git from '../diagrams/git/gitGraphDetector'; -import gantt from '../diagrams/gantt/ganttDetector'; -import info from '../diagrams/info/infoDetector'; -import pie from '../diagrams/pie/pieDetector'; -import requirement from '../diagrams/requirement/requirementDetector'; -import sequence from '../diagrams/sequence/sequenceDetector'; -import classDiagram from '../diagrams/class/classDetector'; -import classDiagramV2 from '../diagrams/class/classDetector-V2'; -import state from '../diagrams/state/stateDetector'; -import stateV2 from '../diagrams/state/stateDetector-V2'; -import journey from '../diagrams/user-journey/journeyDetector'; -import error from '../diagrams/error/errorDetector'; -import flowchartElk from '../diagrams/flowchart/elk/detector'; -import timeline from '../diagrams/timeline/detector'; -import mindmap from '../diagrams/mindmap/detector'; -import { registerLazyLoadedDiagrams } from './detectType'; -import { registerDiagram } from './diagramAPI'; +import c4 from '../diagrams/c4/c4Detector.js'; +import flowchart from '../diagrams/flowchart/flowDetector.js'; +import flowchartV2 from '../diagrams/flowchart/flowDetector-v2.js'; +import er from '../diagrams/er/erDetector.js'; +import git from '../diagrams/git/gitGraphDetector.js'; +import gantt from '../diagrams/gantt/ganttDetector.js'; +import info from '../diagrams/info/infoDetector.js'; +import pie from '../diagrams/pie/pieDetector.js'; +import requirement from '../diagrams/requirement/requirementDetector.js'; +import sequence from '../diagrams/sequence/sequenceDetector.js'; +import classDiagram from '../diagrams/class/classDetector.js'; +import classDiagramV2 from '../diagrams/class/classDetector-V2.js'; +import state from '../diagrams/state/stateDetector.js'; +import stateV2 from '../diagrams/state/stateDetector-V2.js'; +import journey from '../diagrams/user-journey/journeyDetector.js'; +import error from '../diagrams/error/errorDetector.js'; +import flowchartElk from '../diagrams/flowchart/elk/detector.js'; +import timeline from '../diagrams/timeline/detector.js'; +import mindmap from '../diagrams/mindmap/detector.js'; +import { registerLazyLoadedDiagrams } from './detectType.js'; +import { registerDiagram } from './diagramAPI.js'; let hasLoadedDiagrams = false; export const addDiagrams = () => { diff --git a/packages/mermaid/src/diagram-api/diagramAPI.spec.ts b/packages/mermaid/src/diagram-api/diagramAPI.spec.ts index 4bdcc5e39..49bde1a66 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.spec.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.spec.ts @@ -1,8 +1,8 @@ -import { detectType } from './detectType'; -import { getDiagram, registerDiagram } from './diagramAPI'; -import { addDiagrams } from './diagram-orchestration'; -import { DiagramDetector } from './types'; -import { getDiagramFromText } from '../Diagram'; +import { detectType } from './detectType.js'; +import { getDiagram, registerDiagram } from './diagramAPI.js'; +import { addDiagrams } from './diagram-orchestration.js'; +import { DiagramDetector } from './types.js'; +import { getDiagramFromText } from '../Diagram.js'; import { it, describe, expect, beforeAll } from 'vitest'; addDiagrams(); diff --git a/packages/mermaid/src/diagram-api/diagramAPI.ts b/packages/mermaid/src/diagram-api/diagramAPI.ts index c5841b96b..7e89d9cd7 100644 --- a/packages/mermaid/src/diagram-api/diagramAPI.ts +++ b/packages/mermaid/src/diagram-api/diagramAPI.ts @@ -1,12 +1,12 @@ -import { addDetector } from './detectType'; -import { log as _log, setLogLevel as _setLogLevel } from '../logger'; -import { getConfig as _getConfig } from '../config'; -import { sanitizeText as _sanitizeText } from '../diagrams/common/common'; -import { setupGraphViewbox as _setupGraphViewbox } from '../setupGraphViewbox'; -import { addStylesForDiagram } from '../styles'; -import { DiagramDefinition, DiagramDetector } from './types'; -import * as _commonDb from '../commonDb'; -import { parseDirective as _parseDirective } from '../directiveUtils'; +import { addDetector } from './detectType.js'; +import { log as _log, setLogLevel as _setLogLevel } from '../logger.js'; +import { getConfig as _getConfig } from '../config.js'; +import { sanitizeText as _sanitizeText } from '../diagrams/common/common.js'; +import { setupGraphViewbox as _setupGraphViewbox } from '../setupGraphViewbox.js'; +import { addStylesForDiagram } from '../styles.js'; +import { DiagramDefinition, DiagramDetector } from './types.js'; +import * as _commonDb from '../commonDb.js'; +import { parseDirective as _parseDirective } from '../directiveUtils.js'; /* Packaging and exposing resources for external diagrams so that they can import diff --git a/packages/mermaid/src/diagram-api/frontmatter.spec.ts b/packages/mermaid/src/diagram-api/frontmatter.spec.ts index 4eb9789e2..ef05c8f14 100644 --- a/packages/mermaid/src/diagram-api/frontmatter.spec.ts +++ b/packages/mermaid/src/diagram-api/frontmatter.spec.ts @@ -1,5 +1,5 @@ import { vi } from 'vitest'; -import { extractFrontMatter } from './frontmatter'; +import { extractFrontMatter } from './frontmatter.js'; const dbMock = () => ({ setDiagramTitle: vi.fn() }); diff --git a/packages/mermaid/src/diagram-api/frontmatter.ts b/packages/mermaid/src/diagram-api/frontmatter.ts index d6811388c..da32acf47 100644 --- a/packages/mermaid/src/diagram-api/frontmatter.ts +++ b/packages/mermaid/src/diagram-api/frontmatter.ts @@ -1,4 +1,4 @@ -import { DiagramDb } from './types'; +import { DiagramDb } from './types.js'; // The "* as yaml" part is necessary for tree-shaking import * as yaml from 'js-yaml'; diff --git a/packages/mermaid/src/diagram-api/types.ts b/packages/mermaid/src/diagram-api/types.ts index 081136563..33d30e786 100644 --- a/packages/mermaid/src/diagram-api/types.ts +++ b/packages/mermaid/src/diagram-api/types.ts @@ -1,4 +1,4 @@ -import { MermaidConfig } from '../config.type'; +import { MermaidConfig } from '../config.type.js'; export interface InjectUtils { _log: any; diff --git a/packages/mermaid/src/diagram.spec.ts b/packages/mermaid/src/diagram.spec.ts index 5a4718d0b..aa613d8e5 100644 --- a/packages/mermaid/src/diagram.spec.ts +++ b/packages/mermaid/src/diagram.spec.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from 'vitest'; -import { Diagram, getDiagramFromText } from './Diagram'; -import { addDetector } from './diagram-api/detectType'; -import { addDiagrams } from './diagram-api/diagram-orchestration'; +import { Diagram, getDiagramFromText } from './Diagram.js'; +import { addDetector } from './diagram-api/detectType.js'; +import { addDiagrams } from './diagram-api/diagram-orchestration.js'; addDiagrams(); diff --git a/packages/mermaid/src/diagrams/c4/c4Db.js b/packages/mermaid/src/diagrams/c4/c4Db.js index d337b15c0..09dcc13cd 100644 --- a/packages/mermaid/src/diagrams/c4/c4Db.js +++ b/packages/mermaid/src/diagrams/c4/c4Db.js @@ -1,7 +1,7 @@ -import mermaidAPI from '../../mermaidAPI'; -import * as configApi from '../../config'; -import { sanitizeText } from '../common/common'; -import { setAccTitle, getAccTitle, getAccDescription, setAccDescription } from '../../commonDb'; +import mermaidAPI from '../../mermaidAPI.js'; +import * as configApi from '../../config.js'; +import { sanitizeText } from '../common/common.js'; +import { setAccTitle, getAccTitle, getAccDescription, setAccDescription } from '../../commonDb.js'; let c4ShapeArray = []; let boundaryParseStack = ['']; diff --git a/packages/mermaid/src/diagrams/c4/c4Detector.ts b/packages/mermaid/src/diagrams/c4/c4Detector.ts index 08b8bbf55..e6e82c6be 100644 --- a/packages/mermaid/src/diagrams/c4/c4Detector.ts +++ b/packages/mermaid/src/diagrams/c4/c4Detector.ts @@ -1,4 +1,4 @@ -import type { ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'c4'; @@ -7,7 +7,7 @@ const detector = (txt: string) => { }; const loader = async () => { - const { diagram } = await import('./c4Diagram'); + const { diagram } = await import('./c4Diagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/c4/c4Diagram.ts b/packages/mermaid/src/diagrams/c4/c4Diagram.ts index 6f8f25db2..04567fafa 100644 --- a/packages/mermaid/src/diagrams/c4/c4Diagram.ts +++ b/packages/mermaid/src/diagrams/c4/c4Diagram.ts @@ -1,10 +1,10 @@ // @ts-ignore: TODO Fix ts errors -import c4Parser from './parser/c4Diagram'; -import c4Db from './c4Db'; -import c4Renderer from './c4Renderer'; -import c4Styles from './styles'; -import { MermaidConfig } from '../../config.type'; -import { DiagramDefinition } from '../../diagram-api/types'; +import c4Parser from './parser/c4Diagram.jison'; +import c4Db from './c4Db.js'; +import c4Renderer from './c4Renderer.js'; +import c4Styles from './styles.js'; +import { MermaidConfig } from '../../config.type.js'; +import { DiagramDefinition } from '../../diagram-api/types.js'; export const diagram: DiagramDefinition = { parser: c4Parser, diff --git a/packages/mermaid/src/diagrams/c4/c4Renderer.js b/packages/mermaid/src/diagrams/c4/c4Renderer.js index a51fe0b6a..28600241c 100644 --- a/packages/mermaid/src/diagrams/c4/c4Renderer.js +++ b/packages/mermaid/src/diagrams/c4/c4Renderer.js @@ -1,13 +1,13 @@ import { select } from 'd3'; -import svgDraw from './svgDraw'; -import { log } from '../../logger'; -import { parser } from './parser/c4Diagram'; -import common from '../common/common'; -import c4Db from './c4Db'; -import * as configApi from '../../config'; -import assignWithDepth from '../../assignWithDepth'; -import { wrapLabel, calculateTextWidth, calculateTextHeight } from '../../utils'; -import { configureSvgSize } from '../../setupGraphViewbox'; +import svgDraw from './svgDraw.js'; +import { log } from '../../logger.js'; +import { parser } from './parser/c4Diagram.jison'; +import common from '../common/common.js'; +import c4Db from './c4Db.js'; +import * as configApi from '../../config.js'; +import assignWithDepth from '../../assignWithDepth.js'; +import { wrapLabel, calculateTextWidth, calculateTextHeight } from '../../utils.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0; diff --git a/packages/mermaid/src/diagrams/c4/parser/c4Boundary.spec.js b/packages/mermaid/src/diagrams/c4/parser/c4Boundary.spec.js index c7130f557..f43f00748 100644 --- a/packages/mermaid/src/diagrams/c4/parser/c4Boundary.spec.js +++ b/packages/mermaid/src/diagrams/c4/parser/c4Boundary.spec.js @@ -1,6 +1,6 @@ -import c4Db from '../c4Db'; +import c4Db from '../c4Db.js'; import c4 from './c4Diagram.jison'; -import { setConfig } from '../../../config'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/c4/parser/c4Diagram.spec.js b/packages/mermaid/src/diagrams/c4/parser/c4Diagram.spec.js index b79934b84..543e87a21 100644 --- a/packages/mermaid/src/diagrams/c4/parser/c4Diagram.spec.js +++ b/packages/mermaid/src/diagrams/c4/parser/c4Diagram.spec.js @@ -1,6 +1,6 @@ -import c4Db from '../c4Db'; +import c4Db from '../c4Db.js'; import c4 from './c4Diagram.jison'; -import { setConfig } from '../../../config'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/c4/parser/c4Person.spec.js b/packages/mermaid/src/diagrams/c4/parser/c4Person.spec.js index b504c0384..4eff0047c 100644 --- a/packages/mermaid/src/diagrams/c4/parser/c4Person.spec.js +++ b/packages/mermaid/src/diagrams/c4/parser/c4Person.spec.js @@ -1,6 +1,6 @@ -import c4Db from '../c4Db'; +import c4Db from '../c4Db.js'; import c4 from './c4Diagram.jison'; -import { setConfig } from '../../../config'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/c4/parser/c4PersonExt.spec.js b/packages/mermaid/src/diagrams/c4/parser/c4PersonExt.spec.js index 76547600a..f4b824e88 100644 --- a/packages/mermaid/src/diagrams/c4/parser/c4PersonExt.spec.js +++ b/packages/mermaid/src/diagrams/c4/parser/c4PersonExt.spec.js @@ -1,6 +1,6 @@ -import c4Db from '../c4Db'; +import c4Db from '../c4Db.js'; import c4 from './c4Diagram.jison'; -import { setConfig } from '../../../config'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/c4/parser/c4System.spec.js b/packages/mermaid/src/diagrams/c4/parser/c4System.spec.js index 6d81c7379..e2c2b26f7 100644 --- a/packages/mermaid/src/diagrams/c4/parser/c4System.spec.js +++ b/packages/mermaid/src/diagrams/c4/parser/c4System.spec.js @@ -1,6 +1,6 @@ -import c4Db from '../c4Db'; +import c4Db from '../c4Db.js'; import c4 from './c4Diagram.jison'; -import { setConfig } from '../../../config'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/c4/svgDraw.js b/packages/mermaid/src/diagrams/c4/svgDraw.js index 690dd26ad..2d660e6e7 100644 --- a/packages/mermaid/src/diagrams/c4/svgDraw.js +++ b/packages/mermaid/src/diagrams/c4/svgDraw.js @@ -1,4 +1,4 @@ -import common from '../common/common'; +import common from '../common/common.js'; import { sanitizeUrl } from '@braintree/sanitize-url'; export const drawRect = function (elem, rectData) { diff --git a/packages/mermaid/src/diagrams/class/classDb.ts b/packages/mermaid/src/diagrams/class/classDb.ts index 48ef7ccbe..8fa1eeb26 100644 --- a/packages/mermaid/src/diagrams/class/classDb.ts +++ b/packages/mermaid/src/diagrams/class/classDb.ts @@ -1,10 +1,10 @@ // @ts-expect-error - d3 types issue import { select, Selection } from 'd3'; -import { log } from '../../logger'; -import * as configApi from '../../config'; -import common from '../common/common'; -import utils from '../../utils'; -import mermaidAPI from '../../mermaidAPI'; +import { log } from '../../logger.js'; +import * as configApi from '../../config.js'; +import common from '../common/common.js'; +import utils from '../../utils.js'; +import mermaidAPI from '../../mermaidAPI.js'; import { setAccTitle, getAccTitle, @@ -13,8 +13,8 @@ import { clear as commonClear, setDiagramTitle, getDiagramTitle, -} from '../../commonDb'; -import { ClassRelation, ClassNode, ClassNote, ClassMap } from './classTypes'; +} from '../../commonDb.js'; +import { ClassRelation, ClassNode, ClassNote, ClassMap } from './classTypes.js'; const MERMAID_DOM_ID_PREFIX = 'classId-'; diff --git a/packages/mermaid/src/diagrams/class/classDetector-V2.ts b/packages/mermaid/src/diagrams/class/classDetector-V2.ts index 1d4255719..9eda53a4b 100644 --- a/packages/mermaid/src/diagrams/class/classDetector-V2.ts +++ b/packages/mermaid/src/diagrams/class/classDetector-V2.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'classDiagram'; @@ -15,7 +15,7 @@ const detector: DiagramDetector = (txt, config) => { }; const loader = async () => { - const { diagram } = await import('./classDiagram-v2'); + const { diagram } = await import('./classDiagram-v2.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/class/classDetector.ts b/packages/mermaid/src/diagrams/class/classDetector.ts index ef8ea61e7..e2eee9bb3 100644 --- a/packages/mermaid/src/diagrams/class/classDetector.ts +++ b/packages/mermaid/src/diagrams/class/classDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'class'; @@ -12,7 +12,7 @@ const detector: DiagramDetector = (txt, config) => { }; const loader = async () => { - const { diagram } = await import('./classDiagram'); + const { diagram } = await import('./classDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js b/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js index 702fa3ac3..3b3da12ed 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js +++ b/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js @@ -1,5 +1,5 @@ -import { parser } from './parser/classDiagram'; -import classDb from './classDb'; +import { parser } from './parser/classDiagram.js'; +import classDb from './classDb.js'; describe('class diagram, ', function () { describe('when parsing data from a classDiagram it', function () { diff --git a/packages/mermaid/src/diagrams/class/classDiagram-v2.ts b/packages/mermaid/src/diagrams/class/classDiagram-v2.ts index 2f0bbf371..5b952627c 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram-v2.ts +++ b/packages/mermaid/src/diagrams/class/classDiagram-v2.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/classDiagram'; -import db from './classDb'; -import styles from './styles'; -import renderer from './classRenderer-v2'; +import parser from './parser/classDiagram.jison'; +import db from './classDb.js'; +import styles from './styles.js'; +import renderer from './classRenderer-v2.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/class/classDiagram.spec.ts b/packages/mermaid/src/diagrams/class/classDiagram.spec.ts index 24fbc41ea..30faf7cd6 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram.spec.ts +++ b/packages/mermaid/src/diagrams/class/classDiagram.spec.ts @@ -1,6 +1,6 @@ // @ts-expect-error Jison doesn't export types -import { parser } from './parser/classDiagram'; -import classDb from './classDb'; +import { parser } from './parser/classDiagram.js'; +import classDb from './classDb.js'; import { vi, describe, it, expect } from 'vitest'; const spyOn = vi.spyOn; diff --git a/packages/mermaid/src/diagrams/class/classDiagram.ts b/packages/mermaid/src/diagrams/class/classDiagram.ts index 250d04176..0d2a246b4 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram.ts +++ b/packages/mermaid/src/diagrams/class/classDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/classDiagram'; -import db from './classDb'; -import styles from './styles'; -import renderer from './classRenderer'; +import parser from './parser/classDiagram.jison'; +import db from './classDb.js'; +import styles from './styles.js'; +import renderer from './classRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/class/classRenderer-v2.ts b/packages/mermaid/src/diagrams/class/classRenderer-v2.ts index e308990c6..8c4ac8b5b 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer-v2.ts +++ b/packages/mermaid/src/diagrams/class/classRenderer-v2.ts @@ -1,14 +1,14 @@ // @ts-ignore d3 types are not available import { select, curveLinear } from 'd3'; import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; -import { log } from '../../logger'; -import { getConfig } from '../../config'; +import { log } from '../../logger.js'; +import { getConfig } from '../../config.js'; import { render } from '../../dagre-wrapper/index.js'; -import utils from '../../utils'; -import { interpolateToCurve, getStylesFromArray } from '../../utils'; -import { setupGraphViewbox } from '../../setupGraphViewbox'; -import common from '../common/common'; -import { ClassRelation, ClassNote, ClassMap, EdgeData } from './classTypes'; +import utils from '../../utils.js'; +import { interpolateToCurve, getStylesFromArray } from '../../utils.js'; +import { setupGraphViewbox } from '../../setupGraphViewbox.js'; +import common from '../common/common.js'; +import { ClassRelation, ClassNote, ClassMap, EdgeData } from './classTypes.js'; const sanitizeText = (txt: string) => common.sanitizeText(txt, getConfig()); diff --git a/packages/mermaid/src/diagrams/class/classRenderer.js b/packages/mermaid/src/diagrams/class/classRenderer.js index 80a7f26e4..3774f7b8c 100644 --- a/packages/mermaid/src/diagrams/class/classRenderer.js +++ b/packages/mermaid/src/diagrams/class/classRenderer.js @@ -1,10 +1,10 @@ import { select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; -import { log } from '../../logger'; -import svgDraw from './svgDraw'; -import { configureSvgSize } from '../../setupGraphViewbox'; -import { getConfig } from '../../config'; +import { log } from '../../logger.js'; +import svgDraw from './svgDraw.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; +import { getConfig } from '../../config.js'; let idCache = {}; const padding = 20; diff --git a/packages/mermaid/src/diagrams/class/svgDraw.js b/packages/mermaid/src/diagrams/class/svgDraw.js index cc6909280..3ce8e980b 100644 --- a/packages/mermaid/src/diagrams/class/svgDraw.js +++ b/packages/mermaid/src/diagrams/class/svgDraw.js @@ -1,7 +1,7 @@ import { line, curveBasis } from 'd3'; -import utils from '../../utils'; -import { log } from '../../logger'; -import { parseGenericTypes } from '../common/common'; +import utils from '../../utils.js'; +import { log } from '../../logger.js'; +import { parseGenericTypes } from '../common/common.js'; let edgeCount = 0; export const drawEdge = function (elem, path, relation, conf, diagObj) { diff --git a/packages/mermaid/src/diagrams/class/svgDraw.spec.js b/packages/mermaid/src/diagrams/class/svgDraw.spec.js index ec8785559..2e7c64fa0 100644 --- a/packages/mermaid/src/diagrams/class/svgDraw.spec.js +++ b/packages/mermaid/src/diagrams/class/svgDraw.spec.js @@ -1,4 +1,4 @@ -import svgDraw from './svgDraw'; +import svgDraw from './svgDraw.js'; describe('class member Renderer, ', function () { describe('when parsing text to build method display string', function () { diff --git a/packages/mermaid/src/diagrams/common/common.spec.js b/packages/mermaid/src/diagrams/common/common.spec.js index 8fd6229da..d1c68e892 100644 --- a/packages/mermaid/src/diagrams/common/common.spec.js +++ b/packages/mermaid/src/diagrams/common/common.spec.js @@ -1,4 +1,4 @@ -import { sanitizeText, removeScript, parseGenericTypes } from './common'; +import { sanitizeText, removeScript, parseGenericTypes } from './common.js'; describe('when securityLevel is antiscript, all script must be removed', function () { /** diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index d34a2df68..3b72e8718 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -1,5 +1,5 @@ import DOMPurify from 'dompurify'; -import { MermaidConfig } from '../../config.type'; +import { MermaidConfig } from '../../config.type.js'; /** * Gets the rows of lines in a string diff --git a/packages/mermaid/src/diagrams/er/erDb.js b/packages/mermaid/src/diagrams/er/erDb.js index 026e08420..5f2af0da1 100644 --- a/packages/mermaid/src/diagrams/er/erDb.js +++ b/packages/mermaid/src/diagrams/er/erDb.js @@ -1,6 +1,6 @@ -import { log } from '../../logger'; -import mermaidAPI from '../../mermaidAPI'; -import * as configApi from '../../config'; +import { log } from '../../logger.js'; +import mermaidAPI from '../../mermaidAPI.js'; +import * as configApi from '../../config.js'; import { setAccTitle, @@ -10,7 +10,7 @@ import { clear as commonClear, setDiagramTitle, getDiagramTitle, -} from '../../commonDb'; +} from '../../commonDb.js'; let entities = {}; let relationships = []; diff --git a/packages/mermaid/src/diagrams/er/erDetector.ts b/packages/mermaid/src/diagrams/er/erDetector.ts index f73baa434..b8a191af2 100644 --- a/packages/mermaid/src/diagrams/er/erDetector.ts +++ b/packages/mermaid/src/diagrams/er/erDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'er'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./erDiagram'); + const { diagram } = await import('./erDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/er/erDiagram.ts b/packages/mermaid/src/diagrams/er/erDiagram.ts index a5b0da9c1..da3d777ad 100644 --- a/packages/mermaid/src/diagrams/er/erDiagram.ts +++ b/packages/mermaid/src/diagrams/er/erDiagram.ts @@ -1,8 +1,8 @@ // @ts-ignore: TODO Fix ts errors -import erParser from './parser/erDiagram'; -import erDb from './erDb'; -import erRenderer from './erRenderer'; -import erStyles from './styles'; +import erParser from './parser/erDiagram.jison'; +import erDb from './erDb.js'; +import erRenderer from './erRenderer.js'; +import erStyles from './styles.js'; export const diagram = { parser: erParser, diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 5dd5024bb..87d7ac607 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -1,12 +1,12 @@ import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { line, curveBasis, select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; -import { getConfig } from '../../config'; -import { log } from '../../logger'; -import utils from '../../utils'; -import erMarkers from './erMarkers'; -import { configureSvgSize } from '../../setupGraphViewbox'; -import { parseGenericTypes } from '../common/common'; +import { getConfig } from '../../config.js'; +import { log } from '../../logger.js'; +import utils from '../../utils.js'; +import erMarkers from './erMarkers.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; +import { parseGenericTypes } from '../common/common.js'; import { v5 as uuid5 } from 'uuid'; /** Regex used to remove chars from the entity name so the result can be used in an id */ diff --git a/packages/mermaid/src/diagrams/er/erRenderer.spec.ts b/packages/mermaid/src/diagrams/er/erRenderer.spec.ts index ca0f62bd2..0cba06b56 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.spec.ts +++ b/packages/mermaid/src/diagrams/er/erRenderer.spec.ts @@ -1,4 +1,4 @@ -import { generateId } from './erRenderer'; +import { generateId } from './erRenderer.js'; describe('erRenderer', () => { describe('generateId', () => { diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index ca497a2ac..53273b885 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -1,6 +1,6 @@ -import { setConfig } from '../../../config'; -import erDb from '../erDb'; -import erDiagram from './erDiagram'; // jison file +import { setConfig } from '../../../config.js'; +import erDb from '../erDb.js'; +import erDiagram from './erDiagram.js'; // jison file setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/error/errorDetector.ts b/packages/mermaid/src/diagrams/error/errorDetector.ts index 2bdcd7028..e1d447c10 100644 --- a/packages/mermaid/src/diagrams/error/errorDetector.ts +++ b/packages/mermaid/src/diagrams/error/errorDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'error'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (text) => { }; const loader = async () => { - const { diagram } = await import('./errorDiagram'); + const { diagram } = await import('./errorDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/error/errorDiagram.ts b/packages/mermaid/src/diagrams/error/errorDiagram.ts index d081e1028..c2462e224 100644 --- a/packages/mermaid/src/diagrams/error/errorDiagram.ts +++ b/packages/mermaid/src/diagrams/error/errorDiagram.ts @@ -1,6 +1,6 @@ -import { DiagramDefinition } from '../../diagram-api/types'; -import styles from './styles'; -import renderer from './errorRenderer'; +import { DiagramDefinition } from '../../diagram-api/types.js'; +import styles from './styles.js'; +import renderer from './errorRenderer.js'; export const diagram: DiagramDefinition = { db: { clear: () => { diff --git a/packages/mermaid/src/diagrams/error/errorRenderer.ts b/packages/mermaid/src/diagrams/error/errorRenderer.ts index 60877cb8d..b0ab4f105 100644 --- a/packages/mermaid/src/diagrams/error/errorRenderer.ts +++ b/packages/mermaid/src/diagrams/error/errorRenderer.ts @@ -1,8 +1,8 @@ /** Created by knut on 14-12-11. */ // @ts-ignore TODO: Investigate D3 issue import { select } from 'd3'; -import { log } from '../../logger'; -import { getErrorMessage } from '../../utils'; +import { log } from '../../logger.js'; +import { getErrorMessage } from '../../utils.js'; let conf = {}; diff --git a/packages/mermaid/src/diagrams/flowchart/elk/detector.spec.ts b/packages/mermaid/src/diagrams/flowchart/elk/detector.spec.ts index 17cd5c0ea..6e949c57b 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/detector.spec.ts +++ b/packages/mermaid/src/diagrams/flowchart/elk/detector.spec.ts @@ -1,4 +1,4 @@ -import plugin from './detector'; +import plugin from './detector.js'; import { describe, it } from 'vitest'; const { detector } = plugin; diff --git a/packages/mermaid/src/diagrams/flowchart/elk/detector.ts b/packages/mermaid/src/diagrams/flowchart/elk/detector.ts index c6fa77957..482bc961c 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/detector.ts +++ b/packages/mermaid/src/diagrams/flowchart/elk/detector.ts @@ -1,5 +1,5 @@ -import type { MermaidConfig } from '../../../config.type'; -import type { ExternalDiagramDefinition, DiagramDetector } from '../../../diagram-api/types'; +import type { MermaidConfig } from '../../../config.type.js'; +import type { ExternalDiagramDefinition, DiagramDetector } from '../../../diagram-api/types.js'; const id = 'flowchart-elk'; diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js index 426d22dbb..539f2d230 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js @@ -2,13 +2,13 @@ import { select, line, curveLinear } from 'd3'; import { insertNode } from '../../../dagre-wrapper/nodes.js'; import insertMarkers from '../../../dagre-wrapper/markers.js'; import { insertEdgeLabel } from '../../../dagre-wrapper/edges.js'; -import { findCommonAncestor } from './render-utils'; +import { findCommonAncestor } from './render-utils.js'; import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; -import { getConfig } from '../../../config'; -import { log } from '../../../logger'; -import { setupGraphViewbox } from '../../../setupGraphViewbox'; -import common, { evaluate } from '../../common/common'; -import { interpolateToCurve, getStylesFromArray } from '../../../utils'; +import { getConfig } from '../../../config.js'; +import { log } from '../../../logger.js'; +import { setupGraphViewbox } from '../../../setupGraphViewbox.js'; +import common, { evaluate } from '../../common/common.js'; +import { interpolateToCurve, getStylesFromArray } from '../../../utils.js'; import ELK from 'elkjs/lib/elk.bundled.js'; const elk = new ELK(); diff --git a/packages/mermaid/src/diagrams/flowchart/elk/flowchart-elk-definition.ts b/packages/mermaid/src/diagrams/flowchart/elk/flowchart-elk-definition.ts index c45873238..9855c7389 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/flowchart-elk-definition.ts +++ b/packages/mermaid/src/diagrams/flowchart/elk/flowchart-elk-definition.ts @@ -1,9 +1,9 @@ // @ts-ignore: JISON typing missing -import parser from '../parser/flow'; +import parser from '../parser/flow.jison'; -import * as db from '../flowDb'; -import renderer from './flowRenderer-elk'; -import styles from './styles'; +import * as db from '../flowDb.js'; +import renderer from './flowRenderer-elk.js'; +import styles from './styles.js'; export const diagram = { db, diff --git a/packages/mermaid/src/diagrams/flowchart/elk/render-utils.spec.ts b/packages/mermaid/src/diagrams/flowchart/elk/render-utils.spec.ts index d845fa697..d048b07a3 100644 --- a/packages/mermaid/src/diagrams/flowchart/elk/render-utils.spec.ts +++ b/packages/mermaid/src/diagrams/flowchart/elk/render-utils.spec.ts @@ -1,4 +1,4 @@ -import { findCommonAncestor, TreeData } from './render-utils'; +import { findCommonAncestor, TreeData } from './render-utils.js'; describe('when rendering a flowchart using elk ', () => { let lookupDb: TreeData; beforeEach(() => { diff --git a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js index e7e535056..96e6f6fd7 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowChartShapes.spec.js @@ -1,4 +1,4 @@ -import { addToRender } from './flowChartShapes'; +import { addToRender } from './flowChartShapes.js'; describe('flowchart shapes', function () { // rect-based shapes diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.js b/packages/mermaid/src/diagrams/flowchart/flowDb.js index 31196ba96..b11c0811b 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.js @@ -1,9 +1,9 @@ import { select } from 'd3'; -import utils from '../../utils'; -import * as configApi from '../../config'; -import common from '../common/common'; -import mermaidAPI from '../../mermaidAPI'; -import { log } from '../../logger'; +import utils from '../../utils.js'; +import * as configApi from '../../config.js'; +import common from '../common/common.js'; +import mermaidAPI from '../../mermaidAPI.js'; +import { log } from '../../logger.js'; import { setAccTitle, getAccTitle, @@ -12,7 +12,7 @@ import { clear as commonClear, setDiagramTitle, getDiagramTitle, -} from '../../commonDb'; +} from '../../commonDb.js'; const MERMAID_DOM_ID_PREFIX = 'flowchart-'; let vertexCounter = 0; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.spec.js b/packages/mermaid/src/diagrams/flowchart/flowDb.spec.js index c1aa640fc..09f8c8678 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDb.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowDb.spec.js @@ -1,4 +1,4 @@ -import flowDb from './flowDb'; +import flowDb from './flowDb.js'; describe('flow db subgraphs', () => { let subgraphs; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts index 5b2aaf1bd..9c00545bf 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts @@ -1,5 +1,5 @@ -import type { DiagramDetector } from '../../diagram-api/types'; -import type { ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector } from '../../diagram-api/types.js'; +import type { ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'flowchart-v2'; @@ -19,7 +19,7 @@ const detector: DiagramDetector = (txt, config) => { }; const loader = async () => { - const { diagram } = await import('./flowDiagram-v2'); + const { diagram } = await import('./flowDiagram-v2.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts index a8b116ccd..84aafa249 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDetector.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'flowchart'; @@ -15,7 +15,7 @@ const detector: DiagramDetector = (txt, config) => { }; const loader = async () => { - const { diagram } = await import('./flowDiagram'); + const { diagram } = await import('./flowDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDiagram-v2.ts b/packages/mermaid/src/diagrams/flowchart/flowDiagram-v2.ts index 8cd49de65..7a2c0e0bc 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDiagram-v2.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDiagram-v2.ts @@ -1,10 +1,10 @@ // @ts-ignore: TODO Fix ts errors -import flowParser from './parser/flow'; -import flowDb from './flowDb'; -import flowRendererV2 from './flowRenderer-v2'; -import flowStyles from './styles'; -import { MermaidConfig } from '../../config.type'; -import { setConfig } from '../../config'; +import flowParser from './parser/flow.jison'; +import flowDb from './flowDb.js'; +import flowRendererV2 from './flowRenderer-v2.js'; +import flowStyles from './styles.js'; +import { MermaidConfig } from '../../config.type.js'; +import { setConfig } from '../../config.js'; export const diagram = { parser: flowParser, diff --git a/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts b/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts index d68a7c01d..7018e4890 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts @@ -1,10 +1,10 @@ // @ts-ignore: TODO Fix ts errors -import flowParser from './parser/flow'; -import flowDb from './flowDb'; -import flowRenderer from './flowRenderer'; -import flowRendererV2 from './flowRenderer-v2'; -import flowStyles from './styles'; -import { MermaidConfig } from '../../config.type'; +import flowParser from './parser/flow.jison'; +import flowDb from './flowDb.js'; +import flowRenderer from './flowRenderer.js'; +import flowRendererV2 from './flowRenderer-v2.js'; +import flowStyles from './styles.js'; +import { MermaidConfig } from '../../config.type.js'; export const diagram = { parser: flowParser, diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js index 2d3e21a44..d7f5e442d 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer-v2.js @@ -1,16 +1,16 @@ import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { select, curveLinear, selectAll } from 'd3'; -import flowDb from './flowDb'; -import { getConfig } from '../../config'; -import utils from '../../utils'; +import flowDb from './flowDb.js'; +import { getConfig } from '../../config.js'; +import utils from '../../utils.js'; import { render } from '../../dagre-wrapper/index.js'; import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; -import { log } from '../../logger'; -import common, { evaluate } from '../common/common'; -import { interpolateToCurve, getStylesFromArray } from '../../utils'; -import { setupGraphViewbox } from '../../setupGraphViewbox'; +import { log } from '../../logger.js'; +import common, { evaluate } from '../common/common.js'; +import { interpolateToCurve, getStylesFromArray } from '../../utils.js'; +import { setupGraphViewbox } from '../../setupGraphViewbox.js'; const conf = {}; export const setConf = function (cnf) { diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js index 7744053f0..cbe661950 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js @@ -1,7 +1,7 @@ -import flowDb from './flowDb'; -import { parser } from './parser/flow'; -import flowRenderer from './flowRenderer'; -import { addDiagrams } from '../../diagram-api/diagram-orchestration'; +import flowDb from './flowDb.js'; +import { parser } from './parser/flow.js'; +import flowRenderer from './flowRenderer.js'; +import { addDiagrams } from '../../diagram-api/diagram-orchestration.js'; const diag = { db: flowDb, diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js index 63234b57c..575706935 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.js @@ -1,14 +1,14 @@ import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { select, curveLinear, selectAll } from 'd3'; -import { getConfig } from '../../config'; +import { getConfig } from '../../config.js'; import { render as Render } from 'dagre-d3-es'; import { applyStyle } from 'dagre-d3-es/src/dagre-js/util.js'; import { addHtmlLabel } from 'dagre-d3-es/src/dagre-js/label/add-html-label.js'; -import { log } from '../../logger'; -import common, { evaluate } from '../common/common'; -import { interpolateToCurve, getStylesFromArray } from '../../utils'; -import { setupGraphViewbox } from '../../setupGraphViewbox'; -import flowChartShapes from './flowChartShapes'; +import { log } from '../../logger.js'; +import common, { evaluate } from '../common/common.js'; +import { interpolateToCurve, getStylesFromArray } from '../../utils.js'; +import { setupGraphViewbox } from '../../setupGraphViewbox.js'; +import flowChartShapes from './flowChartShapes.js'; const conf = {}; export const setConf = function (cnf) { diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js index 4e1ce1019..0e9e8c0de 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.spec.js @@ -1,5 +1,5 @@ -import { addVertices, addEdges } from './flowRenderer'; -import { setConfig } from '../../config'; +import { addVertices, addEdges } from './flowRenderer.js'; +import { setConfig } from '../../config.js'; setConfig({ flowchart: { diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js index 594e7220b..9754f8909 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js index 7aeed304c..05ed738cc 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js index 7726ce0f7..0fbc013ff 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js index e2ecec4d5..5af5f144a 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js index 9097c49e3..49a733182 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js index 7d3e3ed04..7fd2e6b19 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; import { vi } from 'vitest'; const spyOn = vi.spyOn; diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js index 0fd1e9e9c..13aecc7c6 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js index ee41a5c39..04b1ff01c 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js index 050d64f91..e4f49b526 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js index e990f41b4..76a119fc1 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js index 36aaae767..7c6441d7b 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js index 6b440da79..526c9edfe 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js index ae6f178b8..3dc0785ca 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js @@ -1,6 +1,6 @@ -import flowDb from '../flowDb'; -import flow from './flow'; -import { setConfig } from '../../../config'; +import flowDb from '../flowDb.js'; +import flow from './flow.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index 475ee4de4..8bdec4507 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -3,10 +3,10 @@ import dayjs from 'dayjs'; import dayjsIsoWeek from 'dayjs/plugin/isoWeek.js'; import dayjsCustomParseFormat from 'dayjs/plugin/customParseFormat.js'; import dayjsAdvancedFormat from 'dayjs/plugin/advancedFormat.js'; -import { log } from '../../logger'; -import * as configApi from '../../config'; -import utils from '../../utils'; -import mermaidAPI from '../../mermaidAPI'; +import { log } from '../../logger.js'; +import * as configApi from '../../config.js'; +import utils from '../../utils.js'; +import mermaidAPI from '../../mermaidAPI.js'; import { setAccTitle, @@ -16,7 +16,7 @@ import { clear as commonClear, setDiagramTitle, getDiagramTitle, -} from '../../commonDb'; +} from '../../commonDb.js'; dayjs.extend(dayjsIsoWeek); dayjs.extend(dayjsCustomParseFormat); diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts index d65f2fdfd..f409793ab 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.spec.ts @@ -1,7 +1,7 @@ // @ts-nocheck TODO: Fix TS import dayjs from 'dayjs'; -import ganttDb from './ganttDb'; -import { convert } from '../../tests/util'; +import ganttDb from './ganttDb.js'; +import { convert } from '../../tests/util.js'; describe('when using the ganttDb', function () { beforeEach(function () { diff --git a/packages/mermaid/src/diagrams/gantt/ganttDetector.ts b/packages/mermaid/src/diagrams/gantt/ganttDetector.ts index 3fe2bbe7e..4a736cb90 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDetector.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'gantt'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./ganttDiagram'); + const { diagram } = await import('./ganttDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/gantt/ganttDiagram.ts b/packages/mermaid/src/diagrams/gantt/ganttDiagram.ts index b1341052d..0104c7d0c 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDiagram.ts +++ b/packages/mermaid/src/diagrams/gantt/ganttDiagram.ts @@ -1,9 +1,9 @@ // @ts-ignore: TODO Fix ts errors -import ganttParser from './parser/gantt'; -import ganttDb from './ganttDb'; -import ganttRenderer from './ganttRenderer'; -import ganttStyles from './styles'; -import { DiagramDefinition } from '../../diagram-api/types'; +import ganttParser from './parser/gantt.jison'; +import ganttDb from './ganttDb.js'; +import ganttRenderer from './ganttRenderer.js'; +import ganttStyles from './styles.js'; +import { DiagramDefinition } from '../../diagram-api/types.js'; export const diagram: DiagramDefinition = { parser: ganttParser, diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index 7a012beb5..eaaae574b 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -1,5 +1,5 @@ import dayjs from 'dayjs'; -import { log } from '../../logger'; +import { log } from '../../logger.js'; import { select, scaleTime, @@ -16,9 +16,9 @@ import { timeWeek, timeMonth, } from 'd3'; -import common from '../common/common'; -import { getConfig } from '../../config'; -import { configureSvgSize } from '../../setupGraphViewbox'; +import common from '../common/common.js'; +import { getConfig } from '../../config.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; export const setConf = function () { log.debug('Something is calling, setConf, remove the call'); diff --git a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js index 9a1401cad..cb05bdbaf 100644 --- a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js +++ b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js @@ -1,6 +1,6 @@ -import { parser } from './gantt'; -import ganttDb from '../ganttDb'; -import { convert } from '../../../tests/util'; +import { parser } from './gantt.js'; +import ganttDb from '../ganttDb.js'; +import { convert } from '../../../tests/util.js'; import { vi } from 'vitest'; const spyOn = vi.spyOn; const parserFnConstructor = (str) => { diff --git a/packages/mermaid/src/diagrams/git/gitGraphAst.js b/packages/mermaid/src/diagrams/git/gitGraphAst.js index dded48efa..416479d15 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphAst.js +++ b/packages/mermaid/src/diagrams/git/gitGraphAst.js @@ -1,9 +1,9 @@ -import { log } from '../../logger'; -import { random } from '../../utils'; -import mermaidAPI from '../../mermaidAPI'; -import * as configApi from '../../config'; -import { getConfig } from '../../config'; -import common from '../common/common'; +import { log } from '../../logger.js'; +import { random } from '../../utils.js'; +import mermaidAPI from '../../mermaidAPI.js'; +import * as configApi from '../../config.js'; +import { getConfig } from '../../config.js'; +import common from '../common/common.js'; import { setAccTitle, getAccTitle, @@ -12,7 +12,7 @@ import { clear as commonClear, setDiagramTitle, getDiagramTitle, -} from '../../commonDb'; +} from '../../commonDb.js'; let mainBranchName = getConfig().gitGraph.mainBranchName; let mainBranchOrder = getConfig().gitGraph.mainBranchOrder; diff --git a/packages/mermaid/src/diagrams/git/gitGraphDetector.ts b/packages/mermaid/src/diagrams/git/gitGraphDetector.ts index 46d09c6e5..aeb37e5bc 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphDetector.ts +++ b/packages/mermaid/src/diagrams/git/gitGraphDetector.ts @@ -1,5 +1,5 @@ -import type { DiagramDetector } from '../../diagram-api/types'; -import type { ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector } from '../../diagram-api/types.js'; +import type { ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'gitGraph'; @@ -8,7 +8,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./gitGraphDiagram'); + const { diagram } = await import('./gitGraphDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/git/gitGraphDiagram.ts b/packages/mermaid/src/diagrams/git/gitGraphDiagram.ts index 9ef3506a0..08ff126c4 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphDiagram.ts +++ b/packages/mermaid/src/diagrams/git/gitGraphDiagram.ts @@ -1,9 +1,9 @@ // @ts-ignore: TODO Fix ts errors -import gitGraphParser from './parser/gitGraph'; -import gitGraphDb from './gitGraphAst'; -import gitGraphRenderer from './gitGraphRenderer'; -import gitGraphStyles from './styles'; -import { DiagramDefinition } from '../../diagram-api/types'; +import gitGraphParser from './parser/gitGraph.jison'; +import gitGraphDb from './gitGraphAst.js'; +import gitGraphRenderer from './gitGraphRenderer.js'; +import gitGraphStyles from './styles.js'; +import { DiagramDefinition } from '../../diagram-api/types.js'; export const diagram: DiagramDefinition = { parser: gitGraphParser, diff --git a/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js b/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js index cad44ea1f..3ff8487af 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js +++ b/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js @@ -1,7 +1,7 @@ /* eslint-env jasmine */ // Todo reintroduce without cryptoRandomString -import gitGraphAst from './gitGraphAst'; -import { parser } from './parser/gitGraph'; +import gitGraphAst from './gitGraphAst.js'; +import { parser } from './parser/gitGraph.js'; //import randomString from 'crypto-random-string'; //import cryptoRandomString from 'crypto-random-string'; diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js index ca288bfae..b8cff72ec 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer-old.js @@ -1,9 +1,9 @@ import { curveBasis, line, select } from 'd3'; -import db from './gitGraphAst'; -import gitGraphParser from './parser/gitGraph'; -import { logger } from '../../logger'; -import { interpolateToCurve } from '../../utils'; +import db from './gitGraphAst.js'; +import gitGraphParser from './parser/gitGraph.js'; +import { logger } from '../../logger.js'; +import { interpolateToCurve } from '../../utils.js'; let allCommitsDict = {}; let branchNum; diff --git a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js index 787eb2490..8d88c601d 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphRenderer.js +++ b/packages/mermaid/src/diagrams/git/gitGraphRenderer.js @@ -1,7 +1,7 @@ import { select } from 'd3'; -import { getConfig, setupGraphViewbox } from '../../diagram-api/diagramAPI'; -import { log } from '../../logger'; -import utils from '../../utils'; +import { getConfig, setupGraphViewbox } from '../../diagram-api/diagramAPI.js'; +import { log } from '../../logger.js'; +import utils from '../../utils.js'; let allCommitsDict = {}; diff --git a/packages/mermaid/src/diagrams/git/layout.js b/packages/mermaid/src/diagrams/git/layout.js index de866a72b..0dbe57765 100644 --- a/packages/mermaid/src/diagrams/git/layout.js +++ b/packages/mermaid/src/diagrams/git/layout.js @@ -1,4 +1,4 @@ -import { getConfig } from '../../config'; +import { getConfig } from '../../config.js'; export default (dir, _branches) => { const config = getConfig().gitGraph; diff --git a/packages/mermaid/src/diagrams/info/info.spec.js b/packages/mermaid/src/diagrams/info/info.spec.js index 8bcce51d4..352392bea 100644 --- a/packages/mermaid/src/diagrams/info/info.spec.js +++ b/packages/mermaid/src/diagrams/info/info.spec.js @@ -1,5 +1,5 @@ -import { parser } from './parser/info'; -import infoDb from './infoDb'; +import { parser } from './parser/info.js'; +import infoDb from './infoDb.js'; describe('when parsing an info graph it', function () { let ex; beforeEach(function () { diff --git a/packages/mermaid/src/diagrams/info/infoDb.js b/packages/mermaid/src/diagrams/info/infoDb.js index 2a04f1633..81ba8057f 100644 --- a/packages/mermaid/src/diagrams/info/infoDb.js +++ b/packages/mermaid/src/diagrams/info/infoDb.js @@ -1,6 +1,6 @@ /** Created by knut on 15-01-14. */ -import { log } from '../../logger'; -import { clear } from '../../commonDb'; +import { log } from '../../logger.js'; +import { clear } from '../../commonDb.js'; var message = ''; var info = false; diff --git a/packages/mermaid/src/diagrams/info/infoDetector.ts b/packages/mermaid/src/diagrams/info/infoDetector.ts index a022e3ccb..ad9b9163d 100644 --- a/packages/mermaid/src/diagrams/info/infoDetector.ts +++ b/packages/mermaid/src/diagrams/info/infoDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'info'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./infoDiagram'); + const { diagram } = await import('./infoDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/info/infoDiagram.ts b/packages/mermaid/src/diagrams/info/infoDiagram.ts index a8100a79f..a26e915e5 100644 --- a/packages/mermaid/src/diagrams/info/infoDiagram.ts +++ b/packages/mermaid/src/diagrams/info/infoDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/info'; -import db from './infoDb'; -import styles from './styles'; -import renderer from './infoRenderer'; +import parser from './parser/info.jison'; +import db from './infoDb.js'; +import styles from './styles.js'; +import renderer from './infoRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/info/infoRenderer.js b/packages/mermaid/src/diagrams/info/infoRenderer.js index 1caa7222c..9441a3226 100644 --- a/packages/mermaid/src/diagrams/info/infoRenderer.js +++ b/packages/mermaid/src/diagrams/info/infoRenderer.js @@ -1,7 +1,7 @@ /** Created by knut on 14-12-11. */ import { select } from 'd3'; -import { log } from '../../logger'; -import { getConfig } from '../../config'; +import { log } from '../../logger.js'; +import { getConfig } from '../../config.js'; /** * Draws a an info picture in the tag with id: id based on the graph definition in text. diff --git a/packages/mermaid/src/diagrams/mindmap/detector.ts b/packages/mermaid/src/diagrams/mindmap/detector.ts index 2e2b1c7d6..95e16dea9 100644 --- a/packages/mermaid/src/diagrams/mindmap/detector.ts +++ b/packages/mermaid/src/diagrams/mindmap/detector.ts @@ -1,4 +1,4 @@ -import type { ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'mindmap'; const detector = (txt: string) => { diff --git a/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts b/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts index 61b41d347..846fd5dc5 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts +++ b/packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts @@ -1,8 +1,8 @@ // @ts-ignore: TODO Fix ts errors -import mindmapParser from './parser/mindmap'; -import * as mindmapDb from './mindmapDb'; -import mindmapRenderer from './mindmapRenderer'; -import mindmapStyles from './styles'; +import mindmapParser from './parser/mindmap.jison'; +import * as mindmapDb from './mindmapDb.js'; +import mindmapRenderer from './mindmapRenderer.js'; +import mindmapStyles from './styles.js'; export const diagram = { db: mindmapDb, diff --git a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js index e8793e86a..e4777250f 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js @@ -1,7 +1,7 @@ -import { parser as mindmap } from './parser/mindmap'; -import * as mindmapDB from './mindmapDb'; +import { parser as mindmap } from './parser/mindmap.js'; +import * as mindmapDB from './mindmapDb.js'; // Todo fix utils functions for tests -import { setLogLevel } from '../../diagram-api/diagramAPI'; +import { setLogLevel } from '../../diagram-api/diagramAPI.js'; describe('when parsing a mindmap ', function () { beforeEach(function () { diff --git a/packages/mermaid/src/diagrams/mindmap/mindmapDb.js b/packages/mermaid/src/diagrams/mindmap/mindmapDb.js index 71aa449d9..9413581d6 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmapDb.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmapDb.js @@ -1,6 +1,6 @@ -import { getConfig } from '../../config'; -import { sanitizeText as _sanitizeText } from '../../diagrams/common/common'; -import { log } from '../../logger'; +import { getConfig } from '../../config.js'; +import { sanitizeText as _sanitizeText } from '../../diagrams/common/common.js'; +import { log } from '../../logger.js'; export const sanitizeText = (text) => _sanitizeText(text, getConfig()); diff --git a/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js b/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js index c5b5fede1..e462f2fc3 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmapRenderer.js @@ -1,12 +1,12 @@ /** Created by knut on 14-12-11. */ import { select } from 'd3'; -import { log } from '../../logger'; -import { getConfig } from '../../config'; -import { setupGraphViewbox } from '../../setupGraphViewbox'; -import svgDraw from './svgDraw'; +import { log } from '../../logger.js'; +import { getConfig } from '../../config.js'; +import { setupGraphViewbox } from '../../setupGraphViewbox.js'; +import svgDraw from './svgDraw.js'; import cytoscape from 'cytoscape/dist/cytoscape.umd.js'; import coseBilkent from 'cytoscape-cose-bilkent'; -import * as db from './mindmapDb'; +import * as db from './mindmapDb.js'; // Inject the layout algorithm into cytoscape cytoscape.use(coseBilkent); diff --git a/packages/mermaid/src/diagrams/mindmap/svgDraw.js b/packages/mermaid/src/diagrams/mindmap/svgDraw.js index 2b1aa021e..69975e6bb 100644 --- a/packages/mermaid/src/diagrams/mindmap/svgDraw.js +++ b/packages/mermaid/src/diagrams/mindmap/svgDraw.js @@ -1,5 +1,5 @@ import { select } from 'd3'; -import * as db from './mindmapDb'; +import * as db from './mindmapDb.js'; const MAX_SECTIONS = 12; /** diff --git a/packages/mermaid/src/diagrams/pie/parser/pie.spec.js b/packages/mermaid/src/diagrams/pie/parser/pie.spec.js index 21523dde4..a365268dd 100644 --- a/packages/mermaid/src/diagrams/pie/parser/pie.spec.js +++ b/packages/mermaid/src/diagrams/pie/parser/pie.spec.js @@ -1,6 +1,6 @@ -import pieDb from '../pieDb'; -import pie from './pie'; -import { setConfig } from '../../../config'; +import pieDb from '../pieDb.js'; +import pie from './pie.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/pie/pieDb.js b/packages/mermaid/src/diagrams/pie/pieDb.js index 5ccf6d29e..2c86752c6 100644 --- a/packages/mermaid/src/diagrams/pie/pieDb.js +++ b/packages/mermaid/src/diagrams/pie/pieDb.js @@ -1,7 +1,7 @@ -import { log } from '../../logger'; -import mermaidAPI from '../../mermaidAPI'; -import * as configApi from '../../config'; -import common from '../common/common'; +import { log } from '../../logger.js'; +import mermaidAPI from '../../mermaidAPI.js'; +import * as configApi from '../../config.js'; +import common from '../common/common.js'; import { setAccTitle, getAccTitle, @@ -10,7 +10,7 @@ import { getAccDescription, setAccDescription, clear as commonClear, -} from '../../commonDb'; +} from '../../commonDb.js'; let sections = {}; let showData = false; diff --git a/packages/mermaid/src/diagrams/pie/pieDetector.ts b/packages/mermaid/src/diagrams/pie/pieDetector.ts index dd1224db9..34d3c0cf6 100644 --- a/packages/mermaid/src/diagrams/pie/pieDetector.ts +++ b/packages/mermaid/src/diagrams/pie/pieDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'pie'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./pieDiagram'); + const { diagram } = await import('./pieDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/pie/pieDiagram.ts b/packages/mermaid/src/diagrams/pie/pieDiagram.ts index 3a586f668..4c6b7d3bc 100644 --- a/packages/mermaid/src/diagrams/pie/pieDiagram.ts +++ b/packages/mermaid/src/diagrams/pie/pieDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/pie'; -import db from './pieDb'; -import styles from './styles'; -import renderer from './pieRenderer'; +import parser from './parser/pie.jison'; +import db from './pieDb.js'; +import styles from './styles.js'; +import renderer from './pieRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/pie/pieRenderer.js b/packages/mermaid/src/diagrams/pie/pieRenderer.js index 9b25f5f43..1ee34e192 100644 --- a/packages/mermaid/src/diagrams/pie/pieRenderer.js +++ b/packages/mermaid/src/diagrams/pie/pieRenderer.js @@ -1,9 +1,9 @@ /** Created by AshishJ on 11-09-2019. */ import { select, scaleOrdinal, pie as d3pie, arc } from 'd3'; -import { log } from '../../logger'; -import { configureSvgSize } from '../../setupGraphViewbox'; -import * as configApi from '../../config'; -import { parseFontSize } from '../../utils'; +import { log } from '../../logger.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; +import * as configApi from '../../config.js'; +import { parseFontSize } from '../../utils.js'; let conf = configApi.getConfig(); diff --git a/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js b/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js index 4857a37ef..823b476ac 100644 --- a/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js +++ b/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js @@ -1,6 +1,6 @@ -import { setConfig } from '../../../config'; -import requirementDb from '../requirementDb'; -import reqDiagram from './requirementDiagram'; +import { setConfig } from '../../../config.js'; +import requirementDb from '../requirementDb.js'; +import reqDiagram from './requirementDiagram.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/requirement/requirementDb.js b/packages/mermaid/src/diagrams/requirement/requirementDb.js index df5eb0ab9..1d0a3e2e1 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementDb.js +++ b/packages/mermaid/src/diagrams/requirement/requirementDb.js @@ -1,6 +1,6 @@ -import * as configApi from '../../config'; -import { log } from '../../logger'; -import mermaidAPI from '../../mermaidAPI'; +import * as configApi from '../../config.js'; +import { log } from '../../logger.js'; +import mermaidAPI from '../../mermaidAPI.js'; import { setAccTitle, @@ -8,7 +8,7 @@ import { getAccDescription, setAccDescription, clear as commonClear, -} from '../../commonDb'; +} from '../../commonDb.js'; let relations = []; let latestRequirement = {}; diff --git a/packages/mermaid/src/diagrams/requirement/requirementDetector.ts b/packages/mermaid/src/diagrams/requirement/requirementDetector.ts index 1102fde0c..87fcea790 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementDetector.ts +++ b/packages/mermaid/src/diagrams/requirement/requirementDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'requirement'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./requirementDiagram'); + const { diagram } = await import('./requirementDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts b/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts index 37f6177b6..4505afc56 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts +++ b/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/requirementDiagram'; -import db from './requirementDb'; -import styles from './styles'; -import renderer from './requirementRenderer'; +import parser from './parser/requirementDiagram.jison'; +import db from './requirementDb.js'; +import styles from './styles.js'; +import renderer from './requirementRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js index 9fd746bd1..b88f5c203 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementRenderer.js +++ b/packages/mermaid/src/diagrams/requirement/requirementRenderer.js @@ -1,11 +1,11 @@ import { line, select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; -import { log } from '../../logger'; -import { configureSvgSize } from '../../setupGraphViewbox'; -import common from '../common/common'; -import markers from './requirementMarkers'; -import { getConfig } from '../../config'; +import { log } from '../../logger.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; +import common from '../common/common.js'; +import markers from './requirementMarkers.js'; +import { getConfig } from '../../config.js'; let conf = {}; let relCnt = 0; diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDb.js b/packages/mermaid/src/diagrams/sequence/sequenceDb.js index 5c5554c72..6550df9fa 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDb.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDb.js @@ -1,7 +1,7 @@ -import mermaidAPI from '../../mermaidAPI'; -import * as configApi from '../../config'; -import { log } from '../../logger'; -import { sanitizeText } from '../common/common'; +import mermaidAPI from '../../mermaidAPI.js'; +import * as configApi from '../../config.js'; +import { log } from '../../logger.js'; +import { sanitizeText } from '../common/common.js'; import { setAccTitle, getAccTitle, @@ -10,7 +10,7 @@ import { getAccDescription, setAccDescription, clear as commonClear, -} from '../../commonDb'; +} from '../../commonDb.js'; let prevActor = undefined; let actors = {}; diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDetector.ts b/packages/mermaid/src/diagrams/sequence/sequenceDetector.ts index c436e65d4..a808feea2 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDetector.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'sequence'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./sequenceDiagram'); + const { diagram } = await import('./sequenceDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js index 08f6abee1..a6cff4a6c 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js @@ -1,9 +1,9 @@ import { vi } from 'vitest'; -import * as configApi from '../../config'; -import mermaidAPI from '../../mermaidAPI'; -import { Diagram, getDiagramFromText } from '../../Diagram'; -import { addDiagrams } from '../../diagram-api/diagram-orchestration'; +import * as configApi from '../../config.js'; +import mermaidAPI from '../../mermaidAPI.js'; +import { Diagram, getDiagramFromText } from '../../Diagram.js'; +import { addDiagrams } from '../../diagram-api/diagram-orchestration.js'; beforeAll(async () => { // Is required to load the sequence diagram diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.ts b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.ts index fdec7f86d..382d47b61 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/sequenceDiagram'; -import db from './sequenceDb'; -import styles from './styles'; -import renderer from './sequenceRenderer'; +import parser from './parser/sequenceDiagram.jison'; +import db from './sequenceDb.js'; +import styles from './styles.js'; +import renderer from './sequenceRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index acee7bbe5..eca647153 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -1,13 +1,13 @@ // @ts-nocheck TODO: fix file import { select, selectAll } from 'd3'; -import svgDraw, { drawText, fixLifeLineHeights } from './svgDraw'; -import { log } from '../../logger'; -import common from '../common/common'; -import * as configApi from '../../config'; -import assignWithDepth from '../../assignWithDepth'; -import utils from '../../utils'; -import { configureSvgSize } from '../../setupGraphViewbox'; -import { Diagram } from '../../Diagram'; +import svgDraw, { drawText, fixLifeLineHeights } from './svgDraw.js'; +import { log } from '../../logger.js'; +import common from '../common/common.js'; +import * as configApi from '../../config.js'; +import assignWithDepth from '../../assignWithDepth.js'; +import utils from '../../utils.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; +import { Diagram } from '../../Diagram.js'; let conf = {}; diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.js b/packages/mermaid/src/diagrams/sequence/svgDraw.js index be34daf4b..376ca6161 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.js @@ -1,6 +1,6 @@ -import common from '../common/common'; -import { addFunction } from '../../interactionDb'; -import { parseFontSize } from '../../utils'; +import common from '../common/common.js'; +import { addFunction } from '../../interactionDb.js'; +import { parseFontSize } from '../../utils.js'; import { sanitizeUrl } from '@braintree/sanitize-url'; export const drawRect = function (elem, rectData) { diff --git a/packages/mermaid/src/diagrams/sequence/svgDraw.spec.js b/packages/mermaid/src/diagrams/sequence/svgDraw.spec.js index ed60285ed..04cde0a2c 100644 --- a/packages/mermaid/src/diagrams/sequence/svgDraw.spec.js +++ b/packages/mermaid/src/diagrams/sequence/svgDraw.spec.js @@ -1,5 +1,5 @@ import { vi } from 'vitest'; -import svgDraw from './svgDraw'; +import svgDraw from './svgDraw.js'; // This is the only place that uses this mock export const MockD3 = (name, parent) => { diff --git a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js index f8ea694a6..0d334da8e 100644 --- a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js +++ b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js @@ -1,6 +1,6 @@ -import stateDb from '../stateDb'; -import stateDiagram from './stateDiagram'; -import { setConfig } from '../../../config'; +import stateDb from '../stateDb.js'; +import stateDiagram from './stateDiagram.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/state/parser/state-style.spec.js b/packages/mermaid/src/diagrams/state/parser/state-style.spec.js index 75ecb4b13..fec5f9900 100644 --- a/packages/mermaid/src/diagrams/state/parser/state-style.spec.js +++ b/packages/mermaid/src/diagrams/state/parser/state-style.spec.js @@ -1,6 +1,6 @@ -import stateDb from '../stateDb'; -import stateDiagram from './stateDiagram'; -import { setConfig } from '../../../config'; +import stateDb from '../stateDb.js'; +import stateDiagram from './stateDiagram.js'; +import { setConfig } from '../../../config.js'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/state/shapes.js b/packages/mermaid/src/diagrams/state/shapes.js index 0a495e56c..e82a1ad61 100644 --- a/packages/mermaid/src/diagrams/state/shapes.js +++ b/packages/mermaid/src/diagrams/state/shapes.js @@ -1,10 +1,10 @@ import { line, curveBasis } from 'd3'; import idCache from './id-cache.js'; -import stateDb from './stateDb'; -import utils from '../../utils'; -import common from '../common/common'; -import { getConfig } from '../../config'; -import { log } from '../../logger'; +import stateDb from './stateDb.js'; +import utils from '../../utils.js'; +import common from '../common/common.js'; +import { getConfig } from '../../config.js'; +import { log } from '../../logger.js'; /** * Draws a start state as a black circle diff --git a/packages/mermaid/src/diagrams/state/stateDb.js b/packages/mermaid/src/diagrams/state/stateDb.js index 81b8ffb8b..d9c789a99 100644 --- a/packages/mermaid/src/diagrams/state/stateDb.js +++ b/packages/mermaid/src/diagrams/state/stateDb.js @@ -1,8 +1,8 @@ -import { log } from '../../logger'; -import { generateId } from '../../utils'; -import mermaidAPI from '../../mermaidAPI'; -import common from '../common/common'; -import * as configApi from '../../config'; +import { log } from '../../logger.js'; +import { generateId } from '../../utils.js'; +import mermaidAPI from '../../mermaidAPI.js'; +import common from '../common/common.js'; +import * as configApi from '../../config.js'; import { setAccTitle, getAccTitle, @@ -11,7 +11,7 @@ import { clear as commonClear, setDiagramTitle, getDiagramTitle, -} from '../../commonDb'; +} from '../../commonDb.js'; import { DEFAULT_DIAGRAM_DIRECTION, @@ -21,7 +21,7 @@ import { STMT_APPLYCLASS, DEFAULT_STATE_TYPE, DIVIDER_TYPE, -} from './stateCommon'; +} from './stateCommon.js'; const START_NODE = '[*]'; const START_TYPE = 'start'; diff --git a/packages/mermaid/src/diagrams/state/stateDb.spec.js b/packages/mermaid/src/diagrams/state/stateDb.spec.js index d51d919c3..0264c34cc 100644 --- a/packages/mermaid/src/diagrams/state/stateDb.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDb.spec.js @@ -1,4 +1,4 @@ -import stateDb from './stateDb'; +import stateDb from './stateDb.js'; describe('State Diagram stateDb', () => { beforeEach(() => { diff --git a/packages/mermaid/src/diagrams/state/stateDetector-V2.ts b/packages/mermaid/src/diagrams/state/stateDetector-V2.ts index 5fa617a76..8a96e93a2 100644 --- a/packages/mermaid/src/diagrams/state/stateDetector-V2.ts +++ b/packages/mermaid/src/diagrams/state/stateDetector-V2.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'stateDiagram'; @@ -16,7 +16,7 @@ const detector: DiagramDetector = (text, config) => { }; const loader = async () => { - const { diagram } = await import('./stateDiagram-v2'); + const { diagram } = await import('./stateDiagram-v2.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/state/stateDetector.ts b/packages/mermaid/src/diagrams/state/stateDetector.ts index ee6b3ac2c..eb252305c 100644 --- a/packages/mermaid/src/diagrams/state/stateDetector.ts +++ b/packages/mermaid/src/diagrams/state/stateDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'state'; @@ -12,7 +12,7 @@ const detector: DiagramDetector = (txt, config) => { }; const loader = async () => { - const { diagram } = await import('./stateDiagram'); + const { diagram } = await import('./stateDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js index 7ed5555db..fdc36ce3e 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js @@ -1,5 +1,5 @@ -import { parser } from './parser/stateDiagram'; -import stateDb from './stateDb'; +import { parser } from './parser/stateDiagram.js'; +import stateDb from './stateDb.js'; import stateDiagram from './parser/stateDiagram.jison'; describe('state diagram V2, ', function () { diff --git a/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts b/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts index f7ee4f052..616a97556 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts +++ b/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/stateDiagram'; -import db from './stateDb'; -import styles from './styles'; -import renderer from './stateRenderer-v2'; +import parser from './parser/stateDiagram.jison'; +import db from './stateDb.js'; +import styles from './styles.js'; +import renderer from './stateRenderer-v2.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/state/stateDiagram.spec.js b/packages/mermaid/src/diagrams/state/stateDiagram.spec.js index d2bbb409e..b8c44ae2e 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDiagram.spec.js @@ -1,5 +1,5 @@ -import { parser } from './parser/stateDiagram'; -import stateDb from './stateDb'; +import { parser } from './parser/stateDiagram.js'; +import stateDb from './stateDb.js'; describe('state diagram, ', function () { describe('when parsing an info graph it', function () { diff --git a/packages/mermaid/src/diagrams/state/stateDiagram.ts b/packages/mermaid/src/diagrams/state/stateDiagram.ts index 570d599de..44552c246 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram.ts +++ b/packages/mermaid/src/diagrams/state/stateDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/stateDiagram'; -import db from './stateDb'; -import styles from './styles'; -import renderer from './stateRenderer'; +import parser from './parser/stateDiagram.jison'; +import db from './stateDb.js'; +import styles from './styles.js'; +import renderer from './stateRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js index 8629f74db..47e0afe87 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.js @@ -1,11 +1,11 @@ import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { select } from 'd3'; -import { getConfig } from '../../config'; +import { getConfig } from '../../config.js'; import { render } from '../../dagre-wrapper/index.js'; -import { log } from '../../logger'; -import { configureSvgSize } from '../../setupGraphViewbox'; -import common from '../common/common'; -import utils from '../../utils'; +import { log } from '../../logger.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; +import common from '../common/common.js'; +import utils from '../../utils.js'; import { DEFAULT_DIAGRAM_DIRECTION, @@ -14,7 +14,7 @@ import { STMT_RELATION, DEFAULT_STATE_TYPE, DIVIDER_TYPE, -} from './stateCommon'; +} from './stateCommon.js'; // -------------------------------------- // Shapes diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js index 3a118e607..2333fc48f 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js @@ -1,8 +1,8 @@ import { expectTypeOf } from 'vitest'; -import { parser } from './parser/stateDiagram'; -import stateDb from './stateDb'; -import stateRendererV2 from './stateRenderer-v2'; +import { parser } from './parser/stateDiagram.js'; +import stateDb from './stateDb.js'; +import stateRendererV2 from './stateRenderer-v2.js'; // Can use this instead of having to register diagrams and load/orchestrate them, etc. class FauxDiagramObj { diff --git a/packages/mermaid/src/diagrams/state/stateRenderer.js b/packages/mermaid/src/diagrams/state/stateRenderer.js index 8d410fdd9..74913a748 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer.js @@ -1,11 +1,11 @@ import { select } from 'd3'; import { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js'; import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; -import { log } from '../../logger'; -import common from '../common/common'; -import { drawState, addTitleAndBox, drawEdge } from './shapes'; -import { getConfig } from '../../config'; -import { configureSvgSize } from '../../setupGraphViewbox'; +import { log } from '../../logger.js'; +import common from '../common/common.js'; +import { drawState, addTitleAndBox, drawEdge } from './shapes.js'; +import { getConfig } from '../../config.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; // TODO Move conf object to main conf in mermaidAPI let conf; diff --git a/packages/mermaid/src/diagrams/timeline/detector.ts b/packages/mermaid/src/diagrams/timeline/detector.ts index 9bd2b5ece..57d8f66ad 100644 --- a/packages/mermaid/src/diagrams/timeline/detector.ts +++ b/packages/mermaid/src/diagrams/timeline/detector.ts @@ -1,4 +1,4 @@ -import type { ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'timeline'; diff --git a/packages/mermaid/src/diagrams/timeline/timeline-definition.ts b/packages/mermaid/src/diagrams/timeline/timeline-definition.ts index 898af8b78..7f671291f 100644 --- a/packages/mermaid/src/diagrams/timeline/timeline-definition.ts +++ b/packages/mermaid/src/diagrams/timeline/timeline-definition.ts @@ -1,8 +1,8 @@ // @ts-ignore: TODO Fix ts errors import parser from './parser/timeline.jison'; -import * as db from './timelineDb'; -import renderer from './timelineRenderer'; -import styles from './styles'; +import * as db from './timelineDb.js'; +import renderer from './timelineRenderer.js'; +import styles from './styles.js'; export const diagram = { db, diff --git a/packages/mermaid/src/diagrams/timeline/timeline.spec.js b/packages/mermaid/src/diagrams/timeline/timeline.spec.js index 0697b194e..609bb7a47 100644 --- a/packages/mermaid/src/diagrams/timeline/timeline.spec.js +++ b/packages/mermaid/src/diagrams/timeline/timeline.spec.js @@ -1,8 +1,8 @@ -import { parser as timeline } from './parser/timeline'; -import * as timelineDB from './timelineDb'; -// import { injectUtils } from './mermaidUtils'; -import * as _commonDb from '../../commonDb'; -import { parseDirective as _parseDirective } from '../../directiveUtils'; +import { parser as timeline } from './parser/timeline.js'; +import * as timelineDB from './timelineDb.js'; +// import { injectUtils } from './mermaidUtils.js'; +import * as _commonDb from '../../commonDb.js'; +import { parseDirective as _parseDirective } from '../../directiveUtils.js'; import { log, @@ -10,7 +10,7 @@ import { getConfig, sanitizeText, setupGraphViewBox, -} from '../../diagram-api/diagramAPI'; +} from '../../diagram-api/diagramAPI.js'; // injectUtils( // log, diff --git a/packages/mermaid/src/diagrams/timeline/timelineDb.js b/packages/mermaid/src/diagrams/timeline/timelineDb.js index 7bc5c2692..337cfe441 100644 --- a/packages/mermaid/src/diagrams/timeline/timelineDb.js +++ b/packages/mermaid/src/diagrams/timeline/timelineDb.js @@ -1,5 +1,5 @@ -import { parseDirective as _parseDirective } from '../../directiveUtils'; -import * as commonDb from '../../commonDb'; +import { parseDirective as _parseDirective } from '../../directiveUtils.js'; +import * as commonDb from '../../commonDb.js'; let currentSection = ''; let currentTaskId = 0; diff --git a/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts b/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts index 272ecf0c1..65abe8fd9 100644 --- a/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts +++ b/packages/mermaid/src/diagrams/timeline/timelineRenderer.ts @@ -1,11 +1,11 @@ // @ts-ignore - db not typed yet import { select, Selection } from 'd3'; -import svgDraw from './svgDraw'; -import { log } from '../../logger'; -import { getConfig } from '../../config'; -import { setupGraphViewbox } from '../../setupGraphViewbox'; -import { Diagram } from '../../Diagram'; -import { MermaidConfig } from '../../config.type'; +import svgDraw from './svgDraw.js'; +import { log } from '../../logger.js'; +import { getConfig } from '../../config.js'; +import { setupGraphViewbox } from '../../setupGraphViewbox.js'; +import { Diagram } from '../../Diagram.js'; +import { MermaidConfig } from '../../config.type.js'; interface Block { number: number; diff --git a/packages/mermaid/src/diagrams/user-journey/journeyDb.js b/packages/mermaid/src/diagrams/user-journey/journeyDb.js index ce8705094..d4f34e942 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyDb.js +++ b/packages/mermaid/src/diagrams/user-journey/journeyDb.js @@ -1,5 +1,5 @@ -import mermaidAPI from '../../mermaidAPI'; -import * as configApi from '../../config'; +import mermaidAPI from '../../mermaidAPI.js'; +import * as configApi from '../../config.js'; import { setAccTitle, getAccTitle, @@ -8,7 +8,7 @@ import { getAccDescription, setAccDescription, clear as commonClear, -} from '../../commonDb'; +} from '../../commonDb.js'; let currentSection = ''; diff --git a/packages/mermaid/src/diagrams/user-journey/journeyDb.spec.js b/packages/mermaid/src/diagrams/user-journey/journeyDb.spec.js index 78955c794..c740e40d0 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyDb.spec.js +++ b/packages/mermaid/src/diagrams/user-journey/journeyDb.spec.js @@ -1,5 +1,5 @@ -import journeyDb from './journeyDb'; -import { convert } from '../../tests/util'; +import journeyDb from './journeyDb.js'; +import { convert } from '../../tests/util.js'; describe('when using the journeyDb', function () { beforeEach(function () { diff --git a/packages/mermaid/src/diagrams/user-journey/journeyDetector.ts b/packages/mermaid/src/diagrams/user-journey/journeyDetector.ts index 90b2fd6e1..0dd488782 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyDetector.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyDetector.ts @@ -1,4 +1,4 @@ -import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types'; +import type { DiagramDetector, ExternalDiagramDefinition } from '../../diagram-api/types.js'; const id = 'journey'; @@ -7,7 +7,7 @@ const detector: DiagramDetector = (txt) => { }; const loader = async () => { - const { diagram } = await import('./journeyDiagram'); + const { diagram } = await import('./journeyDiagram.js'); return { id, diagram }; }; diff --git a/packages/mermaid/src/diagrams/user-journey/journeyDiagram.ts b/packages/mermaid/src/diagrams/user-journey/journeyDiagram.ts index c3a2a3c6b..969cf0e5e 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyDiagram.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyDiagram.ts @@ -1,9 +1,9 @@ -import { DiagramDefinition } from '../../diagram-api/types'; +import { DiagramDefinition } from '../../diagram-api/types.js'; // @ts-ignore: TODO Fix ts errors -import parser from './parser/journey'; -import db from './journeyDb'; -import styles from './styles'; -import renderer from './journeyRenderer'; +import parser from './parser/journey.jison'; +import db from './journeyDb.js'; +import styles from './styles.js'; +import renderer from './journeyRenderer.js'; export const diagram: DiagramDefinition = { parser, diff --git a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts index c34f8f5b2..9ea880f69 100644 --- a/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts +++ b/packages/mermaid/src/diagrams/user-journey/journeyRenderer.ts @@ -1,8 +1,8 @@ // @ts-nocheck TODO: fix file import { select } from 'd3'; -import svgDraw from './svgDraw'; -import { getConfig } from '../../config'; -import { configureSvgSize } from '../../setupGraphViewbox'; +import svgDraw from './svgDraw.js'; +import { getConfig } from '../../config.js'; +import { configureSvgSize } from '../../setupGraphViewbox.js'; export const setConf = function (cnf) { const keys = Object.keys(cnf); diff --git a/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js b/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js index cc54d9f78..9a66572b2 100644 --- a/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js +++ b/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js @@ -1,5 +1,5 @@ -import { parser } from './journey'; -import journeyDb from '../journeyDb'; +import { parser } from './journey.js'; +import journeyDb from '../journeyDb.js'; const parserFnConstructor = (str) => { return () => { diff --git a/packages/mermaid/src/directiveUtils.ts b/packages/mermaid/src/directiveUtils.ts index 2d2971a85..563856631 100644 --- a/packages/mermaid/src/directiveUtils.ts +++ b/packages/mermaid/src/directiveUtils.ts @@ -1,7 +1,7 @@ -import * as configApi from './config'; +import * as configApi from './config.js'; -import { log } from './logger'; -import { directiveSanitizer } from './utils'; +import { log } from './logger.js'; +import { directiveSanitizer } from './utils.js'; let currentDirective: { type?: string; args?: any } | undefined = {}; diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 9b01fdbde..ec5154fc4 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -1,5 +1,5 @@ import { version } from '../../../package.json'; -import MermaidExample from './mermaid-markdown-all'; +import MermaidExample from './mermaid-markdown-all.js'; import { defineConfig, MarkdownOptions } from 'vitepress'; const allMarkdownTransformers: MarkdownOptions = { diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index 273880d91..cc9c92183 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -1,8 +1,8 @@ import DefaultTheme from 'vitepress/theme'; import './custom.css'; // @ts-ignore -import Mermaid from './Mermaid.vue'; -import { getRedirect } from './redirect'; +import Mermaid from './Mermaid.vue.js'; +import { getRedirect } from './redirect.js'; export default { ...DefaultTheme, diff --git a/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts index ec0404264..3d88913d1 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/redirect.spec.ts @@ -2,7 +2,7 @@ // Update https://github.com/mermaid-js/mermaid/blob/18c27c6f1d0537a738cbd95898df301b83c38ffc/packages/mermaid/src/docs.mts#L246 once fixed import { expect, test } from 'vitest'; -import { getRedirect } from './redirect'; +import { getRedirect } from './redirect.js'; test.each([ // Old docs, localhost diff --git a/packages/mermaid/src/docs/vite.config.ts b/packages/mermaid/src/docs/vite.config.ts index 179e271fd..63d2aa5fa 100644 --- a/packages/mermaid/src/docs/vite.config.ts +++ b/packages/mermaid/src/docs/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig, type PluginOption, searchForWorkspaceRoot } from 'vite'; import path from 'path'; +// @ts-expect-error This package has an incorrect export map. import { SearchPlugin } from 'vitepress-plugin-search'; const virtualModuleId = 'virtual:mermaid-config'; diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index 36490798b..8bd380e62 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -1,7 +1,7 @@ -import mermaid from './mermaid'; -import { mermaidAPI } from './mermaidAPI'; +import mermaid from './mermaid.js'; +import { mermaidAPI } from './mermaidAPI.js'; import './diagram-api/diagram-orchestration'; -import { addDiagrams } from './diagram-api/diagram-orchestration'; +import { addDiagrams } from './diagram-api/diagram-orchestration.js'; import { beforeAll, describe, it, expect, vi } from 'vitest'; beforeAll(async () => { diff --git a/packages/mermaid/src/mermaid.ts b/packages/mermaid/src/mermaid.ts index bd99877b6..bedc4ce8c 100644 --- a/packages/mermaid/src/mermaid.ts +++ b/packages/mermaid/src/mermaid.ts @@ -2,21 +2,21 @@ * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid * functionality and to render the diagrams to svg code! */ -import dedent from 'ts-dedent'; -import { MermaidConfig } from './config.type'; -import { log } from './logger'; -import utils from './utils'; -import { mermaidAPI, ParseOptions, RenderResult } from './mermaidAPI'; +import { dedent } from 'ts-dedent'; +import { MermaidConfig } from './config.type.js'; +import { log } from './logger.js'; +import utils from './utils.js'; +import { mermaidAPI, ParseOptions, RenderResult } from './mermaidAPI.js'; import { registerLazyLoadedDiagrams, loadRegisteredDiagrams, detectType, -} from './diagram-api/detectType'; -import type { ParseErrorFunction } from './Diagram'; -import { isDetailedError } from './utils'; -import type { DetailedError } from './utils'; -import { ExternalDiagramDefinition } from './diagram-api/types'; -import { UnknownDiagramError } from './errors'; +} from './diagram-api/detectType.js'; +import type { ParseErrorFunction } from './Diagram.js'; +import { isDetailedError } from './utils.js'; +import type { DetailedError } from './utils.js'; +import { ExternalDiagramDefinition } from './diagram-api/types.js'; +import { UnknownDiagramError } from './errors.js'; export type { MermaidConfig, diff --git a/packages/mermaid/src/mermaidAPI.spec.ts b/packages/mermaid/src/mermaidAPI.spec.ts index edd2d47bb..48121f36e 100644 --- a/packages/mermaid/src/mermaidAPI.spec.ts +++ b/packages/mermaid/src/mermaidAPI.spec.ts @@ -4,14 +4,14 @@ import { vi } from 'vitest'; // ------------------------------------- // Mocks and mocking -import { MockedD3 } from './tests/MockedD3'; +import { MockedD3 } from './tests/MockedD3.js'; // Note: If running this directly from within an IDE, the mocks directory must be at packages/mermaid/mocks vi.mock('d3'); vi.mock('dagre-d3'); // mermaidAPI.spec.ts: -import * as accessibility from './accessibility'; // Import it this way so we can use spyOn(accessibility,...) +import * as accessibility from './accessibility.js'; // Import it this way so we can use spyOn(accessibility,...) vi.mock('./accessibility', () => ({ setA11yDiagramInfo: vi.fn(), addSVGa11yTitleDescription: vi.fn(), @@ -33,10 +33,10 @@ vi.mock('./diagrams/state/stateRenderer-v2'); // ------------------------------------- -import mermaid from './mermaid'; -import { MermaidConfig } from './config.type'; +import mermaid from './mermaid.js'; +import { MermaidConfig } from './config.type.js'; -import mermaidAPI, { removeExistingElements } from './mermaidAPI'; +import mermaidAPI, { removeExistingElements } from './mermaidAPI.js'; import { encodeEntities, decodeEntities, @@ -45,9 +45,9 @@ import { appendDivSvgG, cleanUpSvgCode, putIntoIFrame, -} from './mermaidAPI'; +} from './mermaidAPI.js'; -import assignWithDepth from './assignWithDepth'; +import assignWithDepth from './assignWithDepth.js'; // -------------- // Mocks @@ -58,7 +58,7 @@ vi.mock('./styles', () => { default: vi.fn().mockReturnValue(' .userStyle { font-weight:bold; }'), }; }); -import getStyles from './styles'; +import getStyles from './styles.js'; vi.mock('stylis', () => { return { diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 1b440672a..0b9792837 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -15,21 +15,21 @@ import { select } from 'd3'; import { compile, serialize, stringify } from 'stylis'; // @ts-ignore: TODO Fix ts errors import { version } from '../package.json'; -import * as configApi from './config'; -import { addDiagrams } from './diagram-api/diagram-orchestration'; -import { Diagram, getDiagramFromText } from './Diagram'; -import errorRenderer from './diagrams/error/errorRenderer'; -import { attachFunctions } from './interactionDb'; -import { log, setLogLevel } from './logger'; -import getStyles from './styles'; -import theme from './themes'; -import utils, { directiveSanitizer } from './utils'; +import * as configApi from './config.js'; +import { addDiagrams } from './diagram-api/diagram-orchestration.js'; +import { Diagram, getDiagramFromText } from './Diagram.js'; +import errorRenderer from './diagrams/error/errorRenderer.js'; +import { attachFunctions } from './interactionDb.js'; +import { log, setLogLevel } from './logger.js'; +import getStyles from './styles.js'; +import theme from './themes/index.js'; +import utils, { directiveSanitizer } from './utils.js'; import DOMPurify from 'dompurify'; -import { MermaidConfig } from './config.type'; -import { evaluate } from './diagrams/common/common'; +import { MermaidConfig } from './config.type.js'; +import { evaluate } from './diagrams/common/common.js'; import isEmpty from 'lodash-es/isEmpty.js'; -import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility'; -import { parseDirective } from './directiveUtils'; +import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility.js'; +import { parseDirective } from './directiveUtils.js'; // diagram names that support classDef statements const CLASSDEF_DIAGRAMS = ['graph', 'flowchart', 'flowchart-v2', 'stateDiagram', 'stateDiagram-v2']; @@ -204,6 +204,7 @@ export const createCssStyles = ( } // classDefs defined in the diagram text + // @ts-expect-error https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64684 if (!isEmpty(classDefs) && CLASSDEF_DIAGRAMS.includes(graphType)) { const htmlLabels = config.htmlLabels || config.flowchart?.htmlLabels; // TODO why specifically check the Flowchart diagram config? @@ -216,12 +217,14 @@ export const createCssStyles = ( for (const classId in classDefs) { const styleClassDef = classDefs[classId]; // create the css styles for each cssElement and the styles (only if there are styles) + // @ts-expect-error https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64684 if (!isEmpty(styleClassDef.styles)) { cssElements.forEach((cssElement) => { cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles); }); } // create the css styles for the tspan element and the text styles (only if there are textStyles) + // @ts-expect-error https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64684 if (!isEmpty(styleClassDef.textStyles)) { cssStyles += cssImportantStyles(styleClassDef.id, 'tspan', styleClassDef.textStyles); } diff --git a/packages/mermaid/src/setupGraphViewbox.js b/packages/mermaid/src/setupGraphViewbox.js index 14929d3d7..c4aeeceea 100644 --- a/packages/mermaid/src/setupGraphViewbox.js +++ b/packages/mermaid/src/setupGraphViewbox.js @@ -1,4 +1,4 @@ -import { log } from './logger'; +import { log } from './logger.js'; /** * Applies d3 attributes diff --git a/packages/mermaid/src/setupGraphViewbox.spec.js b/packages/mermaid/src/setupGraphViewbox.spec.js index 6b5c3e210..36154e2df 100644 --- a/packages/mermaid/src/setupGraphViewbox.spec.js +++ b/packages/mermaid/src/setupGraphViewbox.spec.js @@ -1,8 +1,8 @@ -import utils from './utils'; -import assignWithDepth from './assignWithDepth'; -import { detectType } from './diagram-api/detectType'; -import { addDiagrams } from './diagram-api/diagram-orchestration'; -import { calculateSvgSizeAttrs } from './setupGraphViewbox'; +import utils from './utils.js'; +import assignWithDepth from './assignWithDepth.js'; +import { detectType } from './diagram-api/detectType.js'; +import { addDiagrams } from './diagram-api/diagram-orchestration.js'; +import { calculateSvgSizeAttrs } from './setupGraphViewbox.js'; addDiagrams(); describe('when calculating SVG size', function () { diff --git a/packages/mermaid/src/styles.ts b/packages/mermaid/src/styles.ts index 588c26cb1..a6e752475 100644 --- a/packages/mermaid/src/styles.ts +++ b/packages/mermaid/src/styles.ts @@ -1,5 +1,5 @@ -import type { FlowChartStyleOptions } from './diagrams/flowchart/styles'; -import { log } from './logger'; +import type { FlowChartStyleOptions } from './diagrams/flowchart/styles.js'; +import { log } from './logger.js'; const themes: Record = {}; diff --git a/packages/mermaid/src/tests/MockedD3.ts b/packages/mermaid/src/tests/MockedD3.ts index ccf21a269..6d8d721e0 100644 --- a/packages/mermaid/src/tests/MockedD3.ts +++ b/packages/mermaid/src/tests/MockedD3.ts @@ -1,4 +1,4 @@ -import type {} from '@vitest/spy/dist/index'; +import type {} from '@vitest/spy/dist/index.js'; /** * This is a mocked/stubbed version of the d3 Selection type. Each of the main functions are all diff --git a/packages/mermaid/src/themes/index.js b/packages/mermaid/src/themes/index.js index 94e2b95a4..6ffe6274d 100644 --- a/packages/mermaid/src/themes/index.js +++ b/packages/mermaid/src/themes/index.js @@ -1,8 +1,8 @@ -import { getThemeVariables as baseThemeVariables } from './theme-base'; -import { getThemeVariables as darkThemeVariables } from './theme-dark'; -import { getThemeVariables as defaultThemeVariables } from './theme-default'; -import { getThemeVariables as forestThemeVariables } from './theme-forest'; -import { getThemeVariables as neutralThemeVariables } from './theme-neutral'; +import { getThemeVariables as baseThemeVariables } from './theme-base.js'; +import { getThemeVariables as darkThemeVariables } from './theme-dark.js'; +import { getThemeVariables as defaultThemeVariables } from './theme-default.js'; +import { getThemeVariables as forestThemeVariables } from './theme-forest.js'; +import { getThemeVariables as neutralThemeVariables } from './theme-neutral.js'; export default { base: { diff --git a/packages/mermaid/src/themes/theme-base.js b/packages/mermaid/src/themes/theme-base.js index 01f8a9c0b..b70ea8294 100644 --- a/packages/mermaid/src/themes/theme-base.js +++ b/packages/mermaid/src/themes/theme-base.js @@ -1,9 +1,9 @@ import { darken, lighten, adjust, invert } from 'khroma'; -import { mkBorder } from './theme-helpers'; +import { mkBorder } from './theme-helpers.js'; import { oldAttributeBackgroundColorEven, oldAttributeBackgroundColorOdd, -} from './erDiagram-oldHardcodedValues'; +} from './erDiagram-oldHardcodedValues.js'; class Theme { constructor() { diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js index 9585a2e27..a645847e0 100644 --- a/packages/mermaid/src/themes/theme-dark.js +++ b/packages/mermaid/src/themes/theme-dark.js @@ -1,5 +1,5 @@ import { invert, lighten, darken, rgba, adjust } from 'khroma'; -import { mkBorder } from './theme-helpers'; +import { mkBorder } from './theme-helpers.js'; class Theme { constructor() { diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js index c91029de3..1215f2c50 100644 --- a/packages/mermaid/src/themes/theme-default.js +++ b/packages/mermaid/src/themes/theme-default.js @@ -1,9 +1,9 @@ import { invert, lighten, rgba, adjust, darken } from 'khroma'; -import { mkBorder } from './theme-helpers'; +import { mkBorder } from './theme-helpers.js'; import { oldAttributeBackgroundColorEven, oldAttributeBackgroundColorOdd, -} from './erDiagram-oldHardcodedValues'; +} from './erDiagram-oldHardcodedValues.js'; class Theme { constructor() { diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js index 96d6c35c1..2ba0a8333 100644 --- a/packages/mermaid/src/themes/theme-forest.js +++ b/packages/mermaid/src/themes/theme-forest.js @@ -1,9 +1,9 @@ import { darken, lighten, adjust, invert } from 'khroma'; -import { mkBorder } from './theme-helpers'; +import { mkBorder } from './theme-helpers.js'; import { oldAttributeBackgroundColorEven, oldAttributeBackgroundColorOdd, -} from './erDiagram-oldHardcodedValues'; +} from './erDiagram-oldHardcodedValues.js'; class Theme { constructor() { diff --git a/packages/mermaid/src/themes/theme-neutral.js b/packages/mermaid/src/themes/theme-neutral.js index 8bb5ff693..8184c0170 100644 --- a/packages/mermaid/src/themes/theme-neutral.js +++ b/packages/mermaid/src/themes/theme-neutral.js @@ -1,9 +1,9 @@ import { invert, darken, lighten, adjust } from 'khroma'; -import { mkBorder } from './theme-helpers'; +import { mkBorder } from './theme-helpers.js'; import { oldAttributeBackgroundColorEven, oldAttributeBackgroundColorOdd, -} from './erDiagram-oldHardcodedValues'; +} from './erDiagram-oldHardcodedValues.js'; // const Color = require ( 'khroma/dist/color' ).default // Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => "#EAF2FB" diff --git a/packages/mermaid/src/utils.spec.js b/packages/mermaid/src/utils.spec.js index 0f0bc1e92..ae3234cb9 100644 --- a/packages/mermaid/src/utils.spec.js +++ b/packages/mermaid/src/utils.spec.js @@ -1,10 +1,10 @@ import { vi } from 'vitest'; -import utils from './utils'; -import assignWithDepth from './assignWithDepth'; -import { detectType } from './diagram-api/detectType'; -import { addDiagrams } from './diagram-api/diagram-orchestration'; +import utils from './utils.js'; +import assignWithDepth from './assignWithDepth.js'; +import { detectType } from './diagram-api/detectType.js'; +import { addDiagrams } from './diagram-api/diagram-orchestration.js'; import memoize from 'lodash-es/memoize.js'; -import { MockedD3 } from './tests/MockedD3'; +import { MockedD3 } from './tests/MockedD3.js'; addDiagrams(); diff --git a/packages/mermaid/src/utils.ts b/packages/mermaid/src/utils.ts index 0c4b9d1a8..6f824062d 100644 --- a/packages/mermaid/src/utils.ts +++ b/packages/mermaid/src/utils.ts @@ -24,12 +24,12 @@ import { curveStepBefore, select, } from 'd3'; -import common from './diagrams/common/common'; -import { configKeys } from './defaultConfig'; -import { log } from './logger'; -import { detectType } from './diagram-api/detectType'; -import assignWithDepth from './assignWithDepth'; -import { MermaidConfig } from './config.type'; +import common from './diagrams/common/common.js'; +import { configKeys } from './defaultConfig.js'; +import { log } from './logger.js'; +import { detectType } from './diagram-api/detectType.js'; +import assignWithDepth from './assignWithDepth.js'; +import { MermaidConfig } from './config.type.js'; import memoize from 'lodash-es/memoize.js'; // Effectively an enum of the supported curve types, accessible by name diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7a3a68e4..af18cde76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,6 +16,9 @@ importers: '@cspell/eslint-plugin': specifier: ^6.14.2 version: 6.14.2 + '@rollup/plugin-typescript': + specifier: ^11.0.0 + version: 11.0.0_typescript@4.8.4 '@types/cors': specifier: ^2.8.13 version: 2.8.13 @@ -2506,6 +2509,38 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@rollup/plugin-typescript/11.0.0_typescript@4.8.4: + resolution: {integrity: sha512-goPyCWBiimk1iJgSTgsehFD5OOFHiAknrRJjqFCudcW8JtWiBlK284Xnn4flqMqg6YAjVG/EE+3aVzrL5qNSzQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0 + tslib: '*' + typescript: '>=3.7.0' + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2 + resolve: 1.22.1 + typescript: 4.8.4 + dev: true + + /@rollup/pluginutils/5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: diff --git a/tsconfig.json b/tsconfig.json index c66d62784..29c790cbb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,9 +27,8 @@ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ /* Modules */ - "module": "es2022" /* Specify what module code is generated. */, + "module": "nodenext", // "rootDir": "./packages" /* Specify the root folder within your source files. */, - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, // "baseUrl": "./src" /* Specify the base directory to resolve non-relative module names. */, // "paths": {} /* Specify a set of entries that re-map imports to additional lookup locations. */, // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ diff --git a/vite.config.ts b/vite.config.ts index e79295425..ec6cf3fd3 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,9 @@ -import jison from './.vite/jisonPlugin'; +import jison from './.vite/jisonPlugin.js'; import { defineConfig } from 'vitest/config'; export default defineConfig({ resolve: { - extensions: ['.jison', '.js', '.ts', '.json'], + extensions: [], }, plugins: [jison()], test: { From fd013286f6c8f13b22cfae1b355d961aa5e23221 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sat, 11 Mar 2023 15:07:12 +0100 Subject: [PATCH 02/69] Fix vue import error --- packages/mermaid/src/docs/.vitepress/theme/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index cc9c92183..0eebb82c5 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -1,7 +1,7 @@ import DefaultTheme from 'vitepress/theme'; import './custom.css'; // @ts-ignore -import Mermaid from './Mermaid.vue.js'; +import Mermaid from './Mermaid.vue'; import { getRedirect } from './redirect.js'; export default { From fc80ba66d22fee5474f2c1a52a3848677ee26dde Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Sat, 11 Mar 2023 15:27:16 +0100 Subject: [PATCH 03/69] Fix import extensions --- .vite/build.ts | 2 +- .../mermaid-example-diagram/src/exampleDiagram.spec.js | 2 +- .../src/diagrams/class/classDiagram-styles.spec.js | 2 +- packages/mermaid/src/diagrams/class/classDiagram.spec.ts | 2 +- .../mermaid/src/diagrams/er/parser/erDiagram.spec.js | 2 +- .../src/diagrams/flowchart/flowRenderer.addEdges.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-arrows.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-comments.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-direction.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-edges.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-huge.spec.js | 2 +- .../diagrams/flowchart/parser/flow-interactions.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-lines.spec.js | 2 +- .../diagrams/flowchart/parser/flow-singlenode.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-style.spec.js | 2 +- .../src/diagrams/flowchart/parser/flow-text.spec.js | 2 +- .../flowchart/parser/flow-vertice-chaining.spec.js | 2 +- .../mermaid/src/diagrams/flowchart/parser/flow.spec.js | 2 +- .../src/diagrams/flowchart/parser/subgraph.spec.js | 2 +- packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js | 2 +- .../mermaid/src/diagrams/git/gitGraphParserV2.spec.js | 2 +- packages/mermaid/src/diagrams/info/info.spec.js | 2 +- packages/mermaid/src/diagrams/mindmap/mindmap.spec.js | 2 +- packages/mermaid/src/diagrams/pie/parser/pie.spec.js | 2 +- .../requirement/parser/requirementDiagram.spec.js | 2 +- .../src/diagrams/state/parser/state-parser.spec.js | 2 +- .../src/diagrams/state/parser/state-style.spec.js | 2 +- .../mermaid/src/diagrams/state/stateDiagram-v2.spec.js | 2 +- packages/mermaid/src/diagrams/state/stateDiagram.spec.js | 2 +- .../mermaid/src/diagrams/state/stateRenderer-v2.spec.js | 2 +- packages/mermaid/src/diagrams/timeline/timeline.spec.js | 2 +- .../src/diagrams/user-journey/parser/journey.spec.js | 2 +- packages/mermaid/src/mermaid.spec.ts | 2 +- vite.config.ts | 9 +++++++-- 34 files changed, 40 insertions(+), 35 deletions(-) diff --git a/.vite/build.ts b/.vite/build.ts index b3f1f64a4..183158288 100644 --- a/.vite/build.ts +++ b/.vite/build.ts @@ -107,7 +107,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions) }, plugins: [ jisonPlugin(), - // @ts-expect-error + // @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite typescript({ compilerOptions: { declaration: false } }), ...visualizerOptions(packageName, core), ], diff --git a/packages/mermaid-example-diagram/src/exampleDiagram.spec.js b/packages/mermaid-example-diagram/src/exampleDiagram.spec.js index 6ea655404..9cfe33a1b 100644 --- a/packages/mermaid-example-diagram/src/exampleDiagram.spec.js +++ b/packages/mermaid-example-diagram/src/exampleDiagram.spec.js @@ -1,4 +1,4 @@ -import { parser } from './parser/exampleDiagram.js'; +import { parser } from './parser/exampleDiagram.jison'; import * as db from './exampleDiagramDb.js'; import { injectUtils } from './mermaidUtils.js'; // Todo fix utils functions for tests diff --git a/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js b/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js index 3b3da12ed..a693fbbea 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js +++ b/packages/mermaid/src/diagrams/class/classDiagram-styles.spec.js @@ -1,4 +1,4 @@ -import { parser } from './parser/classDiagram.js'; +import { parser } from './parser/classDiagram.jison'; import classDb from './classDb.js'; describe('class diagram, ', function () { diff --git a/packages/mermaid/src/diagrams/class/classDiagram.spec.ts b/packages/mermaid/src/diagrams/class/classDiagram.spec.ts index 30faf7cd6..6dbf9c081 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram.spec.ts +++ b/packages/mermaid/src/diagrams/class/classDiagram.spec.ts @@ -1,5 +1,5 @@ // @ts-expect-error Jison doesn't export types -import { parser } from './parser/classDiagram.js'; +import { parser } from './parser/classDiagram.jison'; import classDb from './classDb.js'; import { vi, describe, it, expect } from 'vitest'; const spyOn = vi.spyOn; diff --git a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js index 53273b885..904521d50 100644 --- a/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js +++ b/packages/mermaid/src/diagrams/er/parser/erDiagram.spec.js @@ -1,6 +1,6 @@ import { setConfig } from '../../../config.js'; import erDb from '../erDb.js'; -import erDiagram from './erDiagram.js'; // jison file +import erDiagram from './erDiagram.jison'; // jison file setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js b/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js index cbe661950..4b7fe272d 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/flowRenderer.addEdges.spec.js @@ -1,5 +1,5 @@ import flowDb from './flowDb.js'; -import { parser } from './parser/flow.js'; +import { parser } from './parser/flow.jison'; import flowRenderer from './flowRenderer.js'; import { addDiagrams } from '../../diagram-api/diagram-orchestration.js'; diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js index 9754f8909..699aa333d 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-arrows.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js index 05ed738cc..912839a59 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-comments.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js index 0fbc013ff..ce6b0b0c4 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-direction.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js index 5af5f144a..dcac21ee7 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-edges.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js index 49a733182..48fc2be16 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-huge.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js index 7fd2e6b19..cb3f48cca 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-interactions.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; import { vi } from 'vitest'; const spyOn = vi.spyOn; diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js index 13aecc7c6..ec157e646 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-lines.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js index 04b1ff01c..b959f019e 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-singlenode.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js index e4f49b526..512a0b833 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-style.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js index 76a119fc1..db43e75bf 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js index 7c6441d7b..3f1078030 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-vertice-chaining.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js index 526c9edfe..ef369504f 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js index 3dc0785ca..12b2e4a39 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/subgraph.spec.js @@ -1,5 +1,5 @@ import flowDb from '../flowDb.js'; -import flow from './flow.js'; +import flow from './flow.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js index cb05bdbaf..020bab0ed 100644 --- a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js +++ b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js @@ -1,4 +1,4 @@ -import { parser } from './gantt.js'; +import { parser } from './gantt.jison'; import ganttDb from '../ganttDb.js'; import { convert } from '../../../tests/util.js'; import { vi } from 'vitest'; diff --git a/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js b/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js index 3ff8487af..764fbb214 100644 --- a/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js +++ b/packages/mermaid/src/diagrams/git/gitGraphParserV2.spec.js @@ -1,7 +1,7 @@ /* eslint-env jasmine */ // Todo reintroduce without cryptoRandomString import gitGraphAst from './gitGraphAst.js'; -import { parser } from './parser/gitGraph.js'; +import { parser } from './parser/gitGraph.jison'; //import randomString from 'crypto-random-string'; //import cryptoRandomString from 'crypto-random-string'; diff --git a/packages/mermaid/src/diagrams/info/info.spec.js b/packages/mermaid/src/diagrams/info/info.spec.js index 352392bea..6f1a59d1c 100644 --- a/packages/mermaid/src/diagrams/info/info.spec.js +++ b/packages/mermaid/src/diagrams/info/info.spec.js @@ -1,4 +1,4 @@ -import { parser } from './parser/info.js'; +import { parser } from './parser/info.jison'; import infoDb from './infoDb.js'; describe('when parsing an info graph it', function () { let ex; diff --git a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js index e4777250f..845205f9b 100644 --- a/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js +++ b/packages/mermaid/src/diagrams/mindmap/mindmap.spec.js @@ -1,4 +1,4 @@ -import { parser as mindmap } from './parser/mindmap.js'; +import { parser as mindmap } from './parser/mindmap.jison'; import * as mindmapDB from './mindmapDb.js'; // Todo fix utils functions for tests import { setLogLevel } from '../../diagram-api/diagramAPI.js'; diff --git a/packages/mermaid/src/diagrams/pie/parser/pie.spec.js b/packages/mermaid/src/diagrams/pie/parser/pie.spec.js index a365268dd..5e5c0b4f5 100644 --- a/packages/mermaid/src/diagrams/pie/parser/pie.spec.js +++ b/packages/mermaid/src/diagrams/pie/parser/pie.spec.js @@ -1,5 +1,5 @@ import pieDb from '../pieDb.js'; -import pie from './pie.js'; +import pie from './pie.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js b/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js index 823b476ac..1b4c5da31 100644 --- a/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js +++ b/packages/mermaid/src/diagrams/requirement/parser/requirementDiagram.spec.js @@ -1,6 +1,6 @@ import { setConfig } from '../../../config.js'; import requirementDb from '../requirementDb.js'; -import reqDiagram from './requirementDiagram.js'; +import reqDiagram from './requirementDiagram.jison'; setConfig({ securityLevel: 'strict', diff --git a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js index 0d334da8e..e56931ade 100644 --- a/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js +++ b/packages/mermaid/src/diagrams/state/parser/state-parser.spec.js @@ -1,5 +1,5 @@ import stateDb from '../stateDb.js'; -import stateDiagram from './stateDiagram.js'; +import stateDiagram from './stateDiagram.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/state/parser/state-style.spec.js b/packages/mermaid/src/diagrams/state/parser/state-style.spec.js index fec5f9900..9ce41df50 100644 --- a/packages/mermaid/src/diagrams/state/parser/state-style.spec.js +++ b/packages/mermaid/src/diagrams/state/parser/state-style.spec.js @@ -1,5 +1,5 @@ import stateDb from '../stateDb.js'; -import stateDiagram from './stateDiagram.js'; +import stateDiagram from './stateDiagram.jison'; import { setConfig } from '../../../config.js'; setConfig({ diff --git a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js index fdc36ce3e..e64ecfdf8 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDiagram-v2.spec.js @@ -1,4 +1,4 @@ -import { parser } from './parser/stateDiagram.js'; +import { parser } from './parser/stateDiagram.jison'; import stateDb from './stateDb.js'; import stateDiagram from './parser/stateDiagram.jison'; diff --git a/packages/mermaid/src/diagrams/state/stateDiagram.spec.js b/packages/mermaid/src/diagrams/state/stateDiagram.spec.js index b8c44ae2e..e6e470140 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram.spec.js +++ b/packages/mermaid/src/diagrams/state/stateDiagram.spec.js @@ -1,4 +1,4 @@ -import { parser } from './parser/stateDiagram.js'; +import { parser } from './parser/stateDiagram.jison'; import stateDb from './stateDb.js'; describe('state diagram, ', function () { diff --git a/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js b/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js index 2333fc48f..a190fe05b 100644 --- a/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js +++ b/packages/mermaid/src/diagrams/state/stateRenderer-v2.spec.js @@ -1,6 +1,6 @@ import { expectTypeOf } from 'vitest'; -import { parser } from './parser/stateDiagram.js'; +import { parser } from './parser/stateDiagram.jison'; import stateDb from './stateDb.js'; import stateRendererV2 from './stateRenderer-v2.js'; diff --git a/packages/mermaid/src/diagrams/timeline/timeline.spec.js b/packages/mermaid/src/diagrams/timeline/timeline.spec.js index 609bb7a47..1f6a96024 100644 --- a/packages/mermaid/src/diagrams/timeline/timeline.spec.js +++ b/packages/mermaid/src/diagrams/timeline/timeline.spec.js @@ -1,4 +1,4 @@ -import { parser as timeline } from './parser/timeline.js'; +import { parser as timeline } from './parser/timeline.jison'; import * as timelineDB from './timelineDb.js'; // import { injectUtils } from './mermaidUtils.js'; import * as _commonDb from '../../commonDb.js'; diff --git a/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js b/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js index 9a66572b2..8ed342bb5 100644 --- a/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js +++ b/packages/mermaid/src/diagrams/user-journey/parser/journey.spec.js @@ -1,4 +1,4 @@ -import { parser } from './journey.js'; +import { parser } from './journey.jison'; import journeyDb from '../journeyDb.js'; const parserFnConstructor = (str) => { diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts index 8bd380e62..b6acd17cb 100644 --- a/packages/mermaid/src/mermaid.spec.ts +++ b/packages/mermaid/src/mermaid.spec.ts @@ -1,6 +1,6 @@ import mermaid from './mermaid.js'; import { mermaidAPI } from './mermaidAPI.js'; -import './diagram-api/diagram-orchestration'; +import './diagram-api/diagram-orchestration.js'; import { addDiagrams } from './diagram-api/diagram-orchestration.js'; import { beforeAll, describe, it, expect, vi } from 'vitest'; diff --git a/vite.config.ts b/vite.config.ts index ec6cf3fd3..dfd0431bb 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,11 +1,16 @@ import jison from './.vite/jisonPlugin.js'; +import typescript from '@rollup/plugin-typescript'; import { defineConfig } from 'vitest/config'; export default defineConfig({ resolve: { - extensions: [], + extensions: ['.js'], }, - plugins: [jison()], + plugins: [ + jison(), + // @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite + typescript({ compilerOptions: { declaration: false } }), + ], test: { environment: 'jsdom', globals: true, From b232f201698d25ea0a2522e0de85ff6ff3be4895 Mon Sep 17 00:00:00 2001 From: Steph Date: Wed, 15 Mar 2023 10:53:50 -0700 Subject: [PATCH 04/69] add mermaid chart logo and link to navbar --- packages/mermaid/src/docs/.vitepress/config.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 9b01fdbde..42cc0fb86 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -29,6 +29,12 @@ export default defineConfig({ socialLinks: [ { icon: 'github', link: 'https://github.com/mermaid-js/mermaid' }, { icon: 'slack', link: 'https://mermaid-talk.slack.com' }, + { + icon: { + svg: '', + }, + link: 'https://www.mermaidchart.com/', + }, ], }, }); From 89b9868870d3927f40775d370c32c732ef3e212d Mon Sep 17 00:00:00 2001 From: Steph Date: Wed, 15 Mar 2023 11:14:02 -0700 Subject: [PATCH 05/69] update cards --- packages/mermaid/src/docs/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index b0b38bd79..f5e0970fa 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -23,15 +23,15 @@ features: - title: ➕ Easy to use! details: Easily create and render detailed diagrams and charts with the Mermaid Live Editor. link: https://mermaid.live/ - - title: 🎥 Video Tutorials! - details: Curated list of video tutorials and examples created by the community. - link: ../../config/Tutorials.html - title: 🧩 Integrations available! details: Use Mermaid with your favorite applications, check out the integrations list. link: ../../ecosystem/integrations.md - title: 🏆 Award winning! details: 2019 JavaScript Open Source Award winner for "The Most Exciting Use of Technology". link: https://osawards.com/javascript/2019 + - title: 🥰 Mermaid + Mermaid Chart + details: Mermaid Chart is a major supporter of the Mermaid project. + link: https://www.mermaidchart.com/ --- From d18dff65e19a0e84a8842c9e30379b197c62eb7d Mon Sep 17 00:00:00 2001 From: Steph Date: Wed, 15 Mar 2023 12:24:31 -0700 Subject: [PATCH 07/69] add hover effect to mc icon and update cspell --- cSpell.json | 2 ++ packages/mermaid/src/docs/.vitepress/config.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cSpell.json b/cSpell.json index d860c5e33..94276b683 100644 --- a/cSpell.json +++ b/cSpell.json @@ -47,6 +47,7 @@ "graphviz", "grav", "greywolf", + "huynh", "inkdrop", "jaoude", "jison", @@ -90,6 +91,7 @@ "sidharthv", "sphinxcontrib", "statediagram", + "steph", "stylis", "substate", "sveidqvist", diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index 42cc0fb86..a146be531 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -31,7 +31,7 @@ export default defineConfig({ { icon: 'slack', link: 'https://mermaid-talk.slack.com' }, { icon: { - svg: '', + svg: '', }, link: 'https://www.mermaidchart.com/', }, From b56c8a2a7a988e9a17c5d6344974829076c65e0f Mon Sep 17 00:00:00 2001 From: Steph Date: Wed, 15 Mar 2023 12:41:33 -0700 Subject: [PATCH 08/69] fix favicon resolution --- docs/public/favicon.ico | Bin 1150 -> 12392 bytes packages/mermaid/src/docs/public/favicon.ico | Bin 1150 -> 12392 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico index d41818c5b6e0250d7c8083ee5b19a02cdd6a4302..05d8a737bed26f3f59b53eb56ca18a5ee1536dc7 100644 GIT binary patch literal 12392 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 RjQ=12*z-6Y%2}t|{{x!s_j~{V literal 1150 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 RjQ=12*z-6Y%2}t|{{x!s_j~{V literal 1150 zcmb7^OG_L<6opI34{+t$ML;1tA5lU7Kzs%aL|o`jUHBN$rEe09pc?~1wn0GzK~TgO zf(t=VM{yy83qe!{LWFBjXv_axq56(p%4G3IvOSs34Ic9)-6c_$XKsya>n=s!@+8KV4S|bQZbLz8^5b$TzbzY2q2KsiYsR(ZPlSyB{+fRZOK|Bi| Date: Fri, 17 Mar 2023 20:53:13 +0100 Subject: [PATCH 09/69] Fix Cypress tests --- cypress/platform/ashish2.html | 2 +- cypress/platform/bundle-test.js | 2 +- cypress/platform/external-diagrams-example-diagram.html | 4 ++-- cypress/platform/flow2.html | 2 +- cypress/platform/knsv2.html | 4 ++-- cypress/platform/knsv3.html | 2 +- cypress/platform/viewer.js | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cypress/platform/ashish2.html b/cypress/platform/ashish2.html index bcea4f4cc..93a47c18a 100644 --- a/cypress/platform/ashish2.html +++ b/cypress/platform/ashish2.html @@ -188,7 +188,7 @@ mindmap //import mindmap from '../../packages/mermaid-mindmap/src/detector'; // import example from '../../packages/mermaid-example-diagram/src/detector'; // import timeline from '../../packages/mermaid-timeline/src/detector'; - import mermaid from '../../packages/mermaid/src/mermaid'; + import mermaid from '../../packages/mermaid/dist/mermaid.esm.mjs'; // await mermaid.registerExternalDiagrams([]); mermaid.parseError = function (err, hash) { // console.error('Mermaid error: ', err); diff --git a/cypress/platform/bundle-test.js b/cypress/platform/bundle-test.js index 33677cd97..b97d7134f 100644 --- a/cypress/platform/bundle-test.js +++ b/cypress/platform/bundle-test.js @@ -1,4 +1,4 @@ -import mermaid from '../../packages/mermaid/src/mermaid.js'; +import mermaid from '../../packages/mermaid/dist/mermaid.esm.mjs'; let code = `flowchart LR Power_Supply --> Transmitter_A diff --git a/cypress/platform/external-diagrams-example-diagram.html b/cypress/platform/external-diagrams-example-diagram.html index b5b716ff8..80d707d88 100644 --- a/cypress/platform/external-diagrams-example-diagram.html +++ b/cypress/platform/external-diagrams-example-diagram.html @@ -11,9 +11,9 @@ example-diagram ``` -**Doing so will command the mermaid parser to look for the `
` or `
` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
+**Doing so commands the mermaid parser to look for the `
` or `
` tags with `class="mermaid"`. From these tags, mermaid tries read the diagram/chart definitions and render them into SVG charts.**
 
-**Examples can be found at** [Other examples](../syntax/examples.md)
+**Examples can be found in** [Other examples](../syntax/examples.md)
 
 ## Sibling projects
 

From 83d7d6c48f829176282ba3f92d416e9dca20faf1 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 05:42:02 +0100
Subject: [PATCH 34/69] fix: fix invalid CSS for class diagram

`.divider` had a `stroke` property of `1` that was invalid.

This looks like a typo from PR
https://github.com/mermaid-js/mermaid/pull/1567,
as the `src/theme/class.scss` file's `.divider` section correctly
shows `stroke-width: 1;`.

Fixes: https://github.com/mermaid-js/mermaid/pull/1567
---
 packages/mermaid/src/diagrams/class/styles.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/mermaid/src/diagrams/class/styles.js b/packages/mermaid/src/diagrams/class/styles.js
index 981cd7b73..15386bf9e 100644
--- a/packages/mermaid/src/diagrams/class/styles.js
+++ b/packages/mermaid/src/diagrams/class/styles.js
@@ -41,7 +41,7 @@ const getStyles = (options) =>
 
 .divider {
   stroke: ${options.nodeBorder};
-  stroke: 1;
+  stroke-width: 1;
 }
 
 g.clickable {

From 616d370a513e6843c2a580c793248c83d8fccef7 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 05:48:02 +0100
Subject: [PATCH 35/69] fix: fix personBorder/Bkg C4 diagram theme vars

The current `personBorder`/`personBkg` theme variables for C4 diagrams
are set to the string `'calculated'`.

However, despite being `'calculated'`, they never seem to change to
anything else, and so become invalid CSS variables.

I've instead changed these to just default to base theme vars,
as that's what they do in [`these-base.js`][1].

[1]: https://github.com/mermaid-js/mermaid/blob/727bf30824e08c672c7f13ed83f111c2d1596935/packages/mermaid/src/themes/theme-base.js#L106-L107
---
 packages/mermaid/src/themes/theme-dark.js    | 5 ++---
 packages/mermaid/src/themes/theme-default.js | 5 ++---
 packages/mermaid/src/themes/theme-forest.js  | 5 ++---
 packages/mermaid/src/themes/theme-neutral.js | 5 ++---
 4 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js
index 9585a2e27..6ee26169d 100644
--- a/packages/mermaid/src/themes/theme-dark.js
+++ b/packages/mermaid/src/themes/theme-dark.js
@@ -81,9 +81,8 @@ class Theme {
     this.todayLineColor = '#DB5757';
 
     /* C4 Context Diagram variables */
-
-    this.personBorder = 'calculated';
-    this.personBkg = 'calculated';
+    this.personBorder = this.primaryBorderColor;
+    this.personBkg = this.mainBkg;
 
     /* state colors */
     this.labelColor = 'calculated';
diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js
index c91029de3..339bfa48a 100644
--- a/packages/mermaid/src/themes/theme-default.js
+++ b/packages/mermaid/src/themes/theme-default.js
@@ -109,9 +109,8 @@ class Theme {
     this.todayLineColor = 'red';
 
     /* C4 Context Diagram variables */
-
-    this.personBorder = 'calculated';
-    this.personBkg = 'calculated';
+    this.personBorder = this.primaryBorderColor;
+    this.personBkg = this.mainBkg;
 
     /* state colors */
     this.labelColor = 'black';
diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js
index 96d6c35c1..3d47684bc 100644
--- a/packages/mermaid/src/themes/theme-forest.js
+++ b/packages/mermaid/src/themes/theme-forest.js
@@ -83,9 +83,8 @@ class Theme {
     this.todayLineColor = 'red';
 
     /* C4 Context Diagram variables */
-
-    this.personBorder = 'calculated';
-    this.personBkg = 'calculated';
+    this.personBorder = this.primaryBorderColor;
+    this.personBkg = this.mainBkg;
 
     /* state colors */
     this.labelColor = 'black';
diff --git a/packages/mermaid/src/themes/theme-neutral.js b/packages/mermaid/src/themes/theme-neutral.js
index 8bb5ff693..9dce63b8d 100644
--- a/packages/mermaid/src/themes/theme-neutral.js
+++ b/packages/mermaid/src/themes/theme-neutral.js
@@ -95,9 +95,8 @@ class Theme {
     this.todayLineColor = 'calculated';
 
     /* C4 Context Diagram variables */
-
-    this.personBorder = 'calculated';
-    this.personBkg = 'calculated';
+    this.personBorder = this.primaryBorderColor;
+    this.personBkg = this.mainBkg;
 
     /* state colors */
     this.labelColor = 'black';

From 9cb7a4a3f59d8489e43bef3a58248ec5e040ccfb Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 05:58:47 +0100
Subject: [PATCH 36/69] fix: fix invalid CSS `fill-opacity` value
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fix an invalid value for the CSS `fill-opacity` value.

Percentage values for `fill-opacity` are only supported in the SVG 2.0
draft, so according to [MDN][1]:

> it is not widely supported yet, […] as a consequence, it is best
> practices [sic] to set opacity with a value in the range `[0-1]`.

[1]: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-opacity
---
 packages/mermaid/src/diagrams/requirement/styles.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/mermaid/src/diagrams/requirement/styles.js b/packages/mermaid/src/diagrams/requirement/styles.js
index d0579d204..9db0fa00a 100644
--- a/packages/mermaid/src/diagrams/requirement/styles.js
+++ b/packages/mermaid/src/diagrams/requirement/styles.js
@@ -16,7 +16,7 @@ const getStyles = (options) => `
 
   .reqBox {
     fill: ${options.requirementBackground};
-    fill-opacity: 100%;
+    fill-opacity: 1.0;
     stroke: ${options.requirementBorderColor};
     stroke-width: ${options.requirementBorderSize};
   }
@@ -26,7 +26,7 @@ const getStyles = (options) => `
   }
   .reqLabelBox {
     fill: ${options.relationLabelBackground};
-    fill-opacity: 100%;
+    fill-opacity: 1.0;
   }
 
   .req-title-line {

From 7566b5620eadffa383410fe8bfa3429ab14db2e6 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 06:09:41 +0100
Subject: [PATCH 37/69] fix: fix `requirementBorderSize` theme variable

Currently, `requirementBorderSize` defaults to `primaryBorderColor`,
which is a color, not a valid SVG `stroke-width`.

Instead, I've made it default to `1`.
---
 packages/mermaid/src/themes/theme-base.js    | 2 +-
 packages/mermaid/src/themes/theme-dark.js    | 2 +-
 packages/mermaid/src/themes/theme-default.js | 2 +-
 packages/mermaid/src/themes/theme-forest.js  | 2 +-
 packages/mermaid/src/themes/theme-neutral.js | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/packages/mermaid/src/themes/theme-base.js b/packages/mermaid/src/themes/theme-base.js
index 01f8a9c0b..a3d4a738f 100644
--- a/packages/mermaid/src/themes/theme-base.js
+++ b/packages/mermaid/src/themes/theme-base.js
@@ -219,7 +219,7 @@ class Theme {
     /* requirement-diagram */
     this.requirementBackground = this.requirementBackground || this.primaryColor;
     this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
-    this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+    this.requirementBorderSize = this.requirementBorderSize || '1';
     this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
     this.relationColor = this.relationColor || this.lineColor;
     this.relationLabelBackground =
diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js
index 6ee26169d..8fde494bd 100644
--- a/packages/mermaid/src/themes/theme-dark.js
+++ b/packages/mermaid/src/themes/theme-dark.js
@@ -231,7 +231,7 @@ class Theme {
     /* requirement-diagram */
     this.requirementBackground = this.requirementBackground || this.primaryColor;
     this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
-    this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+    this.requirementBorderSize = this.requirementBorderSize || '1';
     this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
     this.relationColor = this.relationColor || this.lineColor;
     this.relationLabelBackground =
diff --git a/packages/mermaid/src/themes/theme-default.js b/packages/mermaid/src/themes/theme-default.js
index 339bfa48a..460a1b920 100644
--- a/packages/mermaid/src/themes/theme-default.js
+++ b/packages/mermaid/src/themes/theme-default.js
@@ -250,7 +250,7 @@ class Theme {
     /* requirement-diagram */
     this.requirementBackground = this.requirementBackground || this.primaryColor;
     this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
-    this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+    this.requirementBorderSize = this.requirementBorderSize || '1';
     this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
     this.relationColor = this.relationColor || this.lineColor;
     this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js
index 3d47684bc..527c6a38c 100644
--- a/packages/mermaid/src/themes/theme-forest.js
+++ b/packages/mermaid/src/themes/theme-forest.js
@@ -219,7 +219,7 @@ class Theme {
     /* requirement-diagram */
     this.requirementBackground = this.requirementBackground || this.primaryColor;
     this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
-    this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+    this.requirementBorderSize = this.requirementBorderSize || '1';
     this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
     this.relationColor = this.relationColor || this.lineColor;
     this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
diff --git a/packages/mermaid/src/themes/theme-neutral.js b/packages/mermaid/src/themes/theme-neutral.js
index 9dce63b8d..15c3d1d2d 100644
--- a/packages/mermaid/src/themes/theme-neutral.js
+++ b/packages/mermaid/src/themes/theme-neutral.js
@@ -249,7 +249,7 @@ class Theme {
     /* requirement-diagram */
     this.requirementBackground = this.requirementBackground || this.primaryColor;
     this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
-    this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
+    this.requirementBorderSize = this.requirementBorderSize || '1';
     this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
     this.relationColor = this.relationColor || this.lineColor;
     this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;

From 54f827d850de40148201d4fcf9c8f41907fbada4 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 06:24:20 +0100
Subject: [PATCH 38/69] fix: define `arrowheadColor` for `theme-base`

Define `arrowheadColor` as `invert(this.background)` in
`theme-base.js`, as it's currently `undefined`, which causes CSS
issues when using `theme-base`.

I've picked `invert(this.background)` so that it matches
the default value of `lineColor`.
---
 packages/mermaid/src/themes/theme-base.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/mermaid/src/themes/theme-base.js b/packages/mermaid/src/themes/theme-base.js
index a3d4a738f..ba95843b6 100644
--- a/packages/mermaid/src/themes/theme-base.js
+++ b/packages/mermaid/src/themes/theme-base.js
@@ -46,6 +46,7 @@ class Theme {
     this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);
     this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);
     this.lineColor = this.lineColor || invert(this.background);
+    this.arrowheadColor = this.arrowheadColor || invert(this.background);
     this.textColor = this.textColor || this.primaryTextColor;
 
     /* Flowchart variables */

From 720408e1439d4d537849aa58687a3da6bb2379b5 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 06:27:09 +0100
Subject: [PATCH 39/69] fix: define `border2` for `theme-base`

`border2` is a theme variable used by the CSS for flowcharts and
user-journey.

I've defined this to default to `tertiaryBorderColor` in theme-base,
as other themes tend to set `border2` to the same value as
`clusterBorder`, which in theme-base is `tertiaryBorderColor`.
---
 packages/mermaid/src/themes/theme-base.js | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packages/mermaid/src/themes/theme-base.js b/packages/mermaid/src/themes/theme-base.js
index ba95843b6..f3da6f1a4 100644
--- a/packages/mermaid/src/themes/theme-base.js
+++ b/packages/mermaid/src/themes/theme-base.js
@@ -49,6 +49,9 @@ class Theme {
     this.arrowheadColor = this.arrowheadColor || invert(this.background);
     this.textColor = this.textColor || this.primaryTextColor;
 
+    // TODO: should this instead default to secondaryBorderColor?
+    this.border2 = this.border2 || this.tertiaryBorderColor;
+
     /* Flowchart variables */
     this.nodeBkg = this.nodeBkg || this.primaryColor;
     this.mainBkg = this.mainBkg || this.primaryColor;

From 4f9c4548bf696a76020eef26b2491173d7f36e83 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 07:08:32 +0100
Subject: [PATCH 40/69] fix: define `excludeBkgColor` for `theme-dark`

Define `excludeBkgColor` for `theme-dark` to fix invalid CSS
for gantt diagrams.

All the other themes defined this to '#eeeeee', but I thought that
was a bit too bright in a dark theme, so instead I set it to
`darken(this.sectionBkgColor, 10);`.
---
 packages/mermaid/src/themes/theme-dark.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js
index 8fde494bd..b0bc6ff5b 100644
--- a/packages/mermaid/src/themes/theme-dark.js
+++ b/packages/mermaid/src/themes/theme-dark.js
@@ -64,6 +64,7 @@ class Theme {
     this.sectionBkgColor = darken('#EAE8D9', 30);
     this.altSectionBkgColor = 'calculated';
     this.sectionBkgColor2 = '#EAE8D9';
+    this.excludeBkgColor = darken(this.sectionBkgColor, 10);
     this.taskBorderColor = rgba(255, 255, 255, 70);
     this.taskBkgColor = 'calculated';
     this.taskTextColor = 'calculated';

From cd976871f028636e5380f6ae207e63cb9b8eeac5 Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 07:12:40 +0100
Subject: [PATCH 41/69] fix: define `gitBranchLabel`* in theme forest/dark

Define `gitBranchLabel[0-7]` in `theme-dark` and `theme-forest` to fix
invalid CSS for gitgraphs.

The values have been copied from [`theme-default`][1]).

[1]: https://github.com/mermaid-js/mermaid/blob/727bf30824e08c672c7f13ed83f111c2d1596935/packages/mermaid/src/themes/theme-default.js#L296-L303
---
 packages/mermaid/src/themes/theme-dark.js   | 8 ++++++++
 packages/mermaid/src/themes/theme-forest.js | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/packages/mermaid/src/themes/theme-dark.js b/packages/mermaid/src/themes/theme-dark.js
index b0bc6ff5b..201a380a1 100644
--- a/packages/mermaid/src/themes/theme-dark.js
+++ b/packages/mermaid/src/themes/theme-dark.js
@@ -257,6 +257,14 @@ class Theme {
     this.gitInv5 = this.gitInv5 || invert(this.git5);
     this.gitInv6 = this.gitInv6 || invert(this.git6);
     this.gitInv7 = this.gitInv7 || invert(this.git7);
+    this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);
+    this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+    this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+    this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);
+    this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+    this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+    this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+    this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
 
     this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
     this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js
index 527c6a38c..67fc557a9 100644
--- a/packages/mermaid/src/themes/theme-forest.js
+++ b/packages/mermaid/src/themes/theme-forest.js
@@ -261,6 +261,14 @@ class Theme {
     this.gitInv5 = this.gitInv5 || invert(this.git5);
     this.gitInv6 = this.gitInv6 || invert(this.git6);
     this.gitInv7 = this.gitInv7 || invert(this.git7);
+    this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);
+    this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
+    this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
+    this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);
+    this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
+    this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
+    this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
+    this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
 
     this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
     this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;

From aee18ca018cd1c863de802db18308a53b8d29d5e Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Thu, 13 Apr 2023 07:25:18 +0100
Subject: [PATCH 42/69] fix: fix `scaleLabelColor` in theme forest/neutral

The `scaleLabelColor` variable in `theme-forest` and `theme-neutral`
was set to `"calculated"`, as it defaults to `this.labelTextColor`
**before** `this.labelTextColor` was set.

Moving the `this.labelTextColor` assignments before `scaleLabelColor`
is calculated fixes this.

Fixes mindmap and timeline invalid CSS in theme forest and neutral.
---
 packages/mermaid/src/themes/theme-forest.js  | 19 ++++++------
 packages/mermaid/src/themes/theme-neutral.js | 32 ++++++++++----------
 2 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/packages/mermaid/src/themes/theme-forest.js b/packages/mermaid/src/themes/theme-forest.js
index 67fc557a9..c6eb9574c 100644
--- a/packages/mermaid/src/themes/theme-forest.js
+++ b/packages/mermaid/src/themes/theme-forest.js
@@ -93,6 +93,15 @@ class Theme {
     this.errorTextColor = '#552222';
   }
   updateColors() {
+    /* Sequence Diagram variables */
+    this.actorBorder = darken(this.mainBkg, 20);
+    this.actorBkg = this.mainBkg;
+    this.labelBoxBkgColor = this.actorBkg;
+    this.labelTextColor = this.actorTextColor;
+    this.loopTextColor = this.actorTextColor;
+    this.noteBorderColor = this.border2;
+    this.noteTextColor = this.actorTextColor;
+
     /* Each color-set will have a background, a foreground and a border color */
     this.cScale0 = this.cScale0 || this.primaryColor;
     this.cScale1 = this.cScale1 || this.secondaryColor;
@@ -144,16 +153,6 @@ class Theme {
     this.clusterBorder = this.border2;
     this.defaultLinkColor = this.lineColor;
 
-    /* Sequence Diagram variables */
-
-    this.actorBorder = darken(this.mainBkg, 20);
-    this.actorBkg = this.mainBkg;
-    this.labelBoxBkgColor = this.actorBkg;
-    this.labelTextColor = this.actorTextColor;
-    this.loopTextColor = this.actorTextColor;
-    this.noteBorderColor = this.border2;
-    this.noteTextColor = this.actorTextColor;
-
     /* Gantt chart variables */
 
     this.taskBorderColor = this.border1;
diff --git a/packages/mermaid/src/themes/theme-neutral.js b/packages/mermaid/src/themes/theme-neutral.js
index 15c3d1d2d..d03d7be1d 100644
--- a/packages/mermaid/src/themes/theme-neutral.js
+++ b/packages/mermaid/src/themes/theme-neutral.js
@@ -108,6 +108,22 @@ class Theme {
     this.secondBkg = lighten(this.contrast, 55);
     this.border2 = this.contrast;
 
+    /* Sequence Diagram variables */
+
+    this.actorBorder = lighten(this.border1, 23);
+    this.actorBkg = this.mainBkg;
+    this.actorTextColor = this.text;
+    this.actorLineColor = this.lineColor;
+    this.signalColor = this.text;
+    this.signalTextColor = this.text;
+    this.labelBoxBkgColor = this.actorBkg;
+    this.labelBoxBorderColor = this.actorBorder;
+    this.labelTextColor = this.text;
+    this.loopTextColor = this.text;
+    this.noteBorderColor = '#999';
+    this.noteBkgColor = '#666';
+    this.noteTextColor = '#fff';
+
     /* Color Scale */
     /* Each color-set will have a background, a foreground and a border color */
 
@@ -161,22 +177,6 @@ class Theme {
     this.defaultLinkColor = this.lineColor;
     this.titleColor = this.text;
 
-    /* Sequence Diagram variables */
-
-    this.actorBorder = lighten(this.border1, 23);
-    this.actorBkg = this.mainBkg;
-    this.actorTextColor = this.text;
-    this.actorLineColor = this.lineColor;
-    this.signalColor = this.text;
-    this.signalTextColor = this.text;
-    this.labelBoxBkgColor = this.actorBkg;
-    this.labelBoxBorderColor = this.actorBorder;
-    this.labelTextColor = this.text;
-    this.loopTextColor = this.text;
-    this.noteBorderColor = '#999';
-    this.noteBkgColor = '#666';
-    this.noteTextColor = '#fff';
-
     /* Gantt chart variables */
 
     this.sectionBkgColor = lighten(this.contrast, 30);

From b4164b6ab59b22d41a6066b93d821783c4b4788b Mon Sep 17 00:00:00 2001
From: Alois Klink 
Date: Wed, 12 Apr 2023 07:08:06 +0100
Subject: [PATCH 43/69] test: test that styles and themes return valid CSS
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Test that `src/diagrams/*/styles.ts` module returns a valid
CSS stylesheet that can be parsed via [stylis][1] and then
becomes a valid CSS that [csstree-validator][2] validates.

We test this for every diagram and for every theme, because
many of the invalid CSS bugs are caused by missing theme vars.

There are some CSS errors that I couldn't easily fix, so I've written
the tests to ignore the following CSS errors:
  - 'Unknown property `rx`' (Valid in SVG2 draft and in some browsers)
  - 'Unknown property `ry`' (Valid in SVG2 draft and in some browsers)
  - 'Unknown property `dy`'
    - This doesn't seem to be valid CSS in any SVG version, but maybe
      some browsers support it 🤷 I feel like we should probably change
      this though.

[1]: https://github.com/thysultan/stylis
[2]: https://github.com/csstree/validator
---
 packages/mermaid/package.json       |   1 +
 packages/mermaid/src/styles.spec.ts | 120 ++++++++++++++++++++++++++++
 pnpm-lock.yaml                      |  45 ++++++++++-
 3 files changed, 165 insertions(+), 1 deletion(-)
 create mode 100644 packages/mermaid/src/styles.spec.ts

diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
index 02edc874b..12da8c2ff 100644
--- a/packages/mermaid/package.json
+++ b/packages/mermaid/package.json
@@ -87,6 +87,7 @@
     "coveralls": "^3.1.1",
     "cpy-cli": "^4.2.0",
     "cspell": "^6.14.3",
+    "csstree-validator": "^3.0.0",
     "globby": "^13.1.2",
     "jison": "^0.4.18",
     "js-base64": "^3.7.2",
diff --git a/packages/mermaid/src/styles.spec.ts b/packages/mermaid/src/styles.spec.ts
new file mode 100644
index 000000000..07997ad60
--- /dev/null
+++ b/packages/mermaid/src/styles.spec.ts
@@ -0,0 +1,120 @@
+import { vi } from 'vitest';
+
+// @ts-expect-error This module has no TypeScript types
+import { validate } from 'csstree-validator';
+import { compile, serialize, stringify } from 'stylis';
+
+import { getConfig } from './config';
+import theme from './themes';
+
+/**
+ * Import the getStyles function from each diagram.
+ *
+ * Unfortunately, we can't use the `diagrams/*?/*Detector.ts` functions,
+ * because many of the diagrams have a circular dependency import error
+ * (they import mermaidAPI.js, which imports diagramOrchestrator.js, which causes a loop)
+ */
+import c4 from './diagrams/c4/styles';
+import classDiagram from './diagrams/class/styles';
+import flowchart from './diagrams/flowchart/styles';
+import flowchartElk from './diagrams/flowchart/elk/styles';
+import er from './diagrams/er/styles';
+import error from './diagrams/error/styles';
+import git from './diagrams/git/styles';
+import gantt from './diagrams/gantt/styles';
+import info from './diagrams/info/styles';
+import pie from './diagrams/pie/styles';
+import requirement from './diagrams/requirement/styles';
+import sequence from './diagrams/sequence/styles';
+import state from './diagrams/state/styles';
+import journey from './diagrams/user-journey/styles';
+import timeline from './diagrams/timeline/styles';
+import mindmap from './diagrams/mindmap/styles';
+import themes from './themes';
+
+async function checkValidStylisCSSStyleSheet(stylisString: string) {
+  const cssString = serialize(compile(`#my-svg-id{${stylisString}}`), stringify);
+  const errors = validate(cssString, 'this-file-was-created-by-tests.css') as Error[];
+
+  const unexpectedErrors = errors.filter((error) => {
+    const cssErrorsToIgnore = [
+      // Valid in SVG2, see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/rx
+      // Ideally, we'd remove this, since some browsers do not support SVG2.
+      'Unknown property `rx`',
+      // Valid in SVG2, see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/ry
+      'Unknown property `ry`',
+      // TODO: I'm pretty sure that even in SVG2, this isn't allowed to be a CSS
+      // attribute.
+      'Unknown property `dy`',
+    ];
+    return !cssErrorsToIgnore.some((cssErrorToIgnore) => error.message.match(cssErrorToIgnore));
+  });
+
+  if (unexpectedErrors.length > 0) {
+    throw new Error(
+      `The given CSS string was invalid: ${errors}.\n\n` +
+        'Copy the below CSS into https://jigsaw.w3.org/css-validator/validator to help debug where the invalid CSS is:\n\n' +
+        `Original CSS value was ${cssString}`
+    );
+  }
+}
+
+describe('styles', () => {
+  beforeEach(() => {
+    // resets the styles added to addStylesForDiagram()
+    vi.resetModules();
+  });
+
+  describe('getStyles', () => {
+    test('should return a valid style for an empty type', async () => {
+      const { default: getStyles, addStylesForDiagram } = await import('./styles');
+
+      const diagramType = 'my-custom-mocked-type-with-no-styles';
+      const myTypeGetStylesFunc = vi.fn().mockReturnValue('');
+
+      addStylesForDiagram(diagramType, myTypeGetStylesFunc);
+
+      const styles = getStyles(diagramType, '', getConfig().themeVariables);
+
+      await checkValidStylisCSSStyleSheet(styles);
+    });
+
+    /**
+     * Test CSS for each diagram type and each theme.
+     */
+    for (const themeId of Object.keys(theme) as (keyof typeof theme)[]) {
+      for (const [diagramId, getDiagramStyles] of Object.entries({
+        c4,
+        classDiagram,
+        er,
+        error,
+        flowchart,
+        flowchartElk,
+        gantt,
+        git,
+        info,
+        journey,
+        mindmap,
+        pie,
+        requirement,
+        sequence,
+        state,
+        timeline,
+      })) {
+        test(`should return a valid style for diagram ${diagramId} and theme ${themeId}`, async () => {
+          const { default: getStyles, addStylesForDiagram } = await import('./styles');
+
+          addStylesForDiagram(diagramId, getDiagramStyles);
+          const styles = getStyles(
+            diagramId,
+            '',
+            // @ts-expect-error This will probably be broken until we create a proper Themes type.
+            themes[themeId].getThemeVariables()
+          );
+
+          await checkValidStylisCSSStyleSheet(styles);
+        });
+      }
+    }
+  });
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bdac6ed51..d3e978513 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -138,6 +138,7 @@ importers:
       coveralls: ^3.1.1
       cpy-cli: ^4.2.0
       cspell: ^6.14.3
+      csstree-validator: ^3.0.0
       cytoscape: ^3.23.0
       cytoscape-cose-bilkent: ^4.1.0
       cytoscape-fcose: ^2.1.0
@@ -206,6 +207,7 @@ importers:
       coveralls: 3.1.1
       cpy-cli: 4.2.0
       cspell: 6.14.3
+      csstree-validator: 3.0.0
       globby: 13.1.2
       jison: 0.4.18
       js-base64: 3.7.2
@@ -4065,7 +4067,7 @@ packages:
   /axios/0.21.4_debug@4.3.2:
     resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
     dependencies:
-      follow-redirects: 1.15.2_debug@4.3.4
+      follow-redirects: 1.15.2_debug@4.3.2
     transitivePeerDependencies:
       - debug
     dev: true
@@ -4509,6 +4511,13 @@ packages:
       jsonlint: 1.6.0
     dev: true
 
+  /clap/3.1.1:
+    resolution: {integrity: sha512-vp42956Ax06WwaaheYEqEOgXZ3VKJxgccZ0gJL0HpyiupkIS9RVJFo5eDU1BPeQAOqz+cclndZg4DCqG1sJReQ==}
+    engines: {node: ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+    dependencies:
+      ansi-colors: 4.1.3
+    dev: true
+
   /clean-regexp/1.0.0:
     resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
     engines: {node: '>=4'}
@@ -5142,6 +5151,14 @@ packages:
       source-map: 0.6.1
     dev: true
 
+  /css-tree/2.3.1:
+    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+    dependencies:
+      mdn-data: 2.0.30
+      source-map-js: 1.0.2
+    dev: true
+
   /cssom/0.3.8:
     resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
     dev: true
@@ -5157,6 +5174,16 @@ packages:
       cssom: 0.3.8
     dev: true
 
+  /csstree-validator/3.0.0:
+    resolution: {integrity: sha512-Y5OSq3wI0Xz6L7DCgJQtQ97U+v99SkX9r663VjpvUMJPhEr0A149OxiAGqcnokB5bt81irgnMudspBzujzqn0w==}
+    engines: {node: ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+    hasBin: true
+    dependencies:
+      clap: 3.1.1
+      css-tree: 2.3.1
+      resolve: 1.22.1
+    dev: true
+
   /csstype/2.6.21:
     resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
     dev: true
@@ -6641,6 +6668,18 @@ packages:
     resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==}
     dev: true
 
+  /follow-redirects/1.15.2_debug@4.3.2:
+    resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+    engines: {node: '>=4.0'}
+    peerDependencies:
+      debug: '*'
+    peerDependenciesMeta:
+      debug:
+        optional: true
+    dependencies:
+      debug: 4.3.2
+    dev: true
+
   /follow-redirects/1.15.2_debug@4.3.4:
     resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
     engines: {node: '>=4.0'}
@@ -8728,6 +8767,10 @@ packages:
     resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==}
     dev: true
 
+  /mdn-data/2.0.30:
+    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+    dev: true
+
   /mdn-data/2.0.6:
     resolution: {integrity: sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==}
     dev: true

From e84c5ec4c943e38b19d8386918b641a18806116a Mon Sep 17 00:00:00 2001
From: Remco Haszing 
Date: Thu, 13 Apr 2023 15:13:52 +0200
Subject: [PATCH 44/69] Fix broken tests

---
 .../src/diagrams/flowchart/parser/flow-md-string.spec.js    | 6 +++---
 packages/mermaid/src/mermaid.spec.ts                        | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-md-string.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-md-string.spec.js
index 005d257e0..0e6efaef1 100644
--- a/packages/mermaid/src/diagrams/flowchart/parser/flow-md-string.spec.js
+++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-md-string.spec.js
@@ -1,6 +1,6 @@
-import flowDb from '../flowDb';
-import flow from './flow';
-import { setConfig } from '../../../config';
+import flowDb from '../flowDb.js';
+import flow from './flow.jison';
+import { setConfig } from '../../../config.js';
 
 setConfig({
   securityLevel: 'strict',
diff --git a/packages/mermaid/src/mermaid.spec.ts b/packages/mermaid/src/mermaid.spec.ts
index b6acd17cb..e27428545 100644
--- a/packages/mermaid/src/mermaid.spec.ts
+++ b/packages/mermaid/src/mermaid.spec.ts
@@ -9,7 +9,7 @@ beforeAll(async () => {
 });
 const spyOn = vi.spyOn;
 
-vi.mock('./mermaidAPI');
+vi.mock('./mermaidAPI.js');
 
 afterEach(() => {
   vi.clearAllMocks();

From 8aa51cf3e7272e41ddeabed05d3154f99c8d4155 Mon Sep 17 00:00:00 2001
From: Bishop Clark 
Date: Thu, 13 Apr 2023 16:59:13 -0700
Subject: [PATCH 45/69] Update bug_report.yml

correct adjective order
---
 .github/ISSUE_TEMPLATE/bug_report.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 1d1724a5e..1b84bfd45 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -50,7 +50,7 @@ body:
     attributes:
       label: Setup
       description: |-
-        Please fill out the below info.
+        Please fill out the info below.
         Note that you only need to fill out the relevant section
       value: |-
         - Mermaid version: 

From 8c4fb6c753abf92c88c643eded2e44c71886cc12 Mon Sep 17 00:00:00 2001
From: eitsupi <50911393+eitsupi@users.noreply.github.com>
Date: Sat, 15 Apr 2023 16:49:32 +0900
Subject: [PATCH 46/69] docs(integrations): list quarto

---
 packages/mermaid/src/docs/ecosystem/integrations.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/mermaid/src/docs/ecosystem/integrations.md b/packages/mermaid/src/docs/ecosystem/integrations.md
index a0a904425..3dbd943bb 100644
--- a/packages/mermaid/src/docs/ecosystem/integrations.md
+++ b/packages/mermaid/src/docs/ecosystem/integrations.md
@@ -155,6 +155,7 @@ They also serve as proof of concept, for the variety of things that can be built
   - [codedoc-mermaid-plugin](https://www.npmjs.com/package/codedoc-mermaid-plugin)
 - [mdbook](https://rust-lang.github.io/mdBook/index.html)
   - [mdbook-mermaid](https://github.com/badboy/mdbook-mermaid)
+- [Quarto](https://quarto.org/)
 
 ## Browser Extensions
 

From 432e8d6535a4869fe4503d13264382838bb386f5 Mon Sep 17 00:00:00 2001
From: eitsupi <50911393+eitsupi@users.noreply.github.com>
Date: Sat, 15 Apr 2023 17:01:51 +0900
Subject: [PATCH 47/69] docs: reflect source changes

---
 docs/ecosystem/integrations.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/ecosystem/integrations.md b/docs/ecosystem/integrations.md
index 9cd8bc9a5..df58afe67 100644
--- a/docs/ecosystem/integrations.md
+++ b/docs/ecosystem/integrations.md
@@ -161,6 +161,7 @@ They also serve as proof of concept, for the variety of things that can be built
   - [codedoc-mermaid-plugin](https://www.npmjs.com/package/codedoc-mermaid-plugin)
 - [mdbook](https://rust-lang.github.io/mdBook/index.html)
   - [mdbook-mermaid](https://github.com/badboy/mdbook-mermaid)
+- [Quarto](https://quarto.org/)
 
 ## Browser Extensions
 

From 6ccdc2bd01d1459e47eba4b560116c2e048f0ac2 Mon Sep 17 00:00:00 2001
From: Knut Sveidqvist 
Date: Mon, 17 Apr 2023 19:33:51 +0200
Subject: [PATCH 48/69] Fix for async handling flowchart-elk

---
 cypress/platform/knsv2.html                                   | 4 ++--
 .../mermaid/src/diagrams/flowchart/elk/flowRenderer-elk.js    | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html
index e8e9b55a6..1b1ccd685 100644
--- a/cypress/platform/knsv2.html
+++ b/cypress/platform/knsv2.html
@@ -393,9 +393,9 @@ mindmap