From 0cec462be03a03e844f35d1483c9af1639e3099a Mon Sep 17 00:00:00 2001 From: Irene Alvarado Date: Mon, 15 Nov 2021 11:11:50 -0500 Subject: [PATCH 001/381] add tailwind to poll viewer --- package.json | 1 + src/viewers/file-viewers/poll.tsx | 6 ++++-- yarn.lock | 15 ++++++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 4c7420b..3040c2d 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ "dependencies": { "@codesandbox/sandpack-react": "^0.3.0", "@excalidraw/excalidraw": "^0.10.0", + "@githubnext/utils": "^0.6.0", "@githubocto/flat-ui": "^0.10.2", "@octokit/rest": "^18.12.0", "@react-three/drei": "^7.20.5", diff --git a/src/viewers/file-viewers/poll.tsx b/src/viewers/file-viewers/poll.tsx index 345b631..9cbe89f 100644 --- a/src/viewers/file-viewers/poll.tsx +++ b/src/viewers/file-viewers/poll.tsx @@ -2,7 +2,7 @@ import { useState } from "react"; // import { useUpdateFileContents, useFileContent } from "hooks"; // import { ViewerProps } from "."; -// import './index.css'; // TODO: need to import tailwind +import { useTailwindCdn } from '@githubnext/utils'; // to import tailwind css interface PollOptions { text: string; @@ -15,6 +15,8 @@ type Poll = { }; export function Viewer(props: FileViewerProps) { + useTailwindCdn(); + const { content } = props; const [poll, setPoll] = useState(JSON.parse(content)); @@ -56,7 +58,7 @@ export function Viewer(props: FileViewerProps) { */ return ( -
+
{poll.poll} {poll.options.map((option, index) => { const percent = Math.floor((option.votes / totalVotes) * 100); diff --git a/yarn.lock b/yarn.lock index 9339ecc..a465e88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -589,6 +589,14 @@ resolved "https://registry.yarnpkg.com/@excalidraw/excalidraw/-/excalidraw-0.10.0.tgz#5329d6fb1b0cca068e2cd34da6d648dd6d0d3fec" integrity sha512-0fHc/oX394dHAT7LEacwZ0vh8aeI179plYnfaeLeRHBtHARgmtlmvxcnxd2pxJ0Z1Uj/Cy76oK9MVw/y8P1HhQ== +"@githubnext/utils@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@githubnext/utils/-/utils-0.6.0.tgz#d7d8e97a3c0bc22571879ade60e62580e9bfe29f" + integrity sha512-S5blRTFEbl7U76Rc6AOH/VOoSm9jb1XyJ20dcbpJTcsaUKwk/XsVKklFqjHxE8+8Whi+eLhsYROIBsxoEBC9SA== + dependencies: + react "^17.0.2" + zod "^3.11.6" + "@githubocto/flat-ui@^0.10.2": version "0.10.2" resolved "https://registry.yarnpkg.com/@githubocto/flat-ui/-/flat-ui-0.10.2.tgz#25ea025e662721eac7f468662436864ebf81dd4a" @@ -3715,7 +3723,7 @@ react-window@^1.8.6: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" -react@^17.0.0: +react@^17.0.0, react@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -4279,6 +4287,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +zod@^3.11.6: + version "3.11.6" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.11.6.tgz#e43a5e0c213ae2e02aefe7cb2b1a6fa3d7f1f483" + integrity sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg== + zstddec@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" From 71132f843b6e493eedfe1782ffede132e2ce5e7f Mon Sep 17 00:00:00 2001 From: Irene Alvarado Date: Mon, 15 Nov 2021 11:43:31 -0500 Subject: [PATCH 002/381] add a chart config --- src/viewers/file-viewers/chart.tsx | 210 ++++++++++++++++++++++++++--- 1 file changed, 194 insertions(+), 16 deletions(-) diff --git a/src/viewers/file-viewers/chart.tsx b/src/viewers/file-viewers/chart.tsx index 41a9d51..e533435 100644 --- a/src/viewers/file-viewers/chart.tsx +++ b/src/viewers/file-viewers/chart.tsx @@ -5,29 +5,207 @@ import "vega"; import "vega-lite"; import { Vega }from "react-vega"; +const config = { + "path": "data.csv", + "padding": 5, + "signals": [ + { + "name": "binOffset", + "value": 0, + "bind": { + "input": "range", + "min": -0.1, + "max": 0.1 + } + }, + { + "name": "binStep", + "value": 10, + "bind": { + "input": "range", + "min": 0, + "max": 50, + "step": 1 + } + } + ], + "data": [ + { + "name": "data" + }, + { + "name": "binned", + "source": "data", + "transform": [ + { + "type": "bin", + "field": "height", + "extent": [ + 0, + 100 + ], + "anchor": { + "signal": "binOffset" + }, + "step": { + "signal": "binStep" + }, + "nice": false + }, + { + "type": "aggregate", + "key": "bin0", + "groupby": [ + "bin0", + "bin1" + ], + "fields": [ + "bin0" + ], + "ops": [ + "count" + ], + "as": [ + "count" + ] + } + ] + } + ], + "scales": [ + { + "name": "xscale", + "type": "linear", + "range": "width", + "domain": [ + 0, + 100 + ] + }, + { + "name": "yscale", + "type": "linear", + "range": "height", + "round": true, + "domain": { + "data": "binned", + "field": "count" + }, + "zero": true, + "nice": true + } + ], + "axes": [ + { + "orient": "bottom", + "scale": "xscale", + "label": "height", + "zindex": 1 + }, + { + "orient": "left", + "scale": "yscale", + "label": "count", + "tickCount": 5, + "zindex": 1 + } + ], + "marks": [ + { + "type": "rect", + "from": { + "data": "binned" + }, + "encode": { + "update": { + "x": { + "scale": "xscale", + "field": "bin0" + }, + "x2": { + "scale": "xscale", + "field": "bin1", + "offset": { + "signal": "binStep > 0.02 ? -0.5 : 0" + } + }, + "y": { + "scale": "yscale", + "field": "count" + }, + "y2": { + "scale": "yscale", + "value": 0 + }, + "fill": { + "value": "green" + } + }, + "hover": { + "fill": { + "value": "firebrick" + } + } + } + }, + { + "type": "rect", + "from": { + "data": "data" + }, + "encode": { + "enter": { + "x": { + "scale": "xscale", + "field": "u" + }, + "width": { + "value": 1 + }, + "y": { + "value": 25, + "offset": { + "signal": "height" + } + }, + "height": { + "value": 5 + }, + "fill": { + "value": "green" + }, + "fillOpacity": { + "value": 0.4 + } + } + } + } + ] +} + export function Viewer(props: FileViewerProps) { const { content } = props; - const data = useMemo(() => ({ data: parseData(content) }), [content]); + const data = useMemo(() => ({ data: parseData(content) }), [content]); - console.log(data); - const parsedConfig = { - width: 500, - height: 500, - data: [{ name: "data" }], - // ...config - }; + const parsedConfig = { + width: 500, + height: 500, + // data: [{ name: "data" }], + ...config + }; - return ( -
-
- {/* */} -
- {!!data && } + return ( +
+
+ {/* */} +
+ {/* @ts-ignore */} + {!!data && } +
-
- ); + ); } const parseData = (str: string) => { From 87d7fd888cbf7329b9a2d9c40621f62b7cc794c2 Mon Sep 17 00:00:00 2001 From: Irene Alvarado Date: Mon, 15 Nov 2021 15:01:36 -0500 Subject: [PATCH 003/381] add a readme --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..96572b9 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# Composable Github Example Viewers + +The Composable Github app depends on a set of "viewers" that handle how to render files and folders. This repo contains a set of example viewers that can serve as inspiration for you to create your own. + +## Example viewers + +Viewers come in two types: file viewers and folder viewers. + +All viewers require an object within [`package.json`]() to describe their intended use. For example: + +```json +{ + "type": "file", + "title": "CSS viewer", + "description": "View selectors in a css file", + "entry": "/viewers/file-viewers/css.tsx", + "extensions": [ + "css" + ] +} +``` + +### File viewers + +| Viewer name | Description | Supported extensions | +| ----------- | ----------- | ----------- | +| Code | Simple viewer for code | all extensions +| 3D Files | 3D model viewer with Three.js | obj, fbx, gltf, glb +| Css | View selectors in a css file | css +| Excalidraw | A drawing/whiteboard viewer | excalidraw +| Flat | A viewer for flat data files | csv, json +| Iframe | Render any html iframe | iframe +| Chart | A vega chart viewer | chart + +### Folder viewers + +| Viewer name | Description | +| ----------- | ----------- | +| Minimap | A visualization of your folders and files + + +## Create your own custom viewer + +Follow the instructions in our [custom viewer template](https://github.com/githubnext/composable-github-viewer-template) repository. \ No newline at end of file From 346eb3ddfdd43716c85e3cc9b8cbb76f081bbd0a Mon Sep 17 00:00:00 2001 From: Irene Alvarado Date: Mon, 15 Nov 2021 15:02:14 -0500 Subject: [PATCH 004/381] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 96572b9..d164b38 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ The Composable Github app depends on a set of "viewers" that handle how to rende Viewers come in two types: file viewers and folder viewers. -All viewers require an object within [`package.json`]() to describe their intended use. For example: +All viewers require an object within [`package.json`](https://github.com/githubnext/composable-github-example-viewers/blob/main/package.json#L9) to describe their intended use. For example: ```json { @@ -41,4 +41,4 @@ All viewers require an object within [`package.json`]() to describe their intend ## Create your own custom viewer -Follow the instructions in our [custom viewer template](https://github.com/githubnext/composable-github-viewer-template) repository. \ No newline at end of file +Follow the instructions in our [custom viewer template](https://github.com/githubnext/composable-github-viewer-template) repository. From 325ae2376458bf1fded42d43f8982410033eb884 Mon Sep 17 00:00:00 2001 From: Irene Alvarado Date: Tue, 16 Nov 2021 10:56:51 -0500 Subject: [PATCH 005/381] add markdown viewer --- package.json | 9 ++ .../file-viewers/markdown/markdown.tsx | 20 +++ src/viewers/file-viewers/markdown/style.css | 114 ++++++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 src/viewers/file-viewers/markdown/markdown.tsx create mode 100644 src/viewers/file-viewers/markdown/style.css diff --git a/package.json b/package.json index 1288997..36f96ef 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,15 @@ "csv" ] }, + { + "type": "file", + "title": "Markdown viewer", + "description": "A simple markdown viewer", + "entry": "/viewers/file-viewers/markdown/markdown.tsx", + "extensions": [ + "md" + ] + }, { "type": "folder", "title": "Minimap", diff --git a/src/viewers/file-viewers/markdown/markdown.tsx b/src/viewers/file-viewers/markdown/markdown.tsx new file mode 100644 index 0000000..316648e --- /dev/null +++ b/src/viewers/file-viewers/markdown/markdown.tsx @@ -0,0 +1,20 @@ +import "./viewers/file-viewers/markdown/style.css" +import SyntaxHighlighter from "react-syntax-highlighter"; + +export function Viewer(props: FileViewerProps) { + const { content } = props; + + return ( +
+ + {content} + +
+ ); +} diff --git a/src/viewers/file-viewers/markdown/style.css b/src/viewers/file-viewers/markdown/style.css new file mode 100644 index 0000000..a7ffc45 --- /dev/null +++ b/src/viewers/file-viewers/markdown/style.css @@ -0,0 +1,114 @@ +.code .hljs { + color: #24292e; + background: #ffffff; +} + +.code .hljs-doctag, +.code .hljs-keyword, +.code .hljs-meta .hljs-keyword, +.code .hljs-template-tag, +.code .hljs-template-variable, +.code .hljs-type, +.code .hljs-variable.language_ { + /* prettylights-syntax-keyword */ + color: #d73a49; +} + +.code .hljs-title, +.code .hljs-title.class_, +.code .hljs-title.class_.inherited__, +.code .hljs-title.function_ { + /* prettylights-syntax-entity */ + color: #6f42c1; +} + +.code .hljs-attr, +.code .hljs-attribute, +.code .hljs-literal, +.code .hljs-meta, +.code .hljs-number, +.code .hljs-operator, +.code .hljs-variable, +.code .hljs-selector-attr, +.code .hljs-selector-class, +.code .hljs-selector-id { + /* prettylights-syntax-constant */ + color: #005cc5; +} + +.code .hljs-regexp, +.code .hljs-string, +.code .hljs-meta .hljs-string { + /* prettylights-syntax-string */ + color: #032f62; +} + +.code .hljs-built_in, +.code .hljs-symbol { + /* prettylights-syntax-variable */ + color: #e36209; +} + +.code .hljs-comment, +.code .hljs-code, +.code .hljs-formula { + /* prettylights-syntax-comment */ + color: #6a737d; +} + +.code .hljs-name, +.code .hljs-quote, +.code .hljs-selector-tag, +.code .hljs-selector-pseudo { + /* prettylights-syntax-entity-tag */ + color: #22863a; +} + +.code .hljs-subst { + /* prettylights-syntax-storage-modifier-import */ + color: #24292e; +} + +.code .hljs-section { + /* prettylights-syntax-markup-heading */ + color: #005cc5; + font-weight: bold; +} + +.code .hljs-bullet { + /* prettylights-syntax-markup-list */ + color: #735c0f; +} + +.code .hljs-emphasis { + /* prettylights-syntax-markup-italic */ + color: #24292e; + font-style: italic; +} + +.code .hljs-strong { + /* prettylights-syntax-markup-bold */ + color: #24292e; + font-weight: bold; +} + +.code .hljs-addition { + /* prettylights-syntax-markup-inserted */ + color: #22863a; + background-color: #f0fff4; +} + +.code .hljs-deletion { + /* prettylights-syntax-markup-deleted */ + color: #b31d28; + background-color: #ffeef0; +} + +.code .hljs-char.escape_, +.code .hljs-link, +.code .hljs-params, +.code .hljs-property, +.code .hljs-punctuation, +.code .hljs-tag { + /* purposely ignored */ +} From 423592a8de124474aecafccef3c6c4df8c0f81f2 Mon Sep 17 00:00:00 2001 From: Irene Alvarado Date: Tue, 16 Nov 2021 11:01:28 -0500 Subject: [PATCH 006/381] hook up markdown viewer --- package.json | 4 +- src/viewers/file-viewers/markdown.tsx | 10 + .../file-viewers/markdown/markdown.tsx | 20 - src/viewers/file-viewers/markdown/style.css | 114 --- yarn.lock | 754 +++++++++++++++++- 5 files changed, 763 insertions(+), 139 deletions(-) create mode 100644 src/viewers/file-viewers/markdown.tsx delete mode 100644 src/viewers/file-viewers/markdown/markdown.tsx delete mode 100644 src/viewers/file-viewers/markdown/style.css diff --git a/package.json b/package.json index 36f96ef..f42d62e 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "type": "file", "title": "Markdown viewer", "description": "A simple markdown viewer", - "entry": "/viewers/file-viewers/markdown/markdown.tsx", + "entry": "/viewers/file-viewers/markdown.tsx", "extensions": [ "md" ] @@ -117,10 +117,12 @@ "react-dom": "^17.0.0", "react-error-boundary": "^3.1.4", "react-json-editor-ajrm": "^2.5.13", + "react-markdown": "^7.1.0", "react-query": "^3.32.1", "react-syntax-highlighter": "^15.4.4", "react-use": "^17.3.1", "react-vega": "^7.4.4", + "remark-gfm": "^3.0.1", "three": "^0.134.0", "vega": "^5.21.0", "vega-lite": "^5.1.1" diff --git a/src/viewers/file-viewers/markdown.tsx b/src/viewers/file-viewers/markdown.tsx new file mode 100644 index 0000000..2b8a4f5 --- /dev/null +++ b/src/viewers/file-viewers/markdown.tsx @@ -0,0 +1,10 @@ +import ReactMarkdown from 'react-markdown' +import remarkGfm from 'remark-gfm' + +export function Viewer(props: FileViewerProps) { + const { content } = props; + + return ( + + ); +} diff --git a/src/viewers/file-viewers/markdown/markdown.tsx b/src/viewers/file-viewers/markdown/markdown.tsx deleted file mode 100644 index 316648e..0000000 --- a/src/viewers/file-viewers/markdown/markdown.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import "./viewers/file-viewers/markdown/style.css" -import SyntaxHighlighter from "react-syntax-highlighter"; - -export function Viewer(props: FileViewerProps) { - const { content } = props; - - return ( -
- - {content} - -
- ); -} diff --git a/src/viewers/file-viewers/markdown/style.css b/src/viewers/file-viewers/markdown/style.css deleted file mode 100644 index a7ffc45..0000000 --- a/src/viewers/file-viewers/markdown/style.css +++ /dev/null @@ -1,114 +0,0 @@ -.code .hljs { - color: #24292e; - background: #ffffff; -} - -.code .hljs-doctag, -.code .hljs-keyword, -.code .hljs-meta .hljs-keyword, -.code .hljs-template-tag, -.code .hljs-template-variable, -.code .hljs-type, -.code .hljs-variable.language_ { - /* prettylights-syntax-keyword */ - color: #d73a49; -} - -.code .hljs-title, -.code .hljs-title.class_, -.code .hljs-title.class_.inherited__, -.code .hljs-title.function_ { - /* prettylights-syntax-entity */ - color: #6f42c1; -} - -.code .hljs-attr, -.code .hljs-attribute, -.code .hljs-literal, -.code .hljs-meta, -.code .hljs-number, -.code .hljs-operator, -.code .hljs-variable, -.code .hljs-selector-attr, -.code .hljs-selector-class, -.code .hljs-selector-id { - /* prettylights-syntax-constant */ - color: #005cc5; -} - -.code .hljs-regexp, -.code .hljs-string, -.code .hljs-meta .hljs-string { - /* prettylights-syntax-string */ - color: #032f62; -} - -.code .hljs-built_in, -.code .hljs-symbol { - /* prettylights-syntax-variable */ - color: #e36209; -} - -.code .hljs-comment, -.code .hljs-code, -.code .hljs-formula { - /* prettylights-syntax-comment */ - color: #6a737d; -} - -.code .hljs-name, -.code .hljs-quote, -.code .hljs-selector-tag, -.code .hljs-selector-pseudo { - /* prettylights-syntax-entity-tag */ - color: #22863a; -} - -.code .hljs-subst { - /* prettylights-syntax-storage-modifier-import */ - color: #24292e; -} - -.code .hljs-section { - /* prettylights-syntax-markup-heading */ - color: #005cc5; - font-weight: bold; -} - -.code .hljs-bullet { - /* prettylights-syntax-markup-list */ - color: #735c0f; -} - -.code .hljs-emphasis { - /* prettylights-syntax-markup-italic */ - color: #24292e; - font-style: italic; -} - -.code .hljs-strong { - /* prettylights-syntax-markup-bold */ - color: #24292e; - font-weight: bold; -} - -.code .hljs-addition { - /* prettylights-syntax-markup-inserted */ - color: #22863a; - background-color: #f0fff4; -} - -.code .hljs-deletion { - /* prettylights-syntax-markup-deleted */ - color: #b31d28; - background-color: #ffeef0; -} - -.code .hljs-char.escape_, -.code .hljs-link, -.code .hljs-params, -.code .hljs-property, -.code .hljs-punctuation, -.code .hljs-tag { - /* purposely ignored */ -} diff --git a/yarn.lock b/yarn.lock index 43a02e3..364af6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1342,6 +1342,13 @@ "@types/d3-transition" "*" "@types/d3-zoom" "*" +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + "@types/dompurify@^2.2.2": version "2.3.1" resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.3.1.tgz#2934adcd31c4e6b02676f9c22f9756e5091c04dd" @@ -1381,6 +1388,23 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.176.tgz#641150fc1cda36fbfa329de603bbb175d7ee20c0" integrity sha512-xZmuPTa3rlZoIbtDUyJKZQimJV3bxCmzMIO2c9Pz9afyDro6kr7R79GwcB6mRhuoPmV2p1Vb66WOJH7F886WKQ== +"@types/mdast@^3.0.0", "@types/mdast@^3.0.3": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" + +"@types/mdurl@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@*": version "16.11.7" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" @@ -1459,7 +1483,7 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== -"@types/unist@*": +"@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== @@ -1592,6 +1616,11 @@ babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1705,6 +1734,11 @@ caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001280: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz#066a506046ba4be34cde5f74a08db7a396718fb7" integrity sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1727,16 +1761,31 @@ character-entities-legacy@^1.0.0: resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + character-entities@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +character-entities@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" + integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + chevrotain@^9.0.2: version "9.1.0" resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-9.1.0.tgz#ca2a811372687ad6f4d11c063cd27a26e5fbd52d" @@ -1861,6 +1910,11 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== +comma-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" + integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== + commander@2: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2476,7 +2530,7 @@ debounce@^1.2.0: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@^4.1.0: +debug@^4.0.0, debug@^4.1.0: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -2510,6 +2564,11 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +dequal@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" + integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + detect-gpu@^3.1.25: version "3.1.26" resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-3.1.26.tgz#c3f7c365c6e57e9e2035371d5d5467b1eba8e4b5" @@ -2541,6 +2600,11 @@ didyoumean@^1.2.2: resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== +diff@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + dlv@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" @@ -2732,11 +2796,21 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + estree-walker@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3, fast-deep-equal@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2945,6 +3019,11 @@ hast-util-parse-selector@^2.0.0: resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== +hast-util-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz#4fc1086467cc1ef5ba20673cb6b03cec3a970f1c" + integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== + hastscript@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" @@ -3052,6 +3131,11 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inline-style-prefixer@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz#c5c0e43ba8831707afc5f5bbfd97edf45c1fa7ae" @@ -3081,6 +3165,11 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -3089,6 +3178,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3106,6 +3203,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-color-stop@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -3130,6 +3232,11 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3152,11 +3259,21 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-plain-obj@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" + integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -3238,6 +3355,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +kleur@^4.0.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + ktx-parse@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.1.tgz#6805c0929eae0a1f571ab3ce789e860e9135b432" @@ -3298,6 +3420,11 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +longest-streak@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" + integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -3325,6 +3452,11 @@ lz-string@^1.4.4: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= +markdown-table@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.1.tgz#88c48957aaf2a8014ccb2ba026776a1d736fe3dc" + integrity sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A== + match-sorter@^6.0.2, match-sorter@^6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" @@ -3333,11 +3465,140 @@ match-sorter@^6.0.2, match-sorter@^6.3.0: "@babel/runtime" "^7.12.5" remove-accents "0.4.2" +mdast-util-definitions@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" + integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^3.0.0" + +mdast-util-find-and-replace@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz#69728acd250749f8aac6e150e07d1fd15619e829" + integrity sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw== + dependencies: + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.1.0.tgz#534e75b4d4ef93e8aee3f51aba0a7592849e4b32" + integrity sha512-Mex7IIeIKRpGYNNywpxTfPhfFBTxBL5IVacPMU6GjYF+EkIvy++19cBgxVFyHVd2JpC/chG2IKGqZLffoo7Q1g== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^3.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz#4032dcbaddaef7d4f2f3768ed830475bb22d3970" + integrity sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz#355c1e8dc9e17e871d1b3fa5da8824923fc756e0" + integrity sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + unist-util-visit "^4.0.0" + +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz#6cc72ef5d9539f4cee76af3f15dd0daa9e3af40f" + integrity sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew== + dependencies: + "@types/mdast" "^3.0.3" + mdast-util-to-markdown "^1.0.0" + +mdast-util-gfm-table@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz#07c269a219d66ec2deb6de38aed0ba1d1f9442df" + integrity sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA== + dependencies: + markdown-table "^3.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz#a0aa2a00c893f9f006d13ba096cbc64608559c7f" + integrity sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA== + dependencies: + "@types/mdast" "^3.0.3" + mdast-util-to-markdown "^1.0.0" + +mdast-util-gfm@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz#2545856bc18a66d5cc63fbef0b097a020a8e9e3d" + integrity sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg== + dependencies: + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + +mdast-util-to-hast@^11.0.0: + version "11.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-11.3.0.tgz#ea9220617a710e80aa5cc3ac7cc9d4bb0440ae7a" + integrity sha512-4o3Cli3hXPmm1LhB+6rqhfsIUBjnKFlIUZvudaermXB+4/KONdd/W4saWWkC+LBLbPMqhFSSTSRgafHsT5fVJw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + "@types/mdurl" "^1.0.0" + mdast-util-definitions "^5.0.0" + mdurl "^1.0.0" + unist-builder "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.4.tgz#f67173bb95526a4d93454021aa4602f165ad3858" + integrity sha512-Wive3NvrNS4OY5yYKBADdK1QSlbJUZyZ2ssanITUzNQ7sxMfBANTVjLrAA9BFXshaeG9G77xpOK/z+TTret5Hg== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + "memoize-one@>=3.1.1 <6": version "5.2.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" @@ -3348,6 +3609,280 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz#fee459d29c5912a32f059c3a9836d4318ac85f30" + integrity sha512-HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA== + dependencies: + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + parse-entities "^3.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz#aafadc9ef2f8078d359eb635f144d913c669e0f6" + integrity sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-footnote@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz#cd6309f842db8859556b3708302abc7721351b5f" + integrity sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz#010900cfc9a2bf35d2859612c356a21d7fb19af5" + integrity sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-table@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.3.tgz#4761e35e3d21bde691aa06313406e1124a319239" + integrity sha512-JIfE1DGi64zzOx39/pGg6cZbiaUAF/MXbBLZnVl4aFz6Mja7GYMZjksfTGm9NzbgZkiZvbD77NLPuwGIRcFMjg== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz#a38c7c462c2007b534fcb485e9310165879654a7" + integrity sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz#953c1cd565df864790815c3a162d452d004255ed" + integrity sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz#d9d1b82967f43c346a335864060c16b735e3861f" + integrity sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" + integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" + integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz#fa779dcef7f2dc2c9e4b759abd85e553674eea4f" + integrity sha512-Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + parse-entities "^3.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068" + integrity sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg== + +micromark-util-html-tag-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" + integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" + integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" + integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz#91cdbcc9b2a827c0129a177d36241bcd3ccaa34d" + integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.1.tgz#8bb8a092d93d326bd29fe29602799f2d0d922fd4" + integrity sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA== + +micromark@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.7.tgz#036dfc974ddf8e6e773b197839c5671d92d0928c" + integrity sha512-67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + parse-entities "^3.0.0" + uvu "^0.5.0" + micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" @@ -3388,6 +3923,11 @@ modern-normalize@^1.1.0: resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7" integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA== +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -3507,6 +4047,19 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-3.1.0.tgz#82b04f2c26f2b3604e4df1972beb231f20d207e2" + integrity sha512-xf2yeHbsfg1vJySsQelVwgtI/67eAndVU05skrr/XN6KFMoVVA95BYrW8y78OfW4jqcuHwB7tlMlLkvbq4WbHQ== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -3628,7 +4181,7 @@ prismjs@^1.25.0, prismjs@~1.25.0: resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== -prop-types@^15.6.0, prop-types@^15.7.2: +prop-types@^15.0.0, prop-types@^15.6.0, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -3644,6 +4197,11 @@ property-information@^5.0.0: dependencies: xtend "^4.0.0" +property-information@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" + integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== + protocols@^1.1.0, protocols@^1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" @@ -3714,7 +4272,7 @@ react-is@^16.7.0, react-is@^16.8.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^17.0.2: +react-is@^17.0.0, react-is@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== @@ -3726,6 +4284,26 @@ react-json-editor-ajrm@^2.5.13: dependencies: "@babel/runtime" "^7.0.0-rc.0" +react-markdown@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-7.1.0.tgz#0ba62a4459daab6600ede83495a9228dae9d8f8e" + integrity sha512-hL8cLLkTydyoKlZWZOjlU6TvMYIw9qKLh1CCzVfnhKt/R/SnKVAqiyugetXY61CkjhBqJl2C5FdU3OwHYo7SrQ== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^2.0.0" + prop-types "^15.0.0" + property-information "^6.0.0" + react-is "^17.0.0" + remark-parse "^10.0.0" + remark-rehype "^9.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.3.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + react-merge-refs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" @@ -3899,6 +4477,35 @@ regexp-to-ast@0.5.0: resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-parse@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.0.tgz#65e2b2b34d8581d36b97f12a2926bb2126961cb4" + integrity sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-rehype@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-9.1.0.tgz#e4b5b6e19c125b3780343eb66c3e9b99b0f06a81" + integrity sha512-oLa6YmgAYg19zb0ZrBACh40hpBLteYROaPLhBXzLgjqyHQrN+gVP9N/FJvfzuNNuzCutktkroXEZBrxAxKhh7Q== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^11.0.0" + unified "^10.0.0" + remove-accents@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" @@ -3990,6 +4597,13 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= +sade@^1.7.3: + version "1.7.4" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.4.tgz#ea681e0c65d248d2095c90578c03ca0bb1b54691" + integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA== + dependencies: + mri "^1.1.0" + safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -4076,6 +4690,11 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +space-separated-tokens@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" + integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== + split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -4151,6 +4770,13 @@ style-mod@^4.0.0: resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.0.0.tgz#97e7c2d68b592975f2ca7a63d0dd6fcacfe35a01" integrity sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw== +style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + stylis@^4.0.10, stylis@^4.0.6: version "4.0.10" resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240" @@ -4286,6 +4912,11 @@ topojson-client@^3.1.0: dependencies: commander "2" +totalist@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-2.0.0.tgz#db6f1e19c0fa63e71339bbb8fba89653c18c7eec" + integrity sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -4310,6 +4941,11 @@ troika-worker-utils@^0.43.0: resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.43.0.tgz#f24bbf3d7d25f87f72150b37bf35fa105f7160bd" integrity sha512-8YXWwfviJ1N/9+nuE5dT9RFttmDsIF8CP7d6rRsBBhH55il3fBqpFSuzTlOcdgC1yq8Hmhi6GgIl6eK4Zt+hTw== +trough@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.0.2.tgz#94a3aa9d5ce379fc561f6244905b3f36b7458d96" + integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w== + ts-easing@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" @@ -4351,6 +4987,82 @@ typescript@^4.3.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== +unified@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.0.tgz#4e65eb38fc2448b1c5ee573a472340f52b9346fe" + integrity sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unist-builder@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-3.0.0.tgz#728baca4767c0e784e1e64bb44b5a5a753021a04" + integrity sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-generated@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" + integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== + +unist-util-is@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" + integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== + +unist-util-position@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.1.tgz#f8484b2da19a897a0180556d160c28633070dbb9" + integrity sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA== + +unist-util-stringify-position@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" + integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" + integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" + +unist-util-visit@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" + integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -4399,6 +5111,17 @@ utility-types@^3.10.0: resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== +uvu@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.2.tgz#c145e7f4b5becf80099cf22fd8a4a05f0112b2c0" + integrity sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + totalist "^2.0.0" + vega-canvas@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.6.tgz#55e032ce9a62acd17229f6bac66d99db3d6879cd" @@ -4782,6 +5505,24 @@ vega@^5.21.0: vega-voronoi "~4.1.5" vega-wordcloud "~4.1.3" +vfile-message@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.2.tgz#db7eaebe7fecb853010f2ef1664427f52baf8f74" + integrity sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.2.0.tgz#a32a646ff9251c274dbe8675644a39031025b369" + integrity sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + vite@^2.6.4: version "2.6.14" resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.14.tgz#35c09a15e4df823410819a2a239ab11efb186271" @@ -4890,3 +5631,8 @@ zustand@^3.3.3, zustand@^3.5.1, zustand@^3.5.13: version "3.6.5" resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.6.5.tgz#42a459397907d6bf0e2375351394733b2f83ee44" integrity sha512-/WfLJuXiEJimt61KGMHebrFBwckkCHGhAgVXTgPQHl6IMzjqm6MREb1OnDSnCRiSmRdhgdFCctceg6tSm79hiw== + +zwitch@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" + integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== From d8972528c046c3b3da578cbbf9512c5b8ab412e3 Mon Sep 17 00:00:00 2001 From: Amelia Wattenbeger Date: Tue, 16 Nov 2021 11:54:13 -0500 Subject: [PATCH 007/381] update to match upstream changes to template Co-authored-by: Matt Rothenberg --- index.html | 25 ++-- package.json | 23 ++- src/App.tsx | 25 ++-- src/components/app-inner.tsx | 21 ++- src/components/file-viewer.tsx | 86 ++++------- src/components/folder-viewer.tsx | 102 +++++--------- src/favicon.svg | 10 +- src/hooks/index.tsx | 59 ++++---- src/index.css | 10 ++ src/index.d.ts | 34 ++--- src/main.tsx | 1 - src/style.css | 0 src/viewers/folder-viewers/minimap/index.tsx | 2 +- vite.config.ts | 8 +- yarn.lock | 141 +++++++------------ 15 files changed, 232 insertions(+), 315 deletions(-) delete mode 100644 src/style.css diff --git a/index.html b/index.html index 38f3861..41df8ca 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,16 @@ - - - - - Codestin Search App - - -
- - - + + + + + + Codestin Search App + + + +
+ + + + \ No newline at end of file diff --git a/package.json b/package.json index f42d62e..72518cd 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "type": "file", "title": "Code viewer", "description": "A basic code viewer", - "entry": "/viewers/file-viewers/code/index.tsx", + "entry": "/src/viewers/file-viewers/code/index.tsx", "extensions": [ "*" ] @@ -20,7 +20,7 @@ "type": "file", "title": "Drawing viewer", "description": "A whiteboard tool", - "entry": "/viewers/file-viewers/excalidraw.tsx", + "entry": "/src/viewers/file-viewers/excalidraw.tsx", "extensions": [ "excalidraw" ] @@ -29,7 +29,7 @@ "type": "file", "title": "CSS viewer", "description": "View selectors in a css file", - "entry": "/viewers/file-viewers/css.tsx", + "entry": "/src/viewers/file-viewers/css.tsx", "extensions": [ "css" ] @@ -38,7 +38,7 @@ "type": "file", "title": "3D viewer", "description": "A viewer for 3d files", - "entry": "/viewers/file-viewers/3d-files.tsx", + "entry": "/src/viewers/file-viewers/3d-files.tsx", "extensions": [ "obj", "fbx", @@ -50,7 +50,7 @@ "type": "file", "title": "Flat viewer", "description": "A viewer for flat data files", - "entry": "/viewers/file-viewers/flat.tsx", + "entry": "/src/viewers/file-viewers/flat.tsx", "extensions": [ "csv", "json" @@ -60,7 +60,7 @@ "type": "file", "title": "Iframe viewer", "description": "An iframe viewer", - "entry": "/viewers/file-viewers/iframe.tsx", + "entry": "/src/viewers/file-viewers/iframe.tsx", "extensions": [ "iframe" ] @@ -69,7 +69,7 @@ "type": "file", "title": "Poll viewer", "description": "View simple polls beautifully", - "entry": "/viewers/file-viewers/poll.tsx", + "entry": "/src/viewers/file-viewers/poll.tsx", "extensions": [ "json" ] @@ -78,7 +78,7 @@ "type": "file", "title": "Chart viewer", "description": "A Vega chart viewer", - "entry": "/viewers/file-viewers/chart.tsx", + "entry": "/src/viewers/file-viewers/chart.tsx", "extensions": [ "csv" ] @@ -87,7 +87,7 @@ "type": "file", "title": "Markdown viewer", "description": "A simple markdown viewer", - "entry": "/viewers/file-viewers/markdown.tsx", + "entry": "/src/viewers/file-viewers/markdown.tsx", "extensions": [ "md" ] @@ -96,13 +96,12 @@ "type": "folder", "title": "Minimap", "description": "A visualization of your folders and files", - "entry": "/viewers/folder-viewers/minimap/index.tsx" + "entry": "/src/viewers/folder-viewers/minimap/index.tsx" } ], "dependencies": { - "@codesandbox/sandpack-react": "^0.3.0", "@excalidraw/excalidraw": "^0.10.0", - "@githubnext/utils": "^0.6.0", + "@githubnext/utils": "^0.9.5", "@githubocto/flat-ui": "^0.10.2", "@octokit/rest": "^18.12.0", "@react-three/drei": "^7.20.5", diff --git a/src/App.tsx b/src/App.tsx index 93e0e0a..74da2e5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,13 +1,14 @@ import { useMemo, useState } from "react"; import GitUrlParse from "git-url-parse"; +import "@githubnext/utils/dist/index.css" import { usePackageJson } from "./hooks"; import { AppInner } from "./components/app-inner"; function App() { - const [selectedViewer, setSelectedViewer] = useState(""); + const [viewerId, setViewerId] = useState(""); const [fileUrl, setFileUrl] = useState( - "https://github.com/githubocto/repo-visualizer/tree/main/src" + "https://github.com/githubocto/flat/blob/main/src/git.ts" ); const { data: pkgJson, status } = usePackageJson(); @@ -22,6 +23,8 @@ function App() { } }, [fileUrl]); + const viewer = pkgJson?.viewers.find((v) => v.entry === viewerId); + return (
@@ -45,9 +48,9 @@ function App() { + {activeChartConfigIndex !== -1 ? ( + + ) : ( + + )} +
+ + onChange(e.target.value)} + > + {canBeEmpty && } + {options.map((option) => ( + + ))} + +
+ ); +}; + +const parseData = (str: string): any[] => { + try { + return JSON.parse(str); + } catch (e) { + try { + const parsedStr = parse(str, { + delimiter: "", + transformHeader: (header: string) => header, + newline: "", + header: true, + skipEmptyLines: true, + }); + if (parsedStr.errors.length) { + throw new Error(parsedStr.errors[0].message); + } + return parsedStr.data; + } catch (e) { + console.error(e); + return []; + } + } +}; diff --git a/src/viewers/file-viewers/markdown/ErrorBoundary.tsx b/src/viewers/file-viewers/markdown/ErrorBoundary.tsx new file mode 100644 index 0000000..fc8adb2 --- /dev/null +++ b/src/viewers/file-viewers/markdown/ErrorBoundary.tsx @@ -0,0 +1,37 @@ +import React from "react"; + +export class ErrorBoundary extends React.Component { + // @ts-ignore + constructor(props) { + super(props); + this.state = { hasError: false, errorMessage: null }; + } + + // @ts-ignore + static getDerivedStateFromError(error) { + return { hasError: true, errorMessage: error.message }; + } + + // @ts-ignore + componentDidCatch(error, errorInfo) { + console.log(error, errorInfo); + } + + render() { + // @ts-ignore + if (this.state.hasError) { + return ( +
+ +

Something went wrong.

+

+ {/* @ts-ignore */} + {this.state.errorMessage || ""} +

+
+ ); + } + + return this.props.children; + } +} diff --git a/src/viewers/file-viewers/markdown/index.tsx b/src/viewers/file-viewers/markdown/index.tsx index 9de718e..f794555 100644 --- a/src/viewers/file-viewers/markdown/index.tsx +++ b/src/viewers/file-viewers/markdown/index.tsx @@ -13,7 +13,7 @@ import "styled-components"; // // @ts-ignore // import { CodeSandbox } from "./CodeSandbox.tsx"; // @ts-ignore -import { ErrorBoundary } from "./error-boundary.tsx"; +import { ErrorBoundary } from "./ErrorBoundary.tsx"; import "./style.css" export interface RepoContext { diff --git a/yarn.lock b/yarn.lock index a56b01e..9b474f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1418,6 +1418,11 @@ resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.0.2.tgz#53f2d6325f66ee79afd707c05ac849e8ae0edbb0" integrity sha512-WVx6zBiz4sWlboCy7TCgjeyHpNjMsoF36yaagny1uXfbadc9f+5BeBf7U+lRmQqY3EHbGQpP8UdW8AC+cywSwQ== +"@types/d3-color@^2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-2.0.3.tgz#8bc4589073c80e33d126345542f588056511fe82" + integrity sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w== + "@types/d3-contour@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.1.tgz#9ff4e2fd2a3910de9c5097270a7da8a6ef240017" @@ -1489,11 +1494,23 @@ dependencies: "@types/d3-color" "*" +"@types/d3-interpolate@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz#78eddf7278b19e48e8652603045528d46897aba0" + integrity sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw== + dependencies: + "@types/d3-color" "^2" + "@types/d3-path@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.0.tgz#939e3a784ae4f80b1fde8098b91af1776ff1312b" integrity sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg== +"@types/d3-path@^2": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.1.tgz#ca03dfa8b94d8add97ad0cd97e96e2006b4763cb" + integrity sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw== + "@types/d3-polygon@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.0.tgz#5200a3fa793d7736fa104285fa19b0dbc2424b93" @@ -1521,6 +1538,13 @@ dependencies: "@types/d3-time" "*" +"@types/d3-scale@^3.0.0": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.2.tgz#18c94e90f4f1c6b1ee14a70f14bfca2bd1c61d06" + integrity sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ== + dependencies: + "@types/d3-time" "^2" + "@types/d3-selection@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.1.tgz#e57b01ab69b18b380f68db97b76ceefe62f17191" @@ -1533,6 +1557,13 @@ dependencies: "@types/d3-path" "*" +"@types/d3-shape@^2.0.0": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.3.tgz#35d397b9e687abaa0de82343b250b9897b8cacf3" + integrity sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ== + dependencies: + "@types/d3-path" "^2" + "@types/d3-time-format@*": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.0.tgz#ee7b6e798f8deb2d9640675f8811d0253aaa1946" @@ -1543,6 +1574,11 @@ resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819" integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg== +"@types/d3-time@^2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.1.tgz#743fdc821c81f86537cbfece07093ac39b4bc342" + integrity sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg== + "@types/d3-timer@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce" @@ -1680,6 +1716,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== +"@types/papaparse@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-5.3.1.tgz#fb5c613a64473c33b08fb9bc2a5ddbf25e54784e" + integrity sha512-1lbngk9wty2kCyQB42LjqSa12SEop3t9wcEC7/xYr3ujTSTmv7HWKjKYXly0GkMfQ42PRb2lFPFEibDOiMXS0g== + dependencies: + "@types/node" "*" + "@types/parse-github-url@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/parse-github-url/-/parse-github-url-1.0.0.tgz#9e5f78297c42c717123bfcc39e1e9754a6099d0b" @@ -1748,6 +1791,11 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/resize-observer-browser@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.6.tgz#d8e6c2f830e2650dc06fe74464472ff64b54a302" + integrity sha512-61IfTac0s9jvNtBCpyo86QeaN8qqpMGHdK0uGKCCIy2dt5/Yk84VduHIdWAcmkC5QvdkPL0p5eWYgUZtHKKUVg== + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" @@ -2357,7 +2405,7 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== -classnames@2.3.1: +classnames@2.3.1, classnames@^2.2.5: version "2.3.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== @@ -2947,7 +2995,7 @@ d3-hierarchy@3: resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.0.1.tgz#0365342d54972e38ca05e9143e0ab1c60846b3b5" integrity sha512-RlLTaofEoOrMK1JoXYIGhKTkJFI/6rFrYPgxy6QlZo2BcVc4HGTqEU0rPpzuMq5T/5XcMtAzv1XiLA3zRTfygw== -"d3-interpolate@1 - 2", "d3-interpolate@1.2.0 - 2", d3-interpolate@2, d3-interpolate@^2.0.1: +"d3-interpolate@1 - 2", "d3-interpolate@1.2.0 - 2", d3-interpolate@2, d3-interpolate@^2.0.0, d3-interpolate@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== @@ -3017,7 +3065,7 @@ d3-scale-chromatic@3: d3-color "1 - 3" d3-interpolate "1 - 3" -d3-scale@3, d3-scale@^3.2.2: +d3-scale@3, d3-scale@^3.0.0, d3-scale@^3.2.2: version "3.3.0" resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== @@ -3256,6 +3304,11 @@ debug@^4.0.0, debug@^4.1.0: dependencies: ms "2.1.2" +decimal.js-light@^2.4.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" + integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -3346,6 +3399,13 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +dom-helpers@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== + dependencies: + "@babel/runtime" "^7.1.2" + dompurify@^2.2.9: version "2.3.3" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.3.tgz#c1af3eb88be47324432964d8abc75cf4b98d634c" @@ -3595,6 +3655,11 @@ estree-walker@^2.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +eventemitter3@^4.0.1: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -3641,6 +3706,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3, fast-deep-equal@~3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-equals@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-2.0.3.tgz#7039b0a039909f345a2ce53f6202a14e5f392efc" + integrity sha512-0EMw4TTUxsMDpDkCg0rXor2gsg+npVrMIHbEhvD0HZyIhUX6AktC/yasm+qKwfyswd06Qy95ZKk8p2crTo0iPA== + fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -4656,6 +4726,11 @@ lodash-es@^4.17.21: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + lodash.flatmap@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" @@ -4686,6 +4761,11 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + lodash.topath@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" @@ -5602,6 +5682,11 @@ pacote@^2.7.36: unique-filename "^1.1.0" which "^1.2.12" +papaparse@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-5.3.1.tgz#770b7a9124d821d4b2132132b7bd7dce7194b5b1" + integrity sha512-Dbt2yjLJrCwH2sRqKFFJaN5XgIASO9YOFeFP8rIBRG2Ain8mqk5r1M6DkfvqEVozVcz3r3HaUGw253hA1nLIcA== + parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -5730,6 +5815,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -5834,7 +5924,7 @@ promise-retry@^1.1.1: err-code "^1.0.0" retry "^0.10.0" -prop-types@^15.0.0, prop-types@^15.6.0, prop-types@^15.7.2: +prop-types@^15.0.0, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -5941,6 +6031,13 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + rc@^1.0.1, rc@^1.1.6: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -5974,7 +6071,7 @@ react-error-boundary@^3.1.4: dependencies: "@babel/runtime" "^7.12.5" -react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.10.2, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -5991,6 +6088,11 @@ react-json-editor-ajrm@^2.5.13: dependencies: "@babel/runtime" "^7.0.0-rc.0" +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + react-markdown@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-7.1.0.tgz#0ba62a4459daab6600ede83495a9228dae9d8f8e" @@ -6063,6 +6165,25 @@ react-remove-scroll@^2.4.0: use-callback-ref "^1.2.3" use-sidecar "^1.0.1" +react-resize-detector@^6.6.3: + version "6.7.6" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-6.7.6.tgz#4416994e5ead7eba76606e3a248a1dfca49b67a3" + integrity sha512-/6RZlul1yePSoYJxWxmmgjO320moeLC/khrwpEVIL+D2EjLKhqOwzFv+H8laMbImVj7Zu4FlMa0oA7au3/ChjQ== + dependencies: + "@types/resize-observer-browser" "^0.1.6" + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + resize-observer-polyfill "^1.5.1" + +react-smooth@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-2.0.0.tgz#561647b33e498b2e25f449b3c6689b2e9111bf91" + integrity sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw== + dependencies: + fast-equals "^2.0.0" + raf "^3.4.0" + react-transition-group "2.9.0" + react-style-singleton@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66" @@ -6088,6 +6209,16 @@ react-three-fiber@0.0.0-deprecated: resolved "https://registry.yarnpkg.com/react-three-fiber/-/react-three-fiber-0.0.0-deprecated.tgz#c737242487d824cf9520307308b7e4c4071a278f" integrity sha512-EblIqTAsIpkYeM8bZtC4lcpTE0A2zCEGipFB52RgcQq/q+0oryrk7Sxt+sqhIjUu6xMNEVywV8dr74lz5yWO6A== +react-transition-group@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" + integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== + dependencies: + dom-helpers "^3.4.0" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react-lifecycles-compat "^3.0.4" + react-universal-interface@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" @@ -6170,6 +6301,33 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +recharts-scale@^0.4.4: + version "0.4.5" + resolved "https://registry.yarnpkg.com/recharts-scale/-/recharts-scale-0.4.5.tgz#0969271f14e732e642fcc5bd4ab270d6e87dd1d9" + integrity sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w== + dependencies: + decimal.js-light "^2.4.1" + +recharts@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.1.6.tgz#04b96233a30be27ae08a20795a980853397046ec" + integrity sha512-KnRNnCum1hL27DYhUfcdcKUEQkYnda6G+KDN4n/nCiTKp7UzJSgHfFHQvCkBujPi/U98dGd430DA2/8RJpkPlg== + dependencies: + "@types/d3-interpolate" "^2.0.0" + "@types/d3-scale" "^3.0.0" + "@types/d3-shape" "^2.0.0" + classnames "^2.2.5" + d3-interpolate "^2.0.0" + d3-scale "^3.0.0" + d3-shape "^2.0.0" + eventemitter3 "^4.0.1" + lodash "^4.17.19" + react-is "^16.10.2" + react-resize-detector "^6.6.3" + react-smooth "^2.0.0" + recharts-scale "^0.4.4" + reduce-css-calc "^2.1.8" + reduce-css-calc@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" From 1023157a7a2e636e8fc01a415c64667f6108a551 Mon Sep 17 00:00:00 2001 From: Amelia Wattenbeger Date: Wed, 17 Nov 2021 13:59:14 -0500 Subject: [PATCH 015/381] add local dev viewer environment --- package.json | 1 + src/App.tsx | 26 +++++++++++++++- src/components/app-inner.tsx | 1 + src/components/file-viewer.tsx | 19 ++++++++++-- src/components/local-viewer.tsx | 53 +++++++++++++++++++++++++++++++++ yarn.lock | 13 ++++++-- 6 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 src/components/local-viewer.tsx diff --git a/package.json b/package.json index 815d9a9..650bdb1 100644 --- a/package.json +++ b/package.json @@ -113,6 +113,7 @@ "@excalidraw/excalidraw": "^0.10.0", "@githubnext/utils": "^0.9.18", "@githubocto/flat-ui": "^0.10.2", + "@loadable/component": "^5.15.0", "@mdx-js/runtime": "^1.6.22", "@octokit/rest": "^18.12.0", "@primer/components": "^31.1.0", diff --git a/src/App.tsx b/src/App.tsx index 53ee11a..41fb058 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -12,10 +12,12 @@ interface MetadataEvent { metadata: any } function App() { - const [viewerId, setViewerId] = useState("/src/viewers/example-file-viewer/index.tsx"); + const [viewerId, setViewerId] = useState("/src/viewers/file-viewers/code/index.tsx"); const [fileUrl, setFileUrl] = useState( + // "https://github.com/the-pudding/data/blob/master/pockets/measurements.csv" "https://github.com/githubocto/flat/blob/main/src/git.ts" ); + const [doMimicProductionEnvironment, setDoMimicProductionEnvironment] = useState(false); const { data: pkgJson, status } = usePackageJson(); @@ -116,6 +118,27 @@ function App() {
+
+ + +
{(!viewerId || !fileUrl) && ( @@ -134,6 +157,7 @@ function App() { viewer={viewer} dependencies={pkgJson?.dependencies as Record} urlParts={urlParts} + doMimicProductionEnvironment={doMimicProductionEnvironment} /> )}
diff --git a/src/components/app-inner.tsx b/src/components/app-inner.tsx index c198ecb..7251719 100644 --- a/src/components/app-inner.tsx +++ b/src/components/app-inner.tsx @@ -13,6 +13,7 @@ interface Viewer { } export interface AppInnerProps { metadata: any; + doMimicProductionEnvironment: boolean; onUpdateMetadata: (metadata: any) => Promise; viewer: Viewer; dependencies: Record; diff --git a/src/components/file-viewer.tsx b/src/components/file-viewer.tsx index 1d4706f..af0afa8 100644 --- a/src/components/file-viewer.tsx +++ b/src/components/file-viewer.tsx @@ -4,11 +4,12 @@ import { AppInnerProps } from "./app-inner"; import { ErrorState } from "./error-state"; import { LoadingState } from "./loading-state"; import { SandboxedViewer } from "@githubnext/utils"; +import { LocalViewer } from "./local-viewer"; export function FileViewer( props: Omit ) { - const { viewer, metadata = {}, dependencies, urlParts } = props; + const { viewer, metadata = {}, dependencies, urlParts, doMimicProductionEnvironment } = props; if ( urlParts.filepathtype === "dir" || !urlParts.owner || @@ -41,7 +42,7 @@ export function FileViewer( if (status === "loading") return ; if (status === "error") return ; if (status === "success" && data) { - return ( + return doMimicProductionEnvironment ? (
- ); + ) : ( +
+ +
+ ) } return null; diff --git a/src/components/local-viewer.tsx b/src/components/local-viewer.tsx new file mode 100644 index 0000000..2857623 --- /dev/null +++ b/src/components/local-viewer.tsx @@ -0,0 +1,53 @@ +import { useEffect, useState } from "react"; +// @ts-ignore +import loadable from "@loadable/component"; +import { FileContext, FolderContext, RepoFiles } from "@githubnext/utils"; + +interface LocalViewerProps { + viewer: { + type: string; + title: string; + description: string; + entry: string; + extensions?: string[]; + }; + contents?: string; + tree?: RepoFiles; + metadata?: any; + context: FileContext | FolderContext +} +export const LocalViewer = (props: LocalViewerProps) => { + const { + viewer, + contents, + tree, + metadata = {}, + context, + } = props; + + const [Viewer, setViewer] = useState | null>(null); + + const getContents = async () => { + const content = await loadable(() => import( + `../../..${viewer.entry}` + ).then(module => module.Viewer)) + setViewer(content) + } + useEffect(() => { getContents() }, [viewer.entry]) + + const onUpdateMetadata = (newMetadata: any) => { + window.dispatchEvent(new CustomEvent("update-metadata", { detail: newMetadata })) + } + + if (!Viewer) return null + return ( + + ) + +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 9b474f5..ee8f03c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -282,7 +282,7 @@ "@babel/plugin-syntax-jsx" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.0.0-rc.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.14.8", "@babel/runtime@^7.3.1": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.0.0-rc.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.14.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.7.7": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== @@ -753,6 +753,15 @@ dependencies: "@lezer/common" "^0.15.0" +"@loadable/component@^5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@loadable/component/-/component-5.15.0.tgz#48b9524237be553f48b158f8c9152593f3f3fded" + integrity sha512-g63rQzypPOZi0BeGsK4ST2MYhsFR+i7bhL8k/McUoWDNMDuTTdUlQ2GACKxqh5sI/dNC/6nVoPrycMnSylnAgQ== + dependencies: + "@babel/runtime" "^7.7.7" + hoist-non-react-statics "^3.3.1" + react-is "^16.12.0" + "@mdx-js/mdx@1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" @@ -6071,7 +6080,7 @@ react-error-boundary@^3.1.4: dependencies: "@babel/runtime" "^7.12.5" -react-is@^16.10.2, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.10.2, react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== From f22b8cc62e14f8cf67c677bcc5d95a2d23f63442 Mon Sep 17 00:00:00 2001 From: Amelia Wattenbeger Date: Wed, 17 Nov 2021 14:07:10 -0500 Subject: [PATCH 016/381] add local dev viewer support for folders --- src/App.tsx | 6 ------ src/components/folder-viewer.tsx | 20 +++++++++++++++---- .../folder-viewers/minimap/CircleText.tsx | 2 +- .../folder-viewers/minimap/language-colors.js | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 41fb058..8b28ee7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,15 +6,9 @@ import { useLocalStorage, usePackageJson } from "./hooks"; import { AppInner } from "./components/app-inner"; import { FileContext, FolderContext } from "@githubnext/utils"; - -interface MetadataEvent { - context: FileContext | FolderContext - metadata: any -} function App() { const [viewerId, setViewerId] = useState("/src/viewers/file-viewers/code/index.tsx"); const [fileUrl, setFileUrl] = useState( - // "https://github.com/the-pudding/data/blob/master/pockets/measurements.csv" "https://github.com/githubocto/flat/blob/main/src/git.ts" ); const [doMimicProductionEnvironment, setDoMimicProductionEnvironment] = useState(false); diff --git a/src/components/folder-viewer.tsx b/src/components/folder-viewer.tsx index 0f7c002..90f77de 100644 --- a/src/components/folder-viewer.tsx +++ b/src/components/folder-viewer.tsx @@ -4,11 +4,12 @@ import { AppInnerProps } from "./app-inner"; import { ErrorState } from "./error-state"; import { LoadingState } from "./loading-state"; import { SandboxedViewer } from "@githubnext/utils"; +import { LocalViewer } from "./local-viewer"; export function FolderViewer( props: Omit ) { - const { viewer, metadata = {}, dependencies, urlParts } = props; + const { viewer, metadata = {}, dependencies, urlParts, doMimicProductionEnvironment } = props; if ( urlParts.filepathtype === "blob" || @@ -40,7 +41,7 @@ export function FolderViewer( if (status === "loading") return ; if (status === "error") return ; if (status === "success" && data) { - return ( + return doMimicProductionEnvironment ? (
- ); + ) : ( +
+ +
+ ) } return null; } -const defaultMetadata = {}; diff --git a/src/viewers/folder-viewers/minimap/CircleText.tsx b/src/viewers/folder-viewers/minimap/CircleText.tsx index 5dc4bff..83585d6 100644 --- a/src/viewers/folder-viewers/minimap/CircleText.tsx +++ b/src/viewers/folder-viewers/minimap/CircleText.tsx @@ -1,5 +1,5 @@ import uniqueId from "lodash/uniqueId"; -import React, { useMemo } from "react"; +import { useMemo } from "react"; export const CircleText = ({ r = 10, diff --git a/src/viewers/folder-viewers/minimap/language-colors.js b/src/viewers/folder-viewers/minimap/language-colors.js index e48af41..2f809cc 100644 --- a/src/viewers/folder-viewers/minimap/language-colors.js +++ b/src/viewers/folder-viewers/minimap/language-colors.js @@ -1,4 +1,4 @@ -export default map = { +export default { "bsl": "#814CCC", "os": "#814CCC", "4dm": "#004289", From 9a7850537ac87a48a86b93419cbd7269b07aab75 Mon Sep 17 00:00:00 2001 From: Amelia Wattenbeger Date: Wed, 17 Nov 2021 14:27:26 -0500 Subject: [PATCH 017/381] update error states to match template --- src/App.tsx | 11 +++++------ src/components/error-state.tsx | 4 ++-- src/components/file-viewer.tsx | 9 ++++----- src/components/folder-viewer.tsx | 12 ++++++------ 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 8b28ee7..7ccd9f5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,10 +1,9 @@ -import { useEffect, useMemo, useState } from "react"; +import "@githubnext/utils/dist/index.css"; import GitUrlParse from "git-url-parse"; -import "@githubnext/utils/dist/index.css" - -import { useLocalStorage, usePackageJson } from "./hooks"; +import { useEffect, useMemo, useState } from "react"; import { AppInner } from "./components/app-inner"; -import { FileContext, FolderContext } from "@githubnext/utils"; +import { useLocalStorage, usePackageJson } from "./hooks"; + function App() { const [viewerId, setViewerId] = useState("/src/viewers/file-viewers/code/index.tsx"); @@ -34,7 +33,7 @@ function App() { }, [metadataKey]) const onUpdateMetadata = (newMetadata: any) => { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { setMetadata(newMetadata) resolve() }) diff --git a/src/components/error-state.tsx b/src/components/error-state.tsx index 521f73a..6f0ca55 100644 --- a/src/components/error-state.tsx +++ b/src/components/error-state.tsx @@ -1,5 +1,5 @@ export const ErrorState = () => ( -
-

An error occurred.

+
+ Something went wrong
); diff --git a/src/components/file-viewer.tsx b/src/components/file-viewer.tsx index af0afa8..b80f69b 100644 --- a/src/components/file-viewer.tsx +++ b/src/components/file-viewer.tsx @@ -10,6 +10,7 @@ export function FileViewer( props: Omit ) { const { viewer, metadata = {}, dependencies, urlParts, doMimicProductionEnvironment } = props; + if ( urlParts.filepathtype === "dir" || !urlParts.owner || @@ -17,9 +18,9 @@ export function FileViewer( !urlParts.ref || !urlParts.filepath ) { - throw new Error( - "Unable to parse this GitHub URL. Are you sure you've linked to a file and not a directory?" - ); +
+ Unable to parse this GitHub URL. Are you sure you've linked to a folder and not a file? +
} const { owner, name, ref, filepath } = urlParts; @@ -74,5 +75,3 @@ export function FileViewer( return null; } - -const defaultMetadata = {}; diff --git a/src/components/folder-viewer.tsx b/src/components/folder-viewer.tsx index 90f77de..30b86a1 100644 --- a/src/components/folder-viewer.tsx +++ b/src/components/folder-viewer.tsx @@ -14,16 +14,16 @@ export function FolderViewer( if ( urlParts.filepathtype === "blob" || !urlParts.owner || - !urlParts.name || - !urlParts.ref || - !urlParts.filepath + !urlParts.name ) { - throw new Error( - "Unable to parse this GitHub URL. Are you sure you've linked to a folder and not a file?" + return ( +
+ Unable to parse this GitHub URL. Are you sure you've linked to a folder and not a file? +
); } - const { owner, name, ref, filepath } = urlParts; + const { owner, name, ref = "main", filepath = "/" } = urlParts; const { data, status } = useFolderContent({ owner: owner, From f7ea520b664f0cdd0d0a81e9390f1d3b7bb9ecc9 Mon Sep 17 00:00:00 2001 From: Amelia Wattenbeger Date: Wed, 17 Nov 2021 15:20:46 -0500 Subject: [PATCH 018/381] viewer -> blocks terminology --- README.md | 55 +++++++++--------- package.json | 58 +++++++++---------- src/App.tsx | 56 +++++++++--------- .../file-blocks}/3d-files.tsx | 4 +- .../file-blocks}/chart.tsx | 4 +- .../file-blocks}/charts/Chart.tsx | 0 .../file-blocks}/charts/ErrorBoundary.tsx | 0 .../file-blocks}/charts/index.tsx | 4 +- .../file-blocks}/code/index.tsx | 4 +- .../file-blocks}/code/style.css | 0 .../file-blocks}/css.tsx | 4 +- .../file-blocks}/excalidraw.tsx | 4 +- .../file-blocks}/flat.tsx | 4 +- src/blocks/file-blocks/iframe.tsx | 7 +++ .../file-blocks}/markdown.tsx | 4 +- .../file-blocks}/markdown/CodeSandbox.tsx | 0 .../file-blocks}/markdown/ErrorBoundary.tsx | 0 .../file-blocks}/markdown/index.tsx | 4 +- .../file-blocks}/markdown/style.css | 0 .../file-blocks}/poll.tsx | 6 +- .../folder-blocks}/minimap/CircleText.tsx | 0 .../folder-blocks}/minimap/Tree.jsx | 0 .../folder-blocks}/minimap/index.tsx | 4 +- .../folder-blocks}/minimap/language-colors.js | 0 src/components/app-inner.tsx | 18 +++--- .../{file-viewer.tsx => file-block.tsx} | 18 +++--- .../{folder-viewer.tsx => folder-block.tsx} | 18 +++--- .../{local-viewer.tsx => local-block.tsx} | 22 +++---- src/hooks/index.tsx | 14 ++--- src/viewers/file-viewers/iframe.tsx | 7 --- yarn.lock | 8 +-- 31 files changed, 162 insertions(+), 165 deletions(-) rename src/{viewers/file-viewers => blocks/file-blocks}/3d-files.tsx (88%) rename src/{viewers/file-viewers => blocks/file-blocks}/chart.tsx (97%) rename src/{viewers/file-viewers => blocks/file-blocks}/charts/Chart.tsx (100%) rename src/{viewers/file-viewers => blocks/file-blocks}/charts/ErrorBoundary.tsx (100%) rename src/{viewers/file-viewers => blocks/file-blocks}/charts/index.tsx (97%) rename src/{viewers/file-viewers => blocks/file-blocks}/code/index.tsx (80%) rename src/{viewers/file-viewers => blocks/file-blocks}/code/style.css (100%) rename src/{viewers/file-viewers => blocks/file-blocks}/css.tsx (97%) rename src/{viewers/file-viewers => blocks/file-blocks}/excalidraw.tsx (91%) rename src/{viewers/file-viewers => blocks/file-blocks}/flat.tsx (80%) create mode 100644 src/blocks/file-blocks/iframe.tsx rename src/{viewers/file-viewers => blocks/file-blocks}/markdown.tsx (65%) rename src/{viewers/file-viewers => blocks/file-blocks}/markdown/CodeSandbox.tsx (100%) rename src/{viewers/file-viewers => blocks/file-blocks}/markdown/ErrorBoundary.tsx (100%) rename src/{viewers/file-viewers => blocks/file-blocks}/markdown/index.tsx (98%) rename src/{viewers/file-viewers => blocks/file-blocks}/markdown/style.css (100%) rename src/{viewers/file-viewers => blocks/file-blocks}/poll.tsx (93%) rename src/{viewers/folder-viewers => blocks/folder-blocks}/minimap/CircleText.tsx (100%) rename src/{viewers/folder-viewers => blocks/folder-blocks}/minimap/Tree.jsx (100%) rename src/{viewers/folder-viewers => blocks/folder-blocks}/minimap/index.tsx (92%) rename src/{viewers/folder-viewers => blocks/folder-blocks}/minimap/language-colors.js (100%) rename src/components/{file-viewer.tsx => file-block.tsx} (82%) rename src/components/{folder-viewer.tsx => folder-block.tsx} (82%) rename src/components/{local-viewer.tsx => local-block.tsx} (69%) delete mode 100644 src/viewers/file-viewers/iframe.tsx diff --git a/README.md b/README.md index d164b38..5494410 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,41 @@ -# Composable Github Example Viewers +# Composable Github Example Blocks -The Composable Github app depends on a set of "viewers" that handle how to render files and folders. This repo contains a set of example viewers that can serve as inspiration for you to create your own. +The Composable Github app depends on a set of "blocks" that handle how to render files and folders. This repo contains a set of example blocks that can serve as inspiration for you to create your own. -## Example viewers +## Example blocks -Viewers come in two types: file viewers and folder viewers. +Blocks come in two types: file blocks and folder blocks. -All viewers require an object within [`package.json`](https://github.com/githubnext/composable-github-example-viewers/blob/main/package.json#L9) to describe their intended use. For example: +All blocks require an object within [`package.json`](https://github.com/githubnext/composable-github-example-blocks/blob/main/package.json#L9) to describe their intended use. For example: ```json { - "type": "file", - "title": "CSS viewer", - "description": "View selectors in a css file", - "entry": "/viewers/file-viewers/css.tsx", - "extensions": [ - "css" - ] + "type": "file", + "title": "CSS block", + "description": "View selectors in a css file", + "entry": "/blocks/file-blocks/css.tsx", + "extensions": ["css"] } ``` -### File viewers +### File blocks -| Viewer name | Description | Supported extensions | -| ----------- | ----------- | ----------- | -| Code | Simple viewer for code | all extensions -| 3D Files | 3D model viewer with Three.js | obj, fbx, gltf, glb -| Css | View selectors in a css file | css -| Excalidraw | A drawing/whiteboard viewer | excalidraw -| Flat | A viewer for flat data files | csv, json -| Iframe | Render any html iframe | iframe -| Chart | A vega chart viewer | chart +| Block name | Description | Supported extensions | +| ---------- | ---------------------------- | -------------------- | +| Code | Simple block for code | all extensions | +| 3D Files | 3D model block with Three.js | obj, fbx, gltf, glb | +| Css | View selectors in a css file | css | +| Excalidraw | A drawing/whiteboard block | excalidraw | +| Flat | A block for flat data files | csv, json | +| Iframe | Render any html iframe | iframe | +| Chart | A vega chart block | chart | -### Folder viewers +### Folder blocks -| Viewer name | Description | -| ----------- | ----------- | -| Minimap | A visualization of your folders and files +| Block name | Description | +| ---------- | ----------------------------------------- | +| Minimap | A visualization of your folders and files | +## Create your own custom block -## Create your own custom viewer - -Follow the instructions in our [custom viewer template](https://github.com/githubnext/composable-github-viewer-template) repository. +Follow the instructions in our [custom block template](https://github.com/githubnext/composable-github-block-template) repository. diff --git a/package.json b/package.json index 650bdb1..9bd4adb 100644 --- a/package.json +++ b/package.json @@ -1,44 +1,44 @@ { - "name": "custom-viewer-template", + "name": "custom-block-template", "version": "0.0.0", "scripts": { "dev": "vite --port 4000", "build": "tsc && vite build", "serve": "vite preview" }, - "viewers": [ + "blocks": [ { "type": "file", - "title": "Code viewer", - "description": "A basic code viewer", - "entry": "/src/viewers/file-viewers/code/index.tsx", + "title": "Code block", + "description": "A basic code block", + "entry": "/src/blocks/file-blocks/code/index.tsx", "extensions": [ "*" ] }, { "type": "file", - "title": "Drawing viewer", + "title": "Drawing block", "description": "A whiteboard tool", - "entry": "/src/viewers/file-viewers/excalidraw.tsx", + "entry": "/src/blocks/file-blocks/excalidraw.tsx", "extensions": [ "excalidraw" ] }, { "type": "file", - "title": "CSS viewer", + "title": "CSS block", "description": "View selectors in a css file", - "entry": "/src/viewers/file-viewers/css.tsx", + "entry": "/src/blocks/file-blocks/css.tsx", "extensions": [ "css" ] }, { "type": "file", - "title": "3D viewer", - "description": "A viewer for 3d files", - "entry": "/src/viewers/file-viewers/3d-files.tsx", + "title": "3D block", + "description": "A block for 3d files", + "entry": "/src/blocks/file-blocks/3d-files.tsx", "extensions": [ "obj", "fbx", @@ -48,9 +48,9 @@ }, { "type": "file", - "title": "Flat viewer", - "description": "A viewer for flat data files", - "entry": "/src/viewers/file-viewers/flat.tsx", + "title": "Flat block", + "description": "A block for flat data files", + "entry": "/src/blocks/file-blocks/flat.tsx", "extensions": [ "csv", "json" @@ -58,27 +58,27 @@ }, { "type": "file", - "title": "Iframe viewer", - "description": "An iframe viewer", - "entry": "/src/viewers/file-viewers/iframe.tsx", + "title": "Iframe block", + "description": "An iframe block", + "entry": "/src/blocks/file-blocks/iframe.tsx", "extensions": [ "iframe" ] }, { "type": "file", - "title": "Poll viewer", + "title": "Poll block", "description": "View simple polls beautifully", - "entry": "/src/viewers/file-viewers/poll.tsx", + "entry": "/src/blocks/file-blocks/poll.tsx", "extensions": [ "json" ] }, { "type": "file", - "title": "Chart viewer", - "description": "An interactive chart viewer", - "entry": "/src/viewers/file-viewers/charts/index.tsx", + "title": "Chart block", + "description": "An interactive chart block", + "entry": "/src/blocks/file-blocks/charts/index.tsx", "extensions": [ "csv" ], @@ -86,9 +86,9 @@ }, { "type": "file", - "title": "Markdown viewer", - "description": "A simple markdown viewer", - "entry": "/src/viewers/file-viewers/markdown.tsx", + "title": "Markdown block", + "description": "A simple markdown block", + "entry": "/src/blocks/file-blocks/markdown.tsx", "extensions": [ "md" ] @@ -97,7 +97,7 @@ "type": "file", "title": "Live Markdown", "description": "View rich markdown files", - "entry": "/src/viewers/file-viewers/markdown/index.tsx", + "entry": "/src/blocks/file-blocks/markdown/index.tsx", "extensions": [ "md" ] @@ -106,12 +106,12 @@ "type": "folder", "title": "Minimap", "description": "A visualization of your folders and files", - "entry": "/src/viewers/folder-viewers/minimap/index.tsx" + "entry": "/src/blocks/folder-blocks/minimap/index.tsx" } ], "dependencies": { "@excalidraw/excalidraw": "^0.10.0", - "@githubnext/utils": "^0.9.18", + "@githubnext/utils": "^0.10.0", "@githubocto/flat-ui": "^0.10.2", "@loadable/component": "^5.15.0", "@mdx-js/runtime": "^1.6.22", diff --git a/src/App.tsx b/src/App.tsx index 7ccd9f5..7b62485 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,7 +6,7 @@ import { useLocalStorage, usePackageJson } from "./hooks"; function App() { - const [viewerId, setViewerId] = useState("/src/viewers/file-viewers/code/index.tsx"); + const [blockId, setBlockId] = useState("/src/blocks/file-blocks/code/index.tsx"); const [fileUrl, setFileUrl] = useState( "https://github.com/githubocto/flat/blob/main/src/git.ts" ); @@ -14,7 +14,7 @@ function App() { const { data: pkgJson, status } = usePackageJson(); - const metadataKey = `composable-github-viewer-template--${viewerId}-${fileUrl}` + const metadataKey = `composable-github-block-template--${blockId}-${fileUrl}` const [metadata, setMetadata] = useLocalStorage(metadataKey, {}) useEffect(() => { @@ -49,7 +49,7 @@ function App() { } }, [fileUrl]); - const viewer = pkgJson?.viewers.find((v) => v.entry === viewerId); + const block = pkgJson?.blocks.find((v) => v.entry === blockId); return (
@@ -69,42 +69,42 @@ function App() { />
-
-