diff --git a/cSpell.json b/cSpell.json
index 94276b683..d2a298a94 100644
--- a/cSpell.json
+++ b/cSpell.json
@@ -65,6 +65,7 @@
"mdast",
"mdbook",
"mermerd",
+ "micromark",
"mindaugas",
"mindmap",
"mindmaps",
diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md
index 683850fd3..ef04c10c3 100644
--- a/docs/config/setup/modules/mermaidAPI.md
+++ b/docs/config/setup/modules/mermaidAPI.md
@@ -96,7 +96,7 @@ mermaid.initialize(config);
#### Defined in
-[mermaidAPI.ts:673](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L673)
+[mermaidAPI.ts:667](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L667)
## Functions
@@ -127,7 +127,7 @@ Return the last node appended
#### Defined in
-[mermaidAPI.ts:312](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L312)
+[mermaidAPI.ts:306](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L306)
---
@@ -153,7 +153,7 @@ the cleaned up svgCode
#### Defined in
-[mermaidAPI.ts:263](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L263)
+[mermaidAPI.ts:257](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L257)
---
@@ -179,7 +179,7 @@ the string with all the user styles
#### Defined in
-[mermaidAPI.ts:192](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L192)
+[mermaidAPI.ts:186](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L186)
---
@@ -202,7 +202,7 @@ the string with all the user styles
#### Defined in
-[mermaidAPI.ts:240](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L240)
+[mermaidAPI.ts:234](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L234)
---
@@ -229,7 +229,7 @@ with an enclosing block that has each of the cssClasses followed by !important;
#### Defined in
-[mermaidAPI.ts:176](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L176)
+[mermaidAPI.ts:170](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L170)
---
@@ -295,7 +295,7 @@ Put the svgCode into an iFrame. Return the iFrame code
#### Defined in
-[mermaidAPI.ts:291](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L291)
+[mermaidAPI.ts:285](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L285)
---
@@ -320,4 +320,4 @@ Remove any existing elements from the given document
#### Defined in
-[mermaidAPI.ts:362](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L362)
+[mermaidAPI.ts:356](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L356)
diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
index 244ebe453..ae68f23b5 100644
--- a/packages/mermaid/package.json
+++ b/packages/mermaid/package.json
@@ -53,7 +53,6 @@
},
"dependencies": {
"@braintree/sanitize-url": "^6.0.2",
- "@khanacademy/simple-markdown": "^0.9.0",
"cytoscape": "^3.23.0",
"cytoscape-cose-bilkent": "^4.1.0",
"cytoscape-fcose": "^2.1.0",
@@ -64,6 +63,8 @@
"elkjs": "^0.8.2",
"khroma": "^2.0.0",
"lodash-es": "^4.17.21",
+ "mdast-util-from-markdown": "^1.3.0",
+ "micromark": "^3.1.0",
"non-layered-tidy-tree-layout": "^2.0.2",
"stylis": "^4.1.3",
"ts-dedent": "^2.2.0",
diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts
index 5e9d0ead6..e96407638 100644
--- a/packages/mermaid/src/mermaidAPI.ts
+++ b/packages/mermaid/src/mermaidAPI.ts
@@ -154,13 +154,7 @@ export const encodeEntities = function (text: string): string {
* @returns
*/
export const decodeEntities = function (text: string): string {
- let txt = text;
-
- txt = txt.replace(/fl°°/g, '');
- txt = txt.replace(/fl°/g, '&');
- txt = txt.replace(/¶ß/g, ';');
-
- return txt;
+ return text.replace(/fl°°/g, '').replace(/fl°/g, '&').replace(/¶ß/g, ';');
};
// append !important; to each cssClass followed by a final !important, all enclosed in { }
diff --git a/packages/mermaid/src/rendering-util/createText.js b/packages/mermaid/src/rendering-util/createText.js
index a5438b562..d9ba1b9cd 100644
--- a/packages/mermaid/src/rendering-util/createText.js
+++ b/packages/mermaid/src/rendering-util/createText.js
@@ -1,7 +1,4 @@
-import { select } from 'd3';
import { log } from '../logger.js';
-import { getConfig } from '../config.js';
-import { evaluate } from '../diagrams/common/common.js';
import { decodeEntities } from '../mermaidAPI.js';
import { markdownToHTML, markdownToLines } from '../rendering-util/handle-markdown-text.js';
/**
@@ -207,17 +204,6 @@ export const createText = (
return vertexNode;
} else {
const structuredText = markdownToLines(text);
- const special = ['"', "'", '.', ',', ':', ';', '!', '?', '(', ')', '[', ']', '{', '}'];
- let lastWord;
- structuredText.forEach((line) => {
- line.forEach((word) => {
- if (special.includes(word.content) && lastWord) {
- lastWord.content += word.content;
- word.content = '';
- }
- lastWord = word;
- });
- });
const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);
return svgLabel;
}
diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.js b/packages/mermaid/src/rendering-util/handle-markdown-text.js
deleted file mode 100644
index 93704b2fe..000000000
--- a/packages/mermaid/src/rendering-util/handle-markdown-text.js
+++ /dev/null
@@ -1,94 +0,0 @@
-import SimpleMarkdown from '@khanacademy/simple-markdown';
-
-/**
- *
- * @param markdown
- */
-function preprocessMarkdown(markdown) {
- // Replace multiple newlines with a single newline
- const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, '\n');
- // Remove extra spaces at the beginning of each line
- const withoutExtraSpaces = withoutMultipleNewlines.replace(/^\s+/gm, '');
- return withoutExtraSpaces;
-}
-
-/**
- *
- * @param markdown
- */
-export function markdownToLines(markdown) {
- const preprocessedMarkdown = preprocessMarkdown(markdown);
- const mdParse = SimpleMarkdown.defaultBlockParse;
- const syntaxTree = mdParse(preprocessedMarkdown);
-
- let lines = [[]];
- let currentLine = 0;
-
- /**
- *
- * @param node
- * @param parentType
- */
- function processNode(node, parentType) {
- if (node.type === 'text') {
- const textLines = node.content.split('\n');
-
- textLines.forEach((textLine, index) => {
- if (index !== 0) {
- currentLine++;
- lines.push([]);
- }
-
- // textLine.split(/ (?=[^!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]+)/).forEach((word) => {
- textLine.split(' ').forEach((word) => {
- if (word) {
- lines[currentLine].push({ content: word, type: parentType || 'normal' });
- }
- });
- });
- } else if (node.type === 'strong' || node.type === 'em') {
- node.content.forEach((contentNode) => {
- processNode(contentNode, node.type);
- });
- }
- }
-
- syntaxTree.forEach((treeNode) => {
- if (treeNode.type === 'paragraph') {
- treeNode.content.forEach((contentNode) => {
- processNode(contentNode);
- });
- }
- });
-
- return lines;
-}
-
-/**
- *
- * @param markdown
- */
-export function markdownToHTML(markdown) {
- const mdParse = SimpleMarkdown.defaultBlockParse;
- const syntaxTree = mdParse(markdown);
-
- /**
- *
- * @param node
- */
- function output(node) {
- if (node.type === 'text') {
- return node.content.replace(/\n/g, '
');
- } else if (node.type === 'strong') {
- return `${node.content.map(output).join('')}`;
- } else if (node.type === 'em') {
- return `${node.content.map(output).join('')}`;
- } else if (node.type === 'paragraph') {
- return `
${node.content.map(output).join('')}
`;
- } else {
- return '';
- }
- }
-
- return syntaxTree.map(output).join('');
-}
diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.spec.js b/packages/mermaid/src/rendering-util/handle-markdown-text.spec.js
deleted file mode 100644
index 5e74a9956..000000000
--- a/packages/mermaid/src/rendering-util/handle-markdown-text.spec.js
+++ /dev/null
@@ -1,253 +0,0 @@
-// import { test } from 'vitest';
-import { markdownToLines, markdownToHTML } from './handle-markdown-text';
-import { test } from 'vitest';
-
-test('markdownToLines - Basic test', () => {
- const input = `This is regular text
-Here is a new line
-There is some words **with a bold** section
-Here is a line *with an italic* section`;
-
- const expectedOutput = [
- [
- { content: 'This', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'regular', type: 'normal' },
- { content: 'text', type: 'normal' },
- ],
- [
- { content: 'Here', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'a', type: 'normal' },
- { content: 'new', type: 'normal' },
- { content: 'line', type: 'normal' },
- ],
- [
- { content: 'There', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'some', type: 'normal' },
- { content: 'words', type: 'normal' },
- { content: 'with', type: 'strong' },
- { content: 'a', type: 'strong' },
- { content: 'bold', type: 'strong' },
- { content: 'section', type: 'normal' },
- ],
- [
- { content: 'Here', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'a', type: 'normal' },
- { content: 'line', type: 'normal' },
- { content: 'with', type: 'em' },
- { content: 'an', type: 'em' },
- { content: 'italic', type: 'em' },
- { content: 'section', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToLines - Empty input', () => {
- const input = '';
- const expectedOutput = [[]];
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToLines - No formatting', () => {
- const input = `This is a simple test
-with no formatting`;
-
- const expectedOutput = [
- [
- { content: 'This', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'a', type: 'normal' },
- { content: 'simple', type: 'normal' },
- { content: 'test', type: 'normal' },
- ],
- [
- { content: 'with', type: 'normal' },
- { content: 'no', type: 'normal' },
- { content: 'formatting', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToLines - Only bold formatting', () => {
- const input = `This is a **bold** test`;
-
- const expectedOutput = [
- [
- { content: 'This', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'a', type: 'normal' },
- { content: 'bold', type: 'strong' },
- { content: 'test', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToLines - paragraph 1', () => {
- const input = `**Start** with
- a second line`;
-
- const expectedOutput = [
- [
- { content: 'Start', type: 'strong' },
- { content: 'with', type: 'normal' },
- ],
- [
- { content: 'a', type: 'normal' },
- { content: 'second', type: 'normal' },
- { content: 'line', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToLines - paragraph', () => {
- const input = `**Start** with
-
- a second line`;
-
- const expectedOutput = [
- [
- { content: 'Start', type: 'strong' },
- { content: 'with', type: 'normal' },
- ],
- [
- { content: 'a', type: 'normal' },
- { content: 'second', type: 'normal' },
- { content: 'line', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToLines - Only italic formatting', () => {
- const input = `This is an *italic* test`;
-
- const expectedOutput = [
- [
- { content: 'This', type: 'normal' },
- { content: 'is', type: 'normal' },
- { content: 'an', type: 'normal' },
- { content: 'italic', type: 'em' },
- { content: 'test', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-it('markdownToLines - Mixed formatting', () => {
- const input = `*Italic* and **bold** formatting`;
-
- const expectedOutput = [
- [
- { content: 'Italic', type: 'em' },
- { content: 'and', type: 'normal' },
- { content: 'bold', type: 'strong' },
- { content: 'formatting', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-it('markdownToLines - Mixed formatting', () => {
- const input = `The dog in **the** hog... a *very long text* about it
-Word!`;
-
- const expectedOutput = [
- [
- { content: 'The', type: 'normal' },
- { content: 'dog', type: 'normal' },
- { content: 'in', type: 'normal' },
- { content: 'the', type: 'strong' },
- { content: 'hog', type: 'normal' },
- { content: '.', type: 'normal' },
- { content: '.', type: 'normal' },
- { content: '.', type: 'normal' },
- { content: 'a', type: 'normal' },
- { content: 'very', type: 'em' },
- { content: 'long', type: 'em' },
- { content: 'text', type: 'em' },
- { content: 'about', type: 'normal' },
- { content: 'it', type: 'normal' },
- ],
- [
- { content: 'Word', type: 'normal' },
- { content: '!', type: 'normal' },
- ],
- ];
-
- const output = markdownToLines(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToHTML - Basic test', () => {
- const input = `This is regular text
-Here is a new line
-There is some words **with a bold** section
-Here is a line *with an italic* section`;
-
- const expectedOutput = `This is regular text
Here is a new line
There is some words with a bold section
Here is a line with an italic section
`;
-
- const output = markdownToHTML(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToHTML - Empty input', () => {
- const input = '';
- const expectedOutput = '';
- const output = markdownToHTML(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToHTML - No formatting', () => {
- const input = `This is a simple test
-with no formatting`;
-
- const expectedOutput = `This is a simple test
with no formatting
`;
- const output = markdownToHTML(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToHTML - Only bold formatting', () => {
- const input = `This is a **bold** test`;
-
- const expectedOutput = `This is a bold test
`;
- const output = markdownToHTML(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToHTML - Only italic formatting', () => {
- const input = `This is an *italic* test`;
-
- const expectedOutput = `This is an italic test
`;
- const output = markdownToHTML(input);
- expect(output).toEqual(expectedOutput);
-});
-
-test('markdownToHTML - Mixed formatting', () => {
- const input = `*Italic* and **bold** formatting`;
-
- const expectedOutput = `Italic and bold formatting
`;
- const output = markdownToHTML(input);
- expect(output).toEqual(expectedOutput);
-});
diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts b/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts
new file mode 100644
index 000000000..2dfd518d9
--- /dev/null
+++ b/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts
@@ -0,0 +1,388 @@
+import { markdownToLines, markdownToHTML } from './handle-markdown-text.js';
+import { test, expect } from 'vitest';
+
+describe('markdownToLines', () => {
+ test('Basic test', () => {
+ const input = `This is regular text
+Here is a new line
+There is some words **with a bold** section
+Here is a line *with an italic* section`;
+
+ const output = markdownToLines(input);
+ expect(output).toMatchInlineSnapshot(`
+ [
+ [
+ {
+ "content": "This",
+ "type": "normal",
+ },
+ {
+ "content": "is",
+ "type": "normal",
+ },
+ {
+ "content": "regular",
+ "type": "normal",
+ },
+ {
+ "content": "text",
+ "type": "normal",
+ },
+ ],
+ [
+ {
+ "content": "Here",
+ "type": "normal",
+ },
+ {
+ "content": "is",
+ "type": "normal",
+ },
+ {
+ "content": "a",
+ "type": "normal",
+ },
+ {
+ "content": "new",
+ "type": "normal",
+ },
+ {
+ "content": "line",
+ "type": "normal",
+ },
+ ],
+ [
+ {
+ "content": "There",
+ "type": "normal",
+ },
+ {
+ "content": "is",
+ "type": "normal",
+ },
+ {
+ "content": "some",
+ "type": "normal",
+ },
+ {
+ "content": "words",
+ "type": "normal",
+ },
+ {
+ "content": "with",
+ "type": "strong",
+ },
+ {
+ "content": "a",
+ "type": "strong",
+ },
+ {
+ "content": "bold",
+ "type": "strong",
+ },
+ {
+ "content": "section",
+ "type": "normal",
+ },
+ ],
+ [
+ {
+ "content": "Here",
+ "type": "normal",
+ },
+ {
+ "content": "is",
+ "type": "normal",
+ },
+ {
+ "content": "a",
+ "type": "normal",
+ },
+ {
+ "content": "line",
+ "type": "normal",
+ },
+ {
+ "content": "with",
+ "type": "emphasis",
+ },
+ {
+ "content": "an",
+ "type": "emphasis",
+ },
+ {
+ "content": "italic",
+ "type": "emphasis",
+ },
+ {
+ "content": "section",
+ "type": "normal",
+ },
+ ],
+ ]
+ `);
+ });
+
+ test('Empty input', () => {
+ const input = '';
+ const expectedOutput = [[]];
+ const output = markdownToLines(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('No formatting', () => {
+ const input = `This is a simple test
+with no formatting`;
+
+ const expectedOutput = [
+ [
+ { content: 'This', type: 'normal' },
+ { content: 'is', type: 'normal' },
+ { content: 'a', type: 'normal' },
+ { content: 'simple', type: 'normal' },
+ { content: 'test', type: 'normal' },
+ ],
+ [
+ { content: 'with', type: 'normal' },
+ { content: 'no', type: 'normal' },
+ { content: 'formatting', type: 'normal' },
+ ],
+ ];
+
+ const output = markdownToLines(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('Only bold formatting', () => {
+ const input = `This is a **bold** test`;
+
+ const expectedOutput = [
+ [
+ { content: 'This', type: 'normal' },
+ { content: 'is', type: 'normal' },
+ { content: 'a', type: 'normal' },
+ { content: 'bold', type: 'strong' },
+ { content: 'test', type: 'normal' },
+ ],
+ ];
+
+ const output = markdownToLines(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('paragraph 1', () => {
+ const input = `**Start** with
+ a second line`;
+
+ const expectedOutput = [
+ [
+ { content: 'Start', type: 'strong' },
+ { content: 'with', type: 'normal' },
+ ],
+ [
+ { content: 'a', type: 'normal' },
+ { content: 'second', type: 'normal' },
+ { content: 'line', type: 'normal' },
+ ],
+ ];
+
+ const output = markdownToLines(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('paragraph', () => {
+ const input = `**Start** with
+
+ a second line`;
+
+ const expectedOutput = [
+ [
+ { content: 'Start', type: 'strong' },
+ { content: 'with', type: 'normal' },
+ ],
+ [
+ { content: 'a', type: 'normal' },
+ { content: 'second', type: 'normal' },
+ { content: 'line', type: 'normal' },
+ ],
+ ];
+
+ const output = markdownToLines(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('Only italic formatting', () => {
+ const input = `This is an *italic* test`;
+ const output = markdownToLines(input);
+ expect(output).toMatchInlineSnapshot(`
+ [
+ [
+ {
+ "content": "This",
+ "type": "normal",
+ },
+ {
+ "content": "is",
+ "type": "normal",
+ },
+ {
+ "content": "an",
+ "type": "normal",
+ },
+ {
+ "content": "italic",
+ "type": "emphasis",
+ },
+ {
+ "content": "test",
+ "type": "normal",
+ },
+ ],
+ ]
+ `);
+ });
+
+ test('Mixed formatting', () => {
+ const input = `*Italic* and **bold** formatting`;
+ const output = markdownToLines(input);
+ expect(output).toMatchInlineSnapshot(`
+ [
+ [
+ {
+ "content": "Italic",
+ "type": "emphasis",
+ },
+ {
+ "content": "and",
+ "type": "normal",
+ },
+ {
+ "content": "bold",
+ "type": "strong",
+ },
+ {
+ "content": "formatting",
+ "type": "normal",
+ },
+ ],
+ ]
+ `);
+ });
+
+ test('Mixed formatting with newline', () => {
+ const input = `The dog in **the** hog... a *very long text* about it
+Word!`;
+
+ const output = markdownToLines(input);
+ expect(output).toMatchInlineSnapshot(`
+ [
+ [
+ {
+ "content": "The",
+ "type": "normal",
+ },
+ {
+ "content": "dog",
+ "type": "normal",
+ },
+ {
+ "content": "in",
+ "type": "normal",
+ },
+ {
+ "content": "the",
+ "type": "strong",
+ },
+ {
+ "content": "hog...",
+ "type": "normal",
+ },
+ {
+ "content": "a",
+ "type": "normal",
+ },
+ {
+ "content": "very",
+ "type": "emphasis",
+ },
+ {
+ "content": "long",
+ "type": "emphasis",
+ },
+ {
+ "content": "text",
+ "type": "emphasis",
+ },
+ {
+ "content": "about",
+ "type": "normal",
+ },
+ {
+ "content": "it",
+ "type": "normal",
+ },
+ ],
+ [
+ {
+ "content": "Word!",
+ "type": "normal",
+ },
+ ],
+ ]
+ `);
+ });
+});
+
+describe('markdownToHTML', () => {
+ test('Basic test', () => {
+ const input = `This is regular text
+Here is a new line
+There is some words **with a bold** section
+Here is a line *with an italic* section`;
+
+ const output = markdownToHTML(input);
+ expect(output).toMatchInlineSnapshot(
+ '"This is regular text
Here is a new line
There is some words with a bold section
Here is a line with an italic section
"'
+ );
+ });
+
+ test('Empty input', () => {
+ const input = '';
+ const expectedOutput = '';
+ const output = markdownToHTML(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('No formatting', () => {
+ const input = `This is a simple test
+with no formatting`;
+
+ const expectedOutput = `This is a simple test
with no formatting
`;
+ const output = markdownToHTML(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('Only bold formatting', () => {
+ const input = `This is a **bold** test`;
+
+ const expectedOutput = `This is a bold test
`;
+ const output = markdownToHTML(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('Only italic formatting', () => {
+ const input = `This is an *italic* test`;
+
+ const expectedOutput = `This is an italic test
`;
+ const output = markdownToHTML(input);
+ expect(output).toEqual(expectedOutput);
+ });
+
+ test('Mixed formatting', () => {
+ const input = `*Italic* and **bold** formatting`;
+
+ const expectedOutput = `Italic and bold formatting
`;
+ const output = markdownToHTML(input);
+ expect(output).toEqual(expectedOutput);
+ });
+});
diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.ts b/packages/mermaid/src/rendering-util/handle-markdown-text.ts
new file mode 100644
index 000000000..4fcbaa0b8
--- /dev/null
+++ b/packages/mermaid/src/rendering-util/handle-markdown-text.ts
@@ -0,0 +1,53 @@
+import { micromark } from 'micromark';
+import { fromMarkdown } from 'mdast-util-from-markdown';
+import type { Content } from 'mdast';
+
+function preprocessMarkdown(markdown: string): string {
+ // Replace multiple newlines with a single newline
+ const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, '\n');
+ // Remove extra spaces at the beginning of each line
+ const withoutExtraSpaces = withoutMultipleNewlines.replace(/^\s+/gm, '');
+ return withoutExtraSpaces;
+}
+
+export function markdownToLines(markdown: string) {
+ const preprocessedMarkdown = preprocessMarkdown(markdown);
+ const { children } = fromMarkdown(preprocessedMarkdown);
+ const lines: { content: string; type: string }[][] = [[]];
+ let currentLine = 0;
+
+ function processNode(node: Content, parentType?: string) {
+ if (node.type === 'text') {
+ const textLines = node.value.split('\n');
+ textLines.forEach((textLine, index) => {
+ if (index !== 0) {
+ currentLine++;
+ lines.push([]);
+ }
+ textLine.split(' ').forEach((word) => {
+ if (word) {
+ lines[currentLine].push({ content: word, type: parentType || 'normal' });
+ }
+ });
+ });
+ } else if (node.type === 'strong' || node.type === 'emphasis') {
+ node.children.forEach((contentNode) => {
+ processNode(contentNode, node.type);
+ });
+ }
+ }
+
+ children.forEach((treeNode) => {
+ if (treeNode.type === 'paragraph') {
+ treeNode.children.forEach((contentNode) => {
+ processNode(contentNode);
+ });
+ }
+ });
+
+ return lines;
+}
+
+export function markdownToHTML(markdown: string): string {
+ return micromark(preprocessMarkdown(markdown)).replaceAll('\n', '
');
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 51762eb2d..596a4ae8f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -181,9 +181,6 @@ importers:
'@braintree/sanitize-url':
specifier: ^6.0.2
version: 6.0.2
- '@khanacademy/simple-markdown':
- specifier: ^0.9.0
- version: 0.9.2(react-dom@16.14.0)(react@16.14.0)
cytoscape:
specifier: ^3.23.0
version: 3.23.0
@@ -214,6 +211,12 @@ importers:
lodash-es:
specifier: ^4.17.21
version: 4.17.21
+ mdast-util-from-markdown:
+ specifier: ^1.3.0
+ version: 1.3.0
+ micromark:
+ specifier: ^3.1.0
+ version: 3.1.0
non-layered-tidy-tree-layout:
specifier: ^2.0.2
version: 2.0.2
@@ -331,7 +334,7 @@ importers:
version: 1.0.0
vitepress:
specifier: ^1.0.0-alpha.72
- version: 1.0.0-alpha.72(@algolia/client-search@4.14.2)(@types/node@18.16.0)(react-dom@16.14.0)(react@16.14.0)
+ version: 1.0.0-alpha.72(@algolia/client-search@4.14.2)
vitepress-plugin-search:
specifier: ^1.0.4-alpha.20
version: 1.0.4-alpha.20(flexsearch@0.7.31)(vitepress@1.0.0-alpha.72)(vue@3.2.47)
@@ -384,7 +387,7 @@ importers:
devDependencies:
webpack:
specifier: ^5.74.0
- version: 5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0)
+ version: 5.75.0(webpack-cli@4.10.0)
webpack-cli:
specifier: ^4.10.0
version: 4.10.0(webpack-dev-server@4.11.1)(webpack@5.75.0)
@@ -733,6 +736,7 @@ packages:
dependencies:
'@applitools/eg-frpc': 1.0.2
'@applitools/eg-socks5-proxy-server': 0.5.4
+ '@applitools/execution-grid-tunnel': 1.0.24
'@applitools/logger': 1.1.48
dotenv: 16.0.3
encoding: 0.1.13
@@ -1097,7 +1101,7 @@ packages:
'@babel/traverse': 7.19.1
'@babel/types': 7.19.0
convert-source-map: 1.8.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
gensync: 1.0.0-beta.2
json5: 2.2.1
lodash: 4.17.21
@@ -1374,7 +1378,7 @@ packages:
'@babel/helper-split-export-declaration': 7.18.6
'@babel/parser': 7.19.1
'@babel/types': 7.19.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -1899,10 +1903,10 @@ packages:
resolution: {integrity: sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==}
dev: true
- /@docsearch/js@3.3.3(@algolia/client-search@4.14.2)(react-dom@16.14.0)(react@16.14.0):
+ /@docsearch/js@3.3.3(@algolia/client-search@4.14.2):
resolution: {integrity: sha512-2xAv2GFuHzzmG0SSZgf8wHX0qZX8n9Y1ZirKUk5Wrdc+vH9CL837x2hZIUdwcPZI9caBA+/CzxsS68O4waYjUQ==}
dependencies:
- '@docsearch/react': 3.3.3(@algolia/client-search@4.14.2)(react-dom@16.14.0)(react@16.14.0)
+ '@docsearch/react': 3.3.3(@algolia/client-search@4.14.2)
preact: 10.11.0
transitivePeerDependencies:
- '@algolia/client-search'
@@ -1911,7 +1915,7 @@ packages:
- react-dom
dev: true
- /@docsearch/react@3.3.3(@algolia/client-search@4.14.2)(react-dom@16.14.0)(react@16.14.0):
+ /@docsearch/react@3.3.3(@algolia/client-search@4.14.2):
resolution: {integrity: sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==}
peerDependencies:
'@types/react': '>= 16.8.0 < 19.0.0'
@@ -1929,8 +1933,6 @@ packages:
'@algolia/autocomplete-preset-algolia': 1.7.4(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
'@docsearch/css': 3.3.3
algoliasearch: 4.14.2
- react: 16.14.0
- react-dom: 16.14.0(react@16.14.0)
transitivePeerDependencies:
- '@algolia/client-search'
dev: true
@@ -2162,7 +2164,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
espree: 9.5.1
globals: 13.19.0
ignore: 5.2.0
@@ -2204,7 +2206,7 @@ packages:
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 1.2.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -2492,17 +2494,6 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
- /@khanacademy/simple-markdown@0.9.2(react-dom@16.14.0)(react@16.14.0):
- resolution: {integrity: sha512-iRkSaVuUT+ho8B0aY0uLGgfS1YU84l/mSwjJTh0N0k0WzjdJUJY4+Eh56kn8whwD8QX6uNblAT0lT5ICATLtZg==}
- peerDependencies:
- react: 16.14.0
- react-dom: 16.14.0
- dependencies:
- '@types/react': 18.0.33
- react: 16.14.0
- react-dom: 16.14.0(react@16.14.0)
- dev: false
-
/@leichtgewicht/ip-codec@2.0.4:
resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
dev: true
@@ -2935,7 +2926,6 @@ packages:
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
dependencies:
'@types/ms': 0.7.31
- dev: true
/@types/dompurify@3.0.2:
resolution: {integrity: sha512-YBL4ziFebbbfQfH5mlC+QTJsvh0oJUrWbmxKMyEdL7emlHJqGR2Qb34TEFKj+VCayBvjKy3xczMFNhugThUsfQ==}
@@ -3088,7 +3078,6 @@ packages:
resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==}
dependencies:
'@types/unist': 2.0.6
- dev: true
/@types/mdurl@1.0.2:
resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
@@ -3110,7 +3099,6 @@ packages:
/@types/ms@0.7.31:
resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
- dev: true
/@types/node-fetch@2.6.2:
resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==}
@@ -3135,10 +3123,6 @@ packages:
resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==}
dev: true
- /@types/prop-types@15.7.5:
- resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
- dev: false
-
/@types/qs@6.9.7:
resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==}
dev: true
@@ -3147,14 +3131,6 @@ packages:
resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==}
dev: true
- /@types/react@18.0.33:
- resolution: {integrity: sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==}
- dependencies:
- '@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.3
- csstype: 3.1.2
- dev: false
-
/@types/responselike@1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
@@ -3172,10 +3148,6 @@ packages:
rollup: 2.79.1
dev: true
- /@types/scheduler@0.16.3:
- resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
- dev: false
-
/@types/semver@7.3.12:
resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==}
dev: true
@@ -3225,7 +3197,6 @@ packages:
/@types/unist@2.0.6:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
- dev: true
/@types/uuid@9.0.1:
resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==}
@@ -3281,7 +3252,7 @@ packages:
'@typescript-eslint/scope-manager': 5.59.0
'@typescript-eslint/type-utils': 5.59.0(eslint@8.39.0)(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.0(eslint@8.39.0)(typescript@5.0.4)
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
eslint: 8.39.0
grapheme-splitter: 1.0.4
ignore: 5.2.0
@@ -3306,7 +3277,7 @@ packages:
'@typescript-eslint/scope-manager': 5.59.0
'@typescript-eslint/types': 5.59.0
'@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.4)
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
eslint: 8.39.0
typescript: 5.0.4
transitivePeerDependencies:
@@ -3333,7 +3304,7 @@ packages:
dependencies:
'@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.0(eslint@8.39.0)(typescript@5.0.4)
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
eslint: 8.39.0
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
@@ -3357,7 +3328,7 @@ packages:
dependencies:
'@typescript-eslint/types': 5.59.0
'@typescript-eslint/visitor-keys': 5.59.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.0
@@ -3402,7 +3373,7 @@ packages:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
- vite: 4.2.2(@types/node@18.16.0)
+ vite: 4.2.2
vue: 3.2.47
dev: true
@@ -3745,7 +3716,7 @@ packages:
webpack: 4.x.x || 5.x.x
webpack-cli: 4.x.x
dependencies:
- webpack: 5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0)
+ webpack: 5.75.0(webpack-cli@4.10.0)
webpack-cli: 4.10.0(webpack-dev-server@4.11.1)(webpack@5.75.0)
dev: true
@@ -3881,7 +3852,7 @@ packages:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -4171,7 +4142,7 @@ packages:
resolution: {integrity: sha512-AOhBxyLVdpOad3TujtC9kL/9r3HnTkxwQ5ggOsYrvvZP1cCFvzHWJd5XxZDFuTn+IN8vkKSG5SEJrd27vCSbeA==}
dependencies:
archy: 1.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
fastq: 1.13.0
queue-microtask: 1.2.3
transitivePeerDependencies:
@@ -4189,7 +4160,7 @@ packages:
/axios@0.27.2(debug@4.3.4):
resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
dependencies:
- follow-redirects: 1.15.2(debug@4.3.4)
+ follow-redirects: 1.15.2
form-data: 4.0.0
transitivePeerDependencies:
- debug
@@ -4619,7 +4590,6 @@ packages:
/character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
- dev: true
/character-reference-invalid@1.1.4:
resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
@@ -5182,7 +5152,7 @@ packages:
engines: {node: '>=14'}
dependencies:
'@cspell/cspell-service-bus': 6.31.1
- node-fetch: 2.6.9(encoding@0.1.13)
+ node-fetch: 2.6.9
transitivePeerDependencies:
- encoding
dev: true
@@ -5294,10 +5264,6 @@ packages:
resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
dev: true
- /csstype@3.1.2:
- resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
- dev: false
-
/cypress-image-snapshot@4.0.1(cypress@12.10.0)(jest@29.5.0):
resolution: {integrity: sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q==}
engines: {node: '>=8'}
@@ -5731,6 +5697,17 @@ packages:
ms: 2.1.2
dev: true
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
/debug@4.3.4(supports-color@8.1.1):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -5770,7 +5747,6 @@ packages:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
dependencies:
character-entities: 2.0.2
- dev: true
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
@@ -5850,7 +5826,6 @@ packages:
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
- dev: true
/destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
@@ -5879,7 +5854,6 @@ packages:
/diff@5.1.0:
resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
engines: {node: '>=0.3.1'}
- dev: true
/dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
@@ -6210,7 +6184,7 @@ packages:
'@es-joy/jsdoccomment': 0.37.1
are-docs-informative: 0.0.2
comment-parser: 1.3.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
escape-string-regexp: 4.0.0
eslint: 8.39.0
esquery: 1.5.0
@@ -6328,7 +6302,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.0
@@ -6792,7 +6766,7 @@ packages:
dependencies:
chalk: 4.1.2
commander: 5.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -6840,7 +6814,7 @@ packages:
resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==}
dev: true
- /follow-redirects@1.15.2(debug@4.3.4):
+ /follow-redirects@1.15.2:
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
engines: {node: '>=4.0'}
peerDependencies:
@@ -6848,8 +6822,6 @@ packages:
peerDependenciesMeta:
debug:
optional: true
- dependencies:
- debug: 4.3.4(supports-color@8.1.1)
dev: true
/foreground-child@2.0.0:
@@ -7050,7 +7022,7 @@ packages:
dependencies:
'@tootallnate/once': 1.1.2
data-uri-to-buffer: 3.0.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
file-uri-to-path: 2.0.0
fs-extra: 8.1.0
ftp: 0.3.10
@@ -7378,7 +7350,7 @@ packages:
dependencies:
'@tootallnate/once': 1.1.2
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -7389,7 +7361,7 @@ packages:
dependencies:
'@tootallnate/once': 2.0.0
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -7418,7 +7390,7 @@ packages:
engines: {node: '>=8.0.0'}
dependencies:
eventemitter3: 4.0.7
- follow-redirects: 1.15.2(debug@4.3.4)
+ follow-redirects: 1.15.2
requires-port: 1.0.0
transitivePeerDependencies:
- debug
@@ -7455,7 +7427,7 @@ packages:
engines: {node: '>= 6'}
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -7828,7 +7800,7 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
istanbul-lib-coverage: 3.2.0
source-map: 0.6.1
transitivePeerDependencies:
@@ -8354,6 +8326,7 @@ packages:
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
/js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
@@ -8551,7 +8524,6 @@ packages:
/kleur@4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
- dev: true
/ky@0.30.0:
resolution: {integrity: sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog==}
@@ -8633,7 +8605,7 @@ packages:
chalk: 5.2.0
cli-truncate: 3.1.0
commander: 10.0.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
execa: 7.1.1
lilconfig: 2.1.0
listr2: 5.0.8
@@ -8806,12 +8778,6 @@ packages:
resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==}
dev: true
- /loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
- dependencies:
- js-tokens: 4.0.0
-
/loupe@2.3.6:
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
dependencies:
@@ -8941,14 +8907,14 @@ packages:
- supports-color
dev: true
- /mdast-util-from-markdown@1.2.0:
- resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==}
+ /mdast-util-from-markdown@1.3.0:
+ resolution: {integrity: sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==}
dependencies:
'@types/mdast': 3.0.11
'@types/unist': 2.0.6
decode-named-character-reference: 1.0.2
mdast-util-to-string: 3.1.0
- micromark: 3.0.10
+ micromark: 3.1.0
micromark-util-decode-numeric-character-reference: 1.0.0
micromark-util-decode-string: 1.0.2
micromark-util-normalize-identifier: 1.0.0
@@ -8958,7 +8924,6 @@ packages:
uvu: 0.5.6
transitivePeerDependencies:
- supports-color
- dev: true
/mdast-util-frontmatter@1.0.0:
resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==}
@@ -8995,7 +8960,7 @@ packages:
dependencies:
'@types/mdast': 3.0.11
markdown-table: 3.0.3
- mdast-util-from-markdown: 1.2.0
+ mdast-util-from-markdown: 1.3.0
mdast-util-to-markdown: 1.3.0
transitivePeerDependencies:
- supports-color
@@ -9011,7 +8976,7 @@ packages:
/mdast-util-gfm@2.0.1:
resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==}
dependencies:
- mdast-util-from-markdown: 1.2.0
+ mdast-util-from-markdown: 1.3.0
mdast-util-gfm-autolink-literal: 1.0.2
mdast-util-gfm-footnote: 1.0.1
mdast-util-gfm-strikethrough: 1.0.2
@@ -9040,7 +9005,6 @@ packages:
/mdast-util-to-string@3.1.0:
resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==}
- dev: true
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
@@ -9134,7 +9098,6 @@ packages:
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
uvu: 0.5.6
- dev: true
/micromark-extension-frontmatter@1.0.0:
resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==}
@@ -9223,7 +9186,6 @@ packages:
micromark-util-character: 1.1.0
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
- dev: true
/micromark-factory-label@1.0.2:
resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==}
@@ -9232,14 +9194,12 @@ packages:
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
uvu: 0.5.6
- dev: true
/micromark-factory-space@1.0.0:
resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==}
dependencies:
micromark-util-character: 1.1.0
micromark-util-types: 1.0.2
- dev: true
/micromark-factory-title@1.0.2:
resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==}
@@ -9249,7 +9209,6 @@ packages:
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
uvu: 0.5.6
- dev: true
/micromark-factory-whitespace@1.0.0:
resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==}
@@ -9258,20 +9217,17 @@ packages:
micromark-util-character: 1.1.0
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
- dev: true
/micromark-util-character@1.1.0:
resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==}
dependencies:
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
- dev: true
/micromark-util-chunked@1.0.0:
resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==}
dependencies:
micromark-util-symbol: 1.0.1
- dev: true
/micromark-util-classify-character@1.0.0:
resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==}
@@ -9279,20 +9235,17 @@ packages:
micromark-util-character: 1.1.0
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
- dev: true
/micromark-util-combine-extensions@1.0.0:
resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==}
dependencies:
micromark-util-chunked: 1.0.0
micromark-util-types: 1.0.2
- dev: true
/micromark-util-decode-numeric-character-reference@1.0.0:
resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==}
dependencies:
micromark-util-symbol: 1.0.1
- dev: true
/micromark-util-decode-string@1.0.2:
resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==}
@@ -9301,27 +9254,22 @@ packages:
micromark-util-character: 1.1.0
micromark-util-decode-numeric-character-reference: 1.0.0
micromark-util-symbol: 1.0.1
- dev: true
/micromark-util-encode@1.0.1:
resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==}
- dev: true
/micromark-util-html-tag-name@1.1.0:
resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==}
- dev: true
/micromark-util-normalize-identifier@1.0.0:
resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==}
dependencies:
micromark-util-symbol: 1.0.1
- dev: true
/micromark-util-resolve-all@1.0.0:
resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==}
dependencies:
micromark-util-types: 1.0.2
- dev: true
/micromark-util-sanitize-uri@1.0.0:
resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==}
@@ -9329,7 +9277,6 @@ packages:
micromark-util-character: 1.1.0
micromark-util-encode: 1.0.1
micromark-util-symbol: 1.0.1
- dev: true
/micromark-util-subtokenize@1.0.2:
resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==}
@@ -9338,30 +9285,27 @@ packages:
micromark-util-symbol: 1.0.1
micromark-util-types: 1.0.2
uvu: 0.5.6
- dev: true
/micromark-util-symbol@1.0.1:
resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==}
- dev: true
/micromark-util-types@1.0.2:
resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==}
- dev: true
/micromark@2.11.4:
resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
dev: true
- /micromark@3.0.10:
- resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==}
+ /micromark@3.1.0:
+ resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==}
dependencies:
'@types/debug': 4.1.7
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
decode-named-character-reference: 1.0.2
micromark-core-commonmark: 1.0.6
micromark-factory-space: 1.0.0
@@ -9379,7 +9323,6 @@ packages:
uvu: 0.5.6
transitivePeerDependencies:
- supports-color
- dev: true
/micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
@@ -9501,7 +9444,6 @@ packages:
/mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
- dev: true
/mrmime@1.0.1:
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
@@ -9514,7 +9456,6 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- dev: true
/ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -9580,6 +9521,18 @@ packages:
whatwg-url: 5.0.0
dev: true
+ /node-fetch@2.6.9:
+ resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: true
+
/node-fetch@2.6.9(encoding@0.1.13):
resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==}
engines: {node: 4.x || >=6.0.0}
@@ -9679,6 +9632,7 @@ packages:
/object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
+ dev: true
/object-inspect@1.12.2:
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
@@ -9872,7 +9826,7 @@ packages:
dependencies:
'@tootallnate/once': 1.1.2
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
get-uri: 3.0.2
http-proxy-agent: 4.0.1
https-proxy-agent: 5.0.1
@@ -10168,7 +10122,7 @@ packages:
dependencies:
binary-searching: 2.0.5
comment-parser: 1.3.1
- mdast-util-from-markdown: 1.2.0
+ mdast-util-from-markdown: 1.3.0
prettier: 2.8.8
transitivePeerDependencies:
- supports-color
@@ -10219,13 +10173,6 @@ packages:
sisteransi: 1.0.5
dev: true
- /prop-types@15.8.1:
- resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
-
/proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@@ -10239,7 +10186,7 @@ packages:
engines: {node: '>= 8'}
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
http-proxy-agent: 4.0.1
https-proxy-agent: 5.0.1
lru-cache: 5.1.1
@@ -10351,20 +10298,6 @@ packages:
unpipe: 1.0.0
dev: true
- /react-dom@16.14.0(react@16.14.0):
- resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==}
- peerDependencies:
- react: ^16.14.0
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- prop-types: 15.8.1
- react: 16.14.0
- scheduler: 0.19.1
-
- /react-is@16.13.1:
- resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
-
/react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
dev: true
@@ -10373,14 +10306,6 @@ packages:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
dev: true
- /react@16.14.0:
- resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==}
- engines: {node: '>=0.10.0'}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- prop-types: 15.8.1
-
/read-pkg-up@7.0.1:
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
engines: {node: '>=8'}
@@ -10519,7 +10444,7 @@ packages:
resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==}
dependencies:
'@types/mdast': 3.0.11
- mdast-util-from-markdown: 1.2.0
+ mdast-util-from-markdown: 1.3.0
unified: 10.1.2
transitivePeerDependencies:
- supports-color
@@ -10761,7 +10686,6 @@ packages:
engines: {node: '>=6'}
dependencies:
mri: 1.2.0
- dev: true
/safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
@@ -10800,12 +10724,6 @@ packages:
xmlchars: 2.2.0
dev: true
- /scheduler@0.19.1:
- resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
-
/schema-utils@3.1.1:
resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==}
engines: {node: '>= 10.13.0'}
@@ -11076,7 +10994,7 @@ packages:
engines: {node: '>= 6'}
dependencies:
agent-base: 6.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
socks: 2.7.0
transitivePeerDependencies:
- supports-color
@@ -11174,7 +11092,7 @@ packages:
/spdy-transport@3.0.0:
resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
detect-node: 2.1.0
hpack.js: 2.1.6
obuf: 1.1.2
@@ -11188,7 +11106,7 @@ packages:
resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
engines: {node: '>=6.0.0'}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
handle-thing: 2.0.1
http-deceiver: 1.2.7
select-hose: 2.0.0
@@ -11252,7 +11170,7 @@ packages:
arg: 5.0.2
bluebird: 3.7.2
check-more-types: 2.24.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
execa: 5.1.1
lazy-ass: 1.6.0
ps-tree: 1.2.0
@@ -11470,7 +11388,7 @@ packages:
iterm2-version: 4.2.0
dev: true
- /terser-webpack-plugin@5.3.6(esbuild@0.17.18)(webpack@5.75.0):
+ /terser-webpack-plugin@5.3.6(webpack@5.75.0):
resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@@ -11487,12 +11405,11 @@ packages:
optional: true
dependencies:
'@jridgewell/trace-mapping': 0.3.15
- esbuild: 0.17.18
jest-worker: 27.5.1
schema-utils: 3.1.1
serialize-javascript: 6.0.0
terser: 5.15.1
- webpack: 5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0)
+ webpack: 5.75.0(webpack-cli@4.10.0)
dev: true
/terser@5.15.1:
@@ -11899,7 +11816,6 @@ packages:
resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==}
dependencies:
'@types/unist': 2.0.6
- dev: true
/unist-util-visit-parents@5.1.1:
resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==}
@@ -11999,7 +11915,6 @@ packages:
diff: 5.1.0
kleur: 4.1.5
sade: 1.8.1
- dev: true
/v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
@@ -12057,7 +11972,7 @@ packages:
hasBin: true
dependencies:
cac: 6.7.14
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
mlly: 1.2.0
pathe: 1.1.0
picocolors: 1.0.0
@@ -12072,7 +11987,7 @@ packages:
- terser
dev: true
- /vite@4.2.2(@types/node@18.16.0):
+ /vite@4.2.2:
resolution: {integrity: sha512-PcNtT5HeDxb3QaSqFYkEum8f5sCVe0R3WK20qxgIvNBZPXU/Obxs/+ubBMeE7nLWeCo2LDzv+8hRYSlcaSehig==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
@@ -12097,7 +12012,6 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 18.16.0
esbuild: 0.17.18
postcss: 8.4.21
resolve: 1.22.1
@@ -12152,16 +12066,16 @@ packages:
flexsearch: 0.7.31
glob-to-regexp: 0.4.1
markdown-it: 13.0.1
- vitepress: 1.0.0-alpha.72(@algolia/client-search@4.14.2)(@types/node@18.16.0)(react-dom@16.14.0)(react@16.14.0)
+ vitepress: 1.0.0-alpha.72(@algolia/client-search@4.14.2)
vue: 3.2.47
dev: true
- /vitepress@1.0.0-alpha.72(@algolia/client-search@4.14.2)(@types/node@18.16.0)(react-dom@16.14.0)(react@16.14.0):
+ /vitepress@1.0.0-alpha.72(@algolia/client-search@4.14.2):
resolution: {integrity: sha512-Ou7fNE/OVYLrKGQMHSTVG6AcNsdv7tm4ACrdhx93SPMzEDj8UgIb4RFa5CTTowaYf3jeDGi2EAJlzXVC+IE3dg==}
hasBin: true
dependencies:
'@docsearch/css': 3.3.3
- '@docsearch/js': 3.3.3(@algolia/client-search@4.14.2)(react-dom@16.14.0)(react@16.14.0)
+ '@docsearch/js': 3.3.3(@algolia/client-search@4.14.2)
'@vitejs/plugin-vue': 4.1.0(vite@4.2.2)(vue@3.2.47)
'@vue/devtools-api': 6.5.0
'@vueuse/core': 10.0.2(vue@3.2.47)
@@ -12169,7 +12083,7 @@ packages:
mark.js: 8.11.1
minisearch: 6.0.1
shiki: 0.14.1
- vite: 4.2.2(@types/node@18.16.0)
+ vite: 4.2.2
vue: 3.2.47
transitivePeerDependencies:
- '@algolia/client-search'
@@ -12230,7 +12144,7 @@ packages:
cac: 6.7.14
chai: 4.3.7
concordance: 5.0.4
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4
jsdom: 21.1.1
local-pkg: 0.4.3
magic-string: 0.30.0
@@ -12445,7 +12359,7 @@ packages:
import-local: 3.1.0
interpret: 2.2.0
rechoir: 0.7.1
- webpack: 5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0)
+ webpack: 5.75.0(webpack-cli@4.10.0)
webpack-dev-server: 4.11.1(webpack-cli@4.10.0)(webpack@5.75.0)
webpack-merge: 5.8.0
dev: true
@@ -12461,7 +12375,7 @@ packages:
mime-types: 2.1.35
range-parser: 1.2.1
schema-utils: 4.0.0
- webpack: 5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0)
+ webpack: 5.75.0(webpack-cli@4.10.0)
dev: true
/webpack-dev-server@4.11.1(webpack-cli@4.10.0)(webpack@5.75.0):
@@ -12502,7 +12416,7 @@ packages:
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
- webpack: 5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0)
+ webpack: 5.75.0(webpack-cli@4.10.0)
webpack-cli: 4.10.0(webpack-dev-server@4.11.1)(webpack@5.75.0)
webpack-dev-middleware: 5.3.3(webpack@5.75.0)
ws: 8.9.0
@@ -12526,7 +12440,7 @@ packages:
engines: {node: '>=10.13.0'}
dev: true
- /webpack@5.75.0(esbuild@0.17.18)(webpack-cli@4.10.0):
+ /webpack@5.75.0(webpack-cli@4.10.0):
resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==}
engines: {node: '>=10.13.0'}
hasBin: true
@@ -12557,7 +12471,7 @@ packages:
neo-async: 2.6.2
schema-utils: 3.1.1
tapable: 2.2.1
- terser-webpack-plugin: 5.3.6(esbuild@0.17.18)(webpack@5.75.0)
+ terser-webpack-plugin: 5.3.6(webpack@5.75.0)
watchpack: 2.4.0
webpack-cli: 4.10.0(webpack-dev-server@4.11.1)(webpack@5.75.0)
webpack-sources: 3.2.3