Mirror: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.

Update global styles, theme, prism, Document, etc

add global styles, theme, prism styling, and add html Document to static.config

Add WIP source-markdown plugin for react-static

Add frontmatter and headings data

Update yarn.lock

Add image support by moving parsing to loader

Add transform fix for markdown links

WIP: begin adding sidebar back with new markdown data structure

add other sections to sidebar and refactor

Add opts.pathPrefix support to source-markdown

WIP: change data structure of pages, add sharedData

Refactor node.api.js to remove non-reloadable state

WIP: change structure to be sorted by section instead of by page in react

Add id props to heading elements in source-markdown loader

Clean up packages/site by removing static-* helpers

Remove empty paragraphs from source-markdown output

WIP: make sidebar work with sections instead of pages

Remove old styling in pages/site

Add new structure for MDXComponents

Replace HAST conversion with MDX's implementation

Implement code highlighting component with prism-react-renderer

Fix h1 override from frontmatter in source-markdown

move parse markdown page logic to separate file, add order and title to md files, move grouping logic from hook into plugin

Add initial recursive grouping logic

Add normalisation for page.path

Add improved default sorting

fixes sidebar again

Fix URL remapping in source-markdown/loader

Implement relative routing for site sidebar

Limit collected headings to depth <= 3

Move parseMarkdown to markdown

Move all browser utils to source-markdown/index.js

Add template override option to frontmatter

Add support for order overrides in plugin config

Move plugin to react-static-plugin-md-pages package

See: https://github.com/kitten/react-static-plugin-md-pages

Fix linting issues

