diff --git a/src/components/markdown-renderer/renderer-utils.ts b/src/components/markdown-renderer/renderer-utils.tsx similarity index 91% rename from src/components/markdown-renderer/renderer-utils.ts rename to src/components/markdown-renderer/renderer-utils.tsx index ef1e65912..99ea0cdb2 100644 --- a/src/components/markdown-renderer/renderer-utils.ts +++ b/src/components/markdown-renderer/renderer-utils.tsx @@ -1,10 +1,9 @@ import { diffArrays } from 'diff' import { DomElement } from 'domhandler' -import { ReactElement } from 'react' +import React, { Fragment, ReactElement } from 'react' import { convertNodeToElement, Transform } from 'react-html-parser' import { ComponentReplacer, - NativeRenderer, SubNodeTransform } from './replace-components/ComponentReplacer' @@ -75,9 +74,9 @@ export const calculateKeyFromLineMarker = (node: DomElement, lineKeys?: LineKeys return lineKeys[line].id } -export const findNodeReplacement = (node: DomElement, index: number, allReplacers: ComponentReplacer[], transform: SubNodeTransform, nativeRenderer: NativeRenderer): ReactElement|null|undefined => { +export const findNodeReplacement = (node: DomElement, index: number, allReplacers: ComponentReplacer[], subNodeTransform: SubNodeTransform): ReactElement|null|undefined => { return allReplacers - .map((componentReplacer) => componentReplacer.getReplacement(node, index, transform, nativeRenderer)) + .map((componentReplacer) => componentReplacer.getReplacement(node, subNodeTransform)) .find((replacement) => replacement !== undefined) } @@ -96,13 +95,13 @@ export const buildTransformer = (lineKeys: (LineKeys[] | undefined), allReplacer const subNodeTransform:SubNodeTransform = (subNode, subIndex) => transform(subNode, subIndex, transform) const key = calculateKeyFromLineMarker(node, lineKeys) ?? -index - const tryReplacement = findNodeReplacement(node, key, allReplacers, subNodeTransform, nativeRenderer) + const tryReplacement = findNodeReplacement(node, key, allReplacers, subNodeTransform) if (tryReplacement === null) { return null } else if (tryReplacement === undefined) { return nativeRenderer(node, key) } else { - return tryReplacement + return {tryReplacement} } } return transform diff --git a/src/components/markdown-renderer/replace-components/ComponentReplacer.ts b/src/components/markdown-renderer/replace-components/ComponentReplacer.ts index 60e11ee7f..217eb9db7 100644 --- a/src/components/markdown-renderer/replace-components/ComponentReplacer.ts +++ b/src/components/markdown-renderer/replace-components/ComponentReplacer.ts @@ -1,10 +1,10 @@ import { DomElement } from 'domhandler' import { ReactElement } from 'react' -export type SubNodeTransform = (node: DomElement, index: number) => ReactElement | void | null +export type SubNodeTransform = (node: DomElement, subIndex: number) => ReactElement | void | null export type NativeRenderer = (node: DomElement, key: number) => ReactElement export abstract class ComponentReplacer { - public abstract getReplacement(node: DomElement, index: number, subNodeTransform: SubNodeTransform, nativeRenderer: NativeRenderer): (ReactElement | null | undefined); + public abstract getReplacement(node: DomElement, subNodeTransform: SubNodeTransform): (ReactElement | null | undefined); } diff --git a/src/components/markdown-renderer/replace-components/abc/abc-replacer.tsx b/src/components/markdown-renderer/replace-components/abc/abc-replacer.tsx index ab9e82ed0..db4086b06 100644 --- a/src/components/markdown-renderer/replace-components/abc/abc-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/abc/abc-replacer.tsx @@ -4,13 +4,13 @@ import { ComponentReplacer } from '../ComponentReplacer' import { AbcFrame } from './abc-frame' export class AbcReplacer implements ComponentReplacer { - getReplacement (codeNode: DomElement, index: number): React.ReactElement | undefined { + getReplacement (codeNode: DomElement): React.ReactElement | undefined { if (codeNode.name !== 'code' || !codeNode.attribs || !codeNode.attribs['data-highlight-language'] || codeNode.attribs['data-highlight-language'] !== 'abc' || !codeNode.children || !codeNode.children[0]) { return } const code = codeNode.children[0].data as string - return + return } } diff --git a/src/components/markdown-renderer/replace-components/asciinema/asciinema-replacer.tsx b/src/components/markdown-renderer/replace-components/asciinema/asciinema-replacer.tsx index e0baed912..b5f8bc297 100644 --- a/src/components/markdown-renderer/replace-components/asciinema/asciinema-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/asciinema/asciinema-replacer.tsx @@ -7,14 +7,14 @@ import { AsciinemaFrame } from './asciinema-frame' export class AsciinemaReplacer extends ComponentReplacer { private counterMap: Map = new Map() - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { const attributes = getAttributesFromHedgeDocTag(node, 'asciinema') if (attributes && attributes.id) { const asciinemaId = attributes.id const count = (this.counterMap.get(asciinemaId) || 0) + 1 this.counterMap.set(asciinemaId, count) return ( - + ) } } diff --git a/src/components/markdown-renderer/replace-components/csv/csv-replacer.tsx b/src/components/markdown-renderer/replace-components/csv/csv-replacer.tsx index 8749386fd..bd684cc24 100644 --- a/src/components/markdown-renderer/replace-components/csv/csv-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/csv/csv-replacer.tsx @@ -4,7 +4,7 @@ import { ComponentReplacer } from '../ComponentReplacer' import { CsvTable } from './csv-table' export class CsvReplacer extends ComponentReplacer { - public getReplacement (codeNode: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (codeNode: DomElement): React.ReactElement | undefined { if (codeNode.name !== 'code' || !codeNode.attribs || !codeNode.attribs['data-highlight-language'] || codeNode.attribs['data-highlight-language'] !== 'csv' || !codeNode.children || !codeNode.children[0]) { return } @@ -23,6 +23,6 @@ export class CsvReplacer extends ComponentReplacer { showHeader = extraInfos[3] !== undefined } - return + return } } diff --git a/src/components/markdown-renderer/replace-components/flow/flowchart-replacer.tsx b/src/components/markdown-renderer/replace-components/flow/flowchart-replacer.tsx index 91be3ee7e..c5e76aa15 100644 --- a/src/components/markdown-renderer/replace-components/flow/flowchart-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/flow/flowchart-replacer.tsx @@ -4,13 +4,13 @@ import { ComponentReplacer } from '../ComponentReplacer' import { FlowChart } from './flowchart/flowchart' export class FlowchartReplacer extends ComponentReplacer { - public getReplacement (codeNode: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (codeNode: DomElement): React.ReactElement | undefined { if (codeNode.name !== 'code' || !codeNode.attribs || !codeNode.attribs['data-highlight-language'] || codeNode.attribs['data-highlight-language'] !== 'flow' || !codeNode.children || !codeNode.children[0]) { return } const code = codeNode.children[0].data as string - return + return } } diff --git a/src/components/markdown-renderer/replace-components/gist/gist-replacer.tsx b/src/components/markdown-renderer/replace-components/gist/gist-replacer.tsx index 0039182db..b958eff08 100644 --- a/src/components/markdown-renderer/replace-components/gist/gist-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/gist/gist-replacer.tsx @@ -9,14 +9,14 @@ import preview from './gist-preview.png' export class GistReplacer extends ComponentReplacer { private counterMap: Map = new Map() - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { const attributes = getAttributesFromHedgeDocTag(node, 'gist') if (attributes && attributes.id) { const gistId = attributes.id const count = (this.counterMap.get(gistId) || 0) + 1 this.counterMap.set(gistId, count) return ( - + ) diff --git a/src/components/markdown-renderer/replace-components/highlighted-fence/highlighted-fence-replacer.tsx b/src/components/markdown-renderer/replace-components/highlighted-fence/highlighted-fence-replacer.tsx index 7b4ab112d..4c7fe9658 100644 --- a/src/components/markdown-renderer/replace-components/highlighted-fence/highlighted-fence-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/highlighted-fence/highlighted-fence-replacer.tsx @@ -6,7 +6,7 @@ import { HighlightedCode } from './highlighted-code/highlighted-code' export class HighlightedCodeReplacer extends ComponentReplacer { private lastLineNumber = 0; - public getReplacement (codeNode: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (codeNode: DomElement): React.ReactElement | undefined { if (codeNode.name !== 'code' || !codeNode.attribs || !codeNode.attribs['data-highlight-language'] || !codeNode.children || !codeNode.children[0]) { return } @@ -33,6 +33,6 @@ export class HighlightedCodeReplacer extends ComponentReplacer { .filter(line => !!line).length } - return + return } } diff --git a/src/components/markdown-renderer/replace-components/image/image-replacer.tsx b/src/components/markdown-renderer/replace-components/image/image-replacer.tsx index 2926248ee..27e744894 100644 --- a/src/components/markdown-renderer/replace-components/image/image-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/image/image-replacer.tsx @@ -4,10 +4,10 @@ import { ComponentReplacer } from '../ComponentReplacer' import { ImageFrame } from './image-frame' export class ImageReplacer extends ComponentReplacer { - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { if (node.name === 'img' && node.attribs) { return { } export class KatexReplacer extends ComponentReplacer { - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { const katex = getNodeIfKatexBlock(node) || getNodeIfInlineKatex(node) if (katex?.children && katex.children[0]) { const mathJaxContent = katex.children[0]?.data as string const isInline = (katex.attribs?.inline) !== undefined - return + return } } } diff --git a/src/components/markdown-renderer/replace-components/linemarker/linemarker-replacer.tsx b/src/components/markdown-renderer/replace-components/linemarker/linemarker-replacer.tsx index 27426c5f8..db8447fb0 100644 --- a/src/components/markdown-renderer/replace-components/linemarker/linemarker-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/linemarker/linemarker-replacer.tsx @@ -2,7 +2,7 @@ import { DomElement } from 'domhandler' import { ComponentReplacer } from '../ComponentReplacer' export class LinemarkerReplacer extends ComponentReplacer { - public getReplacement (codeNode: DomElement, index: number): null | undefined { + public getReplacement (codeNode: DomElement): null | undefined { return codeNode.name === 'app-linemarker' ? null : undefined } } diff --git a/src/components/markdown-renderer/replace-components/mermaid/mermaid-replacer.tsx b/src/components/markdown-renderer/replace-components/mermaid/mermaid-replacer.tsx index e48039fb0..5b28282c2 100644 --- a/src/components/markdown-renderer/replace-components/mermaid/mermaid-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/mermaid/mermaid-replacer.tsx @@ -4,13 +4,13 @@ import { ComponentReplacer } from '../ComponentReplacer' import { MermaidChart } from './mermaid-chart' export class MermaidReplacer implements ComponentReplacer { - getReplacement (codeNode: DomElement, index: number): React.ReactElement | undefined { + getReplacement (codeNode: DomElement): React.ReactElement | undefined { if (codeNode.name !== 'code' || !codeNode.attribs || !codeNode.attribs['data-highlight-language'] || codeNode.attribs['data-highlight-language'] !== 'mermaid' || !codeNode.children || !codeNode.children[0]) { return } const code = codeNode.children[0].data as string - return + return } } diff --git a/src/components/markdown-renderer/replace-components/pdf/pdf-replacer.tsx b/src/components/markdown-renderer/replace-components/pdf/pdf-replacer.tsx index 0c597d3c1..d83b79ce5 100644 --- a/src/components/markdown-renderer/replace-components/pdf/pdf-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/pdf/pdf-replacer.tsx @@ -7,13 +7,13 @@ import { PdfFrame } from './pdf-frame' export class PdfReplacer extends ComponentReplacer { private counterMap: Map = new Map() - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { const attributes = getAttributesFromHedgeDocTag(node, 'pdf') if (attributes && attributes.url) { const pdfUrl = attributes.url const count = (this.counterMap.get(pdfUrl) || 0) + 1 this.counterMap.set(pdfUrl, count) - return + return } } } diff --git a/src/components/markdown-renderer/replace-components/possible-wider/possible-wider-replacer.tsx b/src/components/markdown-renderer/replace-components/possible-wider/possible-wider-replacer.tsx index eb3b2d898..8f9f4125e 100644 --- a/src/components/markdown-renderer/replace-components/possible-wider/possible-wider-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/possible-wider/possible-wider-replacer.tsx @@ -1,5 +1,5 @@ import { DomElement } from 'domhandler' -import { ComponentReplacer, NativeRenderer, SubNodeTransform } from '../ComponentReplacer' +import { ComponentReplacer } from '../ComponentReplacer' import './possible-wider-replacer.scss' const enabledTags = ['img', 'app-youtube', 'app-vimeo', 'app-asciinema', 'app-pdf'] @@ -10,7 +10,7 @@ const enabledTags = ['img', 'app-youtube', 'app-vimeo', 'app-asciinema', 'app-pd * appends the "wider-possible" class to paragraphs with special content. */ export class PossibleWiderReplacer extends ComponentReplacer { - public getReplacement (node: DomElement, index: number, subNodeTransformer: SubNodeTransform, nativeRenderer: NativeRenderer): (undefined) { + public getReplacement (node: DomElement): (undefined) { if (node.name !== 'p') { return } diff --git a/src/components/markdown-renderer/replace-components/quote-options/quote-options-replacer.tsx b/src/components/markdown-renderer/replace-components/quote-options/quote-options-replacer.tsx index c23dc168c..fbbcaec20 100644 --- a/src/components/markdown-renderer/replace-components/quote-options/quote-options-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/quote-options/quote-options-replacer.tsx @@ -1,6 +1,6 @@ import { DomElement } from 'domhandler' import { ReactElement } from 'react' -import { ComponentReplacer, NativeRenderer, SubNodeTransform } from '../ComponentReplacer' +import { ComponentReplacer } from '../ComponentReplacer' const isColorExtraElement = (node: DomElement | undefined): boolean => { if (!node || !node.attribs || !node.attribs.class || !node.attribs['data-color']) { @@ -19,7 +19,7 @@ const findQuoteOptionsParent = (nodes: DomElement[]): DomElement | undefined => } export class QuoteOptionsReplacer extends ComponentReplacer { - public getReplacement (node: DomElement, index: number, subNodeTransform: SubNodeTransform, nativeRenderer: NativeRenderer):ReactElement|undefined { + public getReplacement (node: DomElement):ReactElement|undefined { if (node.name !== 'blockquote' || !node.children || node.children.length < 1) { return } @@ -38,6 +38,5 @@ export class QuoteOptionsReplacer extends ComponentReplacer { return } node.attribs = Object.assign(node.attribs || {}, { style: `border-left-color: ${attributes['data-color']};` }) - return nativeRenderer(node, index) } } diff --git a/src/components/markdown-renderer/replace-components/sequence-diagram/sequence-diagram-replacer.tsx b/src/components/markdown-renderer/replace-components/sequence-diagram/sequence-diagram-replacer.tsx index a540b60d4..67bce5f9c 100644 --- a/src/components/markdown-renderer/replace-components/sequence-diagram/sequence-diagram-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/sequence-diagram/sequence-diagram-replacer.tsx @@ -5,14 +5,14 @@ import { MermaidChart } from '../mermaid/mermaid-chart' import { DeprecationWarning } from './deprecation-warning' export class SequenceDiagramReplacer implements ComponentReplacer { - getReplacement (codeNode: DomElement, index: number): React.ReactElement | undefined { + getReplacement (codeNode: DomElement): React.ReactElement | undefined { if (codeNode.name !== 'code' || !codeNode.attribs || !codeNode.attribs['data-highlight-language'] || codeNode.attribs['data-highlight-language'] !== 'sequence' || !codeNode.children || !codeNode.children[0]) { return } const code = codeNode.children[0].data as string - return + return diff --git a/src/components/markdown-renderer/replace-components/task-list/task-list-replacer.tsx b/src/components/markdown-renderer/replace-components/task-list/task-list-replacer.tsx index b4a3f7b74..e99c37c73 100644 --- a/src/components/markdown-renderer/replace-components/task-list/task-list-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/task-list/task-list-replacer.tsx @@ -15,7 +15,7 @@ export class TaskListReplacer extends ComponentReplacer { this.onTaskCheckedChange(lineNum, event.currentTarget.checked) } - public getReplacement (node: DomElement, index:number): (ReactElement|undefined) { + public getReplacement (node: DomElement): (ReactElement|undefined) { if (node.attribs?.class === 'task-list-item-checkbox') { return ( ) } diff --git a/src/components/markdown-renderer/replace-components/vimeo/vimeo-replacer.tsx b/src/components/markdown-renderer/replace-components/vimeo/vimeo-replacer.tsx index 747824c48..154d430ce 100644 --- a/src/components/markdown-renderer/replace-components/vimeo/vimeo-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/vimeo/vimeo-replacer.tsx @@ -7,13 +7,13 @@ import { VimeoFrame } from './vimeo-frame' export class VimeoReplacer extends ComponentReplacer { private counterMap: Map = new Map() - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { const attributes = getAttributesFromHedgeDocTag(node, 'vimeo') if (attributes && attributes.id) { const videoId = attributes.id const count = (this.counterMap.get(videoId) || 0) + 1 this.counterMap.set(videoId, count) - return + return } } } diff --git a/src/components/markdown-renderer/replace-components/youtube/youtube-replacer.tsx b/src/components/markdown-renderer/replace-components/youtube/youtube-replacer.tsx index 997ea2986..4528f05e3 100644 --- a/src/components/markdown-renderer/replace-components/youtube/youtube-replacer.tsx +++ b/src/components/markdown-renderer/replace-components/youtube/youtube-replacer.tsx @@ -7,13 +7,13 @@ import { YouTubeFrame } from './youtube-frame' export class YoutubeReplacer extends ComponentReplacer { private counterMap: Map = new Map() - public getReplacement (node: DomElement, index: number): React.ReactElement | undefined { + public getReplacement (node: DomElement): React.ReactElement | undefined { const attributes = getAttributesFromHedgeDocTag(node, 'youtube') if (attributes && attributes.id) { const videoId = attributes.id const count = (this.counterMap.get(videoId) || 0) + 1 this.counterMap.set(videoId, count) - return + return } } } diff --git a/yarn.lock b/yarn.lock index 7f2f79935..4e9033090 100644 --- a/yarn.lock +++ b/yarn.lock @@ -48,12 +48,12 @@ source-map "^0.5.0" "@babel/core@^7.1.0", "@babel/core@^7.4.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.5.tgz#6ad96e2f71899ea3f9b651f0a911e85205d1ff6d" - integrity sha512-fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q== + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" + "@babel/generator" "^7.11.6" "@babel/helper-module-transforms" "^7.11.0" "@babel/helpers" "^7.10.4" "@babel/parser" "^7.11.5" @@ -67,16 +67,16 @@ lodash "^4.17.19" resolve "^1.3.2" semver "^5.4.1" - source-map "^0.6.1" + source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.4.0", "@babel/generator@^7.9.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.5.tgz#a5582773425a468e4ba269d9a1f701fbca6a7a82" - integrity sha512-9UqHWJ4IwRTy4l0o8gq2ef8ws8UPzvtMkVKjTLAiRmza9p9V6Z+OfuNd9fB1j5Q67F+dVJtPC2sZXI8NM9br4g== +"@babel/generator@^7.11.5", "@babel/generator@^7.11.6", "@babel/generator@^7.4.0", "@babel/generator@^7.9.0": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== dependencies: "@babel/types" "^7.11.5" jsesc "^2.5.1" - source-map "^0.6.1" + source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" @@ -1645,13 +1645,15 @@ "@types/testing-library__cypress" "^5.0.6" "@testing-library/dom@^7.11.0", "@testing-library/dom@^7.22.2", "@testing-library/dom@^7.22.3": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.23.0.tgz#c54c0fa53705ad867bcefb52fc0c96487fbc10f6" - integrity sha512-H5m090auYH+obdZmsaYLrSWC5OauWD2CvNbz88KBxQJoXgkJzbU0DpAG8BS7Evj5WqCC3nAAKrLS6vw0ljUYLg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.1.tgz#0e8acd042070f2c1b183fbfe5c0d38b3194ad3c0" + integrity sha512-TemHWY59gvzcScGiE5eooZpzYk9GaED0TuuK4WefbIc/DQg0L5wOpnj7MIEeAGF3B7Ekf1kvmVnQ97vwz4Lmhg== dependencies: + "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.10.3" "@types/aria-query" "^4.2.0" aria-query "^4.2.2" + chalk "^4.1.0" dom-accessibility-api "^0.5.1" pretty-format "^26.4.2" @@ -1841,9 +1843,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*": - version "26.0.12" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.12.tgz#0f20fef9e74f55a312530284e6178f3b3254f501" - integrity sha512-vZOFjm562IPb1EmaKxMjdcouxVb1l3NqoUH4XC4tDQ2R/AWde+0HXBUhyfc6L+7vc3mJ393U+5vr3nH2CLSVVg== + version "26.0.13" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.13.tgz#5a7b9d5312f5dd521a38329c38ee9d3802a0b85e" + integrity sha512-sCzjKow4z9LILc6DhBvn5AkIfmQzDZkgtVVKmGwVrs5tuid38ws281D4l+7x1kP487+FlKDh5kfMZ8WSPAdmdA== dependencies: jest-diff "^25.2.1" pretty-format "^25.2.1" @@ -1926,9 +1928,9 @@ "@types/node" "*" "@types/node@*": - version "14.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.2.tgz#264b44c5a28dfa80198fc2f7b6d3c8a054b9491f" - integrity sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A== + version "14.6.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" + integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== "@types/node@12.12.53": version "12.12.53" @@ -2400,7 +2402,7 @@ abcjs@5.11.0: abcjs "5.10.3" midi "https://github.com/paulrosen/MIDI.js.git#abcjs" -abcjs@^5.12.0: +abcjs@5.12.0: version "5.12.0" resolved "https://registry.yarnpkg.com/abcjs/-/abcjs-5.12.0.tgz#06fec076d570821309b0a12598cd356cd589eb08" integrity sha512-pvi7SjOAKT7cRyRtywUSwYB0SNtRHKLxZUZ9Oc4E+nvpBHr8Z2/M9Pfyv3oIaiEpxlWTFK+B/H5t/DckiNFgpg== @@ -3261,12 +3263,12 @@ browserslist@4.10.0: pkg-up "^3.1.0" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.8.5, browserslist@^4.9.1: - version "4.14.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" - integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== + version "4.14.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.1.tgz#cb2b490ba881d45dc3039078c7ed04411eaf3fa3" + integrity sha512-zyBTIHydW37pnb63c7fHFXUG6EcqWOqoMdDx6cdyaDFriZ20EoVxcE95S54N+heRqY8m8IUgB5zYta/gCwSaaA== dependencies: - caniuse-lite "^1.0.30001111" - electron-to-chromium "^1.3.523" + caniuse-lite "^1.0.30001124" + electron-to-chromium "^1.3.562" escalade "^3.0.2" node-releases "^1.1.60" @@ -3464,10 +3466,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111: - version "1.0.30001122" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001122.tgz#2c8ff631330d986a07a7ba7125cce77a1373b475" - integrity sha512-pxjw28CThdrqfz06nJkpAc5SXM404TXB/h5f4UJX+rrXJKE/1bu/KAILc2AY+O6cQIFtRjV9qOR2vaEp9LDGUA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001124: + version "1.0.30001124" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz#5d9998190258e11630d674fc50ea8e579ae0ced2" + integrity sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA== capture-exit@^2.0.0: version "2.0.0" @@ -5065,10 +5067,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.523: - version "1.3.558" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.558.tgz#a329d3139cb33e8652a7e7db4c5ae26e294b9f60" - integrity sha512-r6th6b/TU2udqVoUDGWHF/z2ACJVnEei0wvWZf/nt+Qql1Vxh60ZYPhQP46j4D73T/Jou7hl4TqQfxben+qJTg== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.562: + version "1.3.562" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.562.tgz#79c20277ee1c8d0173a22af00e38433b752bc70f" + integrity sha512-WhRe6liQ2q/w1MZc8mD8INkenHivuHdrr4r5EQHNomy3NJux+incP6M6lDMd0paShP3MD0WGe5R1TWmEClf+Bg== elegant-spinner@^1.0.1: version "1.0.1" @@ -8002,9 +8004,9 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-parse-even-better-errors@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" - integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1"