@vmz/plugin-mermaid 0.3.5 → 0.3.7
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/package.json +23 -8
- package/runtime.ts +0 -27
- package/vmz.plugin.ts +0 -46
package/package.json
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@vmz/plugin": "0.3.
|
|
3
|
+
"@vmz/plugin": "0.3.7"
|
|
4
4
|
},
|
|
5
5
|
"description": "VMZ Mermaid diagram adapter - <Mermaid>",
|
|
6
|
+
"devDependencies": {
|
|
7
|
+
"@types/node": "^22.15.0",
|
|
8
|
+
"typescript": "^5.8.3"
|
|
9
|
+
},
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": ">=24.12.0"
|
|
12
|
+
},
|
|
6
13
|
"exports": {
|
|
7
14
|
".": {
|
|
8
|
-
"default": "./vmz.plugin.
|
|
9
|
-
"types": "./vmz.plugin.ts"
|
|
15
|
+
"default": "./dist/vmz.plugin.js",
|
|
16
|
+
"types": "./dist/vmz.plugin.d.ts"
|
|
10
17
|
},
|
|
11
18
|
"./runtime": {
|
|
12
|
-
"default": "./runtime.
|
|
13
|
-
"types": "./runtime.ts"
|
|
19
|
+
"default": "./dist/runtime.js",
|
|
20
|
+
"types": "./dist/runtime.d.ts"
|
|
14
21
|
}
|
|
15
22
|
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"components",
|
|
26
|
+
"README.md"
|
|
27
|
+
],
|
|
16
28
|
"keywords": [
|
|
17
29
|
"vmz",
|
|
18
30
|
"plugin",
|
|
@@ -20,7 +32,7 @@
|
|
|
20
32
|
"diagram"
|
|
21
33
|
],
|
|
22
34
|
"license": "MIT",
|
|
23
|
-
"main": "./vmz.plugin.
|
|
35
|
+
"main": "./dist/vmz.plugin.js",
|
|
24
36
|
"name": "@vmz/plugin-mermaid",
|
|
25
37
|
"peerDependencies": {
|
|
26
38
|
"mermaid": ">=11"
|
|
@@ -33,7 +45,10 @@
|
|
|
33
45
|
"type": "git",
|
|
34
46
|
"url": "git+https://github.com/doki-land/vmz-framework.git"
|
|
35
47
|
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc -p tsconfig.json"
|
|
50
|
+
},
|
|
36
51
|
"type": "module",
|
|
37
|
-
"types": "./vmz.plugin.ts",
|
|
38
|
-
"version": "0.3.
|
|
52
|
+
"types": "./dist/vmz.plugin.d.ts",
|
|
53
|
+
"version": "0.3.7"
|
|
39
54
|
}
|
package/runtime.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Mermaid } from 'mermaid';
|
|
2
|
-
|
|
3
|
-
let mermaid: Mermaid | null = null;
|
|
4
|
-
|
|
5
|
-
async function getMermaid(): Promise<Mermaid> {
|
|
6
|
-
if (mermaid) return mermaid;
|
|
7
|
-
const mod = await import('mermaid');
|
|
8
|
-
mermaid = (mod.default ?? mod) as Mermaid;
|
|
9
|
-
mermaid.initialize({ startOnLoad: false, securityLevel: 'strict' });
|
|
10
|
-
return mermaid;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/** Render Mermaid source to SVG HTML. */
|
|
14
|
-
export async function renderMermaid(source: string, id = 'vmz-mmd'): Promise<string> {
|
|
15
|
-
const m = await getMermaid();
|
|
16
|
-
const { svg } = await m.render(id.replace(/[^a-zA-Z0-9_-]/g, '_'), source ?? '');
|
|
17
|
-
return svg;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** Sync fallback when not yet loaded. */
|
|
21
|
-
export function renderMermaidFallback(source: string): string {
|
|
22
|
-
const escaped = String(source ?? '')
|
|
23
|
-
.replace(/&/g, '&')
|
|
24
|
-
.replace(/</g, '<')
|
|
25
|
-
.replace(/>/g, '>');
|
|
26
|
-
return `<pre class="mermaid-fallback">${escaped}</pre>`;
|
|
27
|
-
}
|
package/vmz.plugin.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { definePlugin, loadPluginSource } from '@vmz/plugin';
|
|
2
|
-
|
|
3
|
-
const source = loadPluginSource(import.meta.url, 'components/Mermaid.vmz');
|
|
4
|
-
|
|
5
|
-
export default definePlugin({
|
|
6
|
-
name: '@vmz/plugin-mermaid',
|
|
7
|
-
version: '0.1.0',
|
|
8
|
-
protocol: '0.1.0',
|
|
9
|
-
stages: ['workspace_resolve', 'analyzer'],
|
|
10
|
-
deterministic: true,
|
|
11
|
-
async contribute(ctx) {
|
|
12
|
-
if (ctx.stage === 'workspace_resolve') {
|
|
13
|
-
return {
|
|
14
|
-
stage: 'workspace_resolve',
|
|
15
|
-
cacheKey: `@vmz/plugin-mermaid:Mermaid.vmz:${source.contentHash.slice(0, 12)}`,
|
|
16
|
-
items: [
|
|
17
|
-
{
|
|
18
|
-
id: 'component-mermaid',
|
|
19
|
-
kind: 'source',
|
|
20
|
-
path: 'src/components/Mermaid.vmz',
|
|
21
|
-
content: source.content,
|
|
22
|
-
contentHash: source.contentHash,
|
|
23
|
-
materialize: true,
|
|
24
|
-
},
|
|
25
|
-
],
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (ctx.stage === 'analyzer') {
|
|
29
|
-
return {
|
|
30
|
-
stage: 'analyzer',
|
|
31
|
-
cacheKey: '@vmz/plugin-mermaid:analyzer',
|
|
32
|
-
items: [
|
|
33
|
-
{
|
|
34
|
-
id: 'component-mermaid-online',
|
|
35
|
-
kind: 'analyzer',
|
|
36
|
-
path: 'src/components/Mermaid.vmz',
|
|
37
|
-
severity: 'advice',
|
|
38
|
-
message: 'Mermaid component online',
|
|
39
|
-
code: 'vmz.plugin.mermaid',
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
return { stage: ctx.stage, items: [] };
|
|
45
|
-
},
|
|
46
|
-
});
|