From 5689ce633281af7830fccce987505d28d650bc64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20D=C3=B6rfler?= Date: Wed, 10 Jun 2020 15:41:43 +0200 Subject: [PATCH] added eslint --- .eslintrc.json | 26 +++ gatsby-browser.js | 8 +- gatsby-config.js | 89 +++++----- gatsby-node.js | 38 ++--- package.json | 8 +- src/components/bio.js | 32 ++-- src/components/commento.js | 48 ++++++ src/components/layout.js | 51 +++--- src/components/seo.js | 42 ++--- src/pages/404.js | 18 +-- src/pages/index.js | 30 ++-- src/templates/blog-post.js | 46 +++--- src/utils/typography.js | 26 ++- yarn.lock | 321 +++++++++++++++++++++++++------------ 14 files changed, 495 insertions(+), 288 deletions(-) create mode 100644 .eslintrc.json create mode 100644 src/components/commento.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..1b16b3c --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,26 @@ +{ + "env": { + "browser": true, + "es6": true + }, + "extends": [ + "plugin:react/recommended", + "airbnb" + ], + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": 11, + "sourceType": "module" + }, + "plugins": [ + "react" + ], + "rules": { + } +} diff --git a/gatsby-browser.js b/gatsby-browser.js index 388af4d..fdd8d75 100644 --- a/gatsby-browser.js +++ b/gatsby-browser.js @@ -1,6 +1,6 @@ // custom typefaces -import "typeface-montserrat" -import "typeface-merriweather" +import 'typeface-montserrat'; +import 'typeface-merriweather'; -import "./src/styles/global.css"; -import "prismjs/themes/prism-solarizedlight.css"; +import './src/styles/global.css'; +import 'prismjs/themes/prism-solarizedlight.css'; diff --git a/gatsby-config.js b/gatsby-config.js index 939caad..86651ab 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,50 +1,50 @@ module.exports = { siteMetadata: { - title: `While False Blog`, - author: `Stephan Dörfler`, - description: `Self-built developer blog based on gatsby.`, - siteUrl: `https://blog.while-false.de`, - type: `website`, + title: 'While False Blog', + author: 'Stephan Dörfler', + description: 'Self-built developer blog based on gatsby.', + siteUrl: 'https://blog.while-false.de', + type: 'website', }, plugins: [ { - resolve: `gatsby-source-filesystem`, + resolve: 'gatsby-source-filesystem', options: { path: `${__dirname}/content/blog`, - name: `blog`, + name: 'blog', }, }, { - resolve: `gatsby-source-filesystem`, + resolve: 'gatsby-source-filesystem', options: { path: `${__dirname}/content/assets`, - name: `assets`, + name: 'assets', }, }, { - resolve: `gatsby-transformer-remark`, + resolve: 'gatsby-transformer-remark', options: { plugins: [ { - resolve: `gatsby-remark-images`, + resolve: 'gatsby-remark-images', options: { maxWidth: 590, }, }, { - resolve: `gatsby-remark-responsive-iframe`, + resolve: 'gatsby-remark-responsive-iframe', options: { - wrapperStyle: `margin-bottom: 1.0725rem`, + wrapperStyle: 'margin-bottom: 1.0725rem', }, }, - `gatsby-remark-prismjs`, - `gatsby-remark-copy-linked-files`, - `gatsby-remark-smartypants`, + 'gatsby-remark-prismjs', + 'gatsby-remark-copy-linked-files', + 'gatsby-remark-smartypants', ], }, }, - `gatsby-transformer-sharp`, - `gatsby-plugin-sharp`, + 'gatsby-transformer-sharp', + 'gatsby-plugin-sharp', { resolve: 'gatsby-plugin-matomo', options: { @@ -52,8 +52,8 @@ module.exports = { matomoUrl: 'https://matomo.while-false.de', siteUrl: 'https://blog.while-false.de', matomoPhpScript: 'matomo.php', - matomoJsScript: 'matomo.js' - } + matomoJsScript: 'matomo.js', + }, }, { resolve: 'gatsby-plugin-feed', @@ -72,17 +72,14 @@ module.exports = { `, feeds: [ { - serialize: ({ query: { site, allMarkdownRemark } }) => { - return allMarkdownRemark.edges.map(edge => { - return Object.assign({}, edge.node.frontmatter, { - description: edge.node.excerpt, - date: edge.node.frontmatter.date, - url: site.siteMetadata.siteUrl + edge.node.fields.slug, - guid: site.siteMetadata.siteUrl + edge.node.fields.slug, - custom_elements: [{ "content:encoded": edge.node.html }], - }) - }) - }, + serialize: ({ query: { site, allMarkdownRemark } }) => allMarkdownRemark.edges.map((edge) => ({ + ...edge.node.frontmatter, + description: edge.node.excerpt, + date: edge.node.frontmatter.date, + url: site.siteMetadata.siteUrl + edge.node.fields.slug, + guid: site.siteMetadata.siteUrl + edge.node.fields.slug, + custom_elements: [{ 'content:encoded': edge.node.html }], + })), query: ` { allMarkdownRemark( @@ -102,31 +99,31 @@ module.exports = { } } `, - output: "/rss.xml", - title: "while-false blog RSS Feed" + output: '/rss.xml', + title: 'while-false blog RSS Feed', }, ], }, }, { - resolve: `gatsby-plugin-manifest`, + resolve: 'gatsby-plugin-manifest', options: { - name: `While False Blog`, - short_name: `while-false`, - start_url: `/`, - background_color: `#f9ebe0`, - theme_color: `#3b7080`, - display: `minimal-ui`, - icon: `content/assets/logo.png`, + name: 'While False Blog', + short_name: 'while-false', + start_url: '/', + background_color: '#f9ebe0', + theme_color: '#3b7080', + display: 'minimal-ui', + icon: 'content/assets/logo.png', }, }, - `gatsby-plugin-offline`, - `gatsby-plugin-react-helmet`, + 'gatsby-plugin-offline', + 'gatsby-plugin-react-helmet', { - resolve: `gatsby-plugin-typography`, + resolve: 'gatsby-plugin-typography', options: { - pathToConfigModule: `src/utils/typography`, + pathToConfigModule: 'src/utils/typography', }, }, ], -} +}; diff --git a/gatsby-node.js b/gatsby-node.js index f6edc7b..b28a51d 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -1,10 +1,10 @@ -const path = require(`path`) -const { createFilePath } = require(`gatsby-source-filesystem`) +const path = require('path'); +const { createFilePath } = require('gatsby-source-filesystem'); exports.createPages = async ({ graphql, actions }) => { - const { createPage } = actions + const { createPage } = actions; - const blogPost = path.resolve(`./src/templates/blog-post.js`) + const blogPost = path.resolve('./src/templates/blog-post.js'); const result = await graphql( ` { @@ -24,19 +24,19 @@ exports.createPages = async ({ graphql, actions }) => { } } } - ` - ) + `, + ); if (result.errors) { - throw result.errors + throw result.errors; } // Create blog posts pages. - const posts = result.data.allMarkdownRemark.edges + const posts = result.data.allMarkdownRemark.edges; posts.forEach((post, index) => { - const previous = index === posts.length - 1 ? null : posts[index + 1].node - const next = index === 0 ? null : posts[index - 1].node + const previous = index === posts.length - 1 ? null : posts[index + 1].node; + const next = index === 0 ? null : posts[index - 1].node; createPage({ path: post.node.fields.slug, @@ -46,18 +46,18 @@ exports.createPages = async ({ graphql, actions }) => { previous, next, }, - }) - }) -} + }); + }); +}; exports.onCreateNode = ({ node, actions, getNode }) => { - const { createNodeField } = actions - if (node.internal.type === `MarkdownRemark`) { - const value = createFilePath({ node, getNode }) + const { createNodeField } = actions; + if (node.internal.type === 'MarkdownRemark') { + const value = createFilePath({ node, getNode }); createNodeField({ - name: `slug`, + name: 'slug', node, value, - }) + }); } -} +}; diff --git a/package.json b/package.json index 7f6a34e..68e8494 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "author": "Stephan Dörfler ", "dependencies": { "gatsby": "^2.22.17", + "gatsby-cli": "^2.12.45", "gatsby-image": "^2.4.6", "gatsby-plugin-feed": "^2.5.4", "gatsby-plugin-manifest": "^2.4.10", @@ -34,7 +35,12 @@ "typography-theme-wordpress-2016": "^0.16.19" }, "devDependencies": { - "eslint": "^7.1.0", + "eslint": "^6.8.0", + "eslint-config-airbnb": "^18.1.0", + "eslint-plugin-import": "^2.21.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-react": "^7.20.0", + "eslint-plugin-react-hooks": "^2.5.1", "prettier": "^2.0.5" }, "keywords": [ diff --git a/src/components/bio.js b/src/components/bio.js index b8a4003..db9a219 100644 --- a/src/components/bio.js +++ b/src/components/bio.js @@ -5,11 +5,11 @@ * See: https://www.gatsbyjs.org/docs/use-static-query/ */ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" -import Image from "gatsby-image" +import React from 'react'; +import { useStaticQuery, graphql } from 'gatsby'; +import Image from 'gatsby-image'; -import { rhythm } from "../utils/typography" +import { rhythm } from '../utils/typography'; const Bio = () => { const data = useStaticQuery(graphql` @@ -27,13 +27,13 @@ const Bio = () => { } } } - `) + `); - const { author } = data.site.siteMetadata + const { author } = data.site.siteMetadata; return (
@@ -44,18 +44,22 @@ const Bio = () => { marginRight: rhythm(1 / 2), marginBottom: 0, minWidth: 50, - borderRadius: `100%`, + borderRadius: '100%', }} imgStyle={{ - borderRadius: `50%`, + borderRadius: '50%', }} />

- Written by {author} who lives and works in Germany trying to build useful things. - {` `} + Written by + {' '} + {author} + {' '} + who lives and works in Germany trying to build useful things. + {' '}

- ) -} + ); +}; -export default Bio +export default Bio; diff --git a/src/components/commento.js b/src/components/commento.js new file mode 100644 index 0000000..70d7062 --- /dev/null +++ b/src/components/commento.js @@ -0,0 +1,48 @@ +import React, { useEffect } from 'react'; + +/** + * Helper to add scripts to the page. + * @param {string} src The source path for the script to insert. + * @param {string} id The unique identifier for the script element to insert. + * @param {HTMLElement} parentElement The DOM element to insert the script into. + */ +const insertScript = (src, id, parentElement) => { + const script = window.document.createElement('script'); + script.async = true; + script.src = src; + script.id = id; + parentElement.appendChild(script); + return script; +}; + +/** + * Helper to remove scripts from the page. + * @param {string} id The unique identifier for the script element to remove. + * @param {HTMLElement} parentElement The DOM element to remove the script from + */ +const removeScript = (id, parentElement) => { + const script = window.document.getElementById(id); + if (script) { + parentElement.removeChild(script); + } +}; + + +const Commento = ({ id }) => { + useEffect(() => { + // If there's no window there's nothing to do for us + if (!window) { + return; + } + const { document } = window; + // In case our #commento container exists we can add our commento script + if (document.getElementById('commento')) { + insertScript('https://comments.while-false.de/js/commento.js', 'commento-script', document.body); + } + // Cleanup; remove the script from the page + return () => removeScript('commento-script', document.body); + }, [id]); + return
; +}; + +export default Commento; diff --git a/src/components/layout.js b/src/components/layout.js index 3acfeb7..119c815 100644 --- a/src/components/layout.js +++ b/src/components/layout.js @@ -1,13 +1,13 @@ -import React from "react" -import { Link } from "gatsby" +import React from 'react'; +import { Link } from 'gatsby'; -import { rhythm, scale } from "../utils/typography" +import { rhythm, scale } from '../utils/typography'; class Layout extends React.Component { render() { - const { location, title, children } = this.props - const rootPath = `${__PATH_PREFIX__}/` - let header + const { location, title, children } = this.props; + const rootPath = `${__PATH_PREFIX__}/`; + let header; if (location.pathname === rootPath) { header = ( @@ -20,56 +20,59 @@ class Layout extends React.Component { > {title} - ) + ); } else { header = (

{title}

- ) + ); } return (
{header}
{children}
- © {new Date().getFullYear()}, Built with - {` `} + © + {' '} + {new Date().getFullYear()} + , Built with + {' '} Gatsby
- ) + ); } } -export default Layout +export default Layout; diff --git a/src/components/seo.js b/src/components/seo.js index 45ede23..e3299ea 100644 --- a/src/components/seo.js +++ b/src/components/seo.js @@ -5,12 +5,14 @@ * See: https://www.gatsbyjs.org/docs/use-static-query/ */ -import React from "react" -import PropTypes from "prop-types" -import Helmet from "react-helmet" -import { useStaticQuery, graphql } from "gatsby" +import React from 'react'; +import PropTypes from 'prop-types'; +import Helmet from 'react-helmet'; +import { useStaticQuery, graphql } from 'gatsby'; -function SEO({ description, lang, meta, title }) { +function SEO({ + description, lang, meta, title, +}) { const { site } = useStaticQuery( graphql` query { @@ -23,11 +25,11 @@ function SEO({ description, lang, meta, title }) { } } } - ` - ) + `, + ); - const metaDescription = description || site.siteMetadata.description - const metaType = `website` || site.siteMetadata.type + const metaDescription = description || site.siteMetadata.description; + const metaType = 'website' || site.siteMetadata.type; return ( - + - ) + ); } SEO.defaultProps = { - lang: `en`, + lang: 'en', meta: [], - description: `A selfmade developer blog.`, -} + description: 'A selfmade developer blog.', +}; SEO.propTypes = { description: PropTypes.string, lang: PropTypes.string, meta: PropTypes.arrayOf(PropTypes.object), title: PropTypes.string.isRequired, -} +}; -export default SEO +export default SEO; diff --git a/src/pages/404.js b/src/pages/404.js index 008a76b..98764f2 100644 --- a/src/pages/404.js +++ b/src/pages/404.js @@ -1,13 +1,13 @@ -import React from "react" -import { graphql } from "gatsby" +import React from 'react'; +import { graphql } from 'gatsby'; -import Layout from "../components/layout" -import SEO from "../components/seo" +import Layout from '../components/layout'; +import SEO from '../components/seo'; class NotFoundPage extends React.Component { render() { - const { data } = this.props - const siteTitle = data.site.siteMetadata.title + const { data } = this.props; + const siteTitle = data.site.siteMetadata.title; return ( @@ -15,11 +15,11 @@ class NotFoundPage extends React.Component {

Not Found

You just hit a route that doesn't exist... the sadness.

- ) + ); } } -export default NotFoundPage +export default NotFoundPage; export const pageQuery = graphql` query { @@ -29,4 +29,4 @@ export const pageQuery = graphql` } } } -` +`; diff --git a/src/pages/index.js b/src/pages/index.js index 2dd45eb..bd0fe2a 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -1,23 +1,23 @@ -import React from "react" -import { Link, graphql } from "gatsby" +import React from 'react'; +import { Link, graphql } from 'gatsby'; -import Bio from "../components/bio" -import Layout from "../components/layout" -import SEO from "../components/seo" -import { rhythm } from "../utils/typography" +import Bio from '../components/bio'; +import Layout from '../components/layout'; +import SEO from '../components/seo'; +import { rhythm } from '../utils/typography'; class BlogIndex extends React.Component { render() { - const { data } = this.props - const siteTitle = data.site.siteMetadata.title - const posts = data.allMarkdownRemark.edges + const { data } = this.props; + const siteTitle = data.site.siteMetadata.title; + const posts = data.allMarkdownRemark.edges; return ( {posts.map(({ node }) => { - const title = node.frontmatter.title || node.fields.slug + const title = node.frontmatter.title || node.fields.slug; return (
@@ -26,7 +26,7 @@ class BlogIndex extends React.Component { marginBottom: rhythm(1 / 4), }} > - + {title} @@ -40,14 +40,14 @@ class BlogIndex extends React.Component { />
- ) + ); })}
- ) + ); } } -export default BlogIndex +export default BlogIndex; export const pageQuery = graphql` query { @@ -72,4 +72,4 @@ export const pageQuery = graphql` } } } -` +`; diff --git a/src/templates/blog-post.js b/src/templates/blog-post.js index 8babd0c..d7eb421 100644 --- a/src/templates/blog-post.js +++ b/src/templates/blog-post.js @@ -1,23 +1,24 @@ -import React from "react" -import { Link, graphql } from "gatsby" +import React from 'react'; +import { Link, graphql } from 'gatsby'; -import Bio from "../components/bio" -import Layout from "../components/layout" -import SEO from "../components/seo" -import { rhythm, scale } from "../utils/typography" +import Bio from '../components/bio'; +import Layout from '../components/layout'; +import SEO from '../components/seo'; +import { rhythm, scale } from '../utils/typography'; +import Commento from '../components/commento'; class BlogPostTemplate extends React.Component { render() { - const post = this.props.data.markdownRemark - const siteTitle = this.props.data.site.siteMetadata.title - const { previous, next } = this.props.pageContext + const post = this.props.data.markdownRemark; + const siteTitle = this.props.data.site.siteMetadata.title; + const { previous, next } = this.props.pageContext; return (
@@ -32,7 +33,7 @@ class BlogPostTemplate extends React.Component {

@@ -47,41 +48,46 @@ class BlogPostTemplate extends React.Component { />

+
- ) + ); } } -export default BlogPostTemplate +export default BlogPostTemplate; export const pageQuery = graphql` query BlogPostBySlug($slug: String!) { @@ -101,4 +107,4 @@ export const pageQuery = graphql` } } } -` +`; diff --git a/src/utils/typography.js b/src/utils/typography.js index 7a5fb7f..c53aa2b 100644 --- a/src/utils/typography.js +++ b/src/utils/typography.js @@ -1,23 +1,21 @@ -import Typography from "typography" -import Moraga from "typography-theme-moraga" +import Typography from 'typography'; +import Moraga from 'typography-theme-moraga'; -Moraga.overrideThemeStyles = () => { - return { - "a.gatsby-resp-image-link": { - boxShadow: `none`, - }, - } -} +Moraga.overrideThemeStyles = () => ({ + 'a.gatsby-resp-image-link': { + boxShadow: 'none', + }, +}); Moraga.headerFontFamily = ['Oxygen Mono']; const typography = new Typography(Moraga); // Hot reload typography in development. -if (process.env.NODE_ENV !== `production`) { - typography.injectStyles() +if (process.env.NODE_ENV !== 'production') { + typography.injectStyles(); } -export default typography -export const rhythm = typography.rhythm -export const scale = typography.scale +export default typography; +export const { rhythm } = typography; +export const { scale } = typography; diff --git a/yarn.lock b/yarn.lock index 366465b..ca3118b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2173,6 +2173,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + "@types/lodash.sample@^4.2.6": version "4.2.6" resolved "https://registry.yarnpkg.com/@types/lodash.sample/-/lodash.sample-4.2.6.tgz#ec7f6a6dbd0401c4a1e5f5b3c85fa5a85a42a84a" @@ -2916,7 +2921,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.1: +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== @@ -3947,14 +3952,6 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - character-entities-html4@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" @@ -4648,7 +4645,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-spawn@^7.0.0: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -5055,7 +5052,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -5716,6 +5713,24 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +eslint-config-airbnb-base@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz#2ba4592dd6843258221d9bff2b6831bd77c874e4" + integrity sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw== + dependencies: + confusing-browser-globals "^1.0.9" + object.assign "^4.1.0" + object.entries "^1.1.1" + +eslint-config-airbnb@^18.1.0: + version "18.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.1.0.tgz#724d7e93dadd2169492ff5363c5aaa779e01257d" + integrity sha512-kZFuQC/MPnH7KJp6v95xsLBf63G/w7YqdPfQ0MUanxQ7zcKUNG8j+sSY860g3NwCBOa62apw16J6pRN+AOgXzw== + dependencies: + eslint-config-airbnb-base "^14.1.0" + object.assign "^4.1.0" + object.entries "^1.1.1" + eslint-config-react-app@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df" @@ -5723,7 +5738,7 @@ eslint-config-react-app@^5.2.1: dependencies: confusing-browser-globals "^1.0.9" -eslint-import-resolver-node@^0.3.2: +eslint-import-resolver-node@^0.3.2, eslint-import-resolver-node@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== @@ -5742,7 +5757,7 @@ eslint-loader@^2.2.1: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.4.1: +eslint-module-utils@^2.4.1, eslint-module-utils@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== @@ -5783,6 +5798,25 @@ eslint-plugin-import@^2.20.2: read-pkg-up "^2.0.0" resolve "^1.12.0" +eslint-plugin-import@^2.21.2: + version "2.21.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.21.2.tgz#8fef77475cc5510801bedc95f84b932f7f334a7c" + integrity sha512-FEmxeGI6yaz+SnEB6YgNHlQK1Bs2DKLM+YF+vuTk5H8J9CLbJLtlPvRFgZZ2+sXiKAlN5dpdlrWOjK8ZoZJpQA== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.3" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + eslint-plugin-jsx-a11y@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" @@ -5803,6 +5837,11 @@ eslint-plugin-react-hooks@^1.7.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== +eslint-plugin-react-hooks@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz#4ef5930592588ce171abeb26f400c7fbcbc23cd0" + integrity sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g== + eslint-plugin-react@^7.20.0: version "7.20.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" @@ -5898,48 +5937,6 @@ eslint@^6.8.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -eslint@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.1.0.tgz#d9a1df25e5b7859b0a3d86bb05f0940ab676a851" - integrity sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.1.0" - espree "^7.0.0" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.14" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - espree@^6.1.2: version "6.2.1" resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" @@ -5949,21 +5946,12 @@ espree@^6.1.2: acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" -espree@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" - integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1, esquery@^1.2.0: +esquery@^1.0.1: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -6867,6 +6855,54 @@ gatsby-cli@^2.12.42: yargs "^15.3.1" yurnalist "^1.1.2" +gatsby-cli@^2.12.45: + version "2.12.45" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.12.45.tgz#5f99e8ea96264c55e981d13147c1a387c9bf1164" + integrity sha512-CY0ltZ5DvrSo30MkPcU2FFGiCrQUjirXAY7TdFEhc8IeV5Gj9E2AFmUF1FO4Dna6yv47WBBaHKFpsiKc5Iq0XA== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/runtime" "^7.10.2" + "@hapi/joi" "^15.1.1" + better-opn "^1.0.0" + bluebird "^3.7.2" + chalk "^2.4.2" + clipboardy "^2.3.0" + common-tags "^1.8.0" + configstore "^5.0.1" + convert-hrtime "^3.0.0" + core-js "^2.6.11" + envinfo "^7.5.1" + execa "^3.4.0" + fs-exists-cached "^1.0.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.3.5" + gatsby-recipes "^0.1.39" + gatsby-telemetry "^1.3.11" + hosted-git-info "^3.0.4" + ink "^2.7.1" + ink-spinner "^3.0.1" + is-valid-path "^0.1.1" + lodash "^4.17.15" + meant "^1.0.1" + node-fetch "^2.6.0" + object.entries "^1.1.2" + opentracing "^0.14.4" + pretty-error "^2.1.1" + progress "^2.0.3" + prompts "^2.3.2" + react "^16.8.0" + redux "^4.0.5" + resolve-cwd "^3.0.0" + semver "^6.3.0" + signal-exit "^3.0.3" + source-map "0.7.3" + stack-trace "^0.0.10" + strip-ansi "^5.2.0" + update-notifier "^3.0.1" + uuid "3.4.0" + yargs "^15.3.1" + yurnalist "^1.1.2" + gatsby-core-utils@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.3.4.tgz#a3adc461dc90e55b8aef03d9c4440c2018f7e06c" @@ -6879,6 +6915,18 @@ gatsby-core-utils@^1.3.4: proper-lockfile "^4.1.1" xdg-basedir "^4.0.0" +gatsby-core-utils@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.3.5.tgz#3c8f2dc940cec6570d1317f02ba028f327d1e773" + integrity sha512-kbwJ5BeQ8OixJVuBb1AGRL6vdkFz9nFBa6gXqjQ6AAXHhYDrjOYrRMIENT1QLoabWo6tlh0Hyl1agfWaQwW8lg== + dependencies: + ci-info "2.0.0" + configstore "^5.0.1" + fs-extra "^8.1.0" + node-object-hash "^2.0.0" + proper-lockfile "^4.1.1" + xdg-basedir "^4.0.0" + gatsby-design-tokens@^2.0.2: version "2.0.6" resolved "https://registry.yarnpkg.com/gatsby-design-tokens/-/gatsby-design-tokens-2.0.6.tgz#593aa969e360560369fc59054c01236beed9be7d" @@ -7126,6 +7174,74 @@ gatsby-recipes@^0.1.36: ws "^7.3.0" xstate "^4.10.0" +gatsby-recipes@^0.1.39: + version "0.1.39" + resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.1.39.tgz#6bd079e0011fbe41c14b371f9b757bcaa377c3ad" + integrity sha512-Pf8EGKhCAv4E1rU0NL6pKH9mC8QB/0pW/9oAAb9Rs2N3TeBYcQ36hQP95ana63GZwY35eKoFzjdWGHmegQw90Q== + dependencies: + "@babel/core" "^7.10.2" + "@babel/generator" "^7.10.2" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-transform-react-jsx" "^7.10.1" + "@babel/standalone" "^7.10.2" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.2" + "@hapi/hoek" "8.x" + "@hapi/joi" "^15.1.1" + "@mdx-js/mdx" "^1.6.5" + "@mdx-js/react" "^1.6.5" + "@mdx-js/runtime" "^1.6.5" + acorn "^7.2.0" + acorn-jsx "^5.2.0" + cors "^2.8.5" + debug "^4.1.1" + detect-port "^1.3.0" + execa "^4.0.2" + express "^4.17.1" + express-graphql "^0.9.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.3.5" + gatsby-telemetry "^1.3.11" + glob "^7.1.6" + graphql "^14.6.0" + graphql-compose "^6.3.8" + graphql-subscriptions "^1.1.0" + graphql-tools "^6.0.5" + graphql-type-json "^0.3.1" + hicat "^0.7.0" + html-tag-names "^1.1.5" + ink "^2.7.1" + ink-box "^1.0.0" + ink-link "^1.1.0" + ink-select-input "^3.1.2" + ink-spinner "^3.0.1" + is-binary-path "^2.1.0" + is-blank "^2.1.0" + is-string "^1.0.5" + is-url "^1.2.4" + jest-diff "^25.5.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + node-fetch "^2.6.0" + pkg-dir "^4.2.0" + prettier "^2.0.5" + react-reconciler "^0.25.1" + remark-mdx "^1.6.5" + remark-parse "^6.0.3" + remark-stringify "^8.0.0" + resolve-cwd "^3.0.0" + semver "^7.3.2" + single-trailing-newline "^1.0.0" + strip-ansi "^6.0.0" + style-to-object "^0.3.0" + subscriptions-transport-ws "^0.9.16" + svg-tag-names "^2.0.1" + unified "^8.4.2" + unist-util-visit "^2.0.2" + urql "^1.9.7" + ws "^7.3.0" + xstate "^4.10.0" + gatsby-remark-copy-linked-files@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-2.3.4.tgz#559cd7203e8633ef90fd0220a9ade7ae1405d327" @@ -7246,6 +7362,29 @@ gatsby-telemetry@^1.3.10: stack-utils "1.0.2" uuid "3.4.0" +gatsby-telemetry@^1.3.11: + version "1.3.11" + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.3.11.tgz#2a5743387d84e796e11f9577f9981c9b46c34e11" + integrity sha512-k5bzy0G0Me0aQYaW1cOWp0PQ9+wRXHU0lbztdinnRAWlqqb3EGMVPtfUhP7aMJvXtj3UfLy3pk0xBfsX8BHvfA== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/runtime" "^7.10.2" + bluebird "^3.7.2" + boxen "^4.2.0" + configstore "^5.0.1" + envinfo "^7.5.1" + fs-extra "^8.1.0" + gatsby-core-utils "^1.3.5" + git-up "4.0.1" + is-docker "2.0.0" + lodash "^4.17.15" + node-fetch "2.6.0" + resolve-cwd "^2.0.0" + source-map "^0.7.3" + stack-trace "^0.0.10" + stack-utils "1.0.2" + uuid "3.4.0" + gatsby-transformer-remark@^2.8.14: version "2.8.14" resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-2.8.14.tgz#15ff9c5d11fefc013b9354884a544442b0aae6e5" @@ -9579,14 +9718,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -10949,18 +11080,6 @@ optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - original@>=0.0.5, original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" @@ -11951,11 +12070,6 @@ prebuild-install@^5.3.3: tunnel-agent "^0.6.0" which-pm-runs "^1.0.0" -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -12661,7 +12775,7 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpp@^3.0.0, regexpp@^3.1.0: +regexpp@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -12985,7 +13099,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -13308,7 +13422,7 @@ semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2: +semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -14206,7 +14320,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0: +strip-json-comments@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== @@ -14700,6 +14814,16 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tslib@^1.0.0, tslib@^1.10.0, tslib@^1.11.1, tslib@^1.11.2, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" @@ -14734,13 +14858,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -15698,7 +15815,7 @@ wonka@^4.0.10, wonka@^4.0.9: resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.14.tgz#77d680a84e575ed15a9f975eb87d6c530488f3a4" integrity sha512-v9vmsTxpZjrA8CYfztbuoTQSHEsG3ZH+NCYfasHm0V3GqBupXrjuuz0RJyUaw2cRO7ouW2js0P6i853/qxlDcA== -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==