+5
docs/README.md
···
+
---
+
title: README
+
order: 1
+
---
+
# Documentation
`urql` is a highly customizable and flexible GraphQL client, that
+8
docs/core/index.md
···
+
---
+
title: Core
+
order: 0
+
---
+
+
# Test Core Index Page
+
+
testing
+5
docs/graphcache/Populate.md
···
+
---
+
title: populate
+
order: 4
+
---
+
# Populate Exchange
`populate` is an exchange for auto-populating fields in your mutations.
+5
docs/graphcache/architecture.md
···
+
---
+
title: architecture
+
order: 1
+
---
+
# Architecture
This cache implementation builds on the concept of normalisation,
+5
docs/graphcache/help.md
···
+
---
+
title: help
+
order: 2
+
---
+
# Help!
**This document lists out all errors and warnings in `@urql/exchange-graphcache`.**
+5
docs/graphcache/keys.md
···
+
---
+
title: keys
+
order: 3
+
---
+
# Keys
When resolving entities the graph cache will try to look at the entity
+5
docs/graphcache/optimistic.md
···
+
---
+
title: Optimistic
+
order: 3
+
---
+
# Optimistic
Let's say we want to work offline or we don't want to wait for
+5
docs/graphcache/resolvers.md
···
+
---
+
title: resolvers
+
order: 5
+
---
+
# Resolvers
`resolvers` are a way to alter the response you'll receive from the cache.
+5
docs/graphcache/schema.md
···
+
---
+
title: schema
+
order: 6
+
---
+
# Schema
As mentioned in the docs we allow for the schema to be passed
+5
docs/graphcache/updates.md
···
+
---
+
title: UPDATES
+
order: 7
+
---
+
# Updates
When the cache receives a response it will try and do its best to
+8 -20
packages/site/package.json
···
},
"dependencies": {
"@juggle/resize-observer": "^3.0.2",
+
"@mdx-js/react": "^1.5.5",
"formidable-oss-badges": "0.2.1",
"history": "^4.7.2",
-
"klaw": "^2.1.1",
-
"prismjs": "^1.15.0",
+
"path": "^0.12.7",
+
"prism-react-renderer": "^1.0.2",
"prop-types": "^15.6.2",
"react": "^16.9.0",
"react-document-meta": "^2.0.3",
"react-dom": "^16.12.0",
"react-ga": "^2.4.1",
+
"react-inlinesvg": "^1.2.0",
"react-router": "^5.0.1",
"react-router-dom": "^5.0.1",
"react-router-ga": "^1.0.0",
"react-scroll": "^1.7.15",
"react-static": "^7.2.3",
+
"react-static-plugin-md-pages": "^0.1.0",
"styled-components": "^5.0.1"
},
"devDependencies": {
"@babel/core": "^7.2.0",
+
"@mdx-js/mdx": "^1.5.5",
"config": "^3.0.0",
-
"gatsby-remark-prismjs": "^3.2.2",
-
"github-slugger": "^1.2.1",
-
"js-yaml": "^3.12.0",
"lodash": "^4.17.11",
-
"raw-loader": "^1.0.0",
+
"react-static-plugin-mdx": "^7.2.2",
"react-static-plugin-react-router": "^7.2.3",
"react-static-plugin-sitemap": "^7.0.0",
-
"react-static-plugin-styled-components": "^7.2.2",
-
"remark": "^10.0.1",
-
"remark-frontmatter": "^1.3.0",
-
"remark-html": "^8.0.0",
-
"remark-kbd": "^1.0.16",
-
"remark-slug": "^5.1.1",
-
"remark-toc": "^5.1.0",
-
"unist-util-select": "^1.5.0",
-
"unist-util-visit": "^1.4.0",
-
"url-loader": "^1.1.2",
-
"webpack": "^4.41.6"
-
},
-
"resolutions": {
-
"react-hot-loader/source-map": "^0.8.0-beta.0"
+
"react-static-plugin-styled-components": "^7.2.2"
}
}
-42
packages/site/src/app.css
···
-
html {
-
font-size: 10px;
-
box-sizing: border-box;
-
}
-
-
* {
-
box-sizing: inherit;
-
}
-
-
body {
-
background: #ffffff;
-
color: #3b3b3b;
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-
font-size: 1.3rem;
-
letter-spacing: -0.03em;
-
margin: 0;
-
padding: 0;
-
}
-
-
p {
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-
letter-spacing: -0.03em;
-
}
-
-
h1, h2, h3, h4, h5, h6 {
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-
letter-spacing: 0;
-
font-weight: 500;
-
}
-
-
h1 {
-
font-size: 5rem;
-
}
-
-
a {
-
text-decoration: none;
-
}
-
-
img {
-
max-width: 100%;
-
}
-
+25 -23
packages/site/src/app.js
···
import { animateScroll as scroll } from 'react-scroll';
import { ResizeObserver as _ResizeObserver } from '@juggle/resize-observer';
import get from 'lodash/get';
+
import { ThemeProvider } from 'styled-components';
-
import { GlobalStyle } from './global-style';
+
import constants from './constants';
+
import { GlobalStyle } from './styles/global';
+
import theme from './styles/theme';
import Analytics from './google-analytics';
import NotFound from './screens/404';
-
-
import 'prismjs/themes/prism.css';
-
import './app.css';
const HEADER_PIXEL_HEIGHT = 60;
const SCROLL_PIXEL_OFFSET = 25;
···
<Root>
{/* TODO: create a better fallback component */}
<React.Suspense fallback={<h1>Loading</h1>}>
-
<GlobalStyle />
-
<Analytics id="UA-43290258-1">
-
<Routes
-
render={({ routePath, getComponentForPath }) => (
-
<Route path="*">
-
{props => {
-
const Comp = getComponentForPath(routePath) || <NotFound />;
-
// Add react-router route props like location and history
-
const CompWithRouteProps = React.cloneElement(Comp, props);
-
return (
-
<ScrollToCurrentSection {...props}>
-
{CompWithRouteProps}
-
</ScrollToCurrentSection>
-
);
-
}}
-
</Route>
-
)}
-
/>
-
</Analytics>
+
<ThemeProvider theme={theme}>
+
<GlobalStyle />
+
<Analytics id={constants.googleAnalyticsId}>
+
<Routes
+
render={({ routePath, getComponentForPath }) => (
+
<Route path="*">
+
{props => {
+
const Comp = getComponentForPath(routePath) || <NotFound />;
+
// Add react-router route props like location and history
+
const CompWithRouteProps = React.cloneElement(Comp, props);
+
return (
+
<ScrollToCurrentSection {...props}>
+
{CompWithRouteProps}
+
</ScrollToCurrentSection>
+
);
+
}}
+
</Route>
+
)}
+
/>
+
</Analytics>
+
</ThemeProvider>
</React.Suspense>
</Root>
);
+5
packages/site/src/assets/logos/logo-formidable-icon.svg
···
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 24">
+
<g fill="currentColor" fill-rule="nonzero">
+
<path d="M16.03.609h.145c-.006.122.08.189.212.189.135 0 .199-.051.199-.128 0-.087-.081-.114-.261-.162-.185-.05-.27-.118-.27-.244 0-.135.126-.244.318-.244.201 0 .334.108.334.267h-.141c-.001-.101-.078-.158-.193-.158-.106 0-.178.049-.178.121 0 .079.054.108.172.14.221.061.362.094.362.267 0 .152-.14.249-.343.249-.218 0-.357-.12-.357-.297zM16.935.032h.214l.212.567a.779.779 0 0 1 .052.172h.005S17.42.727 17.47.6l.216-.567h.207v.862h-.132l.002-.744h-.005s-.008.056-.053.17l-.219.574h-.147L17.125.32a1.07 1.07 0 0 1-.054-.17h-.004v.744h-.132V.032zM15.802 8.39l2.147-3.808a.393.393 0 0 0 0-.386l-2.255-4c0-.002-.003-.003-.003-.006a.326.326 0 0 0-.029-.042l-.028-.033V.114a.354.354 0 0 0-.034-.03l-.01-.008a.345.345 0 0 0-.123-.061l-.011-.003a.418.418 0 0 0-.035-.007l-.012-.002A.412.412 0 0 0 15.363 0H2.637c-.015 0-.031 0-.046.003L2.58.005a.418.418 0 0 0-.035.007l-.01.003a.406.406 0 0 0-.085.035L2.44.056l-.029.02-.01.007a.279.279 0 0 0-.033.03l-.001.001a.373.373 0 0 0-.03.034l-.007.01a.326.326 0 0 0-.02.032l-.004.006-2.255 4a.393.393 0 0 0 0 .386l2.204 3.911v12.83c0 .015 0 .031.003.046l.002.012a.436.436 0 0 0 .007.036l.002.01a.42.42 0 0 0 .035.087l.005.008a.351.351 0 0 0 .058.074v.001l.034.03.01.007a.32.32 0 0 0 .03.021c.003 0 .004.003.007.004l3.939 2.29a.383.383 0 0 0 .38 0l3.94-2.29.006-.004a.32.32 0 0 0 .03-.02l.01-.009.033-.028.002-.001c.01-.01.02-.023.029-.034l.007-.01.02-.03.005-.01a.377.377 0 0 0 .035-.085l.003-.011a.436.436 0 0 0 .007-.036l.001-.012c.002-.016.004-.031.004-.047V16.78h4.465c.015 0 .031 0 .046-.003.004 0 .007 0 .012-.002a.418.418 0 0 0 .035-.007l.01-.002a.406.406 0 0 0 .167-.1h.001a.337.337 0 0 0 .056-.075l.004-.007 2.254-4a.393.393 0 0 0 0-.387L15.802 8.39zm-2.917 3.612H6.596a.378.378 0 0 0-.263.089l-.008.007-.018.017h-.001a.391.391 0 0 0-.113.276v6.415l-3.174 1.846V8.779H14.7l-1.816 3.223zm-2.753 8.65l-3.174-1.845v-5.48l3.174 3.225v4.1zm2.753-16.65H5.114L3.297.776h11.406l-1.818 3.224zm-7.771.776h7.771l1.817 3.225H3.297l1.817-3.225zm10.248 2.83L13.548 4.39l1.814-3.22 1.814 3.22-1.814 3.219zM2.637 1.172L4.451 4.39 2.637 7.609.823 4.389l1.814-3.218zm3.94 21.994l-3.17-1.843 3.17-1.843 3.168 1.843-3.169 1.843zm4.096-7.16L7.5 12.78h5.384l1.818 3.224h-4.029zm4.689-.394l-1.814-3.22 1.814-3.219 1.814 3.22-1.814 3.219z"/>
+
</g>
+
</svg>
+47
packages/site/src/assets/logos/logo-formidable.svg
···
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+
viewBox="0 0 134.4 32" style="width: auto;height: 100%;enable-background:new 0 0 134.4 32;" xml:space="preserve">
+
<g>
+
<g>
+
<g>
+
<path d="M0.9,7.5C0.9,7.2,1,7,1.4,7h11.5c0.4,0,0.5,0.2,0.5,0.5v1.7c0,0.3-0.1,0.4-0.4,0.4H3.7v5.2h7.4c0.4,0,0.5,0.2,0.5,0.5
+
v1.5c0,0.4-0.2,0.5-0.5,0.5H3.7V25c0,0.4-0.2,0.5-0.5,0.5H1.4C1,25.6,0.9,25.4,0.9,25V7.5L0.9,7.5z"/>
+
<path d="M13.3,19.3c0-4,2.7-6.5,6.5-6.5s6.5,2.5,6.5,6.5c0,4.3-3,6.5-6.5,6.5S13.3,23.6,13.3,19.3z M23.4,19.4
+
c0-2.7-1.6-4.2-3.7-4.2S16,16.7,16,19.4c0,2.4,1.4,4.1,3.7,4.1S23.4,21.8,23.4,19.4z"/>
+
<path d="M28.5,13.6c0-0.4,0.2-0.5,0.5-0.5h1.6c0.4,0,0.5,0.2,0.5,0.5v1.1c0.9-1.1,2.2-1.9,4-1.9c2.4,0,3.9,1.5,3.9,3.7
+
c0,0.4-0.2,0.5-0.5,0.5h-1.6c-0.3,0-0.4-0.1-0.4-0.4c-0.1-0.9-0.7-1.5-1.8-1.5s-2,0.7-2.5,1.5c-0.6,0.8-0.9,1.8-0.9,3.4v5
+
c0,0.4-0.2,0.5-0.5,0.5h-1.6c-0.4,0-0.5-0.2-0.5-0.5L28.5,13.6L28.5,13.6z"/>
+
<path d="M40.9,13.6c0-0.4,0.2-0.5,0.5-0.5H43c0.4,0,0.5,0.2,0.5,0.5v1.1c0.8-1.2,1.9-1.9,3.7-1.9c1.6,0,2.7,0.6,3.2,1.8
+
c0.8-1,2.1-1.8,4-1.8c2.2,0,3.7,1.2,3.7,3.7V25c0,0.4-0.2,0.5-0.5,0.5H56c-0.4,0-0.5-0.2-0.5-0.5v-8.1c0-1.1-0.5-1.7-1.6-1.7
+
c-0.8,0-1.5,0.4-2.2,1.1c-0.7,0.8-1,1.5-1,2.9V25c0,0.4-0.2,0.5-0.5,0.5h-1.6c-0.4,0-0.5-0.2-0.5-0.5v-8.2c0-1.1-0.5-1.7-1.6-1.7
+
c-0.7,0-1.5,0.4-2.1,1.1c-0.6,0.7-0.8,1.2-0.8,2.6V25c0,0.4-0.2,0.5-0.5,0.5h-1.6c-0.4,0-0.5-0.2-0.5-0.5L40.9,13.6L40.9,13.6z"
+
/>
+
<path d="M62.5,7.5c1,0,1.8,0.8,1.8,1.8s-0.8,1.8-1.8,1.8s-1.8-0.8-1.8-1.8C60.6,8.3,61.4,7.5,62.5,7.5z M61.1,13.6
+
c0-0.4,0.2-0.5,0.5-0.5h1.6c0.4,0,0.5,0.2,0.5,0.5V25c0,0.4-0.2,0.5-0.5,0.5h-1.6c-0.4,0-0.5-0.2-0.5-0.5V13.6z"/>
+
<path d="M76.2,24.5c-1,0.9-1.9,1.4-3.8,1.4c-3.1,0-5.8-2.2-5.8-6.5c0-4.1,2.8-6.5,6.1-6.5c1.6,0,2.8,0.5,3.5,1.3V7
+
c0-0.4,0.2-0.5,0.5-0.5h1.6c0.4,0,0.6,0.1,0.6,0.5v18c0,0.4-0.2,0.5-0.5,0.5h-1.3c-0.4,0-0.6-0.1-0.7-0.5L76.2,24.5z M76.2,18.3
+
c0-0.8-0.2-1.4-0.7-2c-0.6-0.7-1.5-1.2-2.5-1.2c-2,0-3.5,1.6-3.5,4.2c0,2.4,1.4,4.1,3.5,4.1c1.2,0,2.1-0.5,2.7-1.2
+
c0.5-0.6,0.6-1.2,0.6-2.1L76.2,18.3L76.2,18.3z"/>
+
<path d="M91.5,24.3c-1,1-2,1.5-4,1.5c-3.4,0-6.2-2.2-6.2-6.5c0-4.1,2.9-6.5,6.4-6.5c1.9,0,3.1,0.7,3.8,1.5v-0.7
+
c0-0.4,0.2-0.5,0.5-0.5h1.6c0.4,0,0.5,0.2,0.5,0.5V25c0,0.4-0.2,0.5-0.5,0.5h-1.3c-0.3,0-0.6-0.1-0.7-0.5L91.5,24.3z M91.5,18.2
+
c0-0.8-0.2-1.3-0.8-1.9c-0.6-0.6-1.5-1.1-2.7-1.1c-2.2,0-3.9,1.6-3.9,4.2c0,2.5,1.6,4.1,3.8,4.1c1.4,0,2.4-0.7,2.9-1.4
+
c0.5-0.6,0.6-1.1,0.6-2L91.5,18.2L91.5,18.2z"/>
+
<path d="M97.2,7c0-0.4,0.2-0.5,0.5-0.5h1.6c0.4,0,0.5,0.2,0.5,0.5v8c1-1.2,2.5-2.1,4.4-2.1c3.6,0,5.5,2.4,5.5,6.4
+
c0,3.7-2.3,6.6-6.2,6.6c-1.5,0-2.7-0.4-3.7-1.1V25c0,0.4-0.2,0.5-0.5,0.5h-1.6c-0.4,0-0.5-0.2-0.5-0.5C97.2,25,97.2,7,97.2,7z
+
M99.9,21.4c0,0.6,0.3,1,0.7,1.2c0.8,0.6,1.8,0.9,2.7,0.9c2.4,0,3.7-1.8,3.7-4.2c0-2.8-1.4-4.1-3.2-4.1c-1.7,0-2.8,1.2-3.3,2.1
+
c-0.3,0.6-0.5,1-0.5,2L99.9,21.4L99.9,21.4z"/>
+
<path d="M112.1,7c0-0.4,0.2-0.5,0.5-0.5h1.6c0.4,0,0.5,0.2,0.5,0.5v15.2c0,1,0.4,1.3,1,1.3s0.8-0.3,1.1-0.3
+
c0.2,0,0.3,0.1,0.3,0.3v1.6c0,0.2-0.1,0.3-0.3,0.4c-0.4,0.2-1.2,0.3-1.8,0.3c-1.5,0-3-0.8-3-3L112.1,7L112.1,7z"/>
+
<path d="M130.3,22.9c0.1,0.1,0.1,0.2,0.1,0.3c0,0.1-0.1,0.2-0.2,0.3c-1.7,1.7-3,2.3-5.4,2.3c-3.3,0-6.5-2.3-6.5-6.5
+
c0-4,2.9-6.5,6.4-6.5c4.2,0,6.2,3.3,6.2,6.3v0.5c0,0.4-0.2,0.5-0.5,0.5h-9.3c0.3,2,1.8,3.3,3.9,3.3c1.8,0,2.7-0.7,3.5-1.6
+
c0.1-0.2,0.2-0.2,0.4-0.2c0.1,0,0.2,0.1,0.3,0.2L130.3,22.9z M128.2,18c-0.5-1.9-1.9-2.8-3.4-2.8c-1.7,0-3.3,1-3.7,2.8H128.2z"/>
+
</g>
+
<g>
+
<path d="M130.9,13.7h0.2c0,0.2,0.1,0.3,0.3,0.3s0.3-0.1,0.3-0.2c0-0.1-0.1-0.2-0.4-0.2c-0.3-0.1-0.4-0.2-0.4-0.4s0.2-0.4,0.5-0.4
+
s0.5,0.2,0.5,0.4h-0.2c0-0.2-0.1-0.2-0.3-0.2s-0.3,0.1-0.3,0.2c0,0.1,0.1,0.2,0.2,0.2c0.3,0.1,0.5,0.1,0.5,0.4
+
c0,0.2-0.2,0.4-0.5,0.4C131.1,14.2,130.9,14,130.9,13.7z"/>
+
<path d="M132.2,12.8h0.3l0.3,0.9c0.1,0.2,0.1,0.3,0.1,0.3l0,0c0,0,0-0.1,0.1-0.3l0.3-0.9h0.3v1.3h-0.2V13l0,0c0,0,0,0.1-0.1,0.3
+
l-0.3,0.9h-0.2l-0.3-0.9c-0.1-0.2-0.1-0.3-0.1-0.3l0,0v1.1h-0.2V12.8L132.2,12.8z"/>
+
</g>
+
</g>
+
</g>
+
</svg>
+23 -32
packages/site/src/components/markdown.js
···
export const Markdown = styled.article`
width: 60vw;
+
@media (max-width: 768px) {
width: 75vw;
}
-
& h1 {
-
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+
+
h1 {
font-size: 3.4rem;
margin: 0 0 2rem;
···
}
}
-
& h2 {
-
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+
h2 {
font-size: 2.8rem;
margin: 6rem 0 2rem;
@media (min-width: 1024px) {
···
}
}
-
& h3 {
-
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+
h3 {
font-size: 1.8rem;
margin: 2rem 0;
@media (min-width: 1024px) {
···
}
}
-
& table {
+
table {
border-collapse: collapse;
}
-
& td {
+
td {
height: 50px;
text-align: left;
}
-
& td,
+
td,
th {
padding: 15px;
}
-
& th {
+
th {
text-align: center;
}
-
& table,
+
table,
th,
td {
font-size: 1.7rem;
-
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+
border: 1px solid lightgrey;
+
tr:nth-child(even) {
background-color: #f2f2f2;
}
-
border: 1px solid lightgrey;
}
-
& pre {
-
line-height: 2rem;
+
pre {
background-color: #efefef;
padding: 2rem;
color: #333;
}
-
& pre code {
+
pre > code {
color: #333;
}
-
& p {
-
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+
p {
font-size: 1.7rem;
-
line-height: 1.6;
+
line-height: 1.3;
}
-
& p code {
+
p code {
border: 1px solid lightgrey;
opacity: 0.8;
padding: 0.5rem;
···
margin: 0 0.5rem 0 0.5rem;
}
-
& div.gatsby-highlight {
-
@media (max-width: 768px) {
-
margin-left: 0;
-
}
-
}
-
-
& blockquote {
+
blockquote {
margin: 0 0.2rem;
padding: 0 1.8rem;
border-left: 3px solid #255db0;
}
-
& li {
-
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+
li {
font-size: 1.7rem;
-
line-height: 1.6;
+
line-height: 1.3;
padding: 0.5rem;
+
@media (max-width: 768px) {
margin-left: -2rem;
}
}
-
& li code {
+
li code {
border: 1px solid lightgrey;
opacity: 0.8;
padding: 0.5rem;
···
margin: 0 0.5rem 0 0.5rem;
}
-
& a {
+
a {
color: #895160;
&:target {
+82
packages/site/src/components/mdx.js
···
+
import React from 'react';
+
import styled from 'styled-components';
+
import { MDXProvider } from '@mdx-js/react';
+
+
import Highlight, { Prism } from 'prism-react-renderer';
+
import nightOwlLight from 'prism-react-renderer/themes/nightOwlLight';
+
+
const getLanguage = className => {
+
const res = className.match(/language-(\w+)/);
+
return res ? res[1] : null;
+
};
+
+
const Pre = styled.pre`
+
position: relative;
+
max-width: 100%;
+
background: #f0f0f2;
+
color: #36313d;
+
font-size: 0.9em;
+
line-height: 1.2;
+
padding: 1rem;
+
`;
+
+
const Code = styled.code`
+
display: block;
+
font-family: monospace;
+
+
-webkit-overflow-scrolling: touch;
+
overflow-x: auto;
+
overflow-wrap: unset;
+
font-variant-ligatures: none;
+
font-feature-settings: normal;
+
white-space: pre;
+
`;
+
+
const InlineCode = styled.code`
+
display: inline-block;
+
background: #f0f0f2;
+
color: #36313d;
+
border-radius: 3px
+
font-family: monospace;
+
font-size: inherit;
+
font-variant-ligatures: none;
+
font-feature-settings: normal;
+
padding: 0 0.2em;
+
margin: 0;
+
`;
+
+
const HighlightCode = ({ className = '', children }) => {
+
const language = getLanguage(className);
+
+
return (
+
<Highlight
+
Prism={Prism}
+
theme={nightOwlLight}
+
code={children.trim()}
+
language={language}
+
>
+
{({ className, style, tokens, getLineProps, getTokenProps }) => (
+
<Pre className={className} style={style}>
+
<Code>
+
{tokens.map((line, i) => (
+
<div {...getLineProps({ line, key: i })}>
+
{line.map((token, key) => (
+
<span {...getTokenProps({ token, key })} />
+
))}
+
</div>
+
))}
+
</Code>
+
</Pre>
+
)}
+
</Highlight>
+
);
+
};
+
+
const components = {
+
inlineCode: InlineCode,
+
code: HighlightCode,
+
};
+
+
export const MDXComponents = ({ children }) => (
+
<MDXProvider components={components}>{children}</MDXProvider>
+
);
+62 -75
packages/site/src/components/sidebar.js
···
-
import React, { Fragment } from 'react';
+
import React, { Fragment, useMemo } from 'react';
import PropTypes from 'prop-types';
import styled from 'styled-components';
import { Link } from 'react-router-dom';
+
import * as path from 'path';
+
+
import { useMarkdownTree, useMarkdownPage } from 'react-static-plugin-md-pages';
import {
SidebarNavItem,
···
margin: 1rem 0;
`;
-
class Sidebar extends React.Component {
-
renderSidebarItem(item) {
-
const { tocArray = [] } = this.props;
-
const currentPath = `/docs${item.path}` === this.props.location.pathname;
-
// eslint-disable-next-line no-magic-numbers
-
const subContent = tocArray.filter(toc => toc.level === 2);
-
const key = item.title.split(' ').join('_');
-
const className = currentPath ? 'is-current' : '';
-
return (
-
<Fragment key={`${key}-group`}>
-
<SidebarNavItem
-
to={`/docs${item.path}`}
-
replace
-
key={`${key}-${className}`}
-
className={className}
-
>
-
{item.title}
-
</SidebarNavItem>
-
{currentPath && !!subContent.length && (
-
<SubContentWrapper key={key}>
-
{subContent.map((sh, i) => (
+
const relative = (from, to) => {
+
if (!from || !to) return null;
+
const pathname = path.relative(path.dirname(from), to);
+
return { pathname };
+
};
+
+
const Sidebar = ({ overlay, closeSidebar }) => {
+
const currentPage = useMarkdownPage();
+
const tree = useMarkdownTree();
+
+
const sidebarItems = useMemo(() => {
+
if (!currentPage || !tree || !tree.children) {
+
return null;
+
}
+
+
return tree.children.map(page => {
+
return (
+
<Fragment key={page.key}>
+
<SidebarNavItem to={relative(currentPage.path, page.path)}>
+
{page.frontmatter.title}
+
</SidebarNavItem>
+
+
{page.children &&
+
page.children.map(childPage => (
<SidebarNavSubItem
-
to={`#${sh.content
-
.split(' ')
-
.join('-')
-
.toLowerCase()}`}
-
key={sh.content.split(' ').join('_')}
+
to={relative(currentPage.path, childPage.path)}
+
key={childPage.key}
>
-
{sh.content}
+
{childPage.frontmatter.title}
</SidebarNavSubItem>
))}
-
</SubContentWrapper>
-
)}
-
</Fragment>
-
);
-
}
+
</Fragment>
+
);
+
});
+
}, [tree, currentPage]);
-
render() {
-
const { sidebarHeaders, overlay, closeSidebar } = this.props;
-
return (
-
<SidebarContainer>
-
<SideBarSvg />
-
<SidebarWrapper overlay={overlay}>
-
<CloseButton
-
src={closeButton}
-
alt="X"
-
overlay={overlay}
-
onClick={() => closeSidebar()}
-
/>
-
<Link to={'/'}>
-
<HeroLogo
-
src={logoSidebar}
-
alt="Formidable Logo"
-
overlay={overlay}
-
/>
-
</Link>
-
<ContentWrapper overlay={overlay}>
-
<SidebarNavItem as="a" href={constants.readme} key={'readme'}>
-
Readme
-
</SidebarNavItem>
-
{sidebarHeaders &&
-
sidebarHeaders.map(sh => this.renderSidebarItem(sh))}
-
-
<HorizontalLine />
-
<SidebarNavItem as="a" href={constants.githubIssues} key={'issues'}>
-
Issues
-
</SidebarNavItem>
-
<SidebarNavItem as="a" href={constants.github} key={'github'}>
-
Github
-
</SidebarNavItem>
-
</ContentWrapper>
-
</SidebarWrapper>
-
</SidebarContainer>
-
);
-
}
-
}
+
return (
+
<SidebarContainer>
+
<SideBarSvg />
+
<SidebarWrapper overlay={overlay}>
+
<CloseButton
+
src={closeButton}
+
alt="X"
+
overlay={overlay}
+
onClick={() => closeSidebar()}
+
/>
+
<Link to={'/'}>
+
<HeroLogo src={logoSidebar} alt="Formidable Logo" overlay={overlay} />
+
</Link>
+
<ContentWrapper overlay={overlay}>
+
{sidebarItems}
+
<HorizontalLine />
+
<SidebarNavItem as="a" href={constants.githubIssues} key={'issues'}>
+
Issues
+
</SidebarNavItem>
+
<SidebarNavItem as="a" href={constants.github} key={'github'}>
+
Github
+
</SidebarNavItem>
+
</ContentWrapper>
+
</SidebarWrapper>
+
</SidebarContainer>
+
);
+
};
Sidebar.propTypes = {
closeSidebar: PropTypes.func,
-
location: PropTypes.object,
overlay: PropTypes.bool,
-
sidebarHeaders: PropTypes.array,
-
tocArray: PropTypes.array,
};
export default Sidebar;
+1
packages/site/src/constants.js
···
github: 'https://www.github.com/FormidableLabs/urql',
readme: 'https://github.com/FormidableLabs/urql/blob/master/README.md',
color: '#8196FF',
+
googleAnalyticsId: 'UA-43290258-1',
};
export default constants;
-4
packages/site/src/global-style.js
···
-
import { createGlobalStyle } from 'styled-components';
-
-
export const GlobalStyle = createGlobalStyle`
-
`;
+16
packages/site/src/html.js
···
+
import React from 'react';
+
+
// eslint-disable-next-line react/prop-types
+
const HTML = ({ Html, Head, Body, children }) => (
+
<Html lang="en">
+
<Head>
+
<meta charSet="utf-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<link rel="shortcut icon" href="../static/logos/favicon.ico" />
+
</Head>
+
<title>Urql</title>
+
<Body>{children}</Body>
+
</Html>
+
);
+
+
export default HTML;
+12 -30
packages/site/src/screens/docs/article.js
···
import React from 'react';
-
import PropTypes from 'prop-types';
import styled from 'styled-components';
-
import { withRouteData } from 'react-static';
-
import { Markdown } from '../../components/markdown';
-
const Container = styled.div`
+
import { MDXComponents } from '../../components/mdx';
+
+
const Container = styled.article.attrs(() => ({
+
className: 'page-content',
+
}))`
max-width: 80rem;
min-height: 100vh;
width: 100%;
padding: 10rem 6rem 4rem 8rem;
+
@media (max-width: 768px) {
padding: 6rem 4rem 8rem 3.5rem;
}
-
.gatsby-highlight {
-
@media (max-width: 768px) {
-
margin-left: -2rem;
-
}
-
code {
-
overflow-x: scroll;
-
}
-
}
`;
-
class Article extends React.Component {
-
render() {
-
return (
-
<Container className="Page-content">
-
<Markdown dangerouslySetInnerHTML={{ __html: this.props.renderedMd }} />
-
</Container>
-
);
-
}
-
}
+
const Article = ({ children }) => (
+
<Container className="Page-content">
+
<MDXComponents>{children}</MDXComponents>
+
</Container>
+
);
-
Article.propTypes = {
-
renderedMd: PropTypes.string,
-
};
-
-
Article.defaultProps = {
-
params: null,
-
};
-
-
export default withRouteData(Article);
+
export default Article;
+176
packages/site/src/screens/docs/header.js
···
+
import React from 'react';
+
import PropTypes from 'prop-types';
+
import { Link } from 'react-router-dom';
+
import styled, { css } from 'styled-components';
+
import SVG from 'react-inlinesvg';
+
+
import formidableIcon from '../../assets/logos/logo-formidable-icon.svg';
+
import formidableLogo from '../../assets/logos/logo-formidable.svg';
+
import burgerIcon from '../../assets/burger.svg';
+
+
const HeaderContainer = styled.header`
+
background: ${({ theme }) => theme.color.white};
+
box-shadow: 0 0.2rem 0.7rem 0 rgba(0, 0, 0, 0.14);
+
display: flex;
+
height: ${({ theme }) => theme.layout.headerHeight};
+
justify-content: center;
+
padding-left: ${({ theme }) => theme.layout.pageGutterLeft};
+
padding-right: ${({ theme }) => theme.layout.pageGutterRight};
+
+
@media ${({ theme }) => theme.mediaQuery.md} {
+
padding-left: ${({ theme }) => theme.layout.md.pageGutterLeft};
+
padding-right: ${({ theme }) => theme.layout.md.pageGutterRight};
+
}
+
`;
+
+
const InnerContainer = styled.div`
+
align-items: center;
+
display: flex;
+
justify-content: space-between;
+
max-width: ${({ theme }) => theme.layout.maxWidth};
+
width: 100%;
+
`;
+
+
const LeftContainer = styled.div`
+
align-items: center;
+
display: flex;
+
`;
+
+
const MenuButton = styled.button`
+
margin-right: ${({ theme }) => theme.spacing.sm};
+
+
@media ${({ theme }) => theme.mediaQuery.md} {
+
display: none;
+
}
+
`;
+
+
const BurgerIcon = styled(SVG)`
+
display: flex;
+
`;
+
+
const UrqlLogoLink = styled(Link)`
+
color: ${({ theme }) => theme.color.nearBlack};
+
font-size: 2.4rem;
+
font-weight: bold;
+
letter-spacing: 0.4rem;
+
margin-right: 3rem;
+
text-transform: uppercase;
+
@media ${({ theme }) => theme.mediaQuery.md} {
+
font-size: 2.8rem;
+
}
+
`;
+
+
const NavLinksList = styled.ul`
+
margin: 0;
+
display: none;
+
+
@media ${({ theme }) => theme.mediaQuery.md} {
+
display: block;
+
}
+
`;
+
+
const navItemStyle = css`
+
color: ${({ active, theme }) =>
+
active ? theme.color.red : theme.color.darkBrown};
+
font-size: 1.4rem;
+
letter-spacing: 0.1rem;
+
margin-right: 2rem;
+
text-transform: uppercase;
+
`;
+
+
// this is needed so that we don't forward these props to the base components
+
// to avoid an error
+
// eslint-disable-next-line no-unused-vars
+
const NavLink = styled(({ active, theme, ...rest }) => <Link {...rest} />)`
+
${navItemStyle}
+
`;
+
+
// eslint-disable-next-line no-unused-vars
+
const NavAnchor = styled(({ active, theme, ...rest }) => <a {...rest} />)`
+
${navItemStyle}
+
`;
+
+
const FormidableIcon = styled(SVG)`
+
color: ${({ theme }) => theme.color.red};
+
display: flex;
+
+
@media ${({ theme }) => theme.mediaQuery.md} {
+
display: none;
+
}
+
+
> svg {
+
height: 2.4rem;
+
width: 1.8rem;
+
}
+
`;
+
+
const FormidableLogo = styled(SVG)`
+
display: none;
+
height: 2.8rem;
+
position: relative;
+
top: -0.1rem;
+
+
@media ${({ theme }) => theme.mediaQuery.md} {
+
display: block;
+
}
+
`;
+
+
const Header = ({ className = '', location, onMenuClick, title }) => {
+
const { pathname } = location;
+
+
return (
+
<HeaderContainer className={className}>
+
<InnerContainer>
+
<LeftContainer>
+
<MenuButton onClick={onMenuClick}>
+
<BurgerIcon src={burgerIcon} />
+
</MenuButton>
+
<UrqlLogoLink to="/">{title}</UrqlLogoLink>
+
+
<NavLinksList>
+
<NavLink active={pathname.includes('about')} to="/about/">
+
About
+
</NavLink>
+
{/* /faq is nested under /docs but is at top-level for convenience
+
so we don't want to highlight the link if /faq is the active
+
path; conversely, /guides is nested under /docs but is not
+
top-level, so highlight docs when on guides */}
+
<NavLink
+
active={
+
(pathname.includes('docs') || pathname.includes('guides')) &&
+
!pathname.includes('faq')
+
}
+
to="/docs/"
+
>
+
Docs
+
</NavLink>
+
<NavLink active={pathname.includes('gallery')} to="/gallery/">
+
Gallery
+
</NavLink>
+
+
{/*config.projectLinks.map(link => (
+
<NavAnchor key={link.url} href={link.url}>
+
{link.label}
+
</NavAnchor>
+
))*/}
+
+
<NavLink active={pathname.includes('faq')} to="/docs/faq/">
+
FAQs
+
</NavLink>
+
</NavLinksList>
+
</LeftContainer>
+
+
<FormidableIcon src={formidableIcon} />
+
<FormidableLogo src={formidableLogo} />
+
</InnerContainer>
+
</HeaderContainer>
+
);
+
};
+
+
Header.propTypes = {
+
className: PropTypes.string,
+
location: PropTypes.shape({ pathname: PropTypes.string }),
+
onMenuClick: PropTypes.func,
+
};
+
+
export default Header;
+33 -53
packages/site/src/screens/docs/index.js
···
-
import React, { forwardRef } from 'react';
+
import React, { forwardRef, useState, useRef } from 'react';
import styled from 'styled-components';
import PropTypes from 'prop-types';
import { withRouteData } from 'react-static';
···
import Article from './article';
import Sidebar from '../../components/sidebar';
import constants from '../../constants';
+
import Header from './header';
import burger from '../../assets/burger.svg';
import logoFormidableDark from '../../assets/logo_formidable_dark.svg';
···
);
});
-
/* eslint-disable react/no-multi-comp */
-
class Docs extends React.Component {
-
constructor(props) {
-
super(props);
-
this.closeSidebar = this.closeSidebar.bind(this);
-
this.state = { openSidebar: false };
-
this.sidebarRef = React.createRef();
-
}
+
const Docs = props => {
+
const [openSidebar, setOpenSidebar] = useState(false);
+
const sidebarRef = useRef(null);
-
openSidebar() {
-
this.setState({ openSidebar: true });
-
}
-
-
closeSidebar() {
-
this.setState({ openSidebar: false });
-
}
-
-
render() {
-
return (
-
<Container
-
onClick={event => {
-
return !this.sidebarRef.current.contains(event.target) &&
-
this.state.openSidebar
-
? this.closeSidebar()
-
: null;
-
}}
-
>
-
<Wrapper noPadding>
-
<CollapsedMenu overlay={this.state.openSidebar}>
-
<img src={burger} alt="Menu" onClick={() => this.openSidebar()} />
-
</CollapsedMenu>
-
<DocsTitle>
-
<Link to={'/'} style={{ color: '#3b3b3b' }}>
-
{constants.docsTitle}
-
</Link>
-
</DocsTitle>
-
<Link to={'https://formidable.com'}>
-
<HeaderLogo src={logoFormidableDark} alt="Formidable Logo" />
-
</Link>
-
</Wrapper>
-
<SideBarWithRef
-
location={this.props.location}
-
overlay={this.state.openSidebar}
-
closeSidebar={this.closeSidebar}
-
sidebarHeaders={this.props.sidebarHeaders}
-
tocArray={this.props.toc[this.props.slug]}
-
ref={this.sidebarRef}
-
/>
-
<Article />
-
</Container>
-
);
-
}
-
}
+
return (
+
<Container
+
onClick={event => {
+
return !sidebarRef.current.contains(event.target) && openSidebar
+
? closeSidebar()
+
: null;
+
}}
+
>
+
<Wrapper noPadding>
+
<CollapsedMenu overlay={openSidebar}>
+
<img src={burger} alt="Menu" onClick={() => setOpenSidebar(true)} />
+
</CollapsedMenu>
+
<Header location={props.location} title={constants.docsTitle} />
+
<Link to={'https://formidable.com'}>
+
<HeaderLogo src={logoFormidableDark} alt="Formidable Logo" />
+
</Link>
+
</Wrapper>
+
<SideBarWithRef
+
location={props.location}
+
overlay={openSidebar}
+
closeSidebar={() => setOpenSidebar(false)}
+
sidebarHeaders={props.sidebarHeaders}
+
ref={sidebarRef}
+
/>
+
<Article>{props.children}</Article>
+
</Container>
+
);
+
};
Docs.propTypes = {
location: PropTypes.object,
+66
packages/site/src/styles/global.js
···
+
import { createGlobalStyle } from 'styled-components';
+
+
const systemFonts = [
+
'-apple-system',
+
'BlinkMacSystemFont',
+
'Segoe UI',
+
'Roboto',
+
'Helvetica Neue',
+
'Arial',
+
'Noto Sans',
+
'sans-serif',
+
'Apple Color Emoji',
+
'Segoe UI Emoji',
+
'Segoe UI Symbol',
+
'Noto Color Emoji',
+
];
+
+
export const GlobalStyle = createGlobalStyle`
+
* {
+
box-sizing: inherit;
+
}
+
+
html {
+
background: ${({ theme }) => theme.color.black};
+
box-sizing: border-box;
+
font-size: 62.5%;
+
overflow-x: hidden;
+
}
+
+
body {
+
background: ${({ theme }) => theme.color.white};
+
color: ${({ theme }) => theme.color.darkGray};
+
text-rendering: optimizeLegibility;
+
font-family: ${systemFonts.join(', ')};
+
font-size: 1.8rem;
+
font-weight: 400;
+
line-height: 1.5;
+
margin: 0;
+
padding: 0;
+
}
+
+
p, h1, h2, h3 {
+
margin: 0 0 2.7rem 0;
+
}
+
+
h1, h2, h3 {
+
font-weight: 500;
+
line-height: 1.1;
+
}
+
+
h1 {
+
font-size: 2.556em;
+
}
+
+
h2 {
+
font-size: 1.755em;
+
}
+
+
h3 {
+
font-size: 1.455em;
+
}
+
+
img {
+
max-width: 100%;
+
}
+
`;
+92
packages/site/src/styles/theme.js
···
+
const theme = {
+
color: {
+
blue: '#8196FF',
+
paleRed: '#ffad9f',
+
red: '#ff684f',
+
darkRed: '#ad1b11',
+
brown: '#bc5240',
+
darkBrown: '#4c2e29',
+
+
white: '#ffffff',
+
nearWhite: '#f2f2f2',
+
lightGray: '#e0e0e0',
+
gray: '#999999',
+
darkGray: '#3b3b3b',
+
nearBlack: '#242121',
+
black: '#1f1f1f',
+
+
inlineCodeBorder: '#d3d3d3',
+
+
codeMirror: {
+
bgDim: '#eeefee',
+
bg: '#fffefc',
+
bgFocused: '#fffefc',
+
bgSelected: '#b3d4fc',
+
def: '#333333',
+
comment: '#708090',
+
function: '#cc2345',
+
keyword: '#07a',
+
number: '#905',
+
operator: '#9a6e3a',
+
attribute: '#690',
+
punctuation: '#999',
+
selector: '#007a71',
+
variable: '#e90',
+
tag: '#905',
+
},
+
},
+
+
font: {
+
primary: 'Helvetica, sans-serif',
+
secondary: 'Castledown-Bold, sans-serif',
+
monospace: 'Monaco, Courier, monospace',
+
bold: 'Helvetica-Bold, sans-serif',
+
},
+
typography: {
+
lineHeight: {
+
sidebarHeading: '2.3rem',
+
sidebarItem: '2.8rem',
+
},
+
},
+
+
layout: {
+
maxWidth: '121rem',
+
footerMaxWidth: '90rem',
+
+
headerHeight: '6.4rem',
+
footerHeight: '43.2rem',
+
stripesWidth: '2.8rem',
+
sidebarWidth: '26rem',
+
+
pageGutterLeft: '2rem',
+
pageGutterRight: '3rem',
+
pageGutterTop: '2rem',
+
pageGutterBottom: '5.5rem',
+
+
// layout at md width and larger; use in conjunction with media query
+
md: {
+
footerHeight: '25.6rem',
+
+
pageGutterLeft: '6rem',
+
pageGutterRight: '7.5rem',
+
pageGutterTop: '4rem',
+
pageGutterBottom: '4.5rem',
+
},
+
},
+
+
mediaQuery: {
+
sm: 'only screen and (min-width: 650px)',
+
md: 'only screen and (min-width: 960px)',
+
lg: 'only screen and (min-width: 1200px)',
+
},
+
+
spacing: {
+
xs: '0.6rem',
+
sm: '1.5rem',
+
md: '2.75rem',
+
lg: '4.75rem',
+
xl: '8.2rem',
+
},
+
};
+
+
export default theme;
-199
packages/site/static-config-helpers/get-md-files.js
···
-
/* eslint-disable func-style */
-
import { stage, landerBasePath } from '../static-config-parts/constants';
-
const fs = require('fs');
-
const klaw = require('klaw');
-
const path = require('path');
-
const html = require('remark-html');
-
const frontmatter = require('remark-frontmatter');
-
const yaml = require('js-yaml');
-
const remark = require('remark');
-
const _ = require('lodash');
-
const select = require('unist-util-select');
-
const visit = require('unist-util-visit');
-
const slug = require('remark-slug');
-
const slugs = require('github-slugger')();
-
// gatsby-remark plugins are usable for remark parsing without requiring gatsby.
-
const remarkPrism = require('gatsby-remark-prismjs');
-
-
function defaultSort(items) {
-
return items;
-
}
-
-
function codeHighlightTransformer() {
-
return node => remarkPrism({ markdownAST: node });
-
}
-
-
function slugTransformer(ast) {
-
slugs.reset();
-
-
function visitor(node) {
-
const data = node.data || (node.data = {});
-
const props = data.hProperties || (data.hProperties = {});
-
if (node.depth) {
-
const nodeClass = props.className
-
? `${props.className} doc-hash-link`
-
: 'doc-hash-link';
-
// This adds GH style links to our md based on existing behaviors by converting mdast heading
-
// nodes to html so we can inject the link and svg directly rather than do something like add
-
// a marker value to the mdast and let the renderer handle it, in part because our "renderer"
-
// is __dangerouslySetHTML on a div.
-
const defaultHTML = `
-
<h${node.depth}>
-
${node.children[0].value}
-
</h${node.depth}>
-
`;
-
const elInnerHTML =
-
node.depth === 1
-
? defaultHTML
-
: `
-
<h${node.depth}>
-
<a class="Anchor"
-
aria-hidden="true"
-
id="${node.data.id}"
-
href="#${node.data.id}"
-
>
-
<svg viewBox="0 0 16 16" version="1.1" width="16" height="16"aria-hidden="true">
-
<path fill-rule="evenodd"
-
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"
-
/>
-
</svg>
-
</a>
-
${node.children[0].value}
-
</h${node.depth}>
-
`;
-
node.type = `html`;
-
node.value = elInnerHTML;
-
props.className = nodeClass;
-
data.className = nodeClass;
-
}
-
}
-
visit(ast, 'heading', visitor);
-
}
-
-
function slugWithLink() {
-
return slugTransformer;
-
}
-
-
function appendImageBasePath(ast) {
-
function visitor(node) {
-
if (!!node.value.match(/<img /) && stage !== 'development') {
-
node.value = node.value.replace(`src="`, `src="/${landerBasePath}`);
-
}
-
}
-
visit(ast, 'html', visitor);
-
}
-
-
function imageTransformer() {
-
return appendImageBasePath;
-
}
-
-
const subHeadingRangeDefaults = {
-
start: 1,
-
end: 3,
-
};
-
-
function setYamlToFile(subHeadingRange = subHeadingRangeDefaults) {
-
function transformer(ast, file) {
-
const yamlObj = select(ast, 'yaml');
-
let obj;
-
if (yamlObj.length > 0) {
-
const { children } = ast;
-
-
obj = yaml.safeLoad(yamlObj[0].value);
-
-
file.data = obj;
-
-
Object.defineProperty(file, 'raw', {
-
value: file.contents,
-
enumerable: true,
-
});
-
-
file.data.subHeadings = children
-
.filter(
-
c =>
-
c.type === 'heading' &&
-
c.depth >= subHeadingRange.start &&
-
c.depth <= subHeadingRange.end
-
)
-
.map(c => ({
-
type: c.type,
-
value: c.children[0].value,
-
depth: c.depth,
-
slug: _.kebabCase(c.children[0].value).toLowerCase(),
-
}));
-
}
-
}
-
-
return transformer;
-
}
-
-
// The pattern of renderer-agnosticism that worked well for a less complex project is essentially a fiction here,
-
// but if there is sufficient will to do so, we could slough off the forced legacy of managing view-rendering concerns
-
// in a data ingestion layer that has absolutely no business knowing this much about the specifics of it.
-
-
const baseConfig = {
-
renderer: remark()
-
.use(frontmatter, ['yaml', 'toml'])
-
.use(setYamlToFile)
-
.use(html)
-
.use(codeHighlightTransformer)
-
.use(slug)
-
.use(slugWithLink)
-
.use(imageTransformer),
-
// converting to an originally grey-matter idiom for all our existing transforms and future interop -- it's not much of a stretch
-
// for remark, but who knows what the future (and the past) hold.
-
outputHarmonizer: result => ({
-
content: result.contents,
-
data: result.data,
-
raw: result.raw,
-
}),
-
};
-
-
// eslint-disable-next-line max-params
-
const getMdFiles = async (
-
mdPath,
-
items,
-
mutations = [],
-
sort = defaultSort,
-
config = baseConfig
-
) =>
-
new Promise(resolve => {
-
if (fs.existsSync(mdPath)) {
-
klaw(mdPath)
-
.on('data', item => {
-
if (path.extname(item.path) === '.md') {
-
const data = fs.readFileSync(item.path, 'utf8');
-
-
const { renderer, outputHarmonizer } = config;
-
renderer.process(data, (err, result) => {
-
if (err) {
-
throw err;
-
} else if (
-
!result.data ||
-
Object.keys(result.data).length === 0
-
) {
-
return;
-
}
-
-
const mdData = outputHarmonizer(result);
-
-
mutations.forEach(m => {
-
m(mdData, item.path);
-
});
-
-
items.push(mdData);
-
});
-
}
-
})
-
.on('error', e => {
-
throw e;
-
})
-
.on('end', () => {
-
resolve(sort(items));
-
});
-
} else {
-
resolve(items);
-
}
-
});
-
-
module.exports = getMdFiles;
-45
packages/site/static-config-helpers/md-data-transforms.js
···
-
/* eslint-disable func-style */
-
// we can switch to single-function lodash deps like the cool kids once we've got feature parity,
-
// keeping in mind this is naught but the build step.
-
const _ = require('lodash');
-
const path = require('path');
-
const getMdFiles = require('./get-md-files');
-
-
const capitalizeSlugComponent = word => {
-
// this is suboptimal, we should be able to define page
-
// titles as we want them instead of relying on the slug
-
switch (word) {
-
case 'and':
-
return 'and';
-
case 'api':
-
return 'API';
-
default:
-
return _.upperFirst(word);
-
}
-
};
-
-
const sidebarTitleSlugMutation = (mdData, mdPath) => {
-
const { name } = path.parse(mdPath);
-
-
mdData.slug = name.toLowerCase();
-
mdData.path = `/${name.toLowerCase()}/`;
-
mdData.title = name
-
.split('-')
-
.map(capitalizeSlugComponent)
-
.join(' ');
-
};
-
-
const sidebarSort = items => _.orderBy(items, ['data.order'], 'asc');
-
-
function getSidebarItems(
-
mdPath,
-
items = [],
-
mutations = [sidebarTitleSlugMutation],
-
sort = sidebarSort
-
) {
-
return getMdFiles(mdPath, items, mutations, sort);
-
}
-
-
module.exports = {
-
getSidebarItems,
-
};
-8
packages/site/static-config-parts/constants.js
···
-
const metaData = {
-
title: 'urql',
-
description:
-
'A GraphQL client that exposes a set of React components and hooks.',
-
url: 'http://www.formidable.com/open-source/urql/',
-
};
-
-
module.exports = { metaData };
+3 -2
packages/site/static-config-parts/node.api.js packages/site/plugins/monorepo-fix/node.api.js
···
(context, request, callback) => {
if (/^[.\/]/.test(request)) {
return callback();
+
e;
}
const res = resolveFrom(`${context}/`, request);
···
NODE_MODULES_JS_RE.test(res) &&
!REACT_STATIC_RE.test(res)
) {
-
callback(null, `commonjs ${request}`);
+
return callback(null, `commonjs ${request}`);
} else {
-
callback();
+
return callback();
}
},
];
+23 -59
packages/site/static.config.js
···
import { resolve } from 'path';
+
import constants from './src/constants';
-
import { getSidebarItems } from './static-config-helpers/md-data-transforms';
-
import { metaData } from './static-config-parts/constants';
-
import { createSharedData } from 'react-static/node'
+
export default {
+
plugins: [
+
resolve(__dirname, 'plugins/monorepo-fix/'),
-
const docsContentPath = resolve(__dirname, '../../docs/core');
+
[
+
'react-static-plugin-md-pages',
+
{
+
location: '../../docs',
+
template: './src/screens/docs',
+
order: {
+
core: 0,
+
graphcache: 1,
+
},
+
},
+
],
-
export default {
-
plugins: [
'react-static-plugin-styled-components',
'react-static-plugin-sitemap',
'react-static-plugin-react-router',
-
resolve(__dirname, 'static-config-parts'),
],
paths: {
-
nodeModules: '../../node_modules',
src: 'src',
dist: 'dist',
buildArtifacts: 'node_modules/.cache/react-static/artifacts/',
devDist: 'node_modules/.cache/react-static/dist/',
temp: 'node_modules/.cache/react-static/temp/',
},
+
basePath: 'open-source/urql',
stagingBasePath: '',
devBasePath: '',
getSiteData: () => ({
-
title: metaData.title,
+
title: constants.docsTitle,
}),
-
getRoutes: async () => {
-
const sidebarItems = await getSidebarItems(docsContentPath);
-
const rawSidebarHeaders = sidebarItems.map(d => ({
-
title: d.title,
-
path: `/${d.slug}/`,
-
slug: d.slug,
-
}));
-
const rawToc = sidebarItems.reduce((memo, item) => {
-
const subArray = item.data.subHeadings.map(sh => ({
-
content: sh.value,
-
level: sh.depth,
-
}));
-
memo[item.slug] = subArray;
-
return memo;
-
}, {});
-
const toc = createSharedData(rawToc);
-
const sidebarHeaders = createSharedData(rawSidebarHeaders);
-
-
return [
-
{
-
path: '/',
-
template: require.resolve('./src/screens/home'),
-
},
-
{
-
path: '/docs',
-
template: 'src/screens/docs',
-
sharedData: { toc, sidebarHeaders },
-
getData: () => ({
-
title: `${metaData.title} | Documentation`,
-
markdown: sidebarItems[0].markdown,
-
renderedMd: sidebarItems[0].content,
-
slug: sidebarItems[0].slug,
-
}),
-
// move slug + path to data in transform, renderedMd to data, and nuke markdown prop
-
children: sidebarItems.map(
-
({ slug, path, markdown, content, data }) => ({
-
path,
-
template: 'src/screens/docs',
-
sharedData: { toc, sidebarHeaders },
-
getData: () => ({
-
title: data.title,
-
markdown,
-
slug,
-
renderedMd: content,
-
}),
-
})
-
),
-
},
-
];
-
},
+
getRoutes: async () => [
+
{
+
path: '/',
+
template: require.resolve('./src/screens/home'),
+
},
+
],
};
+1
scripts/eslint/js-preset.js
···
rules: {
'consistent-return': 'warn',
'no-magic-numbers': 'off', // TODO
+
'react/jsx-key': 'off',
'react/jsx-handler-names': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
+462 -224
yarn.lock
···
optionalDependencies:
chokidar "^2.1.8"
-
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3":
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.0", "@babel/code-frame@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
dependencies:
···
invariant "^2.2.4"
semver "^5.5.0"
+
"@babel/core@7.8.0":
+
version "7.8.0"
+
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.0.tgz#fd273d4faf69cc20ee3ccfd32d42df916bb4a15c"
+
integrity sha512-3rqPi/bv/Xfu2YzHvBz4XqMI1fKVwnhntPA1/fjoECrSjrhbOCxlTrbVu5gUtr8zkxW+RpkDOa/HCW93gzS2Dw==
+
dependencies:
+
"@babel/code-frame" "^7.8.0"
+
"@babel/generator" "^7.8.0"
+
"@babel/helpers" "^7.8.0"
+
"@babel/parser" "^7.8.0"
+
"@babel/template" "^7.8.0"
+
"@babel/traverse" "^7.8.0"
+
"@babel/types" "^7.8.0"
+
convert-source-map "^1.7.0"
+
debug "^4.1.0"
+
gensync "^1.0.0-beta.1"
+
json5 "^2.1.0"
+
lodash "^4.17.13"
+
resolve "^1.3.2"
+
semver "^5.4.1"
+
source-map "^0.5.0"
+
"@babel/core@^7.1.0", "@babel/core@^7.2.0", "@babel/core@^7.5.5", "@babel/core@^7.7.5", "@babel/core@^7.7.7":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e"
···
semver "^5.4.1"
source-map "^0.5.0"
-
"@babel/generator@^7.8.4":
+
"@babel/generator@^7.8.0", "@babel/generator@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e"
dependencies:
···
dependencies:
"@babel/types" "^7.8.3"
+
"@babel/helper-plugin-utils@7.8.0":
+
version "7.8.0"
+
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz#59ec882d43c21c544ccb51decaecb306b34a8231"
+
integrity sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA==
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670"
···
"@babel/traverse" "^7.8.3"
"@babel/types" "^7.8.3"
-
"@babel/helpers@^7.8.4":
+
"@babel/helpers@^7.8.0", "@babel/helpers@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73"
dependencies:
···
esutils "^2.0.2"
js-tokens "^4.0.0"
-
"@babel/parser@^7.1.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4":
+
"@babel/parser@^7.1.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.0", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8"
···
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+
+
"@babel/plugin-proposal-object-rest-spread@7.8.0":
+
version "7.8.0"
+
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.0.tgz#ca8ac673d32db774c2154a4c7517fd46ec45e9cf"
+
integrity sha512-SjJ2ZXCylpWC+5DTES0/pbpNmw/FnjU/3dF068xF0DU9aN+oOKah+3MCSFcb4pnZ9IwmxfOy4KnbGJSQR+hAZA==
+
dependencies:
+
"@babel/helper-plugin-utils" "^7.8.0"
+
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
"@babel/plugin-proposal-object-rest-spread@^7.8.3":
version "7.8.3"
···
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+
"@babel/plugin-syntax-jsx@7.8.0":
+
version "7.8.0"
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.0.tgz#657a0306e2c74de84e0dcf8b6cb024ed990224fc"
+
integrity sha512-zLDUckAuKeOtxJhfNE0TlR7iEApb2u7EYRlh5cxKzq6A5VzUbYEdyJGJlug41jDbjRbHTtsLKZUnUcy/8V3xZw==
+
dependencies:
+
"@babel/helper-plugin-utils" "^7.8.0"
+
"@babel/plugin-syntax-jsx@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94"
···
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+
"@babel/plugin-syntax-object-rest-spread@7.8.0":
+
version "7.8.0"
+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.0.tgz#9b37d580d459682364d8602494c69145b394fd4c"
+
integrity sha512-dt89fDlkfkTrQcy5KavMQPyF2A6tR0kYp8HAnIoQv5hO34iAUffHghP/hMGd7Gf/+uYTmLQO0ar7peX1SUWyIA==
+
dependencies:
+
"@babel/helper-plugin-utils" "^7.8.0"
+
"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
···
dependencies:
regenerator-runtime "^0.13.2"
-
"@babel/template@^7.7.4", "@babel/template@^7.8.3":
+
"@babel/template@^7.7.4", "@babel/template@^7.8.0", "@babel/template@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8"
dependencies:
···
"@babel/parser" "^7.8.3"
"@babel/types" "^7.8.3"
-
"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4":
+
"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c"
dependencies:
···
globals "^11.1.0"
lodash "^4.17.13"
-
"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.8.3":
+
"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.8.0", "@babel/types@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c"
dependencies:
···
version "2.0.0"
resolved "https://registry.yarnpkg.com/@kristoferbaxter/estree-walker/-/estree-walker-2.0.0.tgz#52ee40f9f8b59bbf00cac477a777aeb830ea5952"
+
"@mdx-js/loader@^1.3.0":
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.5.5.tgz#b658534153b3faab8f93ffc790c868dacc5b43d3"
+
integrity sha512-2/2WX73qj79Kv2cYk14kQsN/aypAH3RPzuNMx1gxwZjj77G0N6tzhM9WFkEDM/SXjasWep03ZmSRb9d//b2D8w==
+
dependencies:
+
"@mdx-js/mdx" "^1.5.5"
+
"@mdx-js/react" "^1.5.5"
+
loader-utils "1.2.3"
+
+
"@mdx-js/mdx@^1.5.5":
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.5.5.tgz#09dc8932af84e5baf5add2625ad0250a117c3363"
+
integrity sha512-Xv1lJ+VWt8giWQrqf4GdIBxl08SfepfIWAnuuIzuR+wA59SaXDvkW6XFIvl8u495OQEB1eugMvq8l2XR8ZGr1A==
+
dependencies:
+
"@babel/core" "7.8.0"
+
"@babel/plugin-syntax-jsx" "7.8.0"
+
"@babel/plugin-syntax-object-rest-spread" "7.8.0"
+
"@mdx-js/util" "^1.5.5"
+
babel-plugin-apply-mdx-type-prop "^1.5.5"
+
babel-plugin-extract-import-names "^1.5.5"
+
camelcase-css "2.0.1"
+
detab "2.0.2"
+
hast-util-raw "5.0.1"
+
lodash.uniq "4.5.0"
+
mdast-util-to-hast "6.0.2"
+
remark-mdx "^1.5.5"
+
remark-parse "7.0.2"
+
remark-squeeze-paragraphs "3.0.4"
+
style-to-object "0.3.0"
+
unified "8.4.2"
+
unist-builder "1.0.4"
+
unist-util-visit "2.0.1"
+
+
"@mdx-js/react@^1.5.5":
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.5.5.tgz#0036e65ec59521059f33292f535b9ef0d67bd0e6"
+
integrity sha512-Qwvri4zyU9ZbhhXsH0wfSZ/J9b8mARRTB6GSCTnyKRffO2CaQXl9oLsvRAeQSLRei/onEARc+RexH+jMeNS1rw==
+
+
"@mdx-js/util@^1.5.5":
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.5.5.tgz#6f88bcb847ebd0117fc81bcd26b83220062fd881"
+
integrity sha512-IudQkyZuM8T1CrSX9r0ShPXCABjtEtyrV4lxQqhKAwFqw1aYpy/5LOZhitMLoJTybZPVdPotuh+zjqYy9ZOSbA==
+
"@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
···
"@types/react-dom" "*"
"@types/testing-library__dom" "*"
-
"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
+
"@types/unist@^2.0.0", "@types/unist@^2.0.2":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
"@types/use-subscription@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/use-subscription/-/use-subscription-1.0.0.tgz#d146f8d834f70f50d48bd8246a481d096f11db19"
-
-
"@types/vfile-message@*":
-
version "2.0.0"
-
resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-2.0.0.tgz#690e46af0fdfc1f9faae00cd049cc888957927d5"
-
dependencies:
-
vfile-message "*"
-
-
"@types/vfile@^3.0.0":
-
version "3.0.2"
-
resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9"
-
dependencies:
-
"@types/node" "*"
-
"@types/unist" "*"
-
"@types/vfile-message" "*"
"@types/yargs-parser@*":
version "15.0.0"
···
loader-utils "^1.0.2"
mkdirp "^0.5.1"
pify "^4.0.1"
+
+
babel-plugin-apply-mdx-type-prop@^1.5.5:
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.5.tgz#b5f6333b445f1ec189949225f9309d67c24cf167"
+
integrity sha512-yaklz3xE5vFtZpPpYC9lDbTqlC6hq0CjgheiLw3i40lY8vG0DINh+HJ7rq1Gi1g0q/iihwetJ+YFGpUM4YXAGA==
+
dependencies:
+
"@babel/helper-plugin-utils" "7.8.0"
+
"@mdx-js/util" "^1.5.5"
babel-plugin-closure-elimination@^1.3.0:
version "1.3.0"
···
dependencies:
object.assign "^4.1.0"
+
babel-plugin-extract-import-names@^1.5.5:
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.5.tgz#34ce3332d2802442286c9cfde6ba8198d5f5e7de"
+
integrity sha512-F9paxnUtO3vddyOX+vbRa8KrkuovJIFB8KmB/dEICqTUm2331LcGbjCKzZApOri4Igbk9MnYybm2fDsuPJC3vA==
+
dependencies:
+
"@babel/helper-plugin-utils" "7.8.0"
+
babel-plugin-istanbul@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
···
no-case "^2.2.0"
upper-case "^1.1.1"
+
camelcase-css@2.0.1:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
camelcase-keys@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
···
tunnel-agent "^0.6.0"
url-to-options "^1.0.1"
-
ccount@^1.0.0:
+
ccount@^1.0.0, ccount@^1.0.3:
version "1.0.5"
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17"
···
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
-
-
clipboard@^2.0.0:
-
version "2.0.4"
-
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d"
-
dependencies:
-
good-listener "^1.2.2"
-
select "^1.1.2"
-
tiny-emitter "^2.0.0"
clipboardy@1.2.3:
version "1.2.3"
···
dependencies:
delayed-stream "~1.0.0"
-
comma-separated-tokens@^1.0.1:
+
comma-separated-tokens@^1.0.0:
version "1.0.8"
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea"
···
domutils "^1.7.0"
nth-check "^1.0.2"
-
css-selector-parser@^1.1.0:
+
css-selector-parser@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.3.0.tgz#5f1ad43e2d8eefbfdc304fcd39a521664943e3eb"
+
integrity sha1-XxrUPi2O77/cME/NOaUhZklD4+s=
css-to-react-native@^3.0.0:
version "3.0.0"
···
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
delegate@^3.1.2:
-
version "3.2.0"
-
resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
-
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
···
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+
detab@2.0.2:
+
version "2.0.2"
+
resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.2.tgz#074970d1a807b045d0258a4235df5928dd683561"
+
integrity sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ==
+
dependencies:
+
repeat-string "^1.5.4"
+
detab@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.3.tgz#33e5dd74d230501bd69985a0d2b9a3382699a130"
···
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+
+
emojis-list@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
encodeurl@~1.0.2:
version "1.0.2"
···
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
+
exenv@^1.2.2:
+
version "1.2.2"
+
resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
+
integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=
+
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
···
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-
gatsby-remark-prismjs@^3.2.2:
-
version "3.3.31"
-
resolved "https://registry.yarnpkg.com/gatsby-remark-prismjs/-/gatsby-remark-prismjs-3.3.31.tgz#b5df868642dc78e3d38576d7e9f6eab23d2b6a80"
-
dependencies:
-
"@babel/runtime" "^7.7.6"
-
parse-numeric-range "^0.0.2"
-
unist-util-visit "^1.4.1"
-
gensync@^1.0.0-beta.1:
version "1.0.0-beta.1"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
···
q "~1.4.1"
shelljs "~0.5.3"
-
github-slugger@^1.0.0, github-slugger@^1.2.1:
+
github-slugger@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508"
dependencies:
···
pify "^4.0.1"
slash "^2.0.0"
-
good-listener@^1.2.2:
-
version "1.2.2"
-
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
-
dependencies:
-
delegate "^3.1.2"
-
google-closure-compiler-java@^20200112.0.0:
version "20200112.0.0"
resolved "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20200112.0.0.tgz#2b99f5e2869a573a1b35558ff3b6e6bc054a116f"
···
url-parse-lax "^3.0.0"
url-to-options "^1.0.1"
-
graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.3:
+
graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
···
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-
hast-util-is-element@^1.0.0:
-
version "1.0.3"
-
resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.3.tgz#423b4b26fe8bf1f25950fe052e9ce8f83fd5f6a4"
+
hast-to-hyperscript@^7.0.0:
+
version "7.0.4"
+
resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz#7c4c037d9a8ea19b0a3fdb676a26448ad922353d"
+
integrity sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==
+
dependencies:
+
comma-separated-tokens "^1.0.0"
+
property-information "^5.3.0"
+
space-separated-tokens "^1.0.0"
+
style-to-object "^0.2.1"
+
unist-util-is "^3.0.0"
+
web-namespaces "^1.1.2"
-
hast-util-sanitize@^1.0.0:
-
version "1.3.1"
-
resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-1.3.1.tgz#4e60d66336bd67e52354d581967467029a933f2e"
+
hast-util-from-parse5@^5.0.0:
+
version "5.0.2"
+
resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.2.tgz#afeadc6aab41e6acfe038645bbefd4005c56a475"
+
integrity sha512-YXFjoRS7ES7PEoLx6uihtSfKTO1s3z/tzGiV5cVpsUiihduogFXubNRCzTIW3yOOGO1nws9CxPq4MbwD39Uo+w==
dependencies:
+
ccount "^1.0.3"
+
hastscript "^5.0.0"
+
property-information "^5.0.0"
+
web-namespaces "^1.1.2"
xtend "^4.0.1"
-
hast-util-to-html@^4.0.0:
-
version "4.0.1"
-
resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-4.0.1.tgz#3666b05afb62bd69f8f5e6c94db04dea19438e2a"
+
hast-util-parse-selector@^2.0.0:
+
version "2.2.3"
+
resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz#57edd449103900c7f63fd9e6f694ffd7e4634719"
+
integrity sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==
+
+
hast-util-raw@5.0.1:
+
version "5.0.1"
+
resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-5.0.1.tgz#b39539cf4b9f7ccdc131f72a583502a7911b99ee"
+
integrity sha512-iHo7G6BjRc/GU1Yun5CIEXjil0wVnIbz11C6k0JdDichSDMtYi2+NNtk6YN7EOP0JfPstX30d3pRLfaJv5CkdA==
dependencies:
-
ccount "^1.0.0"
-
comma-separated-tokens "^1.0.1"
-
hast-util-is-element "^1.0.0"
-
hast-util-whitespace "^1.0.0"
-
html-void-elements "^1.0.0"
-
property-information "^4.0.0"
-
space-separated-tokens "^1.0.0"
-
stringify-entities "^1.0.1"
-
unist-util-is "^2.0.0"
+
hast-util-from-parse5 "^5.0.0"
+
hast-util-to-parse5 "^5.0.0"
+
html-void-elements "^1.0.1"
+
parse5 "^5.0.0"
+
unist-util-position "^3.0.0"
+
web-namespaces "^1.0.0"
xtend "^4.0.1"
+
zwitch "^1.0.0"
-
hast-util-whitespace@^1.0.0:
-
version "1.0.3"
-
resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.3.tgz#6d161b307bd0693b5ec000c7c7e8b5445109ee34"
+
hast-util-to-parse5@^5.0.0:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-5.1.1.tgz#cabf2dbe9ed988a5128fc708457b37cdf535a2e8"
+
integrity sha512-ivCeAd5FCXr7bapJIVsWMnx/EmbjkkW2TU2hd1prq+jGwiaUoK+FcpjyPNwsC5ogzCwWO669tOqIovGeLc/ntg==
+
dependencies:
+
hast-to-hyperscript "^7.0.0"
+
property-information "^5.0.0"
+
web-namespaces "^1.0.0"
+
xtend "^4.0.1"
+
zwitch "^1.0.0"
+
+
hastscript@^5.0.0:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.1.tgz#71726ee1e97220575d1f29a8e937387d99d48275"
+
integrity sha512-xHo1Hkcqd0LlWNuDL3/BxwhgAGp3d7uEvCMgCTrBY+zsOooPPH+8KAvW8PCgl+GB8H3H44nfSaF0A4BQ+4xlYg==
+
dependencies:
+
comma-separated-tokens "^1.0.0"
+
hast-util-parse-selector "^2.0.0"
+
property-information "^5.0.0"
+
space-separated-tokens "^1.0.0"
he@1.2.x:
version "1.2.0"
···
relateurl "0.2.x"
uglify-js "3.4.x"
-
html-void-elements@^1.0.0:
+
html-void-elements@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483"
···
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+
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==
+
inquirer-autocomplete-prompt@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.0.2.tgz#3f2548f73dd12f0a541be055ea9c8c7aedeb42bf"
···
dependencies:
kind-of "^6.0.0"
+
is-alphabetical@1.0.3:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8"
+
integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==
+
is-alphabetical@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d"
···
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
-
is-decimal@^1.0.0:
+
is-decimal@^1.0.0, is-decimal@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
···
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+
is-plain-obj@^2.0.0:
+
version "2.1.0"
+
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+
integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+
is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
···
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-
is-whitespace-character@^1.0.0, is-whitespace-character@^1.0.4:
+
is-whitespace-character@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
···
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
-
js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.6.1:
+
js-yaml@^3.13.1, js-yaml@^3.6.1:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
dependencies:
···
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
-
klaw@^2.1.1:
-
version "2.1.1"
-
resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.1.1.tgz#42b76894701169cc910fd0d19ce677b5fb378af1"
-
dependencies:
-
graceful-fs "^4.1.9"
-
kleur@^3.0.0, kleur@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
···
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+
loader-utils@1.2.3:
+
version "1.2.3"
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
+
dependencies:
+
big.js "^5.2.2"
+
emojis-list "^2.0.0"
+
json5 "^1.0.1"
+
loader-utils@^0.2.16:
version "0.2.17"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
···
json5 "^0.5.0"
object-assign "^4.0.1"
-
loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
-
version "1.2.3"
-
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
+
loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+
version "1.4.0"
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
dependencies:
big.js "^5.2.2"
-
emojis-list "^2.0.0"
+
emojis-list "^3.0.0"
json5 "^1.0.1"
loadjs@^4.2.0:
···
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
-
lodash.uniq@^4.5.0:
+
lodash.uniq@4.5.0, lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
···
inherits "^2.0.1"
safe-buffer "^5.1.2"
+
mdast-squeeze-paragraphs@^3.0.0:
+
version "3.0.5"
+
resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.5.tgz#f428b6b944f8faef454db9b58f170c4183cb2e61"
+
integrity sha512-xX6Vbe348Y/rukQlG4W3xH+7v4ZlzUbSY4HUIQCuYrF2DrkcHx584mCaFxkWoDZKNUfyLZItHC9VAqX3kIP7XA==
+
dependencies:
+
unist-util-remove "^1.0.0"
+
mdast-util-compact@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593"
···
dependencies:
unist-util-visit "^1.0.0"
-
mdast-util-to-hast@^3.0.0:
-
version "3.0.4"
-
resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-3.0.4.tgz#132001b266031192348d3366a6b011f28e54dc40"
+
mdast-util-to-hast@6.0.2:
+
version "6.0.2"
+
resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-6.0.2.tgz#24a8791b7c624118637d70f03a9d29116e4311cf"
+
integrity sha512-GjcOimC9qHI0yNFAQdBesrZXzUkRdFleQlcoU8+TVNfDW6oLUazUx8MgUoTaUyCJzBOnE5AOgqhpURrSlf0QwQ==
dependencies:
collapse-white-space "^1.0.0"
detab "^2.0.0"
···
unist-util-visit "^1.1.0"
xtend "^4.0.1"
-
mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.5:
+
mdast-util-to-string@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.7.tgz#62d8e9c6b2113070d8b497c7dc35bf12796f06ee"
-
mdast-util-toc@^3.0.0:
-
version "3.1.0"
-
resolved "https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz#395eeb877f067f9d2165d990d77c7eea6f740934"
-
dependencies:
-
github-slugger "^1.2.1"
-
mdast-util-to-string "^1.0.5"
-
unist-util-is "^2.1.2"
-
unist-util-visit "^1.1.0"
-
mdn-data@2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
···
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
-
mime@^2.0.3, mime@^2.4.4:
+
mime@^2.4.4:
version "2.4.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
···
version "3.3.0"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
+
not@^0.1.0:
+
version "0.1.0"
+
resolved "https://registry.yarnpkg.com/not/-/not-0.1.0.tgz#c9691c1746c55dcfbe54cbd8bd4ff041bc2b519d"
+
integrity sha1-yWkcF0bFXc++VMvYvU/wQbwrUZ0=
+
npm-conf@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
···
dependencies:
path-key "^3.0.0"
-
nth-check@^1.0.1, nth-check@^1.0.2, nth-check@~1.0.1:
+
nth-check@^1.0.0, nth-check@^1.0.2, nth-check@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
dependencies:
···
json-parse-better-errors "^1.0.1"
lines-and-columns "^1.1.6"
-
parse-numeric-range@^0.0.2:
-
version "0.0.2"
-
resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4"
-
parse5@5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+
+
parse5@^5.0.0:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
+
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
parseqs@0.0.5:
version "0.0.5"
···
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+
path@^0.12.7:
+
version "0.12.7"
+
resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
+
integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=
+
dependencies:
+
process "^0.11.1"
+
util "^0.10.3"
+
pbkdf2@^3.0.3:
version "3.0.17"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
···
ansi-styles "^4.0.0"
react-is "^16.12.0"
-
prismjs@^1.15.0:
-
version "1.19.0"
-
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.19.0.tgz#713afbd45c3baca4b321569f2df39e17e729d4dc"
-
optionalDependencies:
-
clipboard "^2.0.0"
+
prism-react-renderer@^1.0.2:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.0.2.tgz#3bb9a6a42f76fc049b03266298c7068fdd4b7ea9"
+
integrity sha512-0++pJyRfu4v2OxI/Us/5RLui9ESDkTiLkVCtKuPZYdpB8UQWJpnJQhPrWab053XtsKW3oM0sD69uJ6N9exm1Ag==
private@^0.1.6:
version "0.1.8"
···
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
-
process@^0.11.10:
+
process@^0.11.1, process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
···
object-assign "^4.1.1"
react-is "^16.8.1"
-
property-information@^4.0.0:
-
version "4.2.0"
-
resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e"
+
property-information@^5.0.0, property-information@^5.3.0:
+
version "5.4.0"
+
resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.4.0.tgz#16e08f13f4e5c4a7be2e4ec431c01c4f8dba869a"
+
integrity sha512-nmMWAm/3vKFGmmOWOcdLjgq/Hlxa+hsuR/px1Lp/UGEyc5A22A6l78Shc2C0E71sPmAqglni+HrS7L7VJ7AUCA==
dependencies:
-
xtend "^4.0.1"
+
xtend "^4.0.0"
proto-list@~1.2.1:
version "1.2.4"
···
iconv-lite "0.4.24"
unpipe "1.0.0"
-
raw-loader@^1.0.0:
-
version "1.0.0"
-
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-1.0.0.tgz#3f9889e73dadbda9a424bce79809b4133ad46405"
-
dependencies:
-
loader-utils "^1.1.0"
-
schema-utils "^1.0.0"
-
raw-loader@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f"
···
version "2.0.4"
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
+
react-from-dom@^0.3.0:
+
version "0.3.1"
+
resolved "https://registry.yarnpkg.com/react-from-dom/-/react-from-dom-0.3.1.tgz#49ba6e7d679314807786aa88a37436ec73637bce"
+
integrity sha512-PeNBa8iuzoD7qHA9O7YpGnXFvC+XFFwStmFh2/r2zJAvEIaRg6EwOj+EPcDIFwyYBhqPIItxIx/dGdeWiFivjQ==
+
react-ga@^2.4.1:
version "2.7.0"
resolved "https://registry.yarnpkg.com/react-ga/-/react-ga-2.7.0.tgz#24328f157f31e8cffbf4de74a3396536679d8d7c"
···
shallowequal "^1.1.0"
source-map "^0.7.3"
+
react-inlinesvg@^1.2.0:
+
version "1.2.0"
+
resolved "https://registry.yarnpkg.com/react-inlinesvg/-/react-inlinesvg-1.2.0.tgz#fa63bda004ed941449a034574269ad4819cdbc8d"
+
integrity sha512-IsznU+UzpUwDGzBWbf0bfSRA5Jbqz87xeoqLM/nSIDPkoHksInF1wCGybTSn4sIui+30TqboRQP1wAelNTkdog==
+
dependencies:
+
exenv "^1.2.2"
+
react-from-dom "^0.3.0"
+
react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
···
dependencies:
object-is "^1.0.1"
+
react-static-plugin-md-pages@^0.1.0:
+
version "0.1.0"
+
resolved "https://registry.yarnpkg.com/react-static-plugin-md-pages/-/react-static-plugin-md-pages-0.1.0.tgz#2e6ff6e8900b42e284008cc6ab8af9675ab95df7"
+
integrity sha512-xmtgf7PfChjcsVtq0ifvVaQgem1NRRADerUiK41gK6b/c9gQkDE0tE5YL5PTfKaHePFfk2g58HQUsl8c4MO6rw==
+
dependencies:
+
"@mdx-js/mdx" "^1.5.5"
+
"@mdx-js/react" "^1.5.5"
+
github-slugger "^1.2.1"
+
glob "^7.1.6"
+
loader-utils "^1.4.0"
+
mdast-util-to-string "^1.0.7"
+
remark "^11.0.2"
+
remark-frontmatter "^1.3.2"
+
remark-squeeze-paragraphs "^3.0.4"
+
to-vfile "^6.0.0"
+
unist-util-remove "^2.0.0"
+
unist-util-select "^3.0.1"
+
unist-util-visit "^2.0.2"
+
yaml "^1.7.2"
+
+
react-static-plugin-mdx@^7.2.2:
+
version "7.2.2"
+
resolved "https://registry.yarnpkg.com/react-static-plugin-mdx/-/react-static-plugin-mdx-7.2.2.tgz#c90884103ea1c6007a502bf0efadd18e4be4f4a7"
+
integrity sha512-f0T/vq5cryIRvztt2tjpp3AjNdvR1krxl9ADR27AVK2StnFk2T20HraVsTdFDa1FUDrYwRP07JczUZV9gcFtzw==
+
dependencies:
+
"@mdx-js/loader" "^1.3.0"
+
react-static-plugin-react-router@^7.2.3:
version "7.2.3"
resolved "https://registry.yarnpkg.com/react-static-plugin-react-router/-/react-static-plugin-react-router-7.2.3.tgz#9f12b10b245565f187b7e1795e14b9e982aa26ba"
···
version "0.2.7"
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
-
remark-frontmatter@^1.3.0:
+
remark-frontmatter@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-1.3.2.tgz#91d9684319cd1b96cc3d9d901f10a978f39c752d"
dependencies:
fault "^1.0.1"
xtend "^4.0.1"
-
remark-html@^8.0.0:
-
version "8.0.0"
-
resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-8.0.0.tgz#9fcb859a6f3cb40f3ef15402950f1a62ec301b3a"
+
remark-mdx@^1.5.5:
+
version "1.5.5"
+
resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.5.5.tgz#7def5f778c8454b6ef7747ecb2f01376b994b884"
+
integrity sha512-w1XW9UzsQ6XAecV59dP8LJWn4tMftaXGwH5LEvUU5uIEJEJvHDE1jkKiPr3ow2IuhjuRfWs3b079Jtnk5qlUgQ==
dependencies:
-
hast-util-sanitize "^1.0.0"
-
hast-util-to-html "^4.0.0"
-
mdast-util-to-hast "^3.0.0"
-
xtend "^4.0.1"
+
"@babel/core" "7.8.0"
+
"@babel/helper-plugin-utils" "7.8.0"
+
"@babel/plugin-proposal-object-rest-spread" "7.8.0"
+
"@babel/plugin-syntax-jsx" "7.8.0"
+
"@mdx-js/util" "^1.5.5"
+
is-alphabetical "1.0.3"
+
remark-parse "7.0.2"
+
unified "8.4.2"
-
remark-kbd@^1.0.16:
-
version "1.0.21"
-
resolved "https://registry.yarnpkg.com/remark-kbd/-/remark-kbd-1.0.21.tgz#2e8c1649bfae242567a78b53514dc7ee713e52f7"
-
dependencies:
-
is-whitespace-character "^1.0.4"
-
-
remark-parse@^6.0.0:
-
version "6.0.3"
-
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz#c99131052809da482108413f87b0ee7f52180a3a"
+
remark-parse@7.0.2, remark-parse@^7.0.0:
+
version "7.0.2"
+
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf"
+
integrity sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==
dependencies:
collapse-white-space "^1.0.2"
is-alphabetical "^1.0.0"
···
vfile-location "^2.0.0"
xtend "^4.0.1"
-
remark-slug@^5.0.0, remark-slug@^5.1.1:
-
version "5.1.2"
-
resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.2.tgz#715ecdef8df1226786204b1887d31ab16aa24609"
+
remark-squeeze-paragraphs@3.0.4, remark-squeeze-paragraphs@^3.0.4:
+
version "3.0.4"
+
resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.4.tgz#9fe50c3bf3b572dd88754cd426ada007c0b8dc5f"
+
integrity sha512-Wmz5Yj9q+W1oryo8BV17JrOXZgUKVcpJ2ApE2pwnoHwhFKSk4Wp2PmFNbmJMgYSqAdFwfkoe+TSYop5Fy8wMgA==
dependencies:
-
github-slugger "^1.0.0"
-
mdast-util-to-string "^1.0.0"
-
unist-util-visit "^1.0.0"
+
mdast-squeeze-paragraphs "^3.0.0"
-
remark-stringify@^6.0.0:
-
version "6.0.4"
-
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz#16ac229d4d1593249018663c7bddf28aafc4e088"
+
remark-stringify@^7.0.0:
+
version "7.0.4"
+
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-7.0.4.tgz#3de1e3f93853288d3407da1cd44f2212321dd548"
+
integrity sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg==
dependencies:
ccount "^1.0.0"
is-alphanumeric "^1.0.0"
···
parse-entities "^1.0.2"
repeat-string "^1.5.4"
state-toggle "^1.0.0"
-
stringify-entities "^1.0.1"
+
stringify-entities "^2.0.0"
unherit "^1.0.4"
xtend "^4.0.1"
-
remark-toc@^5.1.0:
-
version "5.1.1"
-
resolved "https://registry.yarnpkg.com/remark-toc/-/remark-toc-5.1.1.tgz#8c229d6f834cdb43fde6685e2d43248d3fc82d78"
+
remark@^11.0.2:
+
version "11.0.2"
+
resolved "https://registry.yarnpkg.com/remark/-/remark-11.0.2.tgz#12b90ea100ac3362b1976fa87a6e4e0ab5968202"
+
integrity sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w==
dependencies:
-
mdast-util-toc "^3.0.0"
-
remark-slug "^5.0.0"
-
-
remark@^10.0.1:
-
version "10.0.1"
-
resolved "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz#3058076dc41781bf505d8978c291485fe47667df"
-
dependencies:
-
remark-parse "^6.0.0"
-
remark-stringify "^6.0.0"
-
unified "^7.0.0"
+
remark-parse "^7.0.0"
+
remark-stringify "^7.0.0"
+
unified "^8.2.0"
remove-accents@0.4.2:
version "0.4.2"
···
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
-
-
select@^1.1.2:
-
version "1.1.2"
-
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
selfsigned@^1.10.7:
version "1.10.7"
···
dependencies:
safe-buffer "~5.1.0"
-
stringify-entities@^1.0.1:
-
version "1.3.2"
-
resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7"
+
stringify-entities@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-2.0.0.tgz#fa7ca6614b355fb6c28448140a20c4ede7462827"
+
integrity sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==
dependencies:
character-entities-html4 "^1.0.0"
character-entities-legacy "^1.0.0"
is-alphanumerical "^1.0.0"
+
is-decimal "^1.0.2"
is-hexadecimal "^1.0.0"
stringify-object@^3.3.0:
···
dependencies:
loader-utils "^1.1.0"
schema-utils "^1.0.0"
+
+
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"
+
+
style-to-object@^0.2.1:
+
version "0.2.3"
+
resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.2.3.tgz#afcf42bc03846b1e311880c55632a26ad2780bcb"
+
integrity sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==
+
dependencies:
+
inline-style-parser "0.1.1"
styled-components@^5.0.1:
version "5.0.1"
···
version "0.3.0"
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
-
tiny-emitter@^2.0.0:
-
version "2.1.0"
-
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
-
tiny-invariant@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
···
extend-shallow "^3.0.2"
regex-not "^1.0.2"
safe-regex "^1.1.0"
+
+
to-vfile@^6.0.0:
+
version "6.0.0"
+
resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-6.0.0.tgz#96c4aa0ee09c51dd4e8fd0b9c11da040d7dba9ea"
+
integrity sha512-i9fwXXSsHLu7mzgixc1WjgnqSe6pGpjnzCYoFmrASvEueLfyKf09QAe+XQYu8OAJ62aFqHpe2EKXojeRVvEzqA==
+
dependencies:
+
is-buffer "^2.0.0"
+
vfile "^4.0.0"
toidentifier@1.0.0:
version "1.0.0"
···
version "1.0.5"
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
-
unified@^7.0.0:
-
version "7.1.0"
-
resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13"
+
unified@8.4.2, unified@^8.2.0:
+
version "8.4.2"
+
resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1"
+
integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==
dependencies:
-
"@types/unist" "^2.0.0"
-
"@types/vfile" "^3.0.0"
bail "^1.0.0"
extend "^3.0.0"
-
is-plain-obj "^1.1.0"
+
is-plain-obj "^2.0.0"
trough "^1.0.0"
-
vfile "^3.0.0"
-
x-is-string "^0.1.0"
+
vfile "^4.0.0"
union-value@^1.0.0:
version "1.0.1"
···
dependencies:
imurmurhash "^0.1.4"
-
unist-builder@^1.0.1:
+
unist-builder@1.0.4, unist-builder@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz#e1808aed30bd72adc3607f25afecebef4dd59e17"
dependencies:
···
unist-util-generated@^1.1.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42"
-
-
unist-util-is@^2.0.0, unist-util-is@^2.1.2:
-
version "2.1.3"
-
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.3.tgz#459182db31f4742fceaea88d429693cbf0043d20"
unist-util-is@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd"
+
unist-util-is@^4.0.0:
+
version "4.0.2"
+
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de"
+
integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==
+
unist-util-position@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.4.tgz#5872be7aec38629b971fdb758051f78817b0040a"
···
dependencies:
unist-util-visit "^1.1.0"
-
unist-util-select@^1.5.0:
-
version "1.5.0"
-
resolved "https://registry.yarnpkg.com/unist-util-select/-/unist-util-select-1.5.0.tgz#a93c2be8c0f653827803b81331adec2aa24cd933"
+
unist-util-remove@^1.0.0:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-1.0.3.tgz#58ec193dfa84b52d5a055ffbc58e5444eb8031a3"
+
integrity sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g==
+
dependencies:
+
unist-util-is "^3.0.0"
+
+
unist-util-remove@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.0.0.tgz#32c2ad5578802f2ca62ab808173d505b2c898488"
+
integrity sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g==
dependencies:
-
css-selector-parser "^1.1.0"
-
debug "^2.2.0"
-
nth-check "^1.0.1"
+
unist-util-is "^4.0.0"
-
unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1:
-
version "1.1.2"
-
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6"
+
unist-util-select@^3.0.1:
+
version "3.0.1"
+
resolved "https://registry.yarnpkg.com/unist-util-select/-/unist-util-select-3.0.1.tgz#787fc452db9ba77f0ade0e7dc53c3d9d4acc79c7"
+
integrity sha512-VQpTuqZVJlRbosQdnLdTPIIqwZeU70YZ5aMBOqtFNGeeCdYn6ORZt/9RiaVlbl06ocuf58SVMoFa7a13CSGPMA==
+
dependencies:
+
css-selector-parser "^1.0.0"
+
not "^0.1.0"
+
nth-check "^1.0.0"
+
unist-util-is "^4.0.0"
+
zwitch "^1.0.0"
unist-util-stringify-position@^2.0.0:
version "2.0.2"
···
dependencies:
unist-util-is "^3.0.0"
-
unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.4.0, unist-util-visit@^1.4.1:
+
unist-util-visit-parents@^3.0.0:
+
version "3.0.2"
+
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz#d4076af3011739c71d2ce99d05de37d545f4351d"
+
integrity sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==
+
dependencies:
+
"@types/unist" "^2.0.0"
+
unist-util-is "^4.0.0"
+
+
unist-util-visit@2.0.1:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.1.tgz#b4e1c1cb414250c6b3cb386b8e461d79312108ae"
+
integrity sha512-bEDa5S/O8WRDeI1mLaMoKuFFi89AjF+UAoMNxO+bbVdo06q+53Vhq4iiv1PenL6Rx1ZxIpXIzqZoc5HD2I1oMA==
+
dependencies:
+
"@types/unist" "^2.0.0"
+
unist-util-is "^4.0.0"
+
unist-util-visit-parents "^3.0.0"
+
+
unist-util-visit@^1.0.0, unist-util-visit@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3"
dependencies:
unist-util-visit-parents "^2.0.0"
+
+
unist-util-visit@^2.0.2:
+
version "2.0.2"
+
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.2.tgz#3843782a517de3d2357b4c193b24af2d9366afb7"
+
integrity sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==
+
dependencies:
+
"@types/unist" "^2.0.0"
+
unist-util-is "^4.0.0"
+
unist-util-visit-parents "^3.0.0"
universalify@^0.1.0:
version "0.1.2"
···
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-
url-loader@^1.1.2:
-
version "1.1.2"
-
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8"
-
dependencies:
-
loader-utils "^1.1.0"
-
mime "^2.0.3"
-
schema-utils "^1.0.0"
-
url-loader@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b"
···
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+
integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
dependencies:
punycode "1.3.2"
querystring "0.2.0"
···
dependencies:
inherits "2.0.1"
+
util@^0.10.3:
+
version "0.10.4"
+
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
+
integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
+
dependencies:
+
inherits "2.0.3"
+
util@^0.11.0:
version "0.11.1"
resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
···
version "2.0.6"
resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e"
-
vfile-message@*:
+
vfile-message@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.2.tgz#75ba05090ec758fa8420f2c11ce049bcddd8cf3e"
dependencies:
"@types/unist" "^2.0.0"
unist-util-stringify-position "^2.0.0"
-
vfile-message@^1.0.0:
-
version "1.1.1"
-
resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1"
-
dependencies:
-
unist-util-stringify-position "^1.1.1"
-
-
vfile@^3.0.0:
-
version "3.0.1"
-
resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803"
+
vfile@^4.0.0:
+
version "4.0.2"
+
resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.2.tgz#71af004d4a710b0e6be99c894655bc56126d5d56"
+
integrity sha512-yhoTU5cDMSsaeaMfJ5g0bUKYkYmZhAh9fn9TZicxqn+Cw4Z439il2v3oT9S0yjlpqlI74aFOQCt3nOV+pxzlkw==
dependencies:
+
"@types/unist" "^2.0.0"
is-buffer "^2.0.0"
replace-ext "1.0.0"
-
unist-util-stringify-position "^1.0.0"
-
vfile-message "^1.0.0"
+
unist-util-stringify-position "^2.0.0"
+
vfile-message "^2.0.0"
vinyl-sourcemaps-apply@^0.2.0:
version "0.2.1"
···
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
dependencies:
defaults "^1.0.3"
+
+
web-namespaces@^1.0.0, web-namespaces@^1.1.2:
+
version "1.1.4"
+
resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec"
+
integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==
webidl-conversions@^4.0.2:
version "4.0.2"
···
source-list-map "^2.0.0"
source-map "~0.6.1"
-
webpack@^4.39.2, webpack@^4.41.6:
+
webpack@^4.39.2:
version "4.41.6"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1"
dependencies:
···
throat "^4.1.0"
yargs "^11.1.1"
-
x-is-string@^0.1.0:
-
version "0.1.0"
-
resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
-
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
···
yaml@^1.7.2:
version "1.7.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2"
+
integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==
dependencies:
"@babel/runtime" "^7.6.3"
···
yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
+
+
zwitch@^1.0.0:
+
version "1.0.5"
+
resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"
+
integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==