Pārlūkot izejas kodu

Update mermaid to 10.8.0 + fix csp issue in firefox

simov 1 gadu atpakaļ
vecāks
revīzija
7a49fe106d
3 mainītis faili ar 27 papildinājumiem un 3 dzēšanām
  1. 8 2
      build/mermaid/build.sh
  2. 18 0
      build/mermaid/fix-csp-issue.js
  3. 1 1
      build/mermaid/package.json

+ 8 - 2
build/mermaid/build.sh

@@ -5,9 +5,15 @@ cd "$(dirname "$0")"
 
 # before
 npm ci 2> /dev/null || npm i
+mkdir -p tmp
+
+# mermaid.min.js
+node fix-csp-issue.js \
+  node_modules/mermaid/dist/mermaid.min.js \
+  tmp/mermaid.min.js
 
 # copy
-cp node_modules/mermaid/dist/mermaid.min.js ../../vendor/mermaid.min.js
+cp tmp/mermaid.min.js ../../vendor/mermaid.min.js
 
 # after
-rm -rf node_modules/
+rm -rf node_modules/ tmp/

+ 18 - 0
build/mermaid/fix-csp-issue.js

@@ -0,0 +1,18 @@
+
+var fs = require('fs')
+var path = require('path')
+
+// mermaid.min.js
+var source = path.resolve(__dirname, process.argv[2])
+var target = path.resolve(__dirname, process.argv[3])
+fs.writeFileSync(
+  target,
+  fs.readFileSync(source, 'utf8')
+    .replaceAll(
+      // https://github.com/mermaid-js/mermaid/issues/5378
+      // https://discourse.mozilla.org/t/cannot-inject-a-javascript-file-because-of-a-csp-limitations/128649
+      'Function("return this")',
+      '(() => globalThis)'
+    ),
+  'utf8'
+)

+ 1 - 1
build/mermaid/package.json

@@ -4,7 +4,7 @@
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
   "dependencies": {
-    "mermaid": "10.4.0"
+    "mermaid": "10.8.0"
   },
   "engines": {
     "node": ">=18.0.0"