From eea861a33ed19f23122b57226bc9e354c3261519 Mon Sep 17 00:00:00 2001 From: Tilman Vatteroth Date: Fri, 9 Sep 2022 23:13:10 +0200 Subject: [PATCH] Remove markmap Signed-off-by: Tilman Vatteroth --- CHANGELOG.md | 1 - cypress/e2e/diagrams.spec.ts | 8 - locales/en.json | 4 - package.json | 3 - renovate.json | 8 - .../hooks/use-markdown-extensions.ts | 5 +- .../markmap/markmap-frame.tsx | 83 --- .../markmap/markmap-loader.ts | 21 - .../markmap/markmap-markdown-extension.ts | 19 - src/external-types/markmap-lib/index.d.ts | 9 - .../private/notes/features/index.ts | 2 +- yarn.lock | 682 +----------------- 12 files changed, 38 insertions(+), 807 deletions(-) delete mode 100644 src/components/markdown-renderer/markdown-extension/markmap/markmap-frame.tsx delete mode 100644 src/components/markdown-renderer/markdown-extension/markmap/markmap-loader.ts delete mode 100644 src/components/markdown-renderer/markdown-extension/markmap/markmap-markdown-extension.ts delete mode 100644 src/external-types/markmap-lib/index.d.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e58bf521..ae32a1deb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,7 +57,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 - Added shortcodes for [fork-awesome icons](https://forkaweso.me/Fork-Awesome/icons/) (e.g. `:fa-picture-o:`) - The code button now adds code fences even if the user selected nothing beforehand - Code blocks with 'csv' as language render as tables. -- Code blocks with 'markmap' are rendered as a mind map (see [the projects website](https://markmap.js.org/repl)). - All images can be clicked to show them in full screen. - Code blocks have a 'Copy code to clipboard' button. - Code blocks with 'vega-lite' as language are rendered as [vega-lite diagrams](https://vega.github.io/vega-lite/examples/). diff --git a/cypress/e2e/diagrams.spec.ts b/cypress/e2e/diagrams.spec.ts index a682436e3..e11b448ba 100644 --- a/cypress/e2e/diagrams.spec.ts +++ b/cypress/e2e/diagrams.spec.ts @@ -9,14 +9,6 @@ describe('Diagram codeblock ', () => { cy.visitTestNote() }) - /* - TODO: Readd test after fixing https://github.com/hedgedoc/react-client/issues/1709 - it('renders markmap', () => { - cy.setCodemirrorContent('```markmap\n- pro\n- contra\n```') - cy.getMarkdownBody().findByCypressId('markmap').children().should('be.visible') - }) - */ - it('renders mermaid', () => { cy.setCodemirrorContent('```mermaid\ngraph TD;\n A-->B;\n```') cy.getMarkdownBody().findByCypressId('mermaid-frame').children().should('be.visible') diff --git a/locales/en.json b/locales/en.json index 2ba77f611..3f7e98da6 100644 --- a/locales/en.json +++ b/locales/en.json @@ -12,10 +12,6 @@ "highlightCode": { "copyCode": "Copy code to clipboard" }, - "markmap": { - "locked": "Mouse input locked", - "unlocked": "Mouse input unlocked" - }, "plantuml": { "notConfigured": "PlantUML plugin is enabled but not properly configured." }, diff --git a/package.json b/package.json index fd19059db..4b2b12838 100644 --- a/package.json +++ b/package.json @@ -102,9 +102,6 @@ "markdown-it-sup": "1.0.0", "markdown-it-task-lists": "2.1.1", "markdown-it-toc-done-right": "4.2.0", - "markmap-common": "0.13.4", - "markmap-lib": "0.13.5", - "markmap-view": "0.13.5", "mermaid": "9.1.6", "next": "12.3.0", "react": "18.2.0", diff --git a/renovate.json b/renovate.json index 859cd7792..59a1808e5 100644 --- a/renovate.json +++ b/renovate.json @@ -55,14 +55,6 @@ "vega-lite" ] }, - { - "groupName": "markmap", - "matchPackagePatterns": [ - "markmap-view", - "markmap-lib", - "markmap-common" - ] - }, { "groupName": "vega", "packagePatterns": [ diff --git a/src/components/markdown-renderer/hooks/use-markdown-extensions.ts b/src/components/markdown-renderer/hooks/use-markdown-extensions.ts index ede8ac9ba..377d113bc 100644 --- a/src/components/markdown-renderer/hooks/use-markdown-extensions.ts +++ b/src/components/markdown-renderer/hooks/use-markdown-extensions.ts @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ @@ -8,8 +8,6 @@ import type { MutableRefObject } from 'react' import { useMemo, useRef } from 'react' import { TableOfContentsMarkdownExtension } from '../markdown-extension/table-of-contents-markdown-extension' import { VegaLiteMarkdownExtension } from '../markdown-extension/vega-lite/vega-lite-markdown-extension' -//TODO: fix dependency issues in markmap -//import { MarkmapMarkdownExtension } from '../markdown-extension/markmap/markmap-markdown-extension' import { LinemarkerMarkdownExtension } from '../markdown-extension/linemarker/linemarker-markdown-extension' import { GistMarkdownExtension } from '../markdown-extension/gist/gist-markdown-extension' import { YoutubeMarkdownExtension } from '../markdown-extension/youtube/youtube-markdown-extension' @@ -70,7 +68,6 @@ export const useMarkdownExtensions = ( new TableOfContentsMarkdownExtension((ast?: TocAst) => (toc.current = ast)), ...additionalExtensions, new VegaLiteMarkdownExtension(), - // new MarkmapMarkdownExtension(), new LinemarkerMarkdownExtension( currentLineMarkers ? (lineMarkers) => (currentLineMarkers.current = lineMarkers) : undefined ), diff --git a/src/components/markdown-renderer/markdown-extension/markmap/markmap-frame.tsx b/src/components/markdown-renderer/markdown-extension/markmap/markmap-frame.tsx deleted file mode 100644 index d2cd1cb93..000000000 --- a/src/components/markdown-renderer/markdown-extension/markmap/markmap-frame.tsx +++ /dev/null @@ -1,83 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) - * - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import React, { useEffect, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { LockButton } from '../../../common/lock-button/lock-button' -import { Logger } from '../../../../utils/logger' -import { cypressId } from '../../../../utils/cypress-attribute' -import type { CodeProps } from '../../replace-components/code-block-component-replacer' - -const log = new Logger('MarkmapFrame') - -const blockHandler = (event: Event): void => { - event.stopPropagation() -} - -/** - * Renders a markmap diagram. - * - * @param code The code for the diagram. - * @see https://markmap.js.org/ - */ -export const MarkmapFrame: React.FC = ({ code }) => { - const { t } = useTranslation() - const diagramContainer = useRef(null) - const [disablePanAndZoom, setDisablePanAndZoom] = useState(true) - - useEffect(() => { - if (diagramContainer.current) { - if (disablePanAndZoom) { - diagramContainer.current.addEventListener('wheel', blockHandler, true) - diagramContainer.current.addEventListener('mousedown', blockHandler, true) - diagramContainer.current.addEventListener('click', blockHandler, true) - diagramContainer.current.addEventListener('dblclick', blockHandler, true) - diagramContainer.current.addEventListener('touchstart', blockHandler, true) - } else { - diagramContainer.current.removeEventListener('wheel', blockHandler, true) - diagramContainer.current.removeEventListener('mousedown', blockHandler, true) - diagramContainer.current.removeEventListener('click', blockHandler, true) - diagramContainer.current.removeEventListener('dblclick', blockHandler, true) - diagramContainer.current.removeEventListener('touchstart', blockHandler, true) - } - } - }, [diagramContainer, disablePanAndZoom]) - - useEffect(() => { - if (!diagramContainer.current) { - return - } - const actualContainer = diagramContainer.current - import(/* webpackChunkName: "markmap" */ './markmap-loader') - .then(({ markmapLoader }) => { - try { - const svg: SVGSVGElement = document.createElementNS('http://www.w3.org/2000/svg', 'svg') - svg.setAttribute('width', '100%') - actualContainer.querySelectorAll('svg').forEach((child) => child.remove()) - actualContainer.appendChild(svg) - markmapLoader(svg, code) - } catch (error) { - log.error(error) - } - }) - .catch((error: Error) => { - log.error('Error while loading markmap', error) - }) - }, [code]) - - return ( -
-
-
- setDisablePanAndZoom(newState)} - title={disablePanAndZoom ? t('renderer.markmap.locked') : t('renderer.markmap.unlocked')} - /> -
-
- ) -} diff --git a/src/components/markdown-renderer/markdown-extension/markmap/markmap-loader.ts b/src/components/markdown-renderer/markdown-extension/markmap/markmap-loader.ts deleted file mode 100644 index 442ebbb1d..000000000 --- a/src/components/markdown-renderer/markdown-extension/markmap/markmap-loader.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file) - * - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import { Transformer } from 'markmap-lib/dist/index.esm' -import { Markmap } from 'markmap-view' - -const transformer: Transformer = new Transformer() - -/** - * Renders the given markdown code into the given Dom element using {@link Markmap markmap}. - * - * @param svg The dom element to render into. - * @param code The diagram code. - */ -export const markmapLoader = (svg: SVGSVGElement, code: string): void => { - const { root } = transformer.transform(code) - Markmap.create(svg, {}, root) -} diff --git a/src/components/markdown-renderer/markdown-extension/markmap/markmap-markdown-extension.ts b/src/components/markdown-renderer/markdown-extension/markmap/markmap-markdown-extension.ts deleted file mode 100644 index 2d07b09d5..000000000 --- a/src/components/markdown-renderer/markdown-extension/markmap/markmap-markdown-extension.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) - * - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import { CodeBlockComponentReplacer } from '../../replace-components/code-block-component-replacer' -import type { ComponentReplacer } from '../../replace-components/component-replacer' -import { MarkmapFrame } from './markmap-frame' -import { CodeBlockMarkdownExtension } from '../code-block-markdown-extension/code-block-markdown-extension' - -/** - * Adds support for markmap to the markdown rendering using code fences with "markmap" as language. - */ -export class MarkmapMarkdownExtension extends CodeBlockMarkdownExtension { - public buildReplacers(): ComponentReplacer[] { - return [new CodeBlockComponentReplacer(MarkmapFrame, 'markmap')] - } -} diff --git a/src/external-types/markmap-lib/index.d.ts b/src/external-types/markmap-lib/index.d.ts deleted file mode 100644 index 392a025bb..000000000 --- a/src/external-types/markmap-lib/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) - * - * SPDX-License-Identifier: AGPL-3.0-only - */ - -declare module 'markmap-lib/dist/index.esm' { - export * from 'markmap-lib' -} diff --git a/src/pages/api/mock-backend/private/notes/features/index.ts b/src/pages/api/mock-backend/private/notes/features/index.ts index cb296bea7..21cd99849 100644 --- a/src/pages/api/mock-backend/private/notes/features/index.ts +++ b/src/pages/api/mock-backend/private/notes/features/index.ts @@ -11,7 +11,7 @@ import type { Note } from '../../../../../../api/notes/types' const handler = (req: NextApiRequest, res: NextApiResponse): void => { respondToMatchingRequest(HttpMethod.GET, req, res, { content: - '---\ntitle: Features\ndescription: Many features, such wow!\nrobots: noindex\ntags:\n - hedgedoc\n - demo\n - react\nopengraph:\n title: Features\n---\n# Embedding demo\n[TOC]\n\n## markmap\n\n\n```markmap\n# MarkMap\n\n## Pro\n\n### written in typescript\n\n## Cons\n\n### must redeclare types\n```\n\n## Vega-Lite\n\n```vega-lite\n\n{\n "$schema": "https://vega.github.io/schema/vega-lite/v5.json",\n "description": "Reproducing http://robslink.com/SAS/democd91/pyramid_pie.htm",\n "data": {\n "values": [\n {"category": "Sky", "value": 75, "order": 3},\n {"category": "Shady side of a pyramid", "value": 10, "order": 1},\n {"category": "Sunny side of a pyramid", "value": 15, "order": 2}\n ]\n },\n "mark": {"type": "arc", "outerRadius": 80},\n "encoding": {\n "theta": {\n "field": "value", "type": "quantitative",\n "scale": {"range": [2.35619449, 8.639379797]},\n "stack": true\n },\n "color": {\n "field": "category", "type": "nominal",\n "scale": {\n "domain": ["Sky", "Shady side of a pyramid", "Sunny side of a pyramid"],\n "range": ["#416D9D", "#674028", "#DEAC58"]\n },\n "legend": {\n "orient": "none",\n "title": null,\n "columns": 1,\n "legendX": 200,\n "legendY": 80\n }\n },\n "order": {\n "field": "order"\n }\n },\n "view": {"stroke": null}\n}\n\n\n```\n\n## GraphViz\n\n```graphviz\ngraph {\n a -- b\n a -- b\n b -- a [color=blue]\n}\n```\n\n```graphviz\ndigraph structs {\n node [shape=record];\n struct1 [label=" left| mid\ dle| right"];\n struct2 [label=" one| two"];\n struct3 [label="hello\nworld |{ b |{c| d|e}| f}| g | h"];\n struct1:f1 -> struct2:f0;\n struct1:f2 -> struct3:here;\n}\n```\n\n```graphviz\ndigraph G {\n main -> parse -> execute;\n main -> init;\n main -> cleanup;\n execute -> make_string;\n execute -> printf\n init -> make_string;\n main -> printf;\n execute -> compare;\n}\n```\n\n```graphviz\ndigraph D {\n node [fontname="Arial"];\n node_A [shape=record label="shape=record|{above|middle|below}|right"];\n node_B [shape=plaintext label="shape=plaintext|{curly|braces and|bars without}|effect"];\n}\n```\n\n```graphviz\ndigraph D {\n A -> {B, C, D} -> {F}\n}\n```\n\n## High Res Image\n\n![Wheat Field with Cypresses](/mock-public/img/highres.jpg)\n\n## Sequence Diagram (deprecated)\n\n```sequence\nTitle: Here is a title\nnote over A: asdd\nA->B: Normal line\nB-->C: Dashed line\nC->>D: Open arrow\nD-->>A: Dashed open arrow\nparticipant IOOO\n```\n\n## Mermaid\n\n```mermaid\ngantt\n title A Gantt Diagram\n\n section Section\n A task: a1, 2014-01-01, 30d\n Another task: after a1, 20d\n\n section Another\n Task in sec: 2014-01-12, 12d\n Another task: 24d\n```\n\n## Flowchart\n\n```flow\nst=>start: Start\ne=>end: End\nop=>operation: My Operation\nop2=>operation: lalala\ncond=>condition: Yes or No?\n\nst->op->op2->cond\ncond(yes)->e\ncond(no)->op2\n```\n\n## ABC\n\n```abc\nX:1\nT:Speed the Plough\nM:4/4\nC:Trad.\nK:G\n|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA|\nGABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|\n|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df|\ng2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|\n```\n\n## CSV\n\n```csv delimiter=; header\nUsername; Identifier;First name;Last name\n"booker12; rbooker";9012;Rachel;Booker\ngrey07;2070;Laura;Grey\njohnson81;4081;Craig;Johnson\njenkins46;9346;Mary;Jenkins\nsmith79;5079;Jamie;Smith\n```\n\n## some plain text\n\nLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\n\n## KaTeX\nYou can render *LaTeX* mathematical expressions using **KaTeX**, as on [math.stackexchange.com](https://math.stackexchange.com/):\n\nThe *Gamma function* satisfying $\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N$ is via the Euler integral\n\n$$\nx = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}.\n$$\n\n$$\n\\Gamma(z) = \\int_0^\\infty t^{z-1}e^{-t}dt\\,.\n$$\n\n> More information about **LaTeX** mathematical expressions [here](https://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference).\n\n## Blockquote\n> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\n> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\n> [color=red] [name=John Doe] [time=2020-06-21 22:50]\n\n## Slideshare\n{%slideshare mazlan1/internet-of-things-the-tip-of-an-iceberg %}\n\n## Gist\nhttps://gist.github.com/schacon/1\n\n## YouTube\nhttps://www.youtube.com/watch?v=YE7VzlLtp-4\n\n## Vimeo\nhttps://vimeo.com/23237102\n\n## Asciinema\nhttps://asciinema.org/a/117928\n\n## PDF\n{%pdf https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf %}\n\n## Code highlighting\n```js=\nvar s = "JavaScript syntax highlighting";\nalert(s);\nfunction $initHighlight(block, cls) {\n try {\n if (cls.search(/\\bno\\-highlight\\b/) != -1)\n return process(block, true, 0x0F) +\n \' class=""\';\n } catch (e) {\n /* handle exception */\n }\n for (var i = 0 / 2; i < classes.length; i++) {\n if (checkCondition(classes[i]) === undefined)\n return /\\d+[\\s/]/g;\n }\n}\n```\n\n## PlantUML\n```plantuml\n@startuml\nparticipant Alice\nparticipant "The **Famous** Bob" as Bob\n\nAlice -> Bob : hello --there--\n... Some ~~long delay~~ ...\nBob -> Alice : ok\nnote left\n This is **bold**\n This is //italics//\n This is ""monospaced""\n This is --stroked--\n This is __underlined__\n This is ~~waved~~\nend note\n\nAlice -> Bob : A //well formatted// message\nnote right of Alice\n This is displayed\n __left of__ Alice.\nend note\nnote left of Bob\n This is displayed\n **left of Alice Bob**.\nend note\nnote over Alice, Bob\n This is hosted by \nend note\n@enduml\n```\n\n## ToDo List\n\n- [ ] ToDos\n - [X] Buy some salad\n - [ ] Brush teeth\n - [x] Drink some water\n - [ ] **Click my box** and see the source code, if you\'re allowed to edit!\n\n', + '---\ntitle: Features\ndescription: Many features, such wow!\nrobots: noindex\ntags:\n - hedgedoc\n - demo\n - react\nopengraph:\n title: Features\n---\n# Embedding demo\n[TOC]\n\n## Vega-Lite\n\n```vega-lite\n\n{\n "$schema": "https://vega.github.io/schema/vega-lite/v5.json",\n "description": "Reproducing http://robslink.com/SAS/democd91/pyramid_pie.htm",\n "data": {\n "values": [\n {"category": "Sky", "value": 75, "order": 3},\n {"category": "Shady side of a pyramid", "value": 10, "order": 1},\n {"category": "Sunny side of a pyramid", "value": 15, "order": 2}\n ]\n },\n "mark": {"type": "arc", "outerRadius": 80},\n "encoding": {\n "theta": {\n "field": "value", "type": "quantitative",\n "scale": {"range": [2.35619449, 8.639379797]},\n "stack": true\n },\n "color": {\n "field": "category", "type": "nominal",\n "scale": {\n "domain": ["Sky", "Shady side of a pyramid", "Sunny side of a pyramid"],\n "range": ["#416D9D", "#674028", "#DEAC58"]\n },\n "legend": {\n "orient": "none",\n "title": null,\n "columns": 1,\n "legendX": 200,\n "legendY": 80\n }\n },\n "order": {\n "field": "order"\n }\n },\n "view": {"stroke": null}\n}\n\n\n```\n\n## GraphViz\n\n```graphviz\ngraph {\n a -- b\n a -- b\n b -- a [color=blue]\n}\n```\n\n```graphviz\ndigraph structs {\n node [shape=record];\n struct1 [label=" left| mid\ dle| right"];\n struct2 [label=" one| two"];\n struct3 [label="hello\nworld |{ b |{c| d|e}| f}| g | h"];\n struct1:f1 -> struct2:f0;\n struct1:f2 -> struct3:here;\n}\n```\n\n```graphviz\ndigraph G {\n main -> parse -> execute;\n main -> init;\n main -> cleanup;\n execute -> make_string;\n execute -> printf\n init -> make_string;\n main -> printf;\n execute -> compare;\n}\n```\n\n```graphviz\ndigraph D {\n node [fontname="Arial"];\n node_A [shape=record label="shape=record|{above|middle|below}|right"];\n node_B [shape=plaintext label="shape=plaintext|{curly|braces and|bars without}|effect"];\n}\n```\n\n```graphviz\ndigraph D {\n A -> {B, C, D} -> {F}\n}\n```\n\n## High Res Image\n\n![Wheat Field with Cypresses](/mock-public/img/highres.jpg)\n\n## Sequence Diagram (deprecated)\n\n```sequence\nTitle: Here is a title\nnote over A: asdd\nA->B: Normal line\nB-->C: Dashed line\nC->>D: Open arrow\nD-->>A: Dashed open arrow\nparticipant IOOO\n```\n\n## Mermaid\n\n```mermaid\ngantt\n title A Gantt Diagram\n\n section Section\n A task: a1, 2014-01-01, 30d\n Another task: after a1, 20d\n\n section Another\n Task in sec: 2014-01-12, 12d\n Another task: 24d\n```\n\n## Flowchart\n\n```flow\nst=>start: Start\ne=>end: End\nop=>operation: My Operation\nop2=>operation: lalala\ncond=>condition: Yes or No?\n\nst->op->op2->cond\ncond(yes)->e\ncond(no)->op2\n```\n\n## ABC\n\n```abc\nX:1\nT:Speed the Plough\nM:4/4\nC:Trad.\nK:G\n|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA|\nGABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|\n|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df|\ng2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|\n```\n\n## CSV\n\n```csv delimiter=; header\nUsername; Identifier;First name;Last name\n"booker12; rbooker";9012;Rachel;Booker\ngrey07;2070;Laura;Grey\njohnson81;4081;Craig;Johnson\njenkins46;9346;Mary;Jenkins\nsmith79;5079;Jamie;Smith\n```\n\n## some plain text\n\nLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\n\n## KaTeX\nYou can render *LaTeX* mathematical expressions using **KaTeX**, as on [math.stackexchange.com](https://math.stackexchange.com/):\n\nThe *Gamma function* satisfying $\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N$ is via the Euler integral\n\n$$\nx = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}.\n$$\n\n$$\n\\Gamma(z) = \\int_0^\\infty t^{z-1}e^{-t}dt\\,.\n$$\n\n> More information about **LaTeX** mathematical expressions [here](https://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference).\n\n## Blockquote\n> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\n> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\n> [color=red] [name=John Doe] [time=2020-06-21 22:50]\n\n## Slideshare\n{%slideshare mazlan1/internet-of-things-the-tip-of-an-iceberg %}\n\n## Gist\nhttps://gist.github.com/schacon/1\n\n## YouTube\nhttps://www.youtube.com/watch?v=YE7VzlLtp-4\n\n## Vimeo\nhttps://vimeo.com/23237102\n\n## Asciinema\nhttps://asciinema.org/a/117928\n\n## PDF\n{%pdf https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf %}\n\n## Code highlighting\n```js=\nvar s = "JavaScript syntax highlighting";\nalert(s);\nfunction $initHighlight(block, cls) {\n try {\n if (cls.search(/\\bno\\-highlight\\b/) != -1)\n return process(block, true, 0x0F) +\n \' class=""\';\n } catch (e) {\n /* handle exception */\n }\n for (var i = 0 / 2; i < classes.length; i++) {\n if (checkCondition(classes[i]) === undefined)\n return /\\d+[\\s/]/g;\n }\n}\n```\n\n## PlantUML\n```plantuml\n@startuml\nparticipant Alice\nparticipant "The **Famous** Bob" as Bob\n\nAlice -> Bob : hello --there--\n... Some ~~long delay~~ ...\nBob -> Alice : ok\nnote left\n This is **bold**\n This is //italics//\n This is ""monospaced""\n This is --stroked--\n This is __underlined__\n This is ~~waved~~\nend note\n\nAlice -> Bob : A //well formatted// message\nnote right of Alice\n This is displayed\n __left of__ Alice.\nend note\nnote left of Bob\n This is displayed\n **left of Alice Bob**.\nend note\nnote over Alice, Bob\n This is hosted by \nend note\n@enduml\n```\n\n## ToDo List\n\n- [ ] ToDos\n - [X] Buy some salad\n - [ ] Brush teeth\n - [x] Drink some water\n - [ ] **Click my box** and see the source code, if you\'re allowed to edit!\n\n', metadata: { id: 'exampleId', version: 2, diff --git a/yarn.lock b/yarn.lock index f35167710..7ff093412 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1377,7 +1377,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.19.0 resolution: "@babel/runtime@npm:7.19.0" dependencies: @@ -2017,9 +2017,6 @@ __metadata: markdown-it-sup: 1.0.0 markdown-it-task-lists: 2.1.1 markdown-it-toc-done-right: 4.2.0 - markmap-common: 0.13.4 - markmap-lib: 0.13.5 - markmap-view: 0.13.5 mermaid: 9.1.6 next: 12.3.0 prettier: 2.7.1 @@ -3222,38 +3219,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-array@npm:^2": - version: 2.12.3 - resolution: "@types/d3-array@npm:2.12.3" - checksum: 2b032d169367bb44d9ac43715410642036bbb7c1b4b42664d0fc912ab5368c49bd9bb9b8596cfd68372dec0a84453dff28f6f503df66859aa4ac4b3e2e3ced6b - languageName: node - linkType: hard - -"@types/d3-axis@npm:^2": - version: 2.1.3 - resolution: "@types/d3-axis@npm:2.1.3" - dependencies: - "@types/d3-selection": ^2 - checksum: 43627216884c4fc68af796d73686d6f1d8eec8e27f5a97d9c90477d9790d98dfe9276763c834609659e64010fc435eaec9e6d967fc92fd7375cc4c82e818e663 - languageName: node - linkType: hard - -"@types/d3-brush@npm:^2": - version: 2.1.2 - resolution: "@types/d3-brush@npm:2.1.2" - dependencies: - "@types/d3-selection": ^2 - checksum: 44bb9f845b03380f626ae422d2b2f7f2710b4a28fd8c4539e82567502a14bfab2150cc30726fa03c802ac063ad36f46407eb64596d09e38f19b8546fee942a37 - languageName: node - linkType: hard - -"@types/d3-chord@npm:^2": - version: 2.0.3 - resolution: "@types/d3-chord@npm:2.0.3" - checksum: 65fa5ec389a4c86b9b2dc576fca9a9b5f0c50b2457ca48bce71b1501e08ef1a3448a5405ea2894d45838d38641923625b6282758a4fc5968553dd374bf629876 - languageName: node - linkType: hard - "@types/d3-color@npm:^1": version: 1.4.2 resolution: "@types/d3-color@npm:1.4.2" @@ -3261,92 +3226,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-color@npm:^2": - version: 2.0.3 - resolution: "@types/d3-color@npm:2.0.3" - checksum: b4a963b15f4fe0e7e49b0898df3e51b46392d91c21038b7ec61aef0f13e04bd7bcfebf06c9fad9ee92317c9682a105e18942c9295a7e2715855622d4d6fc415a - languageName: node - linkType: hard - -"@types/d3-contour@npm:^2": - version: 2.0.4 - resolution: "@types/d3-contour@npm:2.0.4" - dependencies: - "@types/d3-array": ^2 - "@types/geojson": "*" - checksum: 73038fa2620cc1e7ec3b8fcbd837755e42a6c2a892c2cfdaf6c05ea6fd2c02fb1e7bd787687be6a83d47cfb929513a63dca984d3463516170b73dd36e7d10286 - languageName: node - linkType: hard - -"@types/d3-delaunay@npm:^5": - version: 5.3.1 - resolution: "@types/d3-delaunay@npm:5.3.1" - checksum: bf0f15b7e2b305974fe4a62315b95339eee9ebc46cbdaf1c439927aab0ece8e8664e875fe4a84607e195ae8ddf35c747d54c8bef07d19f925b7172528032f215 - languageName: node - linkType: hard - -"@types/d3-dispatch@npm:^2": - version: 2.0.1 - resolution: "@types/d3-dispatch@npm:2.0.1" - checksum: 4c6d1389e74a764a870203f655d4b4e12641a644ba355d384b1d2f572536e8549b9765263d96455627e2bd62a0e8cb98b93f6dea7c78992399494f6bf3a58169 - languageName: node - linkType: hard - -"@types/d3-drag@npm:^2": - version: 2.0.2 - resolution: "@types/d3-drag@npm:2.0.2" - dependencies: - "@types/d3-selection": ^2 - checksum: 5ff6212df0d52e20a36e0a102674fb2020d5e3610bd80d75b47394eda0f7cfc6d033004e22b928646d0c999fb756cfab75cc8a73fb5653db9bc2994474d0a65f - languageName: node - linkType: hard - -"@types/d3-dsv@npm:^2": - version: 2.0.2 - resolution: "@types/d3-dsv@npm:2.0.2" - checksum: 61cae422dc00e725b8ee456ec82437ca1fd40ab8379579c2680d097421c3029eef4e4b308ffe538f5377718cebaae5f2560df23e978f0b506726a085e3719b52 - languageName: node - linkType: hard - -"@types/d3-ease@npm:^2": - version: 2.0.2 - resolution: "@types/d3-ease@npm:2.0.2" - checksum: 1c6bb9111129168657c534383651a142466c7af1bfe24d7ae6a064c4a1cf54d151c3df1a7579cec608c016daa2c9278f8a8bad895dcf1f5390a7d2e90de83aaa - languageName: node - linkType: hard - -"@types/d3-fetch@npm:^2": - version: 2.0.2 - resolution: "@types/d3-fetch@npm:2.0.2" - dependencies: - "@types/d3-dsv": ^2 - checksum: e2bb4f4ad60f2e5569b7d6ef0c980a3c3e5dff5b20c412d89449bbe8449d5babb66f3592f3ff2ba6aad3805a9509de56167c601f941ae528b925aa28900302b7 - languageName: node - linkType: hard - -"@types/d3-force@npm:^2": - version: 2.1.4 - resolution: "@types/d3-force@npm:2.1.4" - checksum: 635a070c68f7ed9ad3962ec7d2fca7c590349648a1b80e6e1a6084885962f84bcaf12b6998fb3aa190fe97b5d8ed2669084145dcd6b89fec6624a5a2d157beb6 - languageName: node - linkType: hard - -"@types/d3-format@npm:^2": - version: 2.0.2 - resolution: "@types/d3-format@npm:2.0.2" - checksum: 592a57f880915754f1e14d4113ff231e80c1854dd8186f3c7fb5a7c094db31c52b3727bc0ad83d1fe4297bc5ec2209be34efaa588f72700c1a133b603d168f3b - languageName: node - linkType: hard - -"@types/d3-geo@npm:^2": - version: 2.0.3 - resolution: "@types/d3-geo@npm:2.0.3" - dependencies: - "@types/geojson": "*" - checksum: 4630230a6746bae04a66d31628c34aecbae3da917a8709d6bb9f5b734c468a87ad234ef3b6418f7d726b007f40d83c9df74ca5d162099e9f51c639ba5833d23f - languageName: node - linkType: hard - "@types/d3-graphviz@npm:2.6.7": version: 2.6.7 resolution: "@types/d3-graphviz@npm:2.6.7" @@ -3358,13 +3237,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-hierarchy@npm:^2": - version: 2.0.2 - resolution: "@types/d3-hierarchy@npm:2.0.2" - checksum: ecac60b196e6b88f729e0a98f8fbba34fc580d3d83869d5498233e83b3cfe74de7640272f3d4d987a51d07c58cc789c8b63b11813114532cdd219f41ddf89154 - languageName: node - linkType: hard - "@types/d3-interpolate@npm:^1": version: 1.4.2 resolution: "@types/d3-interpolate@npm:1.4.2" @@ -3374,59 +3246,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-interpolate@npm:^2": - version: 2.0.2 - resolution: "@types/d3-interpolate@npm:2.0.2" - dependencies: - "@types/d3-color": ^2 - checksum: 78c47193da3c114a7d78580c6f8d9915f11df92ce78fe08d13052cf49fab91dcdca938895a778cdc6f9820ebf16df3e0e339c17491a8c2b1140cdd2e09553084 - languageName: node - linkType: hard - -"@types/d3-path@npm:^2": - version: 2.0.2 - resolution: "@types/d3-path@npm:2.0.2" - checksum: 2ab49cc87b9d2cb90c189bedf5f0fdc2b1609c3c668664dc76c679054b4bb1bcfaf44e7836e1f7d0b38102cecc269a6c52a353e0ba238c992509cb0e9d6c5c33 - languageName: node - linkType: hard - -"@types/d3-polygon@npm:^2": - version: 2.0.1 - resolution: "@types/d3-polygon@npm:2.0.1" - checksum: 70cc611b89b5dfe457bf33c2e928cc89bd94900c3f0fd0fc36f7f56d29d94d9f9560f5a55703a1cd7e80f9c6692976a85d81d4b5711658ccd3ae910714b7dfc0 - languageName: node - linkType: hard - -"@types/d3-quadtree@npm:^2": - version: 2.0.2 - resolution: "@types/d3-quadtree@npm:2.0.2" - checksum: a6f611df12e1010ebccb891f1080537d3bfb01ae9fe5143d6c20c17881c5db1312c37758ffc03ecf8709ce980feb573c9b32a9a48265c712138e1fce3da6260b - languageName: node - linkType: hard - -"@types/d3-random@npm:^2": - version: 2.2.1 - resolution: "@types/d3-random@npm:2.2.1" - checksum: ea4df7b9e1cdee94d4e28a1e4923a22f5a6c9ac8b77d284d7c0aa7def40a7aab8dbdf81fee0752f5300580d24bca9034ec7a5a74aa5fced5a2a77aadc1b1583e - languageName: node - linkType: hard - -"@types/d3-scale-chromatic@npm:^2": - version: 2.0.1 - resolution: "@types/d3-scale-chromatic@npm:2.0.1" - checksum: 5c441309b4d226f51cf86b6adf6f5543067bd6f8adfa94024c5476e355b13b53571a9b52025fdc2713ad37e9146ebaea12a7d089f478dae55cf03797f5d212be - languageName: node - linkType: hard - -"@types/d3-scale@npm:^3": - version: 3.3.2 - resolution: "@types/d3-scale@npm:3.3.2" - dependencies: - "@types/d3-time": ^2 - checksum: 65dbf85f07a4d6ac26396075b0faa1930cfebb96dc248629d4b82c22457c89161d0f070f9a5554adccee80b959e2c6d7c1ef6b7355743afe91050d71014fe3cf - languageName: node - linkType: hard - "@types/d3-selection@npm:^1": version: 1.4.3 resolution: "@types/d3-selection@npm:1.4.3" @@ -3434,43 +3253,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-selection@npm:^2": - version: 2.0.1 - resolution: "@types/d3-selection@npm:2.0.1" - checksum: 23a337564e4540e1672103ad4d8b8eca1a8c50ec5d3382fbd764a3b93f591b7651441da0ae68119945789a8ba7b8d3ab208088ebf8b6fd1add2134df937bfe15 - languageName: node - linkType: hard - -"@types/d3-shape@npm:^2": - version: 2.1.3 - resolution: "@types/d3-shape@npm:2.1.3" - dependencies: - "@types/d3-path": ^2 - checksum: d0855a1e2c11a4ab23367c86ef0cc104e12bf216f2c007fa5955da7179b60b0426d0e9ddbbbdf93d4342e7dd24c7bcfc3a2bc6258744e03fc44ca460a063dcc3 - languageName: node - linkType: hard - -"@types/d3-time-format@npm:^3": - version: 3.0.1 - resolution: "@types/d3-time-format@npm:3.0.1" - checksum: 9ec9156a6facb3e347db3b438938eaac5775a711916fe3667c883431df9b7bcf5d8fcbca7f538b7f0775d8b092c9cf18fe9c0deb7b1a9aa97fb675382a94c88b - languageName: node - linkType: hard - -"@types/d3-time@npm:^2": - version: 2.1.1 - resolution: "@types/d3-time@npm:2.1.1" - checksum: 115048d0cd312a3172ef7c03615dfbdbd8b92a93fd7b6d9ca93c49c704fcdb9575f4c57955eb54eb757b9834acaaf47fc52eae103d06246c59ae120de4559cbc - languageName: node - linkType: hard - -"@types/d3-timer@npm:^2": - version: 2.0.1 - resolution: "@types/d3-timer@npm:2.0.1" - checksum: e59d5ef08c56d570b91e0a10052578e667510d32517f7c4b529b11c979ce984dfd550423d64a0518f2d9a17795d5857653e2e63571804b1eb94e56ff3dfa5261 - languageName: node - linkType: hard - "@types/d3-transition@npm:^1": version: 1.3.2 resolution: "@types/d3-transition@npm:1.3.2" @@ -3480,15 +3262,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-transition@npm:^2": - version: 2.0.2 - resolution: "@types/d3-transition@npm:2.0.2" - dependencies: - "@types/d3-selection": ^2 - checksum: 1481601c6d6e09d5b936d765f57ba0e29a8fc368ddb6ced9c0df8f4ff7360368d6c49b9022ebfb1ed06745bef0b09623ca6181551569fe82d821359324a1e1f7 - languageName: node - linkType: hard - "@types/d3-zoom@npm:^1": version: 1.8.3 resolution: "@types/d3-zoom@npm:1.8.3" @@ -3499,54 +3272,6 @@ __metadata: languageName: node linkType: hard -"@types/d3-zoom@npm:^2": - version: 2.0.3 - resolution: "@types/d3-zoom@npm:2.0.3" - dependencies: - "@types/d3-interpolate": ^2 - "@types/d3-selection": ^2 - checksum: e0cc3d089a1eed3019c3476a1f278a0148a5db2473e9e2ecb729e6f71196163ba2ea2e441d690ccfdd5dd9a14546e33d2feb7d16346869e601aba933e88ac97d - languageName: node - linkType: hard - -"@types/d3@npm:^6.0.0": - version: 6.7.5 - resolution: "@types/d3@npm:6.7.5" - dependencies: - "@types/d3-array": ^2 - "@types/d3-axis": ^2 - "@types/d3-brush": ^2 - "@types/d3-chord": ^2 - "@types/d3-color": ^2 - "@types/d3-contour": ^2 - "@types/d3-delaunay": ^5 - "@types/d3-dispatch": ^2 - "@types/d3-drag": ^2 - "@types/d3-dsv": ^2 - "@types/d3-ease": ^2 - "@types/d3-fetch": ^2 - "@types/d3-force": ^2 - "@types/d3-format": ^2 - "@types/d3-geo": ^2 - "@types/d3-hierarchy": ^2 - "@types/d3-interpolate": ^2 - "@types/d3-path": ^2 - "@types/d3-polygon": ^2 - "@types/d3-quadtree": ^2 - "@types/d3-random": ^2 - "@types/d3-scale": ^3 - "@types/d3-scale-chromatic": ^2 - "@types/d3-selection": ^2 - "@types/d3-shape": ^2 - "@types/d3-time": ^2 - "@types/d3-time-format": ^3 - "@types/d3-timer": ^2 - "@types/d3-transition": ^2 - "@types/d3-zoom": ^2 - checksum: b800c9d251d265c94dc3b91f0dd060786dd3366a56a159b8df86ad2cb258a6ed92eb1c13f267f22b522eda7b04684adaa6a5989fb3543cef32dcaedde389bec5 - languageName: node - linkType: hard - "@types/diff@npm:5.0.2": version: 5.0.2 resolution: "@types/diff@npm:5.0.2" @@ -3570,13 +3295,6 @@ __metadata: languageName: node linkType: hard -"@types/geojson@npm:*": - version: 7946.0.10 - resolution: "@types/geojson@npm:7946.0.10" - checksum: 12c407c2dc93ecb26c08af533ee732f1506a9b29456616ba7ba1d525df96206c28ddf44a528f6a5415d7d22893e9d967420940a9c095ee5e539c1eba5fefc1f4 - languageName: node - linkType: hard - "@types/graceful-fs@npm:^4.1.3": version: 4.1.5 resolution: "@types/graceful-fs@npm:4.1.5" @@ -4319,7 +4037,7 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^1.0.10, argparse@npm:^1.0.7": +"argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" dependencies: @@ -4454,15 +4172,6 @@ __metadata: languageName: node linkType: hard -"autolinker@npm:^3.11.0": - version: 3.16.2 - resolution: "autolinker@npm:3.16.2" - dependencies: - tslib: ^2.3.0 - checksum: 1d5d20ef23586629ec3c341052e6bb6250399cf5e66db21540c17b2f5b1137066435fb274a2115b57464d05e75b85afad61ef7cdf6ea693ef2920a3748b7249d - languageName: node - linkType: hard - "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -5514,15 +5223,6 @@ __metadata: languageName: node linkType: hard -"d3-array@npm:2, d3-array@npm:^2.3.0, d3-array@npm:^2.5.0": - version: 2.12.1 - resolution: "d3-array@npm:2.12.1" - dependencies: - internmap: ^1.0.0 - checksum: 97853b7b523aded17078f37c67742f45d81e88dda2107ae9994c31b9e36c5fa5556c4c4cf39650436f247813602dfe31bf7ad067ff80f127a16903827f10c6eb - languageName: node - linkType: hard - "d3-array@npm:3.1.1": version: 3.1.1 resolution: "d3-array@npm:3.1.1" @@ -5539,13 +5239,6 @@ __metadata: languageName: node linkType: hard -"d3-axis@npm:2": - version: 2.1.0 - resolution: "d3-axis@npm:2.1.0" - checksum: 43d80f68e516b315bbe86afff1552abd9518296e60f58a9a70ee9a524c109dec9d4585da5fc34a5c589e599c5ee4fe465f850c5a43f5e112c3850965bb00e9f5 - languageName: node - linkType: hard - "d3-axis@npm:3": version: 3.0.0 resolution: "d3-axis@npm:3.0.0" @@ -5566,19 +5259,6 @@ __metadata: languageName: node linkType: hard -"d3-brush@npm:2": - version: 2.1.0 - resolution: "d3-brush@npm:2.1.0" - dependencies: - d3-dispatch: 1 - 2 - d3-drag: 2 - d3-interpolate: 1 - 2 - d3-selection: 2 - d3-transition: 2 - checksum: 35fb7e3b422626194aac1b85434e6a346de1b69f497d1f80d2f6bf881602e8826255a7c95a0c27f0de5ec2f5f7bc8481d6e1df24c80ebb28175a0830c868d218 - languageName: node - linkType: hard - "d3-brush@npm:3": version: 3.0.0 resolution: "d3-brush@npm:3.0.0" @@ -5602,15 +5282,6 @@ __metadata: languageName: node linkType: hard -"d3-chord@npm:2": - version: 2.0.0 - resolution: "d3-chord@npm:2.0.0" - dependencies: - d3-path: 1 - 2 - checksum: 932f1e9a50a68b95f42431fe043164c671433226582cf4e5f5a8f7064da99efaca656283861bf243286c5ef7dcf87aa77811418564fba83350da48d8c50074c0 - languageName: node - linkType: hard - "d3-chord@npm:3": version: 3.0.1 resolution: "d3-chord@npm:3.0.1" @@ -5634,7 +5305,7 @@ __metadata: languageName: node linkType: hard -"d3-color@npm:1 - 2, d3-color@npm:2": +"d3-color@npm:1 - 2": version: 2.0.0 resolution: "d3-color@npm:2.0.0" checksum: b887354aa383937abd04fbffed3e26e5d6a788472cd3737fb10735930e427763e69fe93398663bccf88c0b53ee3e638ac6fcf0c02226b00ed9e4327c2dfbf3dc @@ -5657,15 +5328,6 @@ __metadata: languageName: node linkType: hard -"d3-contour@npm:2": - version: 2.0.0 - resolution: "d3-contour@npm:2.0.0" - dependencies: - d3-array: 2 - checksum: 7d46bad378f6e329dddcc52df76077f28b563219cf5a0003385fbcb6c501d5fbb10d71c508da6a7690b527ccdbc1909b6f1f36fa36f03b43b19f8bcab0c2961d - languageName: node - linkType: hard - "d3-contour@npm:4": version: 4.0.0 resolution: "d3-contour@npm:4.0.0" @@ -5675,15 +5337,6 @@ __metadata: languageName: node linkType: hard -"d3-delaunay@npm:5": - version: 5.3.0 - resolution: "d3-delaunay@npm:5.3.0" - dependencies: - delaunator: 4 - checksum: 3fa5ae167eb86e62ca0f9c3e8d05470b23572b4b480f05201705c0db976d403834cee1cdf264a41c97e45238e3999d48cc593f97d0da37229a42673a6bb10e95 - languageName: node - linkType: hard - "d3-delaunay@npm:6, d3-delaunay@npm:^6.0.2": version: 6.0.2 resolution: "d3-delaunay@npm:6.0.2" @@ -5700,7 +5353,7 @@ __metadata: languageName: node linkType: hard -"d3-dispatch@npm:1 - 2, d3-dispatch@npm:2, d3-dispatch@npm:^2.0.0": +"d3-dispatch@npm:1 - 2, d3-dispatch@npm:^2.0.0": version: 2.0.0 resolution: "d3-dispatch@npm:2.0.0" checksum: cf473676ae0df1915d51d056d2c6734ceec480d258611d970a01847c50e8c273c185032bf9ed491abd077696bcbeeb491dc94af53e888871f3a1a0fac7365cec @@ -5765,27 +5418,6 @@ __metadata: languageName: node linkType: hard -"d3-dsv@npm:1 - 2, d3-dsv@npm:2": - version: 2.0.0 - resolution: "d3-dsv@npm:2.0.0" - dependencies: - commander: 2 - iconv-lite: 0.4 - rw: 1 - bin: - csv2json: bin/dsv2json - csv2tsv: bin/dsv2dsv - dsv2dsv: bin/dsv2dsv - dsv2json: bin/dsv2json - json2csv: bin/json2dsv - json2dsv: bin/json2dsv - json2tsv: bin/json2dsv - tsv2csv: bin/dsv2dsv - tsv2json: bin/dsv2json - checksum: 01b12d81e4ca3996f2e921388b1929c358a39711bf250f2c53dd0e452b80465ebe31ddb58a4064f160322dec7aaf2ceae1a249874af989404705fcfdf1e9b64d - languageName: node - linkType: hard - "d3-dsv@npm:1 - 3, d3-dsv@npm:3, d3-dsv@npm:^3.0.1": version: 3.0.1 resolution: "d3-dsv@npm:3.0.1" @@ -5814,7 +5446,7 @@ __metadata: languageName: node linkType: hard -"d3-ease@npm:1 - 2, d3-ease@npm:2": +"d3-ease@npm:1 - 2": version: 2.0.0 resolution: "d3-ease@npm:2.0.0" checksum: 1a9f6dfc836f0c66fba1ed28f0a3ad170d7c4f4812d442c6b562163e1a60283cc697e72a2cc4ba64abff9e77ad56354847986a5964e0c661af9b6d132c642e29 @@ -5837,15 +5469,6 @@ __metadata: languageName: node linkType: hard -"d3-fetch@npm:2": - version: 2.0.0 - resolution: "d3-fetch@npm:2.0.0" - dependencies: - d3-dsv: 1 - 2 - checksum: e592420726c39dbbe342504761e5c80a026fc9add4f808ed4e01ab66c3064f7251f988dd2bcb6b8b61f8866769470eabb14a8d7f18e014338d9d9637ffd51af1 - languageName: node - linkType: hard - "d3-fetch@npm:3": version: 3.0.1 resolution: "d3-fetch@npm:3.0.1" @@ -5855,15 +5478,6 @@ __metadata: languageName: node linkType: hard -"d3-flextree@npm:^2.1.1": - version: 2.1.2 - resolution: "d3-flextree@npm:2.1.2" - dependencies: - d3-hierarchy: ^1.1.5 - checksum: f6ee95d740aa8e7ee978971eba07bcbbd8e2455cd4b98b2b020a6f0f24e2e130761a4ef5f2570960f56aa356f14a971d750df3ea56438bf4571dd59c689288e5 - languageName: node - linkType: hard - "d3-force@npm:1": version: 1.2.1 resolution: "d3-force@npm:1.2.1" @@ -5876,17 +5490,6 @@ __metadata: languageName: node linkType: hard -"d3-force@npm:2": - version: 2.1.1 - resolution: "d3-force@npm:2.1.1" - dependencies: - d3-dispatch: 1 - 2 - d3-quadtree: 1 - 2 - d3-timer: 1 - 2 - checksum: aaee5b86d753450e72dae6748765ac3e0b7b784bd420a61264b778d697b9521a343b74b5c55654be2ff7fdf9bada0953a6fcae9be69091176d0579b56df72937 - languageName: node - linkType: hard - "d3-force@npm:3, d3-force@npm:^3.0.0": version: 3.0.0 resolution: "d3-force@npm:3.0.0" @@ -5905,13 +5508,6 @@ __metadata: languageName: node linkType: hard -"d3-format@npm:1 - 2, d3-format@npm:2, d3-format@npm:^2.0.0": - version: 2.0.0 - resolution: "d3-format@npm:2.0.0" - checksum: c4d3c8f9941d097d514d3986f54f21434e08e5876dc08d1d65226447e8e167600d5b9210235bb03fd45327225f04f32d6e365f08f76d2f4b8bff81594851aaf7 - languageName: node - linkType: hard - "d3-format@npm:1 - 3, d3-format@npm:3, d3-format@npm:^3.1.0": version: 3.1.0 resolution: "d3-format@npm:3.1.0" @@ -5919,6 +5515,13 @@ __metadata: languageName: node linkType: hard +"d3-format@npm:^2.0.0": + version: 2.0.0 + resolution: "d3-format@npm:2.0.0" + checksum: c4d3c8f9941d097d514d3986f54f21434e08e5876dc08d1d65226447e8e167600d5b9210235bb03fd45327225f04f32d6e365f08f76d2f4b8bff81594851aaf7 + languageName: node + linkType: hard + "d3-geo-projection@npm:^4.0.0": version: 4.0.0 resolution: "d3-geo-projection@npm:4.0.0" @@ -5954,15 +5557,6 @@ __metadata: languageName: node linkType: hard -"d3-geo@npm:2": - version: 2.0.2 - resolution: "d3-geo@npm:2.0.2" - dependencies: - d3-array: ^2.5.0 - checksum: 992f667c646f8e2ea810de20e62914128e119f0458bce4090934287af3b93395632ed4af16aae7ccae095ae702a23b5d7a49888674f1aa27ab1a6e410882d86c - languageName: node - linkType: hard - "d3-graphviz@npm:4.3.0": version: 4.3.0 resolution: "d3-graphviz@npm:4.3.0" @@ -5981,20 +5575,13 @@ __metadata: languageName: node linkType: hard -"d3-hierarchy@npm:1, d3-hierarchy@npm:^1.1.5": +"d3-hierarchy@npm:1": version: 1.1.9 resolution: "d3-hierarchy@npm:1.1.9" checksum: 5fd8761c302252cb9abe9ce2a0934fc97104dd0df8d1b5de6472532903416f40e13b4b58d03ce215a0b816d7129c4ed4503bd4fdbc00a130fdcf46a63d734a52 languageName: node linkType: hard -"d3-hierarchy@npm:2": - version: 2.0.0 - resolution: "d3-hierarchy@npm:2.0.0" - checksum: 594bea104d3cf947da8499f3c50c93d914c5af34195ef3848e4888ed5c8c1aa6a1adae1dd656acfd04779005255347f68a3d270d825ec94fc88b88a72dd7cb4e - languageName: node - linkType: hard - "d3-hierarchy@npm:3, d3-hierarchy@npm:^3.1.0": version: 3.1.2 resolution: "d3-hierarchy@npm:3.1.2" @@ -6011,7 +5598,7 @@ __metadata: languageName: node linkType: hard -"d3-interpolate@npm:1 - 2, d3-interpolate@npm:1.2.0 - 2, d3-interpolate@npm:2, d3-interpolate@npm:^2.0.1": +"d3-interpolate@npm:1 - 2, d3-interpolate@npm:^2.0.1": version: 2.0.1 resolution: "d3-interpolate@npm:2.0.1" dependencies: @@ -6036,13 +5623,6 @@ __metadata: languageName: node linkType: hard -"d3-path@npm:1 - 2, d3-path@npm:2, d3-path@npm:^2.0.0": - version: 2.0.0 - resolution: "d3-path@npm:2.0.0" - checksum: e39e91dfb9abf9637962caede1f4ea4877f4b9e1c914868bdfc355688e9a637ba51bed0fb6180934eb596e50a4d0d1f001b5f2e98a4a3d23cc42558acfbd1f2c - languageName: node - linkType: hard - "d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.0.1": version: 3.0.1 resolution: "d3-path@npm:3.0.1" @@ -6050,6 +5630,13 @@ __metadata: languageName: node linkType: hard +"d3-path@npm:^2.0.0": + version: 2.0.0 + resolution: "d3-path@npm:2.0.0" + checksum: e39e91dfb9abf9637962caede1f4ea4877f4b9e1c914868bdfc355688e9a637ba51bed0fb6180934eb596e50a4d0d1f001b5f2e98a4a3d23cc42558acfbd1f2c + languageName: node + linkType: hard + "d3-polygon@npm:1": version: 1.0.6 resolution: "d3-polygon@npm:1.0.6" @@ -6057,13 +5644,6 @@ __metadata: languageName: node linkType: hard -"d3-polygon@npm:2": - version: 2.0.0 - resolution: "d3-polygon@npm:2.0.0" - checksum: aeabedd8c74b0087d9b3fa9d9a95ce6535edb07c546cb070ffb1f971a3e9112124a9f63bf1377cbb6889d2cb0268363c4a864ec8c7629d990623fff73262d1ea - languageName: node - linkType: hard - "d3-polygon@npm:3": version: 3.0.1 resolution: "d3-polygon@npm:3.0.1" @@ -6078,13 +5658,6 @@ __metadata: languageName: node linkType: hard -"d3-quadtree@npm:1 - 2, d3-quadtree@npm:2": - version: 2.0.0 - resolution: "d3-quadtree@npm:2.0.0" - checksum: e5f9cee19a636666e9f1614f9a9508dde9af47d80769ecb70b6b5033448a8c3ae96f39f1ffea0d1782442559412e3f98508fedf5dc39fe09a2f5995e6a0913bf - languageName: node - linkType: hard - "d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": version: 3.0.1 resolution: "d3-quadtree@npm:3.0.1" @@ -6099,13 +5672,6 @@ __metadata: languageName: node linkType: hard -"d3-random@npm:2": - version: 2.2.2 - resolution: "d3-random@npm:2.2.2" - checksum: 79931d642f059c874c2be964b629ac0ce0f73306fa744e2ac8eb5ef1592ecfe8ab4a31a5273bef75db7ba2055c344af9921ef1bf55070edd826d7a7ba0b47331 - languageName: node - linkType: hard - "d3-random@npm:3": version: 3.0.1 resolution: "d3-random@npm:3.0.1" @@ -6123,16 +5689,6 @@ __metadata: languageName: node linkType: hard -"d3-scale-chromatic@npm:2": - version: 2.0.0 - resolution: "d3-scale-chromatic@npm:2.0.0" - dependencies: - d3-color: 1 - 2 - d3-interpolate: 1 - 2 - checksum: 9fe5b4c1d9907abbda76e414856d9089182a0641f3bbf43d8d3008dbcccb52781e21793682e2b53663d3c6cd63e76965f961894e53ed3b01a345797412fe5b1f - languageName: node - linkType: hard - "d3-scale-chromatic@npm:3": version: 3.0.0 resolution: "d3-scale-chromatic@npm:3.0.0" @@ -6157,19 +5713,6 @@ __metadata: languageName: node linkType: hard -"d3-scale@npm:3": - version: 3.3.0 - resolution: "d3-scale@npm:3.3.0" - dependencies: - d3-array: ^2.3.0 - d3-format: 1 - 2 - d3-interpolate: 1.2.0 - 2 - d3-time: ^2.1.1 - d3-time-format: 2 - 3 - checksum: f77e73f0fb422292211d0687914c30d26e29011a936ad2a535a868ae92f306c3545af1fe7ea5db1b3e67dbce7a6c6cd952e53d02d1d557543e7e5d30e30e52f2 - languageName: node - linkType: hard - "d3-scale@npm:4, d3-scale@npm:^4.0.2": version: 4.0.2 resolution: "d3-scale@npm:4.0.2" @@ -6213,15 +5756,6 @@ __metadata: languageName: node linkType: hard -"d3-shape@npm:2": - version: 2.1.0 - resolution: "d3-shape@npm:2.1.0" - dependencies: - d3-path: 1 - 2 - checksum: 4a82a83fbb15aadee3eb6661226a34bcd793cdbcd7aa5bf980a4724efc93eb94acc6c499f0ebedc9c3144c57c0f033867d137f41e86459acbd5d7181cb27b49c - languageName: node - linkType: hard - "d3-shape@npm:3, d3-shape@npm:^3.1.0": version: 3.1.0 resolution: "d3-shape@npm:3.1.0" @@ -6240,15 +5774,6 @@ __metadata: languageName: node linkType: hard -"d3-time-format@npm:2 - 3, d3-time-format@npm:3": - version: 3.0.0 - resolution: "d3-time-format@npm:3.0.0" - dependencies: - d3-time: 1 - 2 - checksum: c20c1667dbea653f81d923e741f84c23e4b966002ba0d6ed94cbc70692105566e55e89d18d175404534a879383fd1123300bd12885a3c924fe924032bb0060db - languageName: node - linkType: hard - "d3-time-format@npm:2 - 4, d3-time-format@npm:4, d3-time-format@npm:^4.1.0": version: 4.1.0 resolution: "d3-time-format@npm:4.1.0" @@ -6265,15 +5790,6 @@ __metadata: languageName: node linkType: hard -"d3-time@npm:1 - 2, d3-time@npm:2, d3-time@npm:^2.1.1": - version: 2.1.1 - resolution: "d3-time@npm:2.1.1" - dependencies: - d3-array: 2 - checksum: d1c7b9658c20646e46c3dd19e11c38e02dec098e8baa7d2cd868af8eb01953668f5da499fa33dc63541cf74a26e788786f8828c4381dbbf475a76b95972979a6 - languageName: node - linkType: hard - "d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3, d3-time@npm:^3.0.0": version: 3.0.0 resolution: "d3-time@npm:3.0.0" @@ -6290,7 +5806,7 @@ __metadata: languageName: node linkType: hard -"d3-timer@npm:1 - 2, d3-timer@npm:2, d3-timer@npm:^2.0.0": +"d3-timer@npm:1 - 2, d3-timer@npm:^2.0.0": version: 2.0.0 resolution: "d3-timer@npm:2.0.0" checksum: 70733c3baffe473155b712896f04f27dae32d6e94169827f57aebb203e190926ba37af12c5f56cbc7126e538a4b1cd083f2451b80dc2a5644d076b6b31982bd8 @@ -6368,19 +5884,6 @@ __metadata: languageName: node linkType: hard -"d3-zoom@npm:2, d3-zoom@npm:^2.0.0": - version: 2.0.0 - resolution: "d3-zoom@npm:2.0.0" - dependencies: - d3-dispatch: 1 - 2 - d3-drag: 2 - d3-interpolate: 1 - 2 - d3-selection: 2 - d3-transition: 2 - checksum: d98cc6ffa1105b0062ee312303caff9345ecd1f6df11b7da1e008c1c4731551755ac951327e8c758ffcf74e761218bc6c4f4a6b48f91551ea5d67e0dcf574a49 - languageName: node - linkType: hard - "d3-zoom@npm:3": version: 3.0.0 resolution: "d3-zoom@npm:3.0.0" @@ -6394,6 +5897,19 @@ __metadata: languageName: node linkType: hard +"d3-zoom@npm:^2.0.0": + version: 2.0.0 + resolution: "d3-zoom@npm:2.0.0" + dependencies: + d3-dispatch: 1 - 2 + d3-drag: 2 + d3-interpolate: 1 - 2 + d3-selection: 2 + d3-transition: 2 + checksum: d98cc6ffa1105b0062ee312303caff9345ecd1f6df11b7da1e008c1c4731551755ac951327e8c758ffcf74e761218bc6c4f4a6b48f91551ea5d67e0dcf574a49 + languageName: node + linkType: hard + "d3@npm:^5.14": version: 5.16.0 resolution: "d3@npm:5.16.0" @@ -6433,44 +5949,6 @@ __metadata: languageName: node linkType: hard -"d3@npm:^6.2.0": - version: 6.7.0 - resolution: "d3@npm:6.7.0" - dependencies: - d3-array: 2 - d3-axis: 2 - d3-brush: 2 - d3-chord: 2 - d3-color: 2 - d3-contour: 2 - d3-delaunay: 5 - d3-dispatch: 2 - d3-drag: 2 - d3-dsv: 2 - d3-ease: 2 - d3-fetch: 2 - d3-force: 2 - d3-format: 2 - d3-geo: 2 - d3-hierarchy: 2 - d3-interpolate: 2 - d3-path: 2 - d3-polygon: 2 - d3-quadtree: 2 - d3-random: 2 - d3-scale: 3 - d3-scale-chromatic: 2 - d3-selection: 2 - d3-shape: 2 - d3-time: 2 - d3-time-format: 3 - d3-timer: 2 - d3-transition: 2 - d3-zoom: 2 - checksum: 68e37250bacbfaa677d45dbbd82395e898d628d4598b827a3682e3612e0e43c67784f2cd7ecdc23e75c48ad0abe07b65e20c5aa13fb5ebf8879db6db468032e9 - languageName: node - linkType: hard - "d3@npm:^7.0.0": version: 7.6.1 resolution: "d3@npm:7.6.1" @@ -6649,13 +6127,6 @@ __metadata: languageName: node linkType: hard -"delaunator@npm:4": - version: 4.0.1 - resolution: "delaunator@npm:4.0.1" - checksum: a49f1c23edbcb79079a13577d32fcd46d0db30879c8484f742a0d840923085f2f3de35a9bfbb96eadd12201ffb7c3adf45b0f528d08b71cb547c5f8068b5d61b - languageName: node - linkType: hard - "delaunator@npm:5": version: 5.0.0 resolution: "delaunator@npm:5.0.0" @@ -8554,13 +8025,6 @@ __metadata: languageName: node linkType: hard -"internmap@npm:^1.0.0": - version: 1.0.1 - resolution: "internmap@npm:1.0.1" - checksum: 9d00f8c0cf873a24a53a5a937120dab634c41f383105e066bb318a61864e6292d24eb9516e8e7dccfb4420ec42ca474a0f28ac9a6cc82536898fa09bbbe53813 - languageName: node - linkType: hard - "invariant@npm:^2.2.1, invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -9568,17 +9032,6 @@ __metadata: languageName: node linkType: hard -"katex@npm:^0.15.1": - version: 0.15.6 - resolution: "katex@npm:0.15.6" - dependencies: - commander: ^8.0.0 - bin: - katex: cli.js - checksum: 2da808bbd1d3be27715006cd86767dd3fcce3e317fb3bbd64d407328d2d90de17b5d83062b2cfd0e0d0de32e340efbac214862bc96892a5d1492462e553728d4 - languageName: node - linkType: hard - "khroma@npm:^2.0.0": version: 2.0.0 resolution: "khroma@npm:2.0.0" @@ -9972,43 +9425,6 @@ __metadata: languageName: node linkType: hard -"markmap-common@npm:0.13.4, markmap-common@npm:^0.13.4": - version: 0.13.4 - resolution: "markmap-common@npm:0.13.4" - dependencies: - "@babel/runtime": ^7.12.1 - checksum: 6597aa4fb9292f5ace8aceb76d63e1bdad30661e3ad8b7e00ac58e2aedf082d7d217f72960f0e28877efea99a2055b2fd431eda7a2482de2538740a1fbf5a7d7 - languageName: node - linkType: hard - -"markmap-lib@npm:0.13.5": - version: 0.13.5 - resolution: "markmap-lib@npm:0.13.5" - dependencies: - "@babel/runtime": ^7.16.3 - js-yaml: ^4.1.0 - katex: ^0.15.1 - markmap-common: ^0.13.4 - prismjs: ^1.25.0 - remarkable: ^2.0.1 - remarkable-katex: ^1.1.8 - checksum: 469932bba42e5fe466c3451fea1ee741d1f2ac1b5d20df92f620a116d6adc0c49ed5930c483b7d29c70094c6e188b6ce235f1a457cd8dca67b53ead1225bc8f4 - languageName: node - linkType: hard - -"markmap-view@npm:0.13.5": - version: 0.13.5 - resolution: "markmap-view@npm:0.13.5" - dependencies: - "@babel/runtime": ^7.12.5 - "@types/d3": ^6.0.0 - d3: ^6.2.0 - d3-flextree: ^2.1.1 - markmap-common: ^0.13.4 - checksum: 86a09552c51c4aae0c477524fe39507bbc298144f0635628fa2016db152ff9703b82759e558224fcde2c1e71d05dea62a2de5d96862ad3eb9cd9d11d9520c283 - languageName: node - linkType: hard - "mdn-data@npm:2.0.14": version: 2.0.14 resolution: "mdn-data@npm:2.0.14" @@ -10900,13 +10316,6 @@ __metadata: languageName: node linkType: hard -"prismjs@npm:^1.25.0": - version: 1.29.0 - resolution: "prismjs@npm:1.29.0" - checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 - languageName: node - linkType: hard - "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -11453,25 +10862,6 @@ __metadata: languageName: node linkType: hard -"remarkable-katex@npm:^1.1.8": - version: 1.2.1 - resolution: "remarkable-katex@npm:1.2.1" - checksum: 600ee9c6dd2882c80d9a3beaca060ba8740395abb8a8ecfc86a45aa545a8c95073aaf19742e2e8db371bacfc2c47ff56cda989a3442a939858533d78a28ed89c - languageName: node - linkType: hard - -"remarkable@npm:^2.0.1": - version: 2.0.1 - resolution: "remarkable@npm:2.0.1" - dependencies: - argparse: ^1.0.10 - autolinker: ^3.11.0 - bin: - remarkable: bin/remarkable.js - checksum: aee83ece531a7196f92e668aa76450f17bc1af77ce2939153f57b289b54f3aa3a72f355f4d57680336ab8205d53dca7ae06e6e743355ad2d4868cc7c85eafe89 - languageName: node - linkType: hard - "request-progress@npm:^3.0.0": version: 3.0.0 resolution: "request-progress@npm:3.0.0" @@ -12637,7 +12027,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:~2.4.0": +"tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:~2.4.0": version: 2.4.0 resolution: "tslib@npm:2.4.0" checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113