Skip to content

Commit 32d553a

Browse files
authored
Merge pull request #4213 from remcohaszing/fix-node16-module-resolution
Support node16 module resolution
2 parents d9ebb0d + e84c5ec commit 32d553a

File tree

216 files changed

+767
-720
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+767
-720
lines changed

.vite/build.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { resolve } from 'path';
33
import { fileURLToPath } from 'url';
44
import jisonPlugin from './jisonPlugin.js';
55
import { readFileSync } from 'fs';
6+
import typescript from '@rollup/plugin-typescript';
67
import { visualizer } from 'rollup-plugin-visualizer';
78
import type { TemplateType } from 'rollup-plugin-visualizer/dist/plugin/template-types.js';
89

@@ -102,9 +103,14 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
102103
},
103104
},
104105
resolve: {
105-
extensions: ['.jison', '.js', '.ts', '.json'],
106+
extensions: [],
106107
},
107-
plugins: [jisonPlugin(), ...visualizerOptions(packageName, core)],
108+
plugins: [
109+
jisonPlugin(),
110+
// @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite
111+
typescript({ compilerOptions: { declaration: false } }),
112+
...visualizerOptions(packageName, core),
113+
],
108114
};
109115

110116
if (watch && config.build) {

__mocks__/d3.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// @ts-nocheck TODO: Fix TS
2-
import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3';
2+
import { MockedD3 } from '../packages/mermaid/src/tests/MockedD3.js';
33

44
export const select = function () {
55
return new MockedD3();

cypress/integration/other/configuration.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { renderGraph } from '../../helpers/util';
1+
import { renderGraph } from '../../helpers/util.js';
22
describe('Configuration', () => {
33
describe('arrowMarkerAbsolute', () => {
44
it('should handle default value false of arrowMarkerAbsolute', () => {

cypress/integration/other/external-diagrams.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { urlSnapshotTest } from '../../helpers/util';
1+
import { urlSnapshotTest } from '../../helpers/util.js';
22

33
describe('mermaid', () => {
44
describe('registerDiagram', () => {

cypress/integration/other/ghsa.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { urlSnapshotTest } from '../../helpers/util';
1+
import { urlSnapshotTest } from '../../helpers/util.js';
22

33
describe('CSS injections', () => {
44
it('should not allow CSS injections outside of the diagram', () => {

cypress/integration/rendering/classDiagram-v2.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest } from '../../helpers/util';
1+
import { imgSnapshotTest } from '../../helpers/util.js';
22
describe('Class diagram V2', () => {
33
it('0: should render a simple class diagram', () => {
44
imgSnapshotTest(

cypress/integration/rendering/classDiagram.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe('Class diagram', () => {
44
it('1: should render a simple class diagram', () => {

cypress/integration/rendering/current.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest } from '../../helpers/util';
1+
import { imgSnapshotTest } from '../../helpers/util.js';
22

33
describe('Current diagram', () => {
44
it('should render a state with states in it', () => {

cypress/integration/rendering/debug.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest } from '../../helpers/util';
1+
import { imgSnapshotTest } from '../../helpers/util.js';
22

33
describe('Flowchart', () => {
44
it('34: testing the label width in percy', () => {

cypress/integration/rendering/erDiagram.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe('Entity Relationship Diagram', () => {
44
it('should render a simple ER diagram', () => {

cypress/integration/rendering/flowchart-elk.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe.skip('Flowchart ELK', () => {
44
it('1-elk: should render a simple flowchart', () => {

cypress/integration/rendering/flowchart-v2.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe('Flowchart v2', () => {
44
it('1: should render a simple flowchart', () => {

cypress/integration/rendering/flowchart.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe('Graph', () => {
44
it('1: should render a simple flowchart no htmlLabels', () => {

cypress/integration/rendering/sequencediagram.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// <reference types="Cypress" />
22

3-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
3+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
44

55
context('Sequence diagram', () => {
66
it('should render a sequence diagram with boxes', () => {

cypress/integration/rendering/stateDiagram-v2.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe('State diagram', () => {
44
it('v2 should render a simple info', () => {
@@ -530,7 +530,7 @@ stateDiagram-v2
530530
[*] --> A
531531
A --> B: test({ foo#colon; 'far' })
532532
B --> [*]
533-
classDef badBadEvent fill:#f00,color:white,font-weight:bold
533+
classDef badBadEvent fill:#f00,color:white,font-weight:bold
534534
class B badBadEvent
535535
`,
536536
{ logLevel: 0, fontFamily: 'courier' }
@@ -543,14 +543,14 @@ stateDiagram-v2
543543
classDef notMoving fill:white
544544
classDef movement font-style:italic;
545545
classDef badBadEvent fill:#f00,color:white,font-weight:bold
546-
546+
547547
[*] --> Still
548548
Still --> [*]
549549
Still --> Moving
550550
Moving --> Still
551551
Moving --> Crash
552552
Crash --> [*]
553-
553+
554554
class Still notMoving
555555
class Moving, Crash movement
556556
class Crash badBadEvent

cypress/integration/rendering/stateDiagram.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
1+
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
22

33
describe('State diagram', () => {
44
it('should render a simple state diagrams', () => {

cypress/platform/ashish2.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@
188188
//import mindmap from '../../packages/mermaid-mindmap/src/detector';
189189
// import example from '../../packages/mermaid-example-diagram/src/detector';
190190
// import timeline from '../../packages/mermaid-timeline/src/detector';
191-
import mermaid from '../../packages/mermaid/src/mermaid';
191+
import mermaid from './mermaid.esm.mjs';
192192
// await mermaid.registerExternalDiagrams([]);
193193
mermaid.parseError = function (err, hash) {
194194
// console.error('Mermaid error: ', err);

cypress/platform/bundle-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import mermaid from '../../packages/mermaid/src/mermaid';
1+
// TODO: this file should be testing the ./mermaid.core.mjs file, as that's the file listed in the package.json file that users will use
2+
import mermaid from './mermaid.esm.mjs';
23

34
let code = `flowchart LR
45
Power_Supply --> Transmitter_A

cypress/platform/external-diagrams-example-diagram.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ <h1>Should correctly load a third-party diagram using registerDiagram</h1>
1111
<!-- <script src="//cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js"></script> -->
1212
<!-- <script type="module" src="./external-diagrams-mindmap.mjs" /> -->
1313
<script type="module">
14-
import exampleDiagram from '../../packages/mermaid-example-diagram/src/detector';
14+
import exampleDiagram from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
1515
// import example from '../../packages/mermaid-example-diagram/src/detector';
16-
import mermaid from '../../packages/mermaid/src/mermaid';
16+
import mermaid from './mermaid.esm.mjs';
1717

1818
await mermaid.registerExternalDiagrams([exampleDiagram]);
1919
await mermaid.initialize({ logLevel: 0 });

cypress/platform/flow2.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
</pre>
3131

3232
<script type="module">
33-
import mermaid from '../../packages/mermaid/src/mermaid';
33+
import mermaid from './mermaid.esm.mjs';
3434

3535
mermaid.initialize({
3636
theme: 'forest',

cypress/platform/knsv2.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,8 @@
393393

394394
<script type="module">
395395
// import mindmap from '../../packages/mermaid-mindmap/src/detector';
396-
import example from '../../packages/mermaid-example-diagram/src/detector';
397-
import mermaid from '../../packages/mermaid/src/mermaid';
396+
import example from '../../packages/mermaid-example-diagram/src/mermaid-example-diagram.core.mjs';
397+
import mermaid from './mermaid.esm.mjs';
398398
await mermaid.registerExternalDiagrams([example]);
399399
mermaid.parseError = function (err, hash) {
400400
// console.error('Mermaid error: ', err);

cypress/platform/knsv3.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ <h2>Mindmap with root wrapping text and a shape</h2>
4040

4141
<script type="module">
4242
// import mermaid from './mermaid.esm.mjs';
43-
import mermaid from '../../packages/mermaid/src/mermaid';
43+
import mermaid from '../../packages/mermaid/dist/mermaid.esm.mjs';
4444
// import mermaidMindmap from './mermaid-mindmap.esm.mjs';
4545

4646
// import mermaidMindmap from 'https://cdn.jsdelivr.net/npm/@mermaid-js/[email protected]/+esm';

cypress/platform/viewer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import mermaid2 from '../../packages/mermaid/src/mermaid';
2-
import externalExample from '../../packages/mermaid-example-diagram/src/detector';
1+
import mermaid2 from './mermaid.esm.mjs';
2+
import externalExample from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
33

44
function b64ToUtf8(str) {
55
return decodeURIComponent(escape(window.atob(str)));

docs/intro/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ To Deploy Mermaid:
263263

264264
### [Mermaid API](../config/setup/README.md):
265265

266-
**To deploy mermaid without a bundler, one can insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML like so:**
266+
**To deploy mermaid without a bundler, insert a `script` tag with an absolute address and a `mermaid.initialize` call into the HTML using the following example:**
267267

268268
```html
269269
<script type="module">
@@ -272,9 +272,9 @@ To Deploy Mermaid:
272272
</script>
273273
```
274274

275-
**Doing so will command the mermaid parser to look for the `<div>` or `<pre>` tags with `class="mermaid"`. From these tags mermaid will try to read the diagram/chart definitions and render them into SVG charts.**
275+
**Doing so commands the mermaid parser to look for the `<div>` or `<pre>` tags with `class="mermaid"`. From these tags, mermaid tries read the diagram/chart definitions and render them into SVG charts.**
276276

277-
**Examples can be found at** [Other examples](../syntax/examples.md)
277+
**Examples can be found in** [Other examples](../syntax/examples.md)
278278

279279
## Sibling projects
280280

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"@commitlint/cli": "^17.2.0",
5959
"@commitlint/config-conventional": "^17.2.0",
6060
"@cspell/eslint-plugin": "^6.14.2",
61+
"@rollup/plugin-typescript": "^11.0.0",
6162
"@types/cors": "^2.8.13",
6263
"@types/eslint": "^8.4.10",
6364
"@types/express": "^4.17.17",

packages/mermaid-example-diagram/src/diagram-definition.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// @ts-ignore: TODO Fix ts errors
2-
import parser from './parser/exampleDiagram';
3-
import * as db from './exampleDiagramDb';
4-
import renderer from './exampleDiagramRenderer';
5-
import styles from './styles';
6-
import { injectUtils } from './mermaidUtils';
2+
import parser from './parser/exampleDiagram.jison';
3+
import * as db from './exampleDiagramDb.js';
4+
import renderer from './exampleDiagramRenderer.js';
5+
import styles from './styles.js';
6+
import { injectUtils } from './mermaidUtils.js';
77

88
export const diagram = {
99
db,

packages/mermaid-example-diagram/src/exampleDiagram.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import { parser } from './parser/exampleDiagram';
2-
import * as db from './exampleDiagramDb';
3-
import { injectUtils } from './mermaidUtils';
1+
import { parser } from './parser/exampleDiagram.jison';
2+
import * as db from './exampleDiagramDb.js';
3+
import { injectUtils } from './mermaidUtils.js';
44
// Todo fix utils functions for tests
55
import {
66
log,
77
setLogLevel,
88
getConfig,
99
sanitizeText,
1010
setupGraphViewBox,
11-
} from '../../mermaid/src/diagram-api/diagramAPI';
11+
} from '../../mermaid/src/diagram-api/diagramAPI.js';
1212

1313
injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox);
1414

packages/mermaid-example-diagram/src/exampleDiagramDb.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/** Created by knut on 15-01-14. */
2-
import { log } from './mermaidUtils';
2+
import { log } from './mermaidUtils.js';
33

44
var message = '';
55
var info = false;

packages/mermaid-example-diagram/src/exampleDiagramRenderer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** Created by knut on 14-12-11. */
22
import { select } from 'd3';
3-
import { log, getConfig, setupGraphViewbox } from './mermaidUtils';
3+
import { log, getConfig, setupGraphViewbox } from './mermaidUtils.js';
44

55
/**
66
* Draws a an info picture in the tag with id: id based on the graph definition in text.

packages/mermaid-example-diagram/tsconfig.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"extends": "../../tsconfig.json",
3-
"module": "esnext",
43
"compilerOptions": {
54
"rootDir": "./src",
65
"outDir": "./dist"

packages/mermaid/src/Diagram.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import * as configApi from './config';
2-
import { log } from './logger';
3-
import { getDiagram, registerDiagram } from './diagram-api/diagramAPI';
4-
import { detectType, getDiagramLoader } from './diagram-api/detectType';
5-
import { extractFrontMatter } from './diagram-api/frontmatter';
6-
import { UnknownDiagramError } from './errors';
7-
import { DetailedError } from './utils';
8-
import { cleanupComments } from './diagram-api/comments';
1+
import * as configApi from './config.js';
2+
import { log } from './logger.js';
3+
import { getDiagram, registerDiagram } from './diagram-api/diagramAPI.js';
4+
import { detectType, getDiagramLoader } from './diagram-api/detectType.js';
5+
import { extractFrontMatter } from './diagram-api/frontmatter.js';
6+
import { UnknownDiagramError } from './errors.js';
7+
import { DetailedError } from './utils.js';
8+
import { cleanupComments } from './diagram-api/comments.js';
99

1010
export type ParseErrorFunction = (err: string | DetailedError | unknown, hash?: any) => void;
1111

packages/mermaid/src/__mocks__/mermaidAPI.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
*
44
* We can't easily use `vi.spyOn(mermaidAPI, "function")` since the object is frozen with `Object.freeze()`.
55
*/
6-
import * as configApi from '../config';
6+
import * as configApi from '../config.js';
77
import { vi } from 'vitest';
8-
import { mermaidAPI as mAPI } from '../mermaidAPI';
8+
import { mermaidAPI as mAPI } from '../mermaidAPI.js';
99

1010
// original version cannot be modified since it was frozen with `Object.freeze()`
1111
export const mermaidAPI = {

packages/mermaid/src/accessibility.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { MockedD3 } from './tests/MockedD3';
2-
import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility';
3-
import { D3Element } from './mermaidAPI';
1+
import { MockedD3 } from './tests/MockedD3.js';
2+
import { setA11yDiagramInfo, addSVGa11yTitleDescription } from './accessibility.js';
3+
import { D3Element } from './mermaidAPI.js';
44

55
describe('accessibility', () => {
66
const fauxSvgNode = new MockedD3();

packages/mermaid/src/accessibility.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* @see https://www.w3.org/TR/svg-aam-1.0/
66
*
77
*/
8-
import { D3Element } from './mermaidAPI';
8+
import { D3Element } from './mermaidAPI.js';
99

1010
import isEmpty from 'lodash-es/isEmpty.js';
1111

packages/mermaid/src/commonDb.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { sanitizeText as _sanitizeText } from './diagrams/common/common';
2-
import { getConfig } from './config';
1+
import { sanitizeText as _sanitizeText } from './diagrams/common/common.js';
2+
import { getConfig } from './config.js';
33
let title = '';
44
let diagramTitle = '';
55
let description = '';

packages/mermaid/src/config.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as configApi from './config';
1+
import * as configApi from './config.js';
22

33
describe('when working with site config', function () {
44
beforeEach(() => {

packages/mermaid/src/config.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import assignWithDepth from './assignWithDepth';
2-
import { log } from './logger';
3-
import theme from './themes';
4-
import config from './defaultConfig';
5-
import type { MermaidConfig } from './config.type';
1+
import assignWithDepth from './assignWithDepth.js';
2+
import { log } from './logger.js';
3+
import theme from './themes/index.js';
4+
import config from './defaultConfig.js';
5+
import type { MermaidConfig } from './config.type.js';
66

77
export const defaultConfig: MermaidConfig = Object.freeze(config);
88

packages/mermaid/src/dagre-wrapper/clusters.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import intersectRect from './intersect/intersect-rect';
2-
import { log } from '../logger';
3-
import createLabel from './createLabel';
4-
import { createText } from '../rendering-util/createText';
1+
import intersectRect from './intersect/intersect-rect.js';
2+
import { log } from '../logger.js';
3+
import createLabel from './createLabel.js';
4+
import { createText } from '../rendering-util/createText.js';
55
import { select } from 'd3';
6-
import { getConfig } from '../config';
7-
import { evaluate } from '../diagrams/common/common';
6+
import { getConfig } from '../config.js';
7+
import { evaluate } from '../diagrams/common/common.js';
88

99
const rect = (parent, node) => {
1010
log.info('Creating subgraph rect for ', node.id, node);

0 commit comments

Comments
 (0)