From 3863f2477b4c51dde78c0341292c0a1da64b27b3 Mon Sep 17 00:00:00 2001 From: Michal Piechowiak Date: Mon, 27 May 2019 17:38:05 +0200 Subject: [PATCH] feat(gatsby): use graphiql-explorer (#14280) --- .../functionality/graphql-endpoint.js | 26 ++ packages/gatsby-graphiql-explorer/.gitignore | 3 + packages/gatsby-graphiql-explorer/.npmignore | 34 +++ packages/gatsby-graphiql-explorer/README.md | 16 ++ .../assets/gatsby-graphiql-explorer.png | Bin 0 -> 106214 bytes .../gatsby-graphiql-explorer/package.json | 53 ++++ .../gatsby-graphiql-explorer/src/app/app.css | 19 ++ .../gatsby-graphiql-explorer/src/app/app.js | 247 ++++++++++++++++++ .../src/app/index.ejs | 17 ++ .../src/app/webpack.config.js | 72 +++++ .../gatsby-graphiql-explorer/src/index.js | 13 + packages/gatsby/package.json | 1 + packages/gatsby/src/commands/develop.js | 8 +- yarn.lock | 130 ++++++++- 14 files changed, 636 insertions(+), 3 deletions(-) create mode 100644 packages/gatsby-graphiql-explorer/.gitignore create mode 100644 packages/gatsby-graphiql-explorer/.npmignore create mode 100644 packages/gatsby-graphiql-explorer/README.md create mode 100644 packages/gatsby-graphiql-explorer/assets/gatsby-graphiql-explorer.png create mode 100644 packages/gatsby-graphiql-explorer/package.json create mode 100644 packages/gatsby-graphiql-explorer/src/app/app.css create mode 100644 packages/gatsby-graphiql-explorer/src/app/app.js create mode 100644 packages/gatsby-graphiql-explorer/src/app/index.ejs create mode 100644 packages/gatsby-graphiql-explorer/src/app/webpack.config.js create mode 100644 packages/gatsby-graphiql-explorer/src/index.js diff --git a/e2e-tests/development-runtime/cypress/integration/functionality/graphql-endpoint.js b/e2e-tests/development-runtime/cypress/integration/functionality/graphql-endpoint.js index 4de5f2ca96c2c..ede60970d927f 100644 --- a/e2e-tests/development-runtime/cypress/integration/functionality/graphql-endpoint.js +++ b/e2e-tests/development-runtime/cypress/integration/functionality/graphql-endpoint.js @@ -1,10 +1,36 @@ const endpoints = [`/___graphql`, `/_graphql`, `/___graphiql`] +const testQueryString = `?query=${encodeURIComponent(`{ + site { + siteMetadata { + title + } + } +}`)}` + describe(`The GraphQL endpoint`, () => { endpoints.forEach(endpoint => { it(`Should appear on ${endpoint}`, () => { cy.visit(endpoint) cy.title().should(`eq`, `GraphiQL`) }) + + it(`Should execute queries from query string on ${endpoint}`, () => { + // prefill query from query string + cy.visit(endpoint + testQueryString) + cy.get(`.execute-button`).click() + cy.get(`.result-window .CodeMirror-code`).contains( + `Gatsby Default Starter` + ) + }) + + it(`Should execute queries created with explorer on ${endpoint}`, () => { + // hack to show (almost) empty editor instead of + cy.visit(endpoint + `?query=%20`) + cy.get(`[data-field-name="site"]`).click() + cy.get(`[data-field-name="port"]`).click() + cy.get(`.execute-button`).click() + cy.get(`.result-window .CodeMirror-code`).contains(`8000`) + }) }) }) diff --git a/packages/gatsby-graphiql-explorer/.gitignore b/packages/gatsby-graphiql-explorer/.gitignore new file mode 100644 index 0000000000000..60fa326678537 --- /dev/null +++ b/packages/gatsby-graphiql-explorer/.gitignore @@ -0,0 +1,3 @@ +/*.js +/*.html +yarn.lock diff --git a/packages/gatsby-graphiql-explorer/.npmignore b/packages/gatsby-graphiql-explorer/.npmignore new file mode 100644 index 0000000000000..d0e77c8f69da4 --- /dev/null +++ b/packages/gatsby-graphiql-explorer/.npmignore @@ -0,0 +1,34 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +node_modules +*.un~ +yarn.lock +src +flow-typed +coverage +decls +examples \ No newline at end of file diff --git a/packages/gatsby-graphiql-explorer/README.md b/packages/gatsby-graphiql-explorer/README.md new file mode 100644 index 0000000000000..fae0ad4bd8cb7 --- /dev/null +++ b/packages/gatsby-graphiql-explorer/README.md @@ -0,0 +1,16 @@ +# gatsby-graphiql-explorer + +A package to extend the default [GraphiQL][graphiql] IDE with useful features for Gatsby users. + +_Note:_ accessible at http://localhost:8000/___graphql after running `gatsby develop` + +![Gatsby GraphiQL Explorer](./assets/gatsby-graphiql-explorer.png) + +## Features + +- Offline support - for when you need to work on your excellent Gatsby app on a plane, train, or elsewhere off the grid +- [GraphiQL Explorer][graphiql-explorer] - an interactive explorer plugin to visually create and interact with the GraphQL schema +- _All_ the expected features you know and love from [GraphiQL][graphiql] + +[graphiql]: https://github.com/graphql/graphiql +[graphiql-explorer]: https://github.com/OneGraph/graphiql-explorer diff --git a/packages/gatsby-graphiql-explorer/assets/gatsby-graphiql-explorer.png b/packages/gatsby-graphiql-explorer/assets/gatsby-graphiql-explorer.png new file mode 100644 index 0000000000000000000000000000000000000000..e4bf20233fccade13af8c70b4035f47e935297a2 GIT binary patch literal 106214 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 0) { + parameters[decodeURIComponent(entry.slice(0, eq))] = decodeURIComponent( + entry.slice(eq + 1) + ) + } + }) +// Produce a Location query string from a parameter object. +function locationQuery(params) { + return ( + `?` + + Object.keys(params) + .filter(function(key) { + return Boolean(params[key]) + }) + .map(function(key) { + return encodeURIComponent(key) + `=` + encodeURIComponent(params[key]) + }) + .join(`&`) + ) +} + +// Derive a fetch URL from the current URL, sans the GraphQL parameters. +const graphqlParamNames = { + query: true, + variables: true, + operationName: true, +} +const otherParams = {} +for (var k in parameters) { + if (parameters.hasOwnProperty(k) && graphqlParamNames[k] !== true) { + otherParams[k] = parameters[k] + } +} +const fetchURL = locationQuery(otherParams) + +function graphQLFetcher(graphQLParams) { + return fetch(fetchURL, { + method: `post`, + headers: { + Accept: `application/json`, + "Content-Type": `application/json`, + }, + body: JSON.stringify(graphQLParams), + credentials: `include`, + }).then(function(response) { + return response.json() + }) +} + +// When the query and variables string is edited, update the URL bar so +// that it can be easily shared. +function onEditVariables(newVariables) { + parameters.variables = newVariables + updateURL() +} +function onEditOperationName(newOperationName) { + parameters.operationName = newOperationName + updateURL() +} +function updateURL() { + history.replaceState(null, null, locationQuery(parameters)) +} + +// We control query, so we need to recreate initial query text that show up +// on visiting graphiql - in order it will be +// - query from query string (if set) +// - query stored in localStorage (which graphiql set when closing window) +// - default empty query +const DEFAULT_QUERY = + parameters.query || + (window.localStorage && window.localStorage.getItem(`graphiql:query`)) || + null + +const QUERY_EXAMPLE_SITEMETADATA_TITLE = `# { +# site { +# siteMetadata { +# title +# } +# } +# }` + +const QUERY_EXAMPLE_FALLBACK = `# { +# allSitePage { +# nodes { +# path +# } +# } +# }` + +function generateDefaultFallbackQuery(queryExample) { + return `# Welcome to GraphiQL +# +# GraphiQL is an in-browser tool for writing, validating, and +# testing GraphQL queries. +# +# Type queries into this side of the screen, and you will see intelligent +# typeaheads aware of the current GraphQL type schema and live syntax and +# validation errors highlighted within the text. +# +# GraphQL queries typically start with a "{" character. Lines that starts +# with a # are ignored. +# +# An example GraphQL query might look like: +# +${queryExample} +# +# Keyboard shortcuts: +# +# Prettify Query: Shift-Ctrl-P (or press the prettify button above) +# +# Merge Query: Shift-Ctrl-M (or press the merge button above) +# +# Run Query: Ctrl-Enter (or press the play button above) +# +# Auto Complete: Ctrl-Space (or just start typing) +# +` +} + +const storedExplorerPaneState = window.localStorage + ? window.localStorage.getItem(`graphiql:graphiqlExplorerOpen`) !== `false` + : true + +class App extends React.Component { + state = { + schema: null, + query: DEFAULT_QUERY, + explorerIsOpen: storedExplorerPaneState, + } + + componentDidMount() { + graphQLFetcher({ + query: getIntrospectionQuery(), + }).then(result => { + const newState = { schema: buildClientSchema(result.data) } + + if (this.state.query === null) { + try { + const siteMetadataType = result.data.__schema.types.find( + type => type.name === `SiteSiteMetadata` && type.kind === `OBJECT` + ) + if (siteMetadataType) { + const titleField = siteMetadataType.fields.find( + field => + field.name === `title` && + field.type && + field.type.kind === `SCALAR` && + field.type.name === `String` + ) + + if (titleField) { + newState.query = generateDefaultFallbackQuery( + QUERY_EXAMPLE_SITEMETADATA_TITLE + ) + } + } + // eslint-disable-next-line no-empty + } catch {} + if (!newState.query) { + newState.query = generateDefaultFallbackQuery(QUERY_EXAMPLE_FALLBACK) + } + } + + this.setState(newState) + }) + } + + _handleEditQuery = query => { + parameters.query = query + updateURL() + this.setState({ query }) + } + + _handleToggleExplorer = () => { + const newExplorerIsOpen = !this.state.explorerIsOpen + if (window.localStorage) { + window.localStorage.setItem( + `graphiql:graphiqlExplorerOpen`, + newExplorerIsOpen + ) + } + this.setState({ explorerIsOpen: newExplorerIsOpen }) + } + + render() { + const { query, schema } = this.state + + return ( + + + (this._graphiql = ref)} + fetcher={graphQLFetcher} + schema={schema} + query={query} + onEditQuery={this._handleEditQuery} + onEditVariables={onEditVariables} + onEditOperationName={onEditOperationName} + > + + this._graphiql.handlePrettifyQuery()} + label="Prettify" + title="Prettify Query (Shift-Ctrl-P)" + /> + this._graphiql.handleToggleHistory()} + label="History" + title="Show History" + /> + + + + + ) + } +} + +ReactDOM.render(, document.getElementById(`root`)) diff --git a/packages/gatsby-graphiql-explorer/src/app/index.ejs b/packages/gatsby-graphiql-explorer/src/app/index.ejs new file mode 100644 index 0000000000000..a6455349fbd0d --- /dev/null +++ b/packages/gatsby-graphiql-explorer/src/app/index.ejs @@ -0,0 +1,17 @@ + + + + + GraphiQL + + + + + +
Loading...
+ + + diff --git a/packages/gatsby-graphiql-explorer/src/app/webpack.config.js b/packages/gatsby-graphiql-explorer/src/app/webpack.config.js new file mode 100644 index 0000000000000..941f7560d2568 --- /dev/null +++ b/packages/gatsby-graphiql-explorer/src/app/webpack.config.js @@ -0,0 +1,72 @@ +const path = require(`path`) +const HtmlWebpackPlugin = require(`html-webpack-plugin`) +const webpack = require(`webpack`) + +const mode = `production` +module.exports = { + entry: path.join(__dirname, `app.js`), + mode, + output: { + path: path.join(__dirname, `..`, `..`), + filename: `./app.js`, + }, + devtool: false, + module: { + rules: [ + { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: `babel-loader`, + options: { + presets: [ + [ + `@babel/preset-env`, + { + corejs: 2, + loose: true, + modules: `commonjs`, + useBuiltIns: `usage`, + targets: [`>0.25%`, `not dead`], + }, + ], + [ + `@babel/preset-react`, + { + useBuiltIns: true, + pragma: `React.createElement`, + development: false, + }, + ], + ], + plugins: [ + [ + `@babel/plugin-proposal-class-properties`, + { + loose: true, + }, + ], + ], + }, + }, + }, + { + test: /\.css$/, + use: [{ loader: `style-loader` }, { loader: `css-loader` }], + }, + ], + }, + plugins: [ + new HtmlWebpackPlugin({ + template: path.resolve(__dirname, `index.ejs`), + filename: `index.html`, + inject: false, + }), + new webpack.DefinePlugin({ + "process.env.NODE_ENV": JSON.stringify(mode), + }), + ], + stats: { + warnings: false, + }, +} diff --git a/packages/gatsby-graphiql-explorer/src/index.js b/packages/gatsby-graphiql-explorer/src/index.js new file mode 100644 index 0000000000000..8efd4243195b1 --- /dev/null +++ b/packages/gatsby-graphiql-explorer/src/index.js @@ -0,0 +1,13 @@ +const path = require(`path`) + +module.exports = (expressApp, { graphqlEndpoint }) => { + const bundleUrlHandler = path.posix.join(graphqlEndpoint, `app.js`) + expressApp.get(bundleUrlHandler, (req, res) => { + res.set(`Cache-Control`, `public, max-age=31557600`) + res.sendFile(path.join(__dirname, `app.js`)) + }) + + expressApp.get(graphqlEndpoint, (req, res) => { + res.sendFile(path.join(__dirname, `index.html`)) + }) +} diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index a77dac4dc868b..3aae49e0fa555 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -67,6 +67,7 @@ "fs-exists-cached": "1.0.0", "fs-extra": "^5.0.0", "gatsby-cli": "^2.6.2", + "gatsby-graphiql-explorer": "0.0.1", "gatsby-link": "^2.1.1", "gatsby-plugin-page-creator": "^2.0.13", "gatsby-react-router-scroll": "^2.0.7", diff --git a/packages/gatsby/src/commands/develop.js b/packages/gatsby/src/commands/develop.js index 910ff74218d64..a80dc1ed59f04 100644 --- a/packages/gatsby/src/commands/develop.js +++ b/packages/gatsby/src/commands/develop.js @@ -9,6 +9,7 @@ const express = require(`express`) const graphqlHTTP = require(`express-graphql`) const graphqlPlayground = require(`graphql-playground-middleware-express`) .default +const graphiqlExplorer = require(`gatsby-graphiql-explorer`) const { formatError } = require(`graphql`) const got = require(`got`) const rl = require(`readline`) @@ -136,6 +137,10 @@ async function startServer(program) { }), () => {} ) + } else { + graphiqlExplorer(app, { + graphqlEndpoint, + }) } app.use( @@ -144,8 +149,7 @@ async function startServer(program) { const schema = store.getState().schema return { schema, - graphiql: - process.env.GATSBY_GRAPHQL_IDE === `playground` ? false : true, + graphiql: false, context: withResolverContext({}, schema), formatError(err) { return { diff --git a/yarn.lock b/yarn.lock index 632e8999087ac..2e975bac1e244 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6191,6 +6191,19 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +codemirror-graphql@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/codemirror-graphql/-/codemirror-graphql-0.7.1.tgz#64b995643d511b9aa8f85eeeb2feac7aeb4b94d4" + integrity sha512-HtHXMJAn6iGJYpijkzi3IlqWIdGrB6V0RqJ607yffJTCKk/OgaNtdLOb8hZJyEtHfkw7PZDaKybMAVCi6ScWSQ== + dependencies: + graphql-language-service-interface "^1.3.2" + graphql-language-service-parser "^1.2.2" + +codemirror@^5.26.0: + version "5.47.0" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.47.0.tgz#c13a521ae5660d3acc655af252f4955065293789" + integrity sha512-kV49Fr+NGFHFc/Imsx6g180hSlkGhuHxTSDDmDHOuyln0MQYFLixDY4+bFkBVeCEiepYfDimAF/e++9jPJk4QA== + codepage@~1.14.0: version "1.14.0" resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.14.0.tgz#8cbe25481323559d7d307571b0fff91e7a1d2f99" @@ -10424,6 +10437,20 @@ graceful-fs@^4.1.15, graceful-fs@^4.1.9: resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= +graphiql-explorer@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/graphiql-explorer/-/graphiql-explorer-0.3.7.tgz#92f1c0860d6371754373cb5107db8672dc3ee381" + integrity sha512-i24+xTe012/OAMFH/r9YL5QarSr/YqkP0Si0NspCnXKmJv7HzHueFUTRpFRPF1Ka9dLqiszrmOg/5stU4gCQnA== + +graphiql@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-0.13.0.tgz#8fcbfd25f73d84806ba6d3e8c96eac0a5bec8ab7" + integrity sha512-m2RBtSY1CQLz4XqCftQC0V9ZcbUXEx2Uwvuok3L/TJtsN5HOHUmPxGhOAZs7mESaAsg7Z8Tgy04BmYirDyfWug== + dependencies: + codemirror "^5.26.0" + codemirror-graphql "^0.7.1" + markdown-it "^8.4.0" + graphql-compose@^6.3.2: version "6.3.2" resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-6.3.2.tgz#0eff6e0f086c934af950db88b90a6667f879c59b" @@ -10432,6 +10459,17 @@ graphql-compose@^6.3.2: graphql-type-json "^0.2.4" object-path "^0.11.4" +graphql-config@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.1.tgz#d34a9bdf1d7360af7b01db9b20260a342ddc7390" + integrity sha512-eb4FzlODifHE/Q+91QptAmkGw39wL5ToinJ2556UUsGt2drPc4tzifL+HSnHSaxiIbH8EUhc/Fa6+neinF04qA== + dependencies: + graphql-import "^0.4.4" + graphql-request "^1.5.0" + js-yaml "^3.10.0" + lodash "^4.17.4" + minimatch "^3.0.4" + graphql-config@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.2.0.tgz#fe1529eb5b77d0bf5cb32b8bbda2f5e7db622d97" @@ -10443,6 +10481,13 @@ graphql-config@^2.0.1: lodash "^4.17.4" minimatch "^3.0.4" +graphql-import@^0.4.4: + version "0.4.5" + resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.5.tgz#e2f18c28d335733f46df8e0733d8deb1c6e2a645" + integrity sha512-G/+I08Qp6/QGTb9qapknCm3yPHV0ZL7wbaalWFpxsfR8ZhZoTBe//LsbsCKlbALQpcMegchpJhpTSKiJjhaVqQ== + dependencies: + lodash "^4.17.4" + graphql-import@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" @@ -10451,6 +10496,39 @@ graphql-import@^0.7.1: lodash "^4.17.4" resolve-from "^4.0.0" +graphql-language-service-interface@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/graphql-language-service-interface/-/graphql-language-service-interface-1.3.2.tgz#4bd5d49e23766c3d2ab65d110f26f10e321cc000" + integrity sha512-sOxFV5sBSnYtKIFHtlmAHHVdhok7CRbvCPLcuHvL4Q1RSgKRsPpeHUDKU+yCbmlonOKn/RWEKaYWrUY0Sgv70A== + dependencies: + graphql-config "2.0.1" + graphql-language-service-parser "^1.2.2" + graphql-language-service-types "^1.2.2" + graphql-language-service-utils "^1.2.2" + +graphql-language-service-parser@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/graphql-language-service-parser/-/graphql-language-service-parser-1.2.2.tgz#010c8a5fdfae4726c8e15714137eee822753d3ea" + integrity sha512-38zMqJibNKeQe3GheyJtBENoXMp+qc29smiiRQtHLZcwnQfsYtu6reJZKxxwzU7XOVh3SedNH15Gf3LjWJVkiQ== + dependencies: + graphql-config "2.0.1" + graphql-language-service-types "^1.2.2" + +graphql-language-service-types@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/graphql-language-service-types/-/graphql-language-service-types-1.2.2.tgz#078e0abc7936a593968c946a039502af136a9743" + integrity sha512-WEAYYCP4jSzbz/Mw0Klc7HHMgtUHLgtaPMV6zyMMmvefCg/yBUkv7wREXKmqF1k1u9+f5ZX3dki0BMaXiwmJug== + dependencies: + graphql-config "2.0.1" + +graphql-language-service-utils@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/graphql-language-service-utils/-/graphql-language-service-utils-1.2.2.tgz#d31d4b4288085bd31d1bb8efc35790d69e496cae" + integrity sha512-98hzn1Dg3sSAiB+TuvNwWAoBrzuHs8NylkTK26TFyBjozM5wBZttp+T08OvOt+9hCFYRa43yRPrWcrs78KH9Hw== + dependencies: + graphql-config "2.0.1" + graphql-language-service-types "^1.2.2" + graphql-playground-html@1.6.11: version "1.6.11" resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.11.tgz#a4e40b3d43527270722cacf7a96811c7806eb22a" @@ -11492,6 +11570,11 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= +interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + into-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" @@ -13573,6 +13656,13 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +linkify-it@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz#c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db" + integrity sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg== + dependencies: + uc.micro "^1.0.1" + lint-staged@^8.0.4: version "8.0.4" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.0.4.tgz#d3c909fcf7897152cdce2d6e42500cd9b5b41a0d" @@ -14292,6 +14382,17 @@ markdown-escapes@^1.0.0: resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz#e639cbde7b99c841c0bacc8a07982873b46d2122" integrity sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA== +markdown-it@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" + integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + markdown-link@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" @@ -20897,6 +20998,11 @@ ua-parser-js@^0.7.18: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" integrity sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA== +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + uglify-es@^3.3.4: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" @@ -21468,6 +21574,11 @@ v8-compile-cache@^1.1.0: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" integrity sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA== +v8-compile-cache@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" + integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + v8flags@^2.0.10: version "2.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" @@ -21812,6 +21923,23 @@ webpack-assets-manifest@^3.0.2: tapable "^1.0.0" webpack-sources "^1.0.0" +webpack-cli@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.2.tgz#aed2437b0db0a7faa2ad28484e166a5360014a91" + integrity sha512-FLkobnaJJ+03j5eplxlI0TUxhGCOdfewspIGuvDVtpOlrAuKMFC57K42Ukxqs1tn8947/PM6tP95gQc0DCzRYA== + dependencies: + chalk "^2.4.1" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.0" + findup-sync "^2.0.0" + global-modules "^1.0.0" + import-local "^2.0.0" + interpret "^1.1.0" + loader-utils "^1.1.0" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.5" + webpack-dev-middleware@3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890" @@ -22008,7 +22136,7 @@ whatwg-fetch@2.0.4: resolved "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== -whatwg-fetch@>=0.10.0: +whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==