@mermaid-js/mermaid-cli 11.15.0 → 11.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -11
- package/dist-types/src/index.d.ts +5 -6
- package/dist-types/src/index.d.ts.map +1 -1
- package/dist-types/src/puppeteerIntercept.d.ts +10 -11
- package/dist-types/src/puppeteerIntercept.d.ts.map +1 -1
- package/dist-types/src/version.d.ts +1 -1
- package/dist-types/src/version.d.ts.map +1 -1
- package/package.json +10 -12
- package/src/cli.js +5 -3
- package/src/index.js +586 -342
- package/src/puppeteerIntercept.js +82 -66
- package/src/version.js +1 -1
- package/src/index.js.bak +0 -540
package/README.md
CHANGED
|
@@ -55,7 +55,8 @@ mmdc --input test-positive/flowchart1.mmd --cssFile test-positive/flowchart1.css
|
|
|
55
55
|
<details>
|
|
56
56
|
<summary>Example output: docs/animated-flowchart.svg</summary>
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+

|
|
59
|
+
|
|
59
60
|
</details>
|
|
60
61
|
|
|
61
62
|
### Transform a markdown file with mermaid diagrams
|
|
@@ -68,38 +69,44 @@ This command transforms a markdown file itself. The mermaid-cli will find the me
|
|
|
68
69
|
|
|
69
70
|
This:
|
|
70
71
|
|
|
71
|
-
|
|
72
|
+
````md
|
|
72
73
|
### Some markdown
|
|
74
|
+
|
|
73
75
|
```mermaid
|
|
74
76
|
graph
|
|
75
77
|
[....]
|
|
76
78
|
```
|
|
77
79
|
|
|
78
80
|
### Some more markdown
|
|
81
|
+
|
|
79
82
|
```mermaid
|
|
80
83
|
sequenceDiagram
|
|
81
84
|
[....]
|
|
82
85
|
```
|
|
83
86
|
|
|
84
87
|
### Mermaid with custom title/desc
|
|
88
|
+
|
|
85
89
|
```mermaid
|
|
86
90
|
graph
|
|
87
91
|
accTitle: My title here
|
|
88
92
|
accDescr: My description here
|
|
89
93
|
A-->B
|
|
90
94
|
```
|
|
91
|
-
|
|
95
|
+
````
|
|
92
96
|
|
|
93
97
|
Becomes:
|
|
94
98
|
|
|
95
99
|
```md
|
|
96
100
|
### Some markdown
|
|
101
|
+
|
|
97
102
|

|
|
98
103
|
|
|
99
104
|
### Some more markdown
|
|
105
|
+
|
|
100
106
|

|
|
101
107
|
|
|
102
108
|
### Mermaid with custom title/desc
|
|
109
|
+
|
|
103
110
|

|
|
104
111
|
```
|
|
105
112
|
|
|
@@ -167,7 +174,6 @@ restore this behaviour with the `--workdir` option:
|
|
|
167
174
|
docker run [...] --workdir=/home/mermaidcli minlag/mermaid-cli [...]
|
|
168
175
|
```
|
|
169
176
|
|
|
170
|
-
|
|
171
177
|
## Use Node.JS API
|
|
172
178
|
|
|
173
179
|
It's possible to call `mermaid-cli` via a Node.JS API.
|
|
@@ -175,11 +181,12 @@ Please be aware that **the NodeJS API is not covered by semver**, as `mermaid-cl
|
|
|
175
181
|
`mermaid`'s versioning.
|
|
176
182
|
|
|
177
183
|
```js
|
|
178
|
-
import { run } from "@mermaid-js/mermaid-cli"
|
|
184
|
+
import { run } from "@mermaid-js/mermaid-cli";
|
|
179
185
|
|
|
180
186
|
await run(
|
|
181
|
-
|
|
182
|
-
|
|
187
|
+
"input.mmd",
|
|
188
|
+
"output.svg", // {optional options},
|
|
189
|
+
);
|
|
183
190
|
```
|
|
184
191
|
|
|
185
192
|
## Install locally
|
|
@@ -195,10 +202,9 @@ npm install @mermaid-js/mermaid-cli
|
|
|
195
202
|
### Run with npx
|
|
196
203
|
|
|
197
204
|
[`npx`](https://www.npmjs.com/package/npx) is installed by default with NPM. It
|
|
198
|
-
downloads and runs commands at the same time.
|
|
205
|
+
downloads and runs commands at the same time. To use Mermaid CLI with npx, you
|
|
199
206
|
need to use the `-p` flag because the package name is different than the command
|
|
200
|
-
it installs (`mmdc`).
|
|
201
|
-
|
|
207
|
+
it installs (`mmdc`). `npx -p @mermaid-js/mermaid-cli mmdc -h`
|
|
202
208
|
|
|
203
209
|
## Install with [brew](https://brew.sh)
|
|
204
210
|
|
|
@@ -207,11 +213,11 @@ it installs (`mmdc`). `npx -p @mermaid-js/mermaid-cli mmdc -h`
|
|
|
207
213
|
> This method of installation is no longer supported.
|
|
208
214
|
> For more details, see the [discussion](https://github.com/mermaid-js/mermaid-cli/issues/288).
|
|
209
215
|
> An old version of mermaid-cli can be installed with brew.
|
|
216
|
+
>
|
|
210
217
|
> ```sh
|
|
211
218
|
> brew install mermaid-cli
|
|
212
219
|
> ```
|
|
213
220
|
|
|
214
|
-
|
|
215
221
|
## Known issues
|
|
216
222
|
|
|
217
223
|
1. [Linux sandbox issue](docs/linux-sandbox-issue.md)
|
|
@@ -5,7 +5,7 @@ export type ParseMDDOptions = {
|
|
|
5
5
|
/**
|
|
6
6
|
* - Puppeteer viewport (e.g. `width`, `height`, `deviceScaleFactor`)
|
|
7
7
|
*/
|
|
8
|
-
viewport?: puppeteer.Viewport | undefined;
|
|
8
|
+
viewport?: import("puppeteer-core").Viewport | undefined;
|
|
9
9
|
/**
|
|
10
10
|
* - Background color.
|
|
11
11
|
*/
|
|
@@ -85,12 +85,12 @@ export type Limiter = <Arguments extends unknown[], ReturnType>(function_: (...a
|
|
|
85
85
|
* @param {Limiter} [opts.limiter] - If set, limiter function to avoid rendering too many diagrams in parallel.
|
|
86
86
|
* @param {ParseMDDOptions} [opts.parseMMDOptions] - Options to pass to {@link parseMMDOptions}.
|
|
87
87
|
*/
|
|
88
|
-
export function run(input: `${string}.${"md" | "markdown"}` | string | undefined, output: `${string}.${"md" | "markdown" | "svg" | "png" | "pdf"}` | "/dev/stdout", { browser: userPassedBrowser, puppeteerConfig, quiet, outputFormat, parseMMDOptions, limiter, artefacts }?: {
|
|
89
|
-
puppeteerConfig?: puppeteer.LaunchOptions | undefined;
|
|
88
|
+
export function run(input: `${string}.${"md" | "markdown"}` | string | undefined, output: `${string}.${"md" | "markdown" | "svg" | "png" | "pdf"}` | "/dev/stdout", { browser: userPassedBrowser, puppeteerConfig, quiet, outputFormat, parseMMDOptions, limiter, artefacts, }?: {
|
|
89
|
+
puppeteerConfig?: import("puppeteer-core").LaunchOptions | undefined;
|
|
90
90
|
quiet?: boolean | undefined;
|
|
91
91
|
outputFormat?: "svg" | "png" | "pdf" | undefined;
|
|
92
92
|
artefacts?: string | undefined;
|
|
93
|
-
browser?: puppeteer.Browser | undefined;
|
|
93
|
+
browser?: import("puppeteer-core").Browser | undefined;
|
|
94
94
|
limiter?: Limiter | undefined;
|
|
95
95
|
parseMMDOptions?: ParseMDDOptions | undefined;
|
|
96
96
|
}): Promise<void>;
|
|
@@ -115,7 +115,7 @@ export function run(input: `${string}.${"md" | "markdown"}` | string | undefined
|
|
|
115
115
|
* @returns {Promise<{title: string | null, desc: string | null, data: Uint8Array}>} The output file in bytes,
|
|
116
116
|
* with optional metadata.
|
|
117
117
|
*/
|
|
118
|
-
export function renderMermaid(browser: import("puppeteer").Browser | import("puppeteer").BrowserContext, definition: string, outputFormat: "svg" | "png" | "pdf", { viewport, backgroundColor, mermaidConfig, myCSS, pdfFit, svgId, iconPacks, iconPacksNamesAndUrls }?: ParseMDDOptions): Promise<{
|
|
118
|
+
export function renderMermaid(browser: import("puppeteer").Browser | import("puppeteer").BrowserContext, definition: string, outputFormat: "svg" | "png" | "pdf", { viewport, backgroundColor, mermaidConfig, myCSS, pdfFit, svgId, iconPacks, iconPacksNamesAndUrls, }?: ParseMDDOptions): Promise<{
|
|
119
119
|
title: string | null;
|
|
120
120
|
desc: string | null;
|
|
121
121
|
data: Uint8Array;
|
|
@@ -128,5 +128,4 @@ export function cli(): Promise<void>;
|
|
|
128
128
|
* @returns {never} Quits Node.JS, so never returns.
|
|
129
129
|
*/
|
|
130
130
|
export function error(message: string): never;
|
|
131
|
-
import puppeteer from 'puppeteer';
|
|
132
131
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAgqBc,MAAM;;;;SACN,MAAM;;;;;;;;;sBAsBP,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,UAAU,EACjD,SAAS,EAAE,CAAC,GAAG,UAAU,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,CAAC,EAC/D,GAAQ,UAAU,EAAE,SAAS,KACtB,OAAO,CAAC,UAAU,CAAC;AAJ3B;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,2BAhBW,GAAG,MAAM,IAAI,IAAI,GAAG,UAAU,EAAE,GAAG,MAAM,GAAG,SAAS,UAIrD,GAAG,MAAM,IAAI,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,aAAa,+GAEhF;IAAiD,eAAe;IACzC,KAAK;IACS,YAAY;IAC3B,SAAS;IAEY,OAAO;IAE3B,OAAO;IACC,eAAe;CAChD,iBAiKA;AAxeD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,uCAPW,OAAO,WAAW,EAAE,OAAO,GAAG,OAAO,WAAW,EAAE,cAAc,cAChE,MAAM,gBACN,KAAK,GAAG,KAAK,GAAG,KAAK,0GACrB,eAAe,GACb,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,CAAC,CAiQlF;AAhfD,qCA2NC;AA/TD;;;;;GAKG;AACH,+BAHW,MAAM,GACJ,KAAK,CAKjB"}
|
|
@@ -14,19 +14,18 @@ export class Interceptor {
|
|
|
14
14
|
allowParentDirectoryLevel?: number | undefined;
|
|
15
15
|
}): Promise<string>;
|
|
16
16
|
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
*
|
|
18
|
+
* @param {URL | string} interceptUrl
|
|
19
|
+
* @throws {Error} If the URL is not a valid intercept URL
|
|
20
|
+
*/
|
|
21
21
|
interceptUrlToFileUrl(interceptUrl: URL | string): Promise<URL>;
|
|
22
22
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
get interceptRequestHandler(): puppeteer.Handler<puppeteer.HTTPRequest>;
|
|
23
|
+
* Intercepts requests to `https://mermaid-cli-intercept.invalid`
|
|
24
|
+
* and serves the corresponding file content.
|
|
25
|
+
*
|
|
26
|
+
* @return {import('puppeteer').Handler<import('puppeteer').HTTPRequest>}
|
|
27
|
+
*/
|
|
28
|
+
get interceptRequestHandler(): import("puppeteer").Handler<import("puppeteer").HTTPRequest>;
|
|
29
29
|
#private;
|
|
30
30
|
}
|
|
31
|
-
import type puppeteer from 'puppeteer';
|
|
32
31
|
//# sourceMappingURL=puppeteerIntercept.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteerIntercept.d.ts","sourceRoot":"","sources":["../../src/puppeteerIntercept.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"puppeteerIntercept.d.ts","sourceRoot":"","sources":["../../src/puppeteerIntercept.js"],"names":[],"mappings":"AAgCA;;;;;GAKG;AACH;IAcE;;;;OAIG;IACH,+BAJW,GAAG,GAAG,UAAU,MAAM,EAAE,kCAEhC;QAAyB,yBAAyB;KACpD,mBAYA;IAED;;;;OAIG;IACH,oCAHW,GAAG,GAAG,MAAM,gBAuBtB;IAiCD;;;;;OAKG;IACH,+BAFY,OAAO,WAAW,EAAE,OAAO,CAAC,OAAO,WAAW,EAAE,WAAW,CAAC,CAIvE;;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version: "11.
|
|
1
|
+
export const version: "11.16.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.js"],"names":[],"mappings":"AAAA,sBAAuB,SAAS,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.js"],"names":[],"mappings":"AAAA,sBAAuB,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mermaid-js/mermaid-cli",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.16.0",
|
|
4
4
|
"description": "Command-line interface for mermaid",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "git@github.com:mermaid-js/mermaid-cli.git",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"test": "cross-env-shell NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" npx jest",
|
|
26
26
|
"test:cli": "bash run-tests.sh test-positive",
|
|
27
27
|
"version": "node scripts/version.js",
|
|
28
|
-
"lint": "
|
|
29
|
-
"lint-fix": "
|
|
28
|
+
"lint": "prettier --check . && eslint .",
|
|
29
|
+
"lint-fix": "prettier --write . && eslint --fix ."
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@fortawesome/fontawesome-free": "^6.0.0 || ^7.0.1",
|
|
@@ -43,16 +43,20 @@
|
|
|
43
43
|
"@mermaid-js/layout-tidy-tree": "^0.2.1"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"puppeteer": "^23 || ^24"
|
|
46
|
+
"puppeteer": "^23 || ^24 || ^25"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
+
"@eslint/js": "^9.0.0",
|
|
49
50
|
"@tsconfig/node18": "^18.2.4",
|
|
50
51
|
"@types/node": "~18.19.31",
|
|
51
52
|
"cross-env": "^7.0.3",
|
|
53
|
+
"eslint": "^9.0.0",
|
|
54
|
+
"globals": "^17.6.0",
|
|
52
55
|
"jest": "^30.0.5",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
56
|
+
"prettier": "^3.8.3",
|
|
57
|
+
"puppeteer": "^25.0.0",
|
|
55
58
|
"typescript": "^6.0.3",
|
|
59
|
+
"typescript-eslint": "^8.59.3",
|
|
56
60
|
"vite": "^6.0.2",
|
|
57
61
|
"yarn-upgrade-all": "^0.8.1"
|
|
58
62
|
},
|
|
@@ -66,11 +70,5 @@
|
|
|
66
70
|
"#(.*)": "<rootDir>/node_modules/$1"
|
|
67
71
|
}
|
|
68
72
|
},
|
|
69
|
-
"standard": {
|
|
70
|
-
"ignore": [
|
|
71
|
-
"/dist/",
|
|
72
|
-
"/dist-types/"
|
|
73
|
-
]
|
|
74
|
-
},
|
|
75
73
|
"packageManager": "npm@10.8.1"
|
|
76
74
|
}
|
package/src/cli.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { cli, error } from
|
|
3
|
+
import { cli, error } from "./index.js";
|
|
4
4
|
|
|
5
|
-
process.title =
|
|
6
|
-
cli().catch((exception) =>
|
|
5
|
+
process.title = "mmdc";
|
|
6
|
+
cli().catch((exception) =>
|
|
7
|
+
error(exception instanceof Error ? exception.stack : exception),
|
|
8
|
+
);
|