md-confluence-mermaid-puppeteer-renderer 5.6.13 → 5.6.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -8
- package/dist/index.js.map +2 -2
- package/dist/meta.json +1 -1
- package/package.json +2 -2
- package/src/index.d.ts +2 -2
- package/src/index.ts +72 -78
- package/src/mermaid_renderer.js +9 -9
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAa/D,qBAAa,wBAAyB,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAa/D,qBAAa,wBAAyB,YAAW,eAAe;IACxD,oBAAoB,CACxB,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CA2EhC"}
|
package/dist/index.js
CHANGED
|
@@ -25,17 +25,11 @@ var PuppeteerMermaidRenderer = class {
|
|
|
25
25
|
"--disable-gpu"
|
|
26
26
|
]
|
|
27
27
|
};
|
|
28
|
-
console.log(
|
|
29
|
-
"LAUNCHING CHROME",
|
|
30
|
-
JSON.stringify(puppeteerLaunchConfig)
|
|
31
|
-
);
|
|
28
|
+
console.log("LAUNCHING CHROME", JSON.stringify(puppeteerLaunchConfig));
|
|
32
29
|
const browser = await puppeteer.launch(puppeteerLaunchConfig);
|
|
33
30
|
const page = await browser.newPage();
|
|
34
31
|
try {
|
|
35
|
-
const mermaidHTMLPath = path.join(
|
|
36
|
-
__dirname,
|
|
37
|
-
"mermaid_renderer.html"
|
|
38
|
-
);
|
|
32
|
+
const mermaidHTMLPath = path.join(__dirname, "mermaid_renderer.html");
|
|
39
33
|
const pathToLoad = url.pathToFileURL(mermaidHTMLPath).href;
|
|
40
34
|
await page.goto(pathToLoad);
|
|
41
35
|
const mermaidConfig = {
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { ChartData, MermaidRenderer } from \"md-confluence-lib\";\nimport path from \"path\";\nimport puppeteer, { PuppeteerLaunchOptions } from \"puppeteer\";\nimport { downloadBrowser } from \"puppeteer/lib/esm/puppeteer/node/install.js\";\nimport url from \"url\";\n\ninterface RemoteWindowedCustomFunctions {\n
|
|
5
|
-
"mappings": ";;;;;;;AACA,OAAO,UAAU;AACjB,OAAO,eAA2C;AAClD,SAAS,uBAAuB;AAChC,OAAO,SAAS;AAST,IAAM,2BAAN,MAA0D;AAAA,
|
|
4
|
+
"sourcesContent": ["import { ChartData, MermaidRenderer } from \"md-confluence-lib\";\nimport path from \"path\";\nimport puppeteer, { PuppeteerLaunchOptions } from \"puppeteer\";\nimport { downloadBrowser } from \"puppeteer/lib/esm/puppeteer/node/install.js\";\nimport url from \"url\";\n\ninterface RemoteWindowedCustomFunctions {\n renderMermaidChart: (\n mermaidData: string,\n mermaidConfig: unknown,\n ) => Promise<{ width: number; height: number }>;\n}\n\nexport class PuppeteerMermaidRenderer implements MermaidRenderer {\n async captureMermaidCharts(\n charts: ChartData[],\n ): Promise<Map<string, Buffer>> {\n const capturedCharts = new Map<string, Buffer>();\n\n await downloadBrowser();\n //for (const chart of charts) {\n const promises = charts.map(async (chart) => {\n const puppeteerLaunchConfig = {\n executablePath: puppeteer.executablePath(),\n headless: \"new\",\n args: [\n \"--ignore-certificate-errors\",\n \"--no-sandbox\",\n \"--disable-setuid-sandbox\",\n \"--disable-accelerated-2d-canvas\",\n \"--disable-gpu\",\n ],\n } satisfies PuppeteerLaunchOptions;\n\n console.log(\"LAUNCHING CHROME\", JSON.stringify(puppeteerLaunchConfig));\n const browser = await puppeteer.launch(puppeteerLaunchConfig);\n\n const page = await browser.newPage();\n try {\n const mermaidHTMLPath = path.join(__dirname, \"mermaid_renderer.html\");\n const pathToLoad = url.pathToFileURL(mermaidHTMLPath).href;\n\n await page.goto(pathToLoad);\n\n const mermaidConfig = {\n theme: \"base\",\n themeVariables: {\n background: \"#ffffff\",\n mainBkg: \"#ddebff\",\n primaryColor: \"#ddebff\",\n primaryTextColor: \"#192b50\",\n primaryBorderColor: \"#0052cc\",\n secondaryColor: \"#ff8f73\",\n secondaryTextColor: \"#192b50\",\n secondaryBorderColor: \"#df360c\",\n tertiaryColor: \"#c0b6f3\",\n tertiaryTextColor: \"#fefefe\",\n tertiaryBorderColor: \"#5243aa\",\n noteBkgColor: \"#ffc403\",\n noteTextColor: \"#182a4e\",\n textColor: \"#ff0000\",\n titleColor: \"#0052cc\",\n },\n };\n\n const result = await page.evaluate(\n (mermaidData, mermaidConfig) => {\n const { renderMermaidChart } =\n globalThis as unknown as RemoteWindowedCustomFunctions;\n\n return renderMermaidChart(mermaidData, mermaidConfig);\n },\n chart.data,\n mermaidConfig,\n );\n await page.setViewport({\n width: result.width,\n height: result.height,\n });\n const imageBuffer = await page.screenshot();\n capturedCharts.set(chart.name, imageBuffer);\n } finally {\n await page.close();\n await browser.close();\n }\n });\n\n await Promise.all(promises);\n\n return capturedCharts;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;AACA,OAAO,UAAU;AACjB,OAAO,eAA2C;AAClD,SAAS,uBAAuB;AAChC,OAAO,SAAS;AAST,IAAM,2BAAN,MAA0D;AAAA,EAC/D,MAAM,qBACJ,QAC8B;AAC9B,UAAM,iBAAiB,oBAAI,IAAoB;AAE/C,UAAM,gBAAgB;AAEtB,UAAM,WAAW,OAAO,IAAI,OAAO,UAAU;AAC3C,YAAM,wBAAwB;AAAA,QAC5B,gBAAgB,UAAU,eAAe;AAAA,QACzC,UAAU;AAAA,QACV,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAEA,cAAQ,IAAI,oBAAoB,KAAK,UAAU,qBAAqB,CAAC;AACrE,YAAM,UAAU,MAAM,UAAU,OAAO,qBAAqB;AAE5D,YAAM,OAAO,MAAM,QAAQ,QAAQ;AACnC,UAAI;AACF,cAAM,kBAAkB,KAAK,KAAK,WAAW,uBAAuB;AACpE,cAAM,aAAa,IAAI,cAAc,eAAe,EAAE;AAEtD,cAAM,KAAK,KAAK,UAAU;AAE1B,cAAM,gBAAgB;AAAA,UACpB,OAAO;AAAA,UACP,gBAAgB;AAAA,YACd,YAAY;AAAA,YACZ,SAAS;AAAA,YACT,cAAc;AAAA,YACd,kBAAkB;AAAA,YAClB,oBAAoB;AAAA,YACpB,gBAAgB;AAAA,YAChB,oBAAoB;AAAA,YACpB,sBAAsB;AAAA,YACtB,eAAe;AAAA,YACf,mBAAmB;AAAA,YACnB,qBAAqB;AAAA,YACrB,cAAc;AAAA,YACd,eAAe;AAAA,YACf,WAAW;AAAA,YACX,YAAY;AAAA,UACd;AAAA,QACF;AAEA,cAAM,SAAS,MAAM,KAAK;AAAA,UACxB,CAAC,aAAaA,mBAAkB;AAC9B,kBAAM,EAAE,mBAAmB,IACzB;AAEF,mBAAO,mBAAmB,aAAaA,cAAa;AAAA,UACtD;AAAA,UACA,MAAM;AAAA,UACN;AAAA,QACF;AACA,cAAM,KAAK,YAAY;AAAA,UACrB,OAAO,OAAO;AAAA,UACd,QAAQ,OAAO;AAAA,QACjB,CAAC;AACD,cAAM,cAAc,MAAM,KAAK,WAAW;AAC1C,uBAAe,IAAI,MAAM,MAAM,WAAW;AAAA,MAC5C,UAAE;AACA,cAAM,KAAK,MAAM;AACjB,cAAM,QAAQ,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAED,UAAM,QAAQ,IAAI,QAAQ;AAE1B,WAAO;AAAA,EACT;AACF;",
|
|
6
6
|
"names": ["mermaidConfig"]
|
|
7
7
|
}
|
package/dist/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/index.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/index.ts":{"bytes":2918,"imports":[{"path":"md-confluence-lib","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"puppeteer","kind":"import-statement","external":true},{"path":"puppeteer/lib/esm/puppeteer/node/install.js","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4523},"dist/index.js":{"imports":[{"path":"path","kind":"import-statement","external":true},{"path":"puppeteer","kind":"import-statement","external":true},{"path":"puppeteer/lib/esm/puppeteer/node/install.js","kind":"import-statement","external":true},{"path":"url","kind":"import-statement","external":true}],"exports":["PuppeteerMermaidRenderer"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":2433}},"bytes":2656}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "md-confluence-mermaid-puppeteer-renderer",
|
|
3
|
-
"version": "5.6.
|
|
3
|
+
"version": "5.6.15",
|
|
4
4
|
"description": "This library allows you to publish your notes to Confluence",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"author": "andymac4182",
|
|
19
19
|
"license": "Apache 2.0",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"md-confluence-lib": "5.6.
|
|
21
|
+
"md-confluence-lib": "5.6.15",
|
|
22
22
|
"mermaid": "10.4.0",
|
|
23
23
|
"puppeteer": "21.3.4"
|
|
24
24
|
},
|
package/src/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { ChartData, MermaidRenderer } from "md-confluence-lib";
|
|
3
3
|
export declare class PuppeteerMermaidRenderer implements MermaidRenderer {
|
|
4
|
-
|
|
4
|
+
captureMermaidCharts(charts: ChartData[]): Promise<Map<string, Buffer>>;
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
package/src/index.ts
CHANGED
|
@@ -5,94 +5,88 @@ import { downloadBrowser } from "puppeteer/lib/esm/puppeteer/node/install.js";
|
|
|
5
5
|
import url from "url";
|
|
6
6
|
|
|
7
7
|
interface RemoteWindowedCustomFunctions {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
renderMermaidChart: (
|
|
9
|
+
mermaidData: string,
|
|
10
|
+
mermaidConfig: unknown,
|
|
11
|
+
) => Promise<{ width: number; height: number }>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export class PuppeteerMermaidRenderer implements MermaidRenderer {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
async captureMermaidCharts(
|
|
16
|
+
charts: ChartData[],
|
|
17
|
+
): Promise<Map<string, Buffer>> {
|
|
18
|
+
const capturedCharts = new Map<string, Buffer>();
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
await downloadBrowser();
|
|
21
|
+
//for (const chart of charts) {
|
|
22
|
+
const promises = charts.map(async (chart) => {
|
|
23
|
+
const puppeteerLaunchConfig = {
|
|
24
|
+
executablePath: puppeteer.executablePath(),
|
|
25
|
+
headless: "new",
|
|
26
|
+
args: [
|
|
27
|
+
"--ignore-certificate-errors",
|
|
28
|
+
"--no-sandbox",
|
|
29
|
+
"--disable-setuid-sandbox",
|
|
30
|
+
"--disable-accelerated-2d-canvas",
|
|
31
|
+
"--disable-gpu",
|
|
32
|
+
],
|
|
33
|
+
} satisfies PuppeteerLaunchOptions;
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
JSON.stringify(puppeteerLaunchConfig),
|
|
38
|
-
);
|
|
39
|
-
const browser = await puppeteer.launch(puppeteerLaunchConfig);
|
|
35
|
+
console.log("LAUNCHING CHROME", JSON.stringify(puppeteerLaunchConfig));
|
|
36
|
+
const browser = await puppeteer.launch(puppeteerLaunchConfig);
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"mermaid_renderer.html",
|
|
46
|
-
);
|
|
47
|
-
const pathToLoad = url.pathToFileURL(mermaidHTMLPath).href;
|
|
38
|
+
const page = await browser.newPage();
|
|
39
|
+
try {
|
|
40
|
+
const mermaidHTMLPath = path.join(__dirname, "mermaid_renderer.html");
|
|
41
|
+
const pathToLoad = url.pathToFileURL(mermaidHTMLPath).href;
|
|
48
42
|
|
|
49
|
-
|
|
43
|
+
await page.goto(pathToLoad);
|
|
50
44
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
45
|
+
const mermaidConfig = {
|
|
46
|
+
theme: "base",
|
|
47
|
+
themeVariables: {
|
|
48
|
+
background: "#ffffff",
|
|
49
|
+
mainBkg: "#ddebff",
|
|
50
|
+
primaryColor: "#ddebff",
|
|
51
|
+
primaryTextColor: "#192b50",
|
|
52
|
+
primaryBorderColor: "#0052cc",
|
|
53
|
+
secondaryColor: "#ff8f73",
|
|
54
|
+
secondaryTextColor: "#192b50",
|
|
55
|
+
secondaryBorderColor: "#df360c",
|
|
56
|
+
tertiaryColor: "#c0b6f3",
|
|
57
|
+
tertiaryTextColor: "#fefefe",
|
|
58
|
+
tertiaryBorderColor: "#5243aa",
|
|
59
|
+
noteBkgColor: "#ffc403",
|
|
60
|
+
noteTextColor: "#182a4e",
|
|
61
|
+
textColor: "#ff0000",
|
|
62
|
+
titleColor: "#0052cc",
|
|
63
|
+
},
|
|
64
|
+
};
|
|
71
65
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
const result = await page.evaluate(
|
|
67
|
+
(mermaidData, mermaidConfig) => {
|
|
68
|
+
const { renderMermaidChart } =
|
|
69
|
+
globalThis as unknown as RemoteWindowedCustomFunctions;
|
|
76
70
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
71
|
+
return renderMermaidChart(mermaidData, mermaidConfig);
|
|
72
|
+
},
|
|
73
|
+
chart.data,
|
|
74
|
+
mermaidConfig,
|
|
75
|
+
);
|
|
76
|
+
await page.setViewport({
|
|
77
|
+
width: result.width,
|
|
78
|
+
height: result.height,
|
|
79
|
+
});
|
|
80
|
+
const imageBuffer = await page.screenshot();
|
|
81
|
+
capturedCharts.set(chart.name, imageBuffer);
|
|
82
|
+
} finally {
|
|
83
|
+
await page.close();
|
|
84
|
+
await browser.close();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
93
87
|
|
|
94
|
-
|
|
88
|
+
await Promise.all(promises);
|
|
95
89
|
|
|
96
|
-
|
|
97
|
-
|
|
90
|
+
return capturedCharts;
|
|
91
|
+
}
|
|
98
92
|
}
|
package/src/mermaid_renderer.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import mermaid from "mermaid";
|
|
2
2
|
|
|
3
3
|
window.renderMermaidChart = async (chartData, mermaidConfig) => {
|
|
4
|
-
|
|
4
|
+
mermaid.initialize({ ...mermaidConfig, startOnLoad: false });
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const { svg } = await mermaid.render("graphDiv2", chartData);
|
|
7
|
+
const chartElement = document.querySelector("#graphDiv");
|
|
8
|
+
chartElement.innerHTML = svg;
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const svgElement = document.querySelector("#graphDiv svg");
|
|
11
|
+
return {
|
|
12
|
+
width: svgElement.scrollWidth,
|
|
13
|
+
height: svgElement.scrollHeight,
|
|
14
|
+
};
|
|
15
15
|
};
|