From 8af636c58de535f0671512e5c31249b80e2cc107 Mon Sep 17 00:00:00 2001 From: Arpit Jain <3242828+arpitjain099@users.noreply.github.com> Date: Mon, 5 May 2025 12:15:41 +0000 Subject: [PATCH] Fix Incomplete string escaping or encoding errors --- packages/mermaid/src/dagre-wrapper/edges.js | 1 + packages/mermaid/src/diagrams/class/svgDraw.js | 1 + packages/mermaid/src/diagrams/common/common.ts | 1 + packages/mermaid/src/diagrams/er/erRenderer.js | 1 + packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts | 1 + packages/mermaid/src/diagrams/state/shapes.js | 1 + packages/mermaid/src/rendering-util/rendering-elements/edges.js | 2 +- 7 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index 5a97e5b63..5f37009c9 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -446,6 +446,7 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\\/g, '\\\\'); url = url.replace(/\(/g, '\\('); url = url.replace(/\)/g, '\\)'); } diff --git a/packages/mermaid/src/diagrams/class/svgDraw.js b/packages/mermaid/src/diagrams/class/svgDraw.js index 73cf97aeb..28e7955a1 100644 --- a/packages/mermaid/src/diagrams/class/svgDraw.js +++ b/packages/mermaid/src/diagrams/class/svgDraw.js @@ -48,6 +48,7 @@ export const drawEdge = function (elem, path, relation, conf, diagObj) { window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\\/g, '\\\\'); url = url.replace(/\(/g, '\\('); url = url.replace(/\)/g, '\\)'); } diff --git a/packages/mermaid/src/diagrams/common/common.ts b/packages/mermaid/src/diagrams/common/common.ts index fd76d0a45..8955830c3 100644 --- a/packages/mermaid/src/diagrams/common/common.ts +++ b/packages/mermaid/src/diagrams/common/common.ts @@ -158,6 +158,7 @@ const getUrl = (useAbsolute: boolean): string => { window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\\/g, '\\\\'); url = url.replaceAll(/\(/g, '\\('); url = url.replaceAll(/\)/g, '\\)'); } diff --git a/packages/mermaid/src/diagrams/er/erRenderer.js b/packages/mermaid/src/diagrams/er/erRenderer.js index 0327bfc9d..5ee51ccc9 100644 --- a/packages/mermaid/src/diagrams/er/erRenderer.js +++ b/packages/mermaid/src/diagrams/er/erRenderer.js @@ -457,6 +457,7 @@ const drawRelationshipFromLayout = function (svg, rel, g, insert, diagObj) { window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\\/g, '\\\\'); // Escape backslashes url = url.replace(/\(/g, '\\('); url = url.replace(/\)/g, '\\)'); } diff --git a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts index 84bb15b15..0f2c602ca 100644 --- a/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts +++ b/packages/mermaid/src/diagrams/sequence/sequenceRenderer.ts @@ -455,6 +455,7 @@ const drawMessage = async function (diagram, msgModel, lineStartY: number, diagO window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\\/g, '\\\\'); url = url.replace(/\(/g, '\\('); url = url.replace(/\)/g, '\\)'); } diff --git a/packages/mermaid/src/diagrams/state/shapes.js b/packages/mermaid/src/diagrams/state/shapes.js index 419d2a76e..7087f940b 100644 --- a/packages/mermaid/src/diagrams/state/shapes.js +++ b/packages/mermaid/src/diagrams/state/shapes.js @@ -450,6 +450,7 @@ export const drawEdge = function (elem, path, relation) { window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\\/g, '\\\\'); url = url.replace(/\(/g, '\\('); url = url.replace(/\)/g, '\\)'); } diff --git a/packages/mermaid/src/rendering-util/rendering-elements/edges.js b/packages/mermaid/src/rendering-util/rendering-elements/edges.js index ce4244ff2..cca660935 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/edges.js +++ b/packages/mermaid/src/rendering-util/rendering-elements/edges.js @@ -637,7 +637,7 @@ export const insertEdge = function (elem, edge, clusterDb, diagramType, startNod window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, '\\(').replace(/\)/g, '\\)'); + url = url.replace(/\\/g, '\\\\').replace(/\(/g, '\\(').replace(/\)/g, '\\)'); } log.info('arrowTypeStart', edge.arrowTypeStart); log.info('arrowTypeEnd', edge.arrowTypeEnd);