From ca340b4451b392ba1cb6f848e13b972d97b19643 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Sat, 4 May 2019 14:06:05 -0700 Subject: [PATCH 01/60] docs: make navbar less cluttered --- website-1.x/core/Footer.js | 9 +++++++++ website-1.x/siteConfig.js | 2 -- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/website-1.x/core/Footer.js b/website-1.x/core/Footer.js index 0d68a7fdffbb..9fdb8024f5bc 100644 --- a/website-1.x/core/Footer.js +++ b/website-1.x/core/Footer.js @@ -109,10 +109,19 @@ class Footer extends React.Component {
Community
+ + Help + User Showcase + + About +
diff --git a/website-1.x/siteConfig.js b/website-1.x/siteConfig.js index a74f5e258edd..cc9429c8af18 100644 --- a/website-1.x/siteConfig.js +++ b/website-1.x/siteConfig.js @@ -22,9 +22,7 @@ const siteConfig = { headerLinks: [ {doc: 'installation', label: 'Docs'}, {href: '/docs/en/next/tutorial-setup', label: 'Tutorial'}, - {page: 'help', label: 'Help'}, {page: 'users', label: 'Users'}, - {page: 'about-slash', label: 'About /'}, {blog: true, label: 'Blog'}, { href: 'https://github.com/facebook/docusaurus', From 8c044912deebd05da505af2fdecc4d540157fd9d Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Sat, 4 May 2019 15:16:10 -0700 Subject: [PATCH 02/60] misc(v2): rename components (#1434) * misc(v2): clean up work * misc(v2): rename components --- .../src/index.js | 10 +++++----- .../src/index.js | 4 ++-- .../src/index.js | 2 +- packages/docusaurus/lib/client/App.js | 5 ++--- .../{BlogPage => BlogList}/index.js | 6 +++--- .../lib/default-theme/BlogPost/index.js | 14 +++++++------- .../{Post => BlogPostItem}/index.js | 6 +++--- .../{DocBody => DocItem}/index.js | 18 ++++++++++-------- .../{DocBody => DocItem}/styles.module.css | 0 .../default-theme/{Doc => DocPage}/index.js | 10 ++++++---- .../{DocsPaginator => DocPaginator}/index.js | 10 ++++++---- .../{Sidebar => DocSidebar}/index.js | 4 ++-- .../{Sidebar => DocSidebar}/styles.css | 0 .../lib/default-theme/Loading/index.js | 2 +- .../lib/default-theme/{Pages => Page}/index.js | 5 +++-- packages/docusaurus/lib/server/load/theme.js | 1 - 16 files changed, 51 insertions(+), 46 deletions(-) rename packages/docusaurus/lib/default-theme/{BlogPage => BlogList}/index.js (85%) rename packages/docusaurus/lib/default-theme/{Post => BlogPostItem}/index.js (95%) rename packages/docusaurus/lib/default-theme/{DocBody => DocItem}/index.js (82%) rename packages/docusaurus/lib/default-theme/{DocBody => DocItem}/styles.module.css (100%) rename packages/docusaurus/lib/default-theme/{Doc => DocPage}/index.js (80%) rename packages/docusaurus/lib/default-theme/{DocsPaginator => DocPaginator}/index.js (88%) rename packages/docusaurus/lib/default-theme/{Sidebar => DocSidebar}/index.js (97%) rename packages/docusaurus/lib/default-theme/{Sidebar => DocSidebar}/styles.css (100%) rename packages/docusaurus/lib/default-theme/{Pages => Page}/index.js (80%) diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index c4b3eb14737a..d6af82b8865b 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -24,8 +24,8 @@ const DEFAULT_OPTIONS = { routeBasePath: 'blog', // URL Route. include: ['*.md', '*.mdx'], // Extensions to include. pageCount: 10, // How many entries per page. - blogPageComponent: '@theme/BlogPage', - blogPostComponent: '@theme/BlogPost', + blogListComponent: '@theme/BlogList', + blogItemComponent: '@theme/BlogPost', }; class DocusaurusPluginContentBlog { @@ -113,7 +113,7 @@ class DocusaurusPluginContentBlog { } async contentLoaded({content, actions}) { - const {blogPageComponent, blogPostComponent} = this.options; + const {blogListComponent, blogItemComponent} = this.options; const {addRoute, createData} = actions; await Promise.all( content.map(async metadataItem => { @@ -125,7 +125,7 @@ class DocusaurusPluginContentBlog { if (isBlogPage) { addRoute({ path: permalink, - component: blogPageComponent, + component: blogListComponent, exact: true, modules: { entries: metadataItem.posts.map(post => ({ @@ -145,7 +145,7 @@ class DocusaurusPluginContentBlog { addRoute({ path: permalink, - component: blogPostComponent, + component: blogItemComponent, exact: true, modules: { content: metadataItem.source, diff --git a/packages/docusaurus-plugin-content-docs/src/index.js b/packages/docusaurus-plugin-content-docs/src/index.js index ddc8cbf66ae4..59854501b93d 100644 --- a/packages/docusaurus-plugin-content-docs/src/index.js +++ b/packages/docusaurus-plugin-content-docs/src/index.js @@ -21,8 +21,8 @@ const DEFAULT_OPTIONS = { // TODO: Change format to array. sidebarPath: '', // Path to sidebar configuration for showing a list of markdown pages. // TODO: Settle themeing. - docLayoutComponent: '@theme/Doc', - docItemComponent: '@theme/DocBody', + docLayoutComponent: '@theme/DocPage', + docItemComponent: '@theme/DocItem', }; class DocusaurusPluginContentDocs { diff --git a/packages/docusaurus-plugin-content-pages/src/index.js b/packages/docusaurus-plugin-content-pages/src/index.js index f9f5d30264b1..74bcbb2ec2ac 100644 --- a/packages/docusaurus-plugin-content-pages/src/index.js +++ b/packages/docusaurus-plugin-content-pages/src/index.js @@ -13,7 +13,7 @@ const DEFAULT_OPTIONS = { path: 'pages', // Path to data on filesystem, relative to site dir. routeBasePath: '', // URL Route. include: ['**/*.{js,jsx}'], // Extensions to include. - component: '@theme/Pages', + component: '@theme/Page', }; class DocusaurusPluginContentPages { diff --git a/packages/docusaurus/lib/client/App.js b/packages/docusaurus/lib/client/App.js index 61ad5ad4e50f..7d41a2c33874 100644 --- a/packages/docusaurus/lib/client/App.js +++ b/packages/docusaurus/lib/client/App.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import React, {useState} from 'react'; +import React from 'react'; import {renderRoutes} from 'react-router-config'; import Head from '@docusaurus/Head'; // eslint-disable-line @@ -15,9 +15,8 @@ import DocusaurusContext from '@docusaurus/context'; // eslint-disable-line import PendingNavigation from './PendingNavigation'; function App() { - const [context, setContext] = useState({}); return ( - + {/* TODO: this link stylesheet to infima is temporary */} {BlogPosts.map((PostContent, index) => (
- + - +
))} diff --git a/packages/docusaurus/lib/default-theme/BlogPost/index.js b/packages/docusaurus/lib/default-theme/BlogPost/index.js index af65a4c304d7..60c304dd5f5f 100644 --- a/packages/docusaurus/lib/default-theme/BlogPost/index.js +++ b/packages/docusaurus/lib/default-theme/BlogPost/index.js @@ -8,20 +8,20 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line -import Post from '../Post'; +import BlogPostItem from '../BlogPostItem'; + +function BlogPostPage(props) { + const {content: BlogPostContents, metadata} = props; -function BlogPost(props) { - const {content, metadata} = props; - const BlogPostContents = content; return ( {BlogPostContents && (
- + - +
@@ -30,4 +30,4 @@ function BlogPost(props) { ); } -export default BlogPost; +export default BlogPostPage; diff --git a/packages/docusaurus/lib/default-theme/Post/index.js b/packages/docusaurus/lib/default-theme/BlogPostItem/index.js similarity index 95% rename from packages/docusaurus/lib/default-theme/Post/index.js rename to packages/docusaurus/lib/default-theme/BlogPostItem/index.js index e363a38cd5da..f2cc756eb988 100644 --- a/packages/docusaurus/lib/default-theme/Post/index.js +++ b/packages/docusaurus/lib/default-theme/BlogPostItem/index.js @@ -8,7 +8,7 @@ import React from 'react'; import Link from '@docusaurus/Link'; -function Post(props) { +function BlogPostItem(props) { const {metadata, children, truncated} = props; const renderPostHeader = () => { if (!metadata) { @@ -86,7 +86,7 @@ function Post(props) { return (
{renderPostHeader()} -
{children}
+
{children}
{truncated && (
@@ -98,4 +98,4 @@ function Post(props) { ); } -export default Post; +export default BlogPostItem; diff --git a/packages/docusaurus/lib/default-theme/DocBody/index.js b/packages/docusaurus/lib/default-theme/DocItem/index.js similarity index 82% rename from packages/docusaurus/lib/default-theme/DocBody/index.js rename to packages/docusaurus/lib/default-theme/DocItem/index.js index 673b07422ea0..85041692ece3 100644 --- a/packages/docusaurus/lib/default-theme/DocBody/index.js +++ b/packages/docusaurus/lib/default-theme/DocItem/index.js @@ -7,12 +7,13 @@ import React from 'react'; -import DocsPaginator from '@theme/DocsPaginator'; // eslint-disable-line import Head from '@docusaurus/Head'; +import DocPaginator from '../DocPaginator'; + import styles from './styles.module.css'; -const Headings = ({headings, isChild}) => { +function Headings({headings, isChild}) { if (!headings.length) return null; return (
    @@ -26,10 +27,11 @@ const Headings = ({headings, isChild}) => { ))}
); -}; +} -function DocBody(props) { +function DocItem(props) { const {metadata, content: DocContent, docsMetadata} = props; + return (
@@ -46,9 +48,9 @@ function DocBody(props) {
-
- -
+
+ +
{DocContent.rightToc && } @@ -59,4 +61,4 @@ function DocBody(props) { ); } -export default DocBody; +export default DocItem; diff --git a/packages/docusaurus/lib/default-theme/DocBody/styles.module.css b/packages/docusaurus/lib/default-theme/DocItem/styles.module.css similarity index 100% rename from packages/docusaurus/lib/default-theme/DocBody/styles.module.css rename to packages/docusaurus/lib/default-theme/DocItem/styles.module.css diff --git a/packages/docusaurus/lib/default-theme/Doc/index.js b/packages/docusaurus/lib/default-theme/DocPage/index.js similarity index 80% rename from packages/docusaurus/lib/default-theme/Doc/index.js rename to packages/docusaurus/lib/default-theme/DocPage/index.js index f2e38da0792d..8f1e9893f40b 100644 --- a/packages/docusaurus/lib/default-theme/Doc/index.js +++ b/packages/docusaurus/lib/default-theme/DocPage/index.js @@ -9,16 +9,18 @@ import React from 'react'; import {renderRoutes} from 'react-router-config'; import Layout from '@theme/Layout'; // eslint-disable-line -import Sidebar from '@theme/Sidebar'; // eslint-disable-line -function Doc(props) { +import DocSidebar from '../DocSidebar'; + +function DocPage(props) { const {route, docsMetadata, location} = props; + return (
- +
{renderRoutes(route.routes, {docsMetadata})} @@ -29,4 +31,4 @@ function Doc(props) { ); } -export default Doc; +export default DocPage; diff --git a/packages/docusaurus/lib/default-theme/DocsPaginator/index.js b/packages/docusaurus/lib/default-theme/DocPaginator/index.js similarity index 88% rename from packages/docusaurus/lib/default-theme/DocsPaginator/index.js rename to packages/docusaurus/lib/default-theme/DocPaginator/index.js index f12924651243..a3525007c35b 100644 --- a/packages/docusaurus/lib/default-theme/DocsPaginator/index.js +++ b/packages/docusaurus/lib/default-theme/DocPaginator/index.js @@ -8,9 +8,11 @@ import React from 'react'; import Link from '@docusaurus/Link'; -function DocsPaginator(props) { - const {docsMetadata, metadata} = props; - const {docs} = docsMetadata; +function DocPaginator(props) { + const { + docsMetadata: {docs}, + metadata, + } = props; return (
@@ -39,4 +41,4 @@ function DocsPaginator(props) { ); } -export default DocsPaginator; +export default DocPaginator; diff --git a/packages/docusaurus/lib/default-theme/Sidebar/index.js b/packages/docusaurus/lib/default-theme/DocSidebar/index.js similarity index 97% rename from packages/docusaurus/lib/default-theme/Sidebar/index.js rename to packages/docusaurus/lib/default-theme/DocSidebar/index.js index 1baca74cd5fb..a8da8462b746 100644 --- a/packages/docusaurus/lib/default-theme/Sidebar/index.js +++ b/packages/docusaurus/lib/default-theme/DocSidebar/index.js @@ -11,7 +11,7 @@ import Link from '@docusaurus/Link'; // eslint-disable-line import './styles.css'; -function Sidebar(props) { +function DocSidebar(props) { const {docsMetadata, location} = props; const id = @@ -85,4 +85,4 @@ function Sidebar(props) { ); } -export default Sidebar; +export default DocSidebar; diff --git a/packages/docusaurus/lib/default-theme/Sidebar/styles.css b/packages/docusaurus/lib/default-theme/DocSidebar/styles.css similarity index 100% rename from packages/docusaurus/lib/default-theme/Sidebar/styles.css rename to packages/docusaurus/lib/default-theme/DocSidebar/styles.css diff --git a/packages/docusaurus/lib/default-theme/Loading/index.js b/packages/docusaurus/lib/default-theme/Loading/index.js index 4da0562805dc..e430c572cb9a 100644 --- a/packages/docusaurus/lib/default-theme/Loading/index.js +++ b/packages/docusaurus/lib/default-theme/Loading/index.js @@ -11,7 +11,7 @@ import styles from './styles.module.css'; export default props => { if (props.error) { - console.log(props.error); + console.warn(props.error); return
Error
; } diff --git a/packages/docusaurus/lib/default-theme/Pages/index.js b/packages/docusaurus/lib/default-theme/Page/index.js similarity index 80% rename from packages/docusaurus/lib/default-theme/Pages/index.js rename to packages/docusaurus/lib/default-theme/Page/index.js index d505a14998c6..68533c958239 100644 --- a/packages/docusaurus/lib/default-theme/Pages/index.js +++ b/packages/docusaurus/lib/default-theme/Page/index.js @@ -8,7 +8,8 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line -function Pages({content: PageContent}) { +function Page(props) { + const {content: PageContent} = props; return ( @@ -16,4 +17,4 @@ function Pages({content: PageContent}) { ); } -export default Pages; +export default Page; diff --git a/packages/docusaurus/lib/server/load/theme.js b/packages/docusaurus/lib/server/load/theme.js index 9a21a392dfae..e229a230e34b 100644 --- a/packages/docusaurus/lib/server/load/theme.js +++ b/packages/docusaurus/lib/server/load/theme.js @@ -15,7 +15,6 @@ module.exports = function loadConfig(siteDir) { : path.resolve(__dirname, '../../default-theme'); const requiredComponents = ['Loading', 'NotFound']; - requiredComponents.forEach(component => { try { require.resolve(path.join(themePath, component)); From 421b09e7dc7dd9b7f177cd22bf961d8a09c080d0 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Sat, 4 May 2019 15:42:38 -0700 Subject: [PATCH 03/60] misc(v2): rename Blog components --- packages/docusaurus-plugin-content-blog/src/index.js | 8 ++++---- .../lib/default-theme/{BlogList => BlogListPage}/index.js | 4 ++-- .../lib/default-theme/{BlogPost => BlogPostPage}/index.js | 0 3 files changed, 6 insertions(+), 6 deletions(-) rename packages/docusaurus/lib/default-theme/{BlogList => BlogListPage}/index.js (93%) rename packages/docusaurus/lib/default-theme/{BlogPost => BlogPostPage}/index.js (100%) diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index d6af82b8865b..511607f6595f 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -24,8 +24,8 @@ const DEFAULT_OPTIONS = { routeBasePath: 'blog', // URL Route. include: ['*.md', '*.mdx'], // Extensions to include. pageCount: 10, // How many entries per page. - blogListComponent: '@theme/BlogList', - blogItemComponent: '@theme/BlogPost', + blogListComponent: '@theme/BlogListPage', + blogPostComponent: '@theme/BlogPostPage', }; class DocusaurusPluginContentBlog { @@ -113,7 +113,7 @@ class DocusaurusPluginContentBlog { } async contentLoaded({content, actions}) { - const {blogListComponent, blogItemComponent} = this.options; + const {blogListComponent, blogPostComponent} = this.options; const {addRoute, createData} = actions; await Promise.all( content.map(async metadataItem => { @@ -145,7 +145,7 @@ class DocusaurusPluginContentBlog { addRoute({ path: permalink, - component: blogItemComponent, + component: blogPostComponent, exact: true, modules: { content: metadataItem.source, diff --git a/packages/docusaurus/lib/default-theme/BlogList/index.js b/packages/docusaurus/lib/default-theme/BlogListPage/index.js similarity index 93% rename from packages/docusaurus/lib/default-theme/BlogList/index.js rename to packages/docusaurus/lib/default-theme/BlogListPage/index.js index e1488a057bcc..608b9ec782fb 100644 --- a/packages/docusaurus/lib/default-theme/BlogList/index.js +++ b/packages/docusaurus/lib/default-theme/BlogListPage/index.js @@ -10,7 +10,7 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line import BlogPostItem from '../BlogPostItem'; -function BlogPage(props) { +function BlogListPage(props) { const { metadata: {posts = []}, entries: BlogPosts, @@ -35,4 +35,4 @@ function BlogPage(props) { ); } -export default BlogPage; +export default BlogListPage; diff --git a/packages/docusaurus/lib/default-theme/BlogPost/index.js b/packages/docusaurus/lib/default-theme/BlogPostPage/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/BlogPost/index.js rename to packages/docusaurus/lib/default-theme/BlogPostPage/index.js From 74fdc5c8517f760e9c6ce8607eb475c0c82c188a Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Sun, 5 May 2019 12:33:54 -0700 Subject: [PATCH 04/60] refactor(v2): remove page plugin component --- .../src/index.js | 5 +---- .../lib/default-theme/Page/index.js | 20 ------------------- website/pages/feedback/index.js | 8 +++++++- website/pages/index.js | 6 ++++-- 4 files changed, 12 insertions(+), 27 deletions(-) delete mode 100644 packages/docusaurus/lib/default-theme/Page/index.js diff --git a/packages/docusaurus-plugin-content-pages/src/index.js b/packages/docusaurus-plugin-content-pages/src/index.js index 74bcbb2ec2ac..fec3feb9908c 100644 --- a/packages/docusaurus-plugin-content-pages/src/index.js +++ b/packages/docusaurus-plugin-content-pages/src/index.js @@ -13,7 +13,6 @@ const DEFAULT_OPTIONS = { path: 'pages', // Path to data on filesystem, relative to site dir. routeBasePath: '', // URL Route. include: ['**/*.{js,jsx}'], // Extensions to include. - component: '@theme/Page', }; class DocusaurusPluginContentPages { @@ -65,7 +64,6 @@ class DocusaurusPluginContentPages { } async contentLoaded({content, actions}) { - const {component} = this.options; const {addRoute, createData} = actions; await Promise.all( @@ -77,10 +75,9 @@ class DocusaurusPluginContentPages { ); addRoute({ path: permalink, - component, + component: source, exact: true, modules: { - content: source, metadata: metadataPath, }, }); diff --git a/packages/docusaurus/lib/default-theme/Page/index.js b/packages/docusaurus/lib/default-theme/Page/index.js deleted file mode 100644 index 68533c958239..000000000000 --- a/packages/docusaurus/lib/default-theme/Page/index.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import React from 'react'; -import Layout from '@theme/Layout'; // eslint-disable-line - -function Page(props) { - const {content: PageContent} = props; - return ( - - - - ); -} - -export default Page; diff --git a/website/pages/feedback/index.js b/website/pages/feedback/index.js index 086ff0ef6791..0eb37ae66881 100644 --- a/website/pages/feedback/index.js +++ b/website/pages/feedback/index.js @@ -6,6 +6,8 @@ */ import React, {useEffect} from 'react'; +import Layout from '@theme/Layout'; + import canny from '../../scripts/canny'; const BOARD_TOKEN = '054e0e53-d951-b14c-7e74-9eb8f9ed2f91'; @@ -20,7 +22,11 @@ function Feedback() { }); }, []); - return
; + return ( + +
+ + ); } export default Feedback; diff --git a/website/pages/index.js b/website/pages/index.js index a1019924853a..e4aca3fbe35b 100644 --- a/website/pages/index.js +++ b/website/pages/index.js @@ -10,6 +10,8 @@ import Head from '@docusaurus/Head'; import DocusaurusContext from '@docusaurus/context'; import Link from '@docusaurus/Link'; +import Layout from '@theme/Layout'; + import classnames from 'classnames'; import styles from './styles.module.css'; @@ -73,7 +75,7 @@ function Home() { }, []); return ( -
+

@@ -214,7 +216,7 @@ function Home() {

-
+
); } From a2cf3af0725a05cc9dd51f9439bd64a240b61e1a Mon Sep 17 00:00:00 2001 From: endiliey Date: Mon, 6 May 2019 13:35:57 +0800 Subject: [PATCH 05/60] chore(v2): optimize webpack config --- packages/docusaurus/lib/webpack/base.js | 9 ++++++--- packages/docusaurus/lib/webpack/utils.js | 1 - 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/docusaurus/lib/webpack/base.js b/packages/docusaurus/lib/webpack/base.js index 826bb81ce3a7..a9cebebd153c 100644 --- a/packages/docusaurus/lib/webpack/base.js +++ b/packages/docusaurus/lib/webpack/base.js @@ -8,6 +8,7 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const TerserPlugin = require('terser-webpack-plugin'); const path = require('path'); +const fs = require('fs-extra'); const isWsl = require('is-wsl'); const {getBabelLoader, getCacheLoader, getStyleLoaders} = require('./utils'); @@ -33,6 +34,10 @@ module.exports = function createBaseConfig(props, isServer) { chunkFilename: isProd ? '[name].[chunkhash].js' : '[name].js', publicPath: baseUrl, }, + // Don't throw warning when asset created is over 250kb + performance: { + hints: false, + }, devtool: !isProd && 'cheap-module-eval-source-map', resolve: { symlinks: true, @@ -46,9 +51,7 @@ module.exports = function createBaseConfig(props, isServer) { }, modules: [ 'node_modules', - path.resolve(__dirname, '../../node_modules'), - path.resolve(siteDir, 'node_modules'), - path.resolve(process.cwd(), 'node_modules'), + path.resolve(fs.realpathSync(process.cwd()), 'node_modules'), ], }, optimization: { diff --git a/packages/docusaurus/lib/webpack/utils.js b/packages/docusaurus/lib/webpack/utils.js index 4c7951c30cf7..df168db5b12f 100644 --- a/packages/docusaurus/lib/webpack/utils.js +++ b/packages/docusaurus/lib/webpack/utils.js @@ -59,7 +59,6 @@ function getBabelLoader(isServer, babelOptions) { presets: ['@babel/env', '@babel/react'], plugins: [ isServer ? 'dynamic-import-node' : '@babel/syntax-dynamic-import', - 'react-loadable/babel', ], }, babelOptions, From a635610741546915112b7441f46b2ce03765d1a0 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Mon, 6 May 2019 05:25:04 -0700 Subject: [PATCH 06/60] feat(v2): implement theme component overriding (#1435) * feat(v2): implement component overriding * siteDir theme overriding should work for > 1 level directory * fallback for essential component like Loading * rename default -> classic --- .../package.json | 7 +- .../src/index.js | 16 ++ .../src/theme}/BlogListPage/index.js | 2 +- .../src/theme}/BlogPostItem/index.js | 0 .../src/theme}/BlogPostPage/index.js | 2 +- .../package.json | 8 +- .../src/index.js | 11 + .../src/theme}/DocItem/index.js | 2 +- .../src/theme}/DocItem/styles.module.css | 0 .../src/theme}/DocPage/index.js | 2 +- .../src/theme}/DocPaginator/index.js | 0 .../src/theme}/DocSidebar/index.js | 0 .../src/theme}/DocSidebar/styles.css | 0 .../package.json | 7 +- .../docusaurus-preset-classic/src/index.js | 5 + .../docusaurus-theme-classic/package.json | 21 ++ .../docusaurus-theme-classic/src/index.js | 36 +++ .../src/theme}/Footer/index.js | 0 .../src/theme}/Layout/index.js | 0 .../src/theme}/Layout/styles.css | 0 .../src/theme}/Navbar/index.js | 0 .../src/theme}/NotFound.js | 0 .../src/theme}/Search/index.js | 0 .../src/theme}/Search/styles.css | 0 .../lib/client/theme-fallback/Layout/index.js | 28 ++ .../client/theme-fallback/Loading/index.js | 110 ++++++++ .../client/theme-fallback/NotFound/index.js | 28 ++ packages/docusaurus/lib/commands/build.js | 2 +- .../lib/default-theme/Loading/index.js | 28 -- .../default-theme/Loading/styles.module.css | 30 -- packages/docusaurus/lib/server/index.js | 29 +- .../load/__tests__/__fixtures__/preset-qux.js | 16 ++ .../lib/server/load/__tests__/presets.test.js | 258 +++++++++++------- .../docusaurus/lib/server/load/presets.js | 41 ++- packages/docusaurus/lib/server/load/theme.js | 37 ++- packages/docusaurus/lib/webpack/base.js | 10 +- packages/docusaurus/package.json | 1 - website/pages/index.js | 2 +- 38 files changed, 533 insertions(+), 206 deletions(-) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-blog/src/theme}/BlogListPage/index.js (95%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-blog/src/theme}/BlogPostItem/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-blog/src/theme}/BlogPostPage/index.js (94%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-docs/src/theme}/DocItem/index.js (97%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-docs/src/theme}/DocItem/styles.module.css (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-docs/src/theme}/DocPage/index.js (94%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-docs/src/theme}/DocPaginator/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-docs/src/theme}/DocSidebar/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-plugin-content-docs/src/theme}/DocSidebar/styles.css (100%) create mode 100644 packages/docusaurus-theme-classic/package.json create mode 100644 packages/docusaurus-theme-classic/src/index.js rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/Footer/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/Layout/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/Layout/styles.css (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/Navbar/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/NotFound.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/Search/index.js (100%) rename packages/{docusaurus/lib/default-theme => docusaurus-theme-classic/src/theme}/Search/styles.css (100%) create mode 100644 packages/docusaurus/lib/client/theme-fallback/Layout/index.js create mode 100644 packages/docusaurus/lib/client/theme-fallback/Loading/index.js create mode 100644 packages/docusaurus/lib/client/theme-fallback/NotFound/index.js delete mode 100644 packages/docusaurus/lib/default-theme/Loading/index.js delete mode 100644 packages/docusaurus/lib/default-theme/Loading/styles.module.css create mode 100644 packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-qux.js diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index e192dd068f73..3ad5c940ecbc 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -16,6 +16,11 @@ "loader-utils": "^1.2.3" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0" + "@docusaurus/core": "^2.0.0", + "react": "^16.8.4", + "react-dom": "^16.8.4" + }, + "engines": { + "node": ">=8" } } diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 511607f6595f..827c18a56cce 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -158,6 +158,22 @@ class DocusaurusPluginContentBlog { configureWebpack(config, isServer, {getBabelLoader, getCacheLoader}) { return { + resolve: { + alias: { + '@theme/BlogListPage': path.resolve( + __dirname, + './theme/BlogListPage', + ), + '@theme/BlogPostItem': path.resolve( + __dirname, + './theme/BlogPostItem', + ), + '@theme/BlogPostPage': path.resolve( + __dirname, + './theme/BlogPostPage', + ), + }, + }, module: { rules: [ { diff --git a/packages/docusaurus/lib/default-theme/BlogListPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js similarity index 95% rename from packages/docusaurus/lib/default-theme/BlogListPage/index.js rename to packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js index 608b9ec782fb..813c6d1f1530 100644 --- a/packages/docusaurus/lib/default-theme/BlogListPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js @@ -8,7 +8,7 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line -import BlogPostItem from '../BlogPostItem'; +import BlogPostItem from '@theme/BlogPostItem'; function BlogListPage(props) { const { diff --git a/packages/docusaurus/lib/default-theme/BlogPostItem/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/BlogPostItem/index.js rename to packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js diff --git a/packages/docusaurus/lib/default-theme/BlogPostPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js similarity index 94% rename from packages/docusaurus/lib/default-theme/BlogPostPage/index.js rename to packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js index 60c304dd5f5f..1659927d92dc 100644 --- a/packages/docusaurus/lib/default-theme/BlogPostPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js @@ -8,7 +8,7 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line -import BlogPostItem from '../BlogPostItem'; +import BlogPostItem from '@theme/BlogPostItem'; function BlogPostPage(props) { const {content: BlogPostContents, metadata} = props; diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index a4d81000debc..2b5523e7f726 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -18,6 +18,12 @@ "loader-utils": "^1.2.3" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0" + "@docusaurus/core": "^2.0.0", + "react": "^16.8.4", + "react-dom": "^16.8.4", + "react-router-config": "^5.0.0" + }, + "engines": { + "node": ">=8" } } diff --git a/packages/docusaurus-plugin-content-docs/src/index.js b/packages/docusaurus-plugin-content-docs/src/index.js index 59854501b93d..e4f457dd411e 100644 --- a/packages/docusaurus-plugin-content-docs/src/index.js +++ b/packages/docusaurus-plugin-content-docs/src/index.js @@ -153,6 +153,17 @@ class DocusaurusPluginContentDocs { configureWebpack(config, isServer, {getBabelLoader, getCacheLoader}) { return { + resolve: { + alias: { + '@theme/DocItem': path.resolve(__dirname, './theme/DocItem'), + '@theme/DocPage': path.resolve(__dirname, './theme/DocPage'), + '@theme/DocPaginator': path.resolve( + __dirname, + './theme/DocPaginator', + ), + '@theme/DocSidebar': path.resolve(__dirname, './theme/DocSidebar'), + }, + }, module: { rules: [ { diff --git a/packages/docusaurus/lib/default-theme/DocItem/index.js b/packages/docusaurus-plugin-content-docs/src/theme/DocItem/index.js similarity index 97% rename from packages/docusaurus/lib/default-theme/DocItem/index.js rename to packages/docusaurus-plugin-content-docs/src/theme/DocItem/index.js index 85041692ece3..fe0800bb3b11 100644 --- a/packages/docusaurus/lib/default-theme/DocItem/index.js +++ b/packages/docusaurus-plugin-content-docs/src/theme/DocItem/index.js @@ -9,7 +9,7 @@ import React from 'react'; import Head from '@docusaurus/Head'; -import DocPaginator from '../DocPaginator'; +import DocPaginator from '@theme/DocPaginator'; import styles from './styles.module.css'; diff --git a/packages/docusaurus/lib/default-theme/DocItem/styles.module.css b/packages/docusaurus-plugin-content-docs/src/theme/DocItem/styles.module.css similarity index 100% rename from packages/docusaurus/lib/default-theme/DocItem/styles.module.css rename to packages/docusaurus-plugin-content-docs/src/theme/DocItem/styles.module.css diff --git a/packages/docusaurus/lib/default-theme/DocPage/index.js b/packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js similarity index 94% rename from packages/docusaurus/lib/default-theme/DocPage/index.js rename to packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js index 8f1e9893f40b..b205455b13b0 100644 --- a/packages/docusaurus/lib/default-theme/DocPage/index.js +++ b/packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js @@ -10,7 +10,7 @@ import {renderRoutes} from 'react-router-config'; import Layout from '@theme/Layout'; // eslint-disable-line -import DocSidebar from '../DocSidebar'; +import DocSidebar from '@theme/DocSidebar'; function DocPage(props) { const {route, docsMetadata, location} = props; diff --git a/packages/docusaurus/lib/default-theme/DocPaginator/index.js b/packages/docusaurus-plugin-content-docs/src/theme/DocPaginator/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/DocPaginator/index.js rename to packages/docusaurus-plugin-content-docs/src/theme/DocPaginator/index.js diff --git a/packages/docusaurus/lib/default-theme/DocSidebar/index.js b/packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/DocSidebar/index.js rename to packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/index.js diff --git a/packages/docusaurus/lib/default-theme/DocSidebar/styles.css b/packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/styles.css similarity index 100% rename from packages/docusaurus/lib/default-theme/DocSidebar/styles.css rename to packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/styles.css diff --git a/packages/docusaurus-plugin-content-pages/package.json b/packages/docusaurus-plugin-content-pages/package.json index 73d755bab89a..88c1fca258e7 100644 --- a/packages/docusaurus-plugin-content-pages/package.json +++ b/packages/docusaurus-plugin-content-pages/package.json @@ -12,6 +12,11 @@ "globby": "^9.1.0" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0" + "@docusaurus/core": "^2.0.0", + "react": "^16.8.4", + "react-dom": "^16.8.4" + }, + "engines": { + "node": ">=8" } } diff --git a/packages/docusaurus-preset-classic/src/index.js b/packages/docusaurus-preset-classic/src/index.js index 04cbece645c2..6aba831a2aa1 100644 --- a/packages/docusaurus-preset-classic/src/index.js +++ b/packages/docusaurus-preset-classic/src/index.js @@ -7,6 +7,11 @@ module.exports = function preset(context, opts = {}) { return { + themes: [ + { + name: '@docusaurus/theme-classic', + }, + ], plugins: [ { name: '@docusaurus/plugin-content-docs', diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json new file mode 100644 index 000000000000..12fef6df98fa --- /dev/null +++ b/packages/docusaurus-theme-classic/package.json @@ -0,0 +1,21 @@ +{ + "name": "@docusaurus/theme-classic", + "version": "2.0.0-alpha.13", + "description": "Classic theme for Docusaurus", + "main": "src/index.js", + "publishConfig": { + "access": "public" + }, + "license": "MIT", + "dependencies": { + "docsearch.js": "^2.5.2" + }, + "peerDependencies": { + "@docusaurus/core": "^2.0.0", + "react": "^16.8.4", + "react-dom": "^16.8.4" + }, + "engines": { + "node": ">=8" + } +} diff --git a/packages/docusaurus-theme-classic/src/index.js b/packages/docusaurus-theme-classic/src/index.js new file mode 100644 index 000000000000..d01193d835f5 --- /dev/null +++ b/packages/docusaurus-theme-classic/src/index.js @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const path = require('path'); + +const DEFAULT_OPTIONS = {}; + +class DocusaurusThemeDefault { + constructor(context, opts) { + this.options = {...DEFAULT_OPTIONS, ...opts}; + this.context = context; + } + + getName() { + return 'docusaurus-theme-classic'; + } + + configureWebpack() { + return { + resolve: { + alias: { + '@theme/Footer': path.resolve(__dirname, './theme/Footer'), + '@theme/Navbar': path.resolve(__dirname, './theme/Navbar'), + '@theme/NotFound': path.resolve(__dirname, './theme/NotFound'), + '@theme/Search': path.resolve(__dirname, './theme/Search'), + }, + }, + }; + } +} + +module.exports = DocusaurusThemeDefault; diff --git a/packages/docusaurus/lib/default-theme/Footer/index.js b/packages/docusaurus-theme-classic/src/theme/Footer/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/Footer/index.js rename to packages/docusaurus-theme-classic/src/theme/Footer/index.js diff --git a/packages/docusaurus/lib/default-theme/Layout/index.js b/packages/docusaurus-theme-classic/src/theme/Layout/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/Layout/index.js rename to packages/docusaurus-theme-classic/src/theme/Layout/index.js diff --git a/packages/docusaurus/lib/default-theme/Layout/styles.css b/packages/docusaurus-theme-classic/src/theme/Layout/styles.css similarity index 100% rename from packages/docusaurus/lib/default-theme/Layout/styles.css rename to packages/docusaurus-theme-classic/src/theme/Layout/styles.css diff --git a/packages/docusaurus/lib/default-theme/Navbar/index.js b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/Navbar/index.js rename to packages/docusaurus-theme-classic/src/theme/Navbar/index.js diff --git a/packages/docusaurus/lib/default-theme/NotFound.js b/packages/docusaurus-theme-classic/src/theme/NotFound.js similarity index 100% rename from packages/docusaurus/lib/default-theme/NotFound.js rename to packages/docusaurus-theme-classic/src/theme/NotFound.js diff --git a/packages/docusaurus/lib/default-theme/Search/index.js b/packages/docusaurus-theme-classic/src/theme/Search/index.js similarity index 100% rename from packages/docusaurus/lib/default-theme/Search/index.js rename to packages/docusaurus-theme-classic/src/theme/Search/index.js diff --git a/packages/docusaurus/lib/default-theme/Search/styles.css b/packages/docusaurus-theme-classic/src/theme/Search/styles.css similarity index 100% rename from packages/docusaurus/lib/default-theme/Search/styles.css rename to packages/docusaurus-theme-classic/src/theme/Search/styles.css diff --git a/packages/docusaurus/lib/client/theme-fallback/Layout/index.js b/packages/docusaurus/lib/client/theme-fallback/Layout/index.js new file mode 100644 index 000000000000..fdcb856e1b0f --- /dev/null +++ b/packages/docusaurus/lib/client/theme-fallback/Layout/index.js @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import Head from '@docusaurus/Head'; // eslint-disable-line +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; // eslint-disable-line + +function Layout(props) { + const context = useDocusaurusContext(); + const {siteConfig = {}} = context; + const {baseUrl, favicon, tagline, title: defaultTitle} = siteConfig; + const {children, title} = props; + return ( + + + {title && {`${title} · ${tagline}`}} + {favicon && } + + {children} + + ); +} + +export default Layout; diff --git a/packages/docusaurus/lib/client/theme-fallback/Loading/index.js b/packages/docusaurus/lib/client/theme-fallback/Loading/index.js new file mode 100644 index 000000000000..2460dc1b4c25 --- /dev/null +++ b/packages/docusaurus/lib/client/theme-fallback/Loading/index.js @@ -0,0 +1,110 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; + +export default props => { + if (props.error) { + console.warn(props.error); + return
Error
; + } + + if (props.pastDelay) { + return ( +
+ + + + + + + + + + + + + + + + + +
+ ); + } + + return null; +}; diff --git a/packages/docusaurus/lib/client/theme-fallback/NotFound/index.js b/packages/docusaurus/lib/client/theme-fallback/NotFound/index.js new file mode 100644 index 000000000000..3e9ff74b35b0 --- /dev/null +++ b/packages/docusaurus/lib/client/theme-fallback/NotFound/index.js @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import Layout from '@theme/Layout'; + +function NotFound() { + return ( + +
+

Oops, page not found

+
+
+ ); +} + +export default NotFound; diff --git a/packages/docusaurus/lib/commands/build.js b/packages/docusaurus/lib/commands/build.js index 71d16e822582..78a494bd6e49 100644 --- a/packages/docusaurus/lib/commands/build.js +++ b/packages/docusaurus/lib/commands/build.js @@ -84,7 +84,7 @@ module.exports = async function build(siteDir, cliOptions = {}) { ); }); - // Run webpack to build js bundle (client) and static html files (server) !! + // Run webpack to build JS bundle (client) and static html files (server). await compile([clientConfig, serverConfig]); // Remove server.bundle.js because it is useless diff --git a/packages/docusaurus/lib/default-theme/Loading/index.js b/packages/docusaurus/lib/default-theme/Loading/index.js deleted file mode 100644 index e430c572cb9a..000000000000 --- a/packages/docusaurus/lib/default-theme/Loading/index.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import React from 'react'; - -import styles from './styles.module.css'; - -export default props => { - if (props.error) { - console.warn(props.error); - return
Error
; - } - - if (props.pastDelay) { - return ( -
-

Please wait a moment

-
-
- ); - } - - return null; -}; diff --git a/packages/docusaurus/lib/default-theme/Loading/styles.module.css b/packages/docusaurus/lib/default-theme/Loading/styles.module.css deleted file mode 100644 index f2712c389f23..000000000000 --- a/packages/docusaurus/lib/default-theme/Loading/styles.module.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -.loader { - padding: 20px; - text-align: center; -} - -.loaderSpinning { - width: 49px; - height: 49px; - margin: 0 auto; - border: 5px solid #ccc; - border-radius: 50%; - border-top: 5px solid #1d4d8b; - animation: loader-spin infinite 1s linear; -} - -@keyframes loader-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/packages/docusaurus/lib/server/index.js b/packages/docusaurus/lib/server/index.js index e2b283cbaebe..f3a2c8d61fdb 100644 --- a/packages/docusaurus/lib/server/index.js +++ b/packages/docusaurus/lib/server/index.js @@ -31,10 +31,18 @@ module.exports = async function load(siteDir, cliOptions = {}) { const context = {siteDir, generatedFilesDir, siteConfig, cliOptions}; // Process presets. - const presetPlugins = loadPresets(context); + const {plugins: presetPlugins, themes: presetThemes} = loadPresets(context); + + // Process plugins and themes. Themes are also plugins, but they run after all + // the explicit plugins because they may override the resolve.alias(es) + // defined by the plugins. + const pluginConfigs = [ + ...presetPlugins, + ...(siteConfig.plugins || []), + ...presetThemes, + ...(siteConfig.themes || []), + ]; - // Process plugins. - const pluginConfigs = [...presetPlugins, ...siteConfig.plugins]; const {plugins, pluginsRouteConfigs} = await loadPlugins({ pluginConfigs, context, @@ -43,8 +51,18 @@ module.exports = async function load(siteDir, cliOptions = {}) { const outDir = path.resolve(siteDir, 'build'); const {baseUrl} = siteConfig; - // Resolve theme. TBD (Experimental) - const themePath = loadTheme(siteDir); + // Resolve custom theme override aliases. + const themeAliases = await loadTheme(siteDir); + // Make a fake plugin to resolve user's theme overrides. + if (themeAliases != null) { + plugins.push({ + configureWebpack: () => ({ + resolve: { + alias: themeAliases, + }, + }), + }); + } // Routing const { @@ -81,7 +99,6 @@ ${Object.keys(registry) siteConfig, siteDir, outDir, - themePath, baseUrl, generatedFilesDir, routesPaths, diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-qux.js b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-qux.js new file mode 100644 index 000000000000..27ef476447d2 --- /dev/null +++ b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-qux.js @@ -0,0 +1,16 @@ +module.exports = function preset(context, opts = {}) { + return { + themes: [ + { + name: '@docusaurus/theme-classic', + options: opts.test, + }, + ], + plugins: [ + { + name: '@docusaurus/plugin-test', + options: opts.test, + }, + ], + }; +}; diff --git a/packages/docusaurus/lib/server/load/__tests__/presets.test.js b/packages/docusaurus/lib/server/load/__tests__/presets.test.js index 93c3dedfd89a..52eeb4536706 100644 --- a/packages/docusaurus/lib/server/load/__tests__/presets.test.js +++ b/packages/docusaurus/lib/server/load/__tests__/presets.test.js @@ -13,7 +13,12 @@ import loadPresets from '../presets'; describe('loadPresets', () => { test('no presets', () => { const presets = loadPresets({siteConfig: {presets: []}}); - expect(presets).toEqual([]); + expect(presets).toMatchInlineSnapshot(` +Object { + "plugins": Array [], + "themes": Array [], +} +`); }); test('string form', () => { @@ -23,16 +28,19 @@ describe('loadPresets', () => { }, }); expect(presets).toMatchInlineSnapshot(` -Array [ - Object { - "name": "@docusaurus/plugin-content-docs", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-content-blog", - "options": undefined, - }, -] +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + ], + "themes": Array [], +} `); }); @@ -46,24 +54,27 @@ Array [ }, }); expect(presets).toMatchInlineSnapshot(` -Array [ - Object { - "name": "@docusaurus/plugin-content-docs", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-content-blog", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-content-pages", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-sitemap", - "options": undefined, - }, -] +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-pages", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-sitemap", + "options": undefined, + }, + ], + "themes": Array [], +} `); }); @@ -74,16 +85,19 @@ Array [ }, }); expect(presets).toMatchInlineSnapshot(` -Array [ - Object { - "name": "@docusaurus/plugin-content-docs", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-content-blog", - "options": undefined, - }, -] +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + ], + "themes": Array [], +} `); }); @@ -99,18 +113,21 @@ Array [ }, }); expect(presets).toMatchInlineSnapshot(` -Array [ - Object { - "name": "@docusaurus/plugin-content-docs", - "options": Object { - "path": "../", - }, - }, - Object { - "name": "@docusaurus/plugin-content-blog", - "options": undefined, - }, -] +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": Object { + "path": "../", + }, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + ], + "themes": Array [], +} `); }); @@ -130,28 +147,31 @@ Array [ }, }); expect(presets).toMatchInlineSnapshot(` -Array [ - Object { - "name": "@docusaurus/plugin-content-docs", - "options": Object { - "path": "../", - }, - }, - Object { - "name": "@docusaurus/plugin-content-blog", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-content-pages", - "options": Object { - "path": "../", - }, - }, - Object { - "name": "@docusaurus/plugin-sitemap", - "options": undefined, - }, -] +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": Object { + "path": "../", + }, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-pages", + "options": Object { + "path": "../", + }, + }, + Object { + "name": "@docusaurus/plugin-sitemap", + "options": undefined, + }, + ], + "themes": Array [], +} `); }); @@ -168,26 +188,78 @@ Array [ }, }); expect(presets).toMatchInlineSnapshot(` -Array [ - Object { - "name": "@docusaurus/plugin-content-docs", - "options": Object { - "path": "../", - }, - }, - Object { - "name": "@docusaurus/plugin-content-blog", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-content-pages", - "options": undefined, - }, - Object { - "name": "@docusaurus/plugin-sitemap", - "options": undefined, - }, -] +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": Object { + "path": "../", + }, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-pages", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-sitemap", + "options": undefined, + }, + ], + "themes": Array [], +} +`); + }); + + test('mixed form with themes', () => { + const presets = loadPresets({ + siteConfig: { + presets: [ + [ + path.join(__dirname, '__fixtures__/preset-bar.js'), + {docs: {path: '../'}}, + ], + path.join(__dirname, '__fixtures__/preset-foo.js'), + path.join(__dirname, '__fixtures__/preset-qux.js'), + ], + }, + }); + expect(presets).toMatchInlineSnapshot(` +Object { + "plugins": Array [ + Object { + "name": "@docusaurus/plugin-content-docs", + "options": Object { + "path": "../", + }, + }, + Object { + "name": "@docusaurus/plugin-content-blog", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-content-pages", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-sitemap", + "options": undefined, + }, + Object { + "name": "@docusaurus/plugin-test", + "options": undefined, + }, + ], + "themes": Array [ + Object { + "name": "@docusaurus/theme-classic", + "options": undefined, + }, + ], +} `); }); }); diff --git a/packages/docusaurus/lib/server/load/presets.js b/packages/docusaurus/lib/server/load/presets.js index 8e40f12f4756..9a3c8b93229e 100644 --- a/packages/docusaurus/lib/server/load/presets.js +++ b/packages/docusaurus/lib/server/load/presets.js @@ -7,29 +7,28 @@ const importFresh = require('import-fresh'); const _ = require('lodash'); -const fs = require('fs-extra'); module.exports = function loadPresets(context) { const presets = context.siteConfig.presets || []; - return _.flatten( - presets.map(presetItem => { - let presetModule; - let presetOptions = {}; - if (typeof presetItem === 'string') { - presetModule = presetItem; - } else if (Array.isArray(presetItem)) { - [presetModule, presetOptions] = presetItem; - } + const plugins = []; + const themes = []; - let preset; - if (presetModule && fs.existsSync(presetModule)) { - // Local preset. - preset = importFresh(presetModule); - } else { - // From npm. - preset = importFresh(presetModule); - } - return preset(context, presetOptions).plugins; - }), - ); + presets.forEach(presetItem => { + let presetModule; + let presetOptions = {}; + if (typeof presetItem === 'string') { + presetModule = presetItem; + } else if (Array.isArray(presetItem)) { + [presetModule, presetOptions] = presetItem; + } + + const preset = importFresh(presetModule); + plugins.push(preset(context, presetOptions).plugins); + themes.push(preset(context, presetOptions).themes); + }); + + return { + plugins: _.compact(_.flatten(plugins)), + themes: _.compact(_.flatten(themes)), + }; }; diff --git a/packages/docusaurus/lib/server/load/theme.js b/packages/docusaurus/lib/server/load/theme.js index e229a230e34b..010feb35fb94 100644 --- a/packages/docusaurus/lib/server/load/theme.js +++ b/packages/docusaurus/lib/server/load/theme.js @@ -5,25 +5,32 @@ * LICENSE file in the root directory of this source tree. */ +const globby = require('globby'); const fs = require('fs-extra'); const path = require('path'); +const {fileToPath, posixPath, normalizeUrl} = require('@docusaurus/utils'); -module.exports = function loadConfig(siteDir) { - const customThemePath = path.resolve(siteDir, 'theme'); - const themePath = fs.existsSync(customThemePath) - ? customThemePath - : path.resolve(__dirname, '../../default-theme'); +module.exports = async function loadTheme(siteDir) { + const themePath = path.resolve(siteDir, 'theme'); + if (!fs.existsSync(themePath)) { + return null; + } - const requiredComponents = ['Loading', 'NotFound']; - requiredComponents.forEach(component => { - try { - require.resolve(path.join(themePath, component)); - } catch (e) { - throw new Error( - `Failed to load ${themePath}/${component}. It does not exist.`, - ); - } + const themeComponentFiles = await globby(['**/*.{js,jsx}'], { + cwd: themePath, }); - return themePath; + const alias = {}; + await Promise.all( + themeComponentFiles.map(async relativeSource => { + const filePath = path.join(themePath, relativeSource); + const fileName = fileToPath(relativeSource); + const aliasName = posixPath( + normalizeUrl(['@theme', fileName]).replace(/\/$/, ''), + ); + alias[aliasName] = filePath; + }), + ); + + return alias; }; diff --git a/packages/docusaurus/lib/webpack/base.js b/packages/docusaurus/lib/webpack/base.js index a9cebebd153c..f579f67b2e47 100644 --- a/packages/docusaurus/lib/webpack/base.js +++ b/packages/docusaurus/lib/webpack/base.js @@ -18,7 +18,6 @@ const CSS_MODULE_REGEX = /\.module\.css$/; module.exports = function createBaseConfig(props, isServer) { const { outDir, - themePath, siteDir, baseUrl, generatedFilesDir, @@ -26,6 +25,7 @@ module.exports = function createBaseConfig(props, isServer) { } = props; const isProd = process.env.NODE_ENV === 'production'; + const themeFallback = path.resolve(__dirname, '../client/theme-fallback'); return { mode: isProd ? 'production' : 'development', output: { @@ -42,10 +42,14 @@ module.exports = function createBaseConfig(props, isServer) { resolve: { symlinks: true, alias: { + // https://stackoverflow.com/a/55433680/6072730 ejs: 'ejs/ejs.min.js', - '@theme': themePath, + // These alias can be overriden in plugins. However, these components are essential + // (e.g: react-loadable requires Loading component) so we alias it here first as fallback. + '@theme/Layout': path.join(themeFallback, 'Layout'), + '@theme/Loading': path.join(themeFallback, 'Loading'), + '@theme/NotFound': path.join(themeFallback, 'NotFound'), '@site': siteDir, - '@build': outDir, '@generated': generatedFilesDir, '@docusaurus': path.resolve(__dirname, '../client/exports'), }, diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index 4f5199cb1121..636215ccee3a 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -45,7 +45,6 @@ "clean-webpack-plugin": "^2.0.1", "commander": "^2.16.0", "css-loader": "^1.0.0", - "docsearch.js": "^2.5.2", "ejs": "^2.6.1", "envinfo": "^7.2.0", "express": "^4.16.4", diff --git a/website/pages/index.js b/website/pages/index.js index e4aca3fbe35b..63659df4fe24 100644 --- a/website/pages/index.js +++ b/website/pages/index.js @@ -66,7 +66,7 @@ function Home() { // TODO: (wrapper function) API so that user won't need to concatenate url manually const feedbackUrl = `${siteConfig.baseUrl}feedback/`; - const gettingStartedUrl = `${siteConfig.baseUrl}docs/installation`; + const gettingStartedUrl = `${siteConfig.baseUrl}docs/introduction`; useEffect(() => { // Prefetch feedback pages & getting started pages From e94df5e07415bfff80f8a0f046431b4e83141cb6 Mon Sep 17 00:00:00 2001 From: endiliey Date: Mon, 6 May 2019 20:32:49 +0800 Subject: [PATCH 07/60] fix(v2): add missing layout alias on theme-classic plugin --- packages/docusaurus-theme-classic/src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/docusaurus-theme-classic/src/index.js b/packages/docusaurus-theme-classic/src/index.js index d01193d835f5..1f3f3d371d15 100644 --- a/packages/docusaurus-theme-classic/src/index.js +++ b/packages/docusaurus-theme-classic/src/index.js @@ -24,6 +24,7 @@ class DocusaurusThemeDefault { resolve: { alias: { '@theme/Footer': path.resolve(__dirname, './theme/Footer'), + '@theme/Layout': path.resolve(__dirname, './theme/Layout'), '@theme/Navbar': path.resolve(__dirname, './theme/Navbar'), '@theme/NotFound': path.resolve(__dirname, './theme/NotFound'), '@theme/Search': path.resolve(__dirname, './theme/Search'), From fa3d64d399705ad45d4948759821b0935e72123b Mon Sep 17 00:00:00 2001 From: Endi Date: Tue, 7 May 2019 13:56:43 +0700 Subject: [PATCH 08/60] feat(v2): easier plugin theme components swizzling (#1436) * feat(v2): easier plugin theme components override * add context * refactor again * rename eject -> swizzle * nits --- .../src/index.js | 20 ++------ .../src/index.js | 15 ++---- .../docusaurus-theme-classic/src/index.js | 14 +----- packages/docusaurus/bin/docusaurus.js | 10 ++-- packages/docusaurus/lib/commands/eject.js | 23 --------- packages/docusaurus/lib/commands/swizzle.js | 36 ++++++++++++++ packages/docusaurus/lib/index.js | 4 +- packages/docusaurus/lib/server/index.js | 48 ++++++++++++++----- packages/docusaurus/lib/server/load/theme.js | 3 +- packages/docusaurus/lib/webpack/base.js | 6 --- website/package.json | 2 +- 11 files changed, 91 insertions(+), 90 deletions(-) delete mode 100644 packages/docusaurus/lib/commands/eject.js create mode 100644 packages/docusaurus/lib/commands/swizzle.js diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 827c18a56cce..dceb8cd73c9a 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -156,24 +156,12 @@ class DocusaurusPluginContentBlog { ); } + getThemePath() { + return path.resolve(__dirname, './theme'); + } + configureWebpack(config, isServer, {getBabelLoader, getCacheLoader}) { return { - resolve: { - alias: { - '@theme/BlogListPage': path.resolve( - __dirname, - './theme/BlogListPage', - ), - '@theme/BlogPostItem': path.resolve( - __dirname, - './theme/BlogPostItem', - ), - '@theme/BlogPostPage': path.resolve( - __dirname, - './theme/BlogPostPage', - ), - }, - }, module: { rules: [ { diff --git a/packages/docusaurus-plugin-content-docs/src/index.js b/packages/docusaurus-plugin-content-docs/src/index.js index e4f457dd411e..ea2b4b482ef8 100644 --- a/packages/docusaurus-plugin-content-docs/src/index.js +++ b/packages/docusaurus-plugin-content-docs/src/index.js @@ -151,19 +151,12 @@ class DocusaurusPluginContentDocs { }); } + getThemePath() { + return path.resolve(__dirname, './theme'); + } + configureWebpack(config, isServer, {getBabelLoader, getCacheLoader}) { return { - resolve: { - alias: { - '@theme/DocItem': path.resolve(__dirname, './theme/DocItem'), - '@theme/DocPage': path.resolve(__dirname, './theme/DocPage'), - '@theme/DocPaginator': path.resolve( - __dirname, - './theme/DocPaginator', - ), - '@theme/DocSidebar': path.resolve(__dirname, './theme/DocSidebar'), - }, - }, module: { rules: [ { diff --git a/packages/docusaurus-theme-classic/src/index.js b/packages/docusaurus-theme-classic/src/index.js index 1f3f3d371d15..9fafacab3513 100644 --- a/packages/docusaurus-theme-classic/src/index.js +++ b/packages/docusaurus-theme-classic/src/index.js @@ -19,18 +19,8 @@ class DocusaurusThemeDefault { return 'docusaurus-theme-classic'; } - configureWebpack() { - return { - resolve: { - alias: { - '@theme/Footer': path.resolve(__dirname, './theme/Footer'), - '@theme/Layout': path.resolve(__dirname, './theme/Layout'), - '@theme/Navbar': path.resolve(__dirname, './theme/Navbar'), - '@theme/NotFound': path.resolve(__dirname, './theme/NotFound'), - '@theme/Search': path.resolve(__dirname, './theme/Search'), - }, - }, - }; + getThemePath() { + return path.resolve(__dirname, './theme'); } } diff --git a/packages/docusaurus/bin/docusaurus.js b/packages/docusaurus/bin/docusaurus.js index 4bc1e0d27d5f..ccd565f4d45a 100755 --- a/packages/docusaurus/bin/docusaurus.js +++ b/packages/docusaurus/bin/docusaurus.js @@ -12,7 +12,7 @@ const envinfo = require('envinfo'); const semver = require('semver'); const path = require('path'); const program = require('commander'); -const {build, eject, init, deploy, start} = require('../lib'); +const {build, swizzle, init, deploy, start} = require('../lib'); const requiredVersion = require('../package.json').engines.node; if (!semver.satisfies(process.version, requiredVersion)) { @@ -55,10 +55,10 @@ program }); program - .command('eject [siteDir]') - .description('copy the default theme into website folder for customization.') - .action((siteDir = '.') => { - wrapCommand(eject)(path.resolve(siteDir)); + .command('swizzle [componentName] [siteDir]') + .description('Copy the theme files into website folder for customization.') + .action((themeName, componentName, siteDir = '.') => { + wrapCommand(swizzle)(path.resolve(siteDir), themeName, componentName); }); program diff --git a/packages/docusaurus/lib/commands/eject.js b/packages/docusaurus/lib/commands/eject.js deleted file mode 100644 index fb082260db30..000000000000 --- a/packages/docusaurus/lib/commands/eject.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const fs = require('fs-extra'); -const chalk = require('chalk'); -const path = require('path'); - -module.exports = async function eject(siteDir) { - const defaultTheme = path.resolve(__dirname, '..', 'default-theme'); - const customTheme = path.resolve(siteDir, 'theme'); - await fs.copy(defaultTheme, customTheme); - - const relativeDir = path.relative(process.cwd(), customTheme); - console.log( - `\n${chalk.green('Success!')} Copied default theme files to ${chalk.cyan( - relativeDir, - )}.\n`, - ); -}; diff --git a/packages/docusaurus/lib/commands/swizzle.js b/packages/docusaurus/lib/commands/swizzle.js new file mode 100644 index 000000000000..9c1489b77571 --- /dev/null +++ b/packages/docusaurus/lib/commands/swizzle.js @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const fs = require('fs-extra'); +const chalk = require('chalk'); +const path = require('path'); +const importFresh = require('import-fresh'); + +module.exports = async function swizzle(siteDir, themeName, componentName) { + const Plugin = importFresh(themeName); + const context = {siteDir}; + const PluginInstance = new Plugin(context); + let fromPath = PluginInstance.getThemePath(); + + if (fromPath) { + let toPath = path.resolve(siteDir, 'theme'); + if (componentName) { + fromPath = path.join(fromPath, componentName); + toPath = path.join(toPath, componentName); + } + await fs.copy(fromPath, toPath); + + const relativeDir = path.relative(process.cwd(), toPath); + const fromMsg = chalk.blue( + componentName ? `${themeName}/${componentName}` : themeName, + ); + const toMsg = chalk.cyan(relativeDir); + console.log( + `\n${chalk.green('Success!')} Copied ${fromMsg} to ${toMsg}.\n`, + ); + } +}; diff --git a/packages/docusaurus/lib/index.js b/packages/docusaurus/lib/index.js index 60c36dc6d554..6b2018f0cb40 100644 --- a/packages/docusaurus/lib/index.js +++ b/packages/docusaurus/lib/index.js @@ -8,12 +8,12 @@ const build = require('./commands/build'); const init = require('./commands/init'); const start = require('./commands/start'); -const eject = require('./commands/eject'); +const swizzle = require('./commands/swizzle'); const deploy = require('./commands/deploy'); module.exports = { build, - eject, + swizzle, init, start, deploy, diff --git a/packages/docusaurus/lib/server/index.js b/packages/docusaurus/lib/server/index.js index f3a2c8d61fdb..244e4b958c42 100644 --- a/packages/docusaurus/lib/server/index.js +++ b/packages/docusaurus/lib/server/index.js @@ -51,18 +51,42 @@ module.exports = async function load(siteDir, cliOptions = {}) { const outDir = path.resolve(siteDir, 'build'); const {baseUrl} = siteConfig; - // Resolve custom theme override aliases. - const themeAliases = await loadTheme(siteDir); - // Make a fake plugin to resolve user's theme overrides. - if (themeAliases != null) { - plugins.push({ - configureWebpack: () => ({ - resolve: { - alias: themeAliases, - }, - }), - }); - } + // Default theme components that are essential and must exist in a Docusaurus app + // These can be overriden in plugins/ through component swizzling. + // However, we alias it here first as a fallback. + const themeFallback = path.resolve(__dirname, '../client/theme-fallback'); + let themeAliases = await loadTheme(themeFallback); + + // create theme alias from plugins + await Promise.all( + plugins.map(async plugin => { + if (!plugin.getThemePath) { + return; + } + const aliases = await loadTheme(plugin.getThemePath()); + themeAliases = { + ...themeAliases, + ...aliases, + }; + }), + ); + + // user's own theme alias override. Highest priority + const themePath = path.resolve(siteDir, 'theme'); + const aliases = await loadTheme(themePath); + themeAliases = { + ...themeAliases, + ...aliases, + }; + + // Make a fake plugin to resolve alias theme. + plugins.push({ + configureWebpack: () => ({ + resolve: { + alias: themeAliases, + }, + }), + }); // Routing const { diff --git a/packages/docusaurus/lib/server/load/theme.js b/packages/docusaurus/lib/server/load/theme.js index 010feb35fb94..426dcd9d0bf3 100644 --- a/packages/docusaurus/lib/server/load/theme.js +++ b/packages/docusaurus/lib/server/load/theme.js @@ -10,8 +10,7 @@ const fs = require('fs-extra'); const path = require('path'); const {fileToPath, posixPath, normalizeUrl} = require('@docusaurus/utils'); -module.exports = async function loadTheme(siteDir) { - const themePath = path.resolve(siteDir, 'theme'); +module.exports = async function loadTheme(themePath) { if (!fs.existsSync(themePath)) { return null; } diff --git a/packages/docusaurus/lib/webpack/base.js b/packages/docusaurus/lib/webpack/base.js index f579f67b2e47..5f93ea994f9f 100644 --- a/packages/docusaurus/lib/webpack/base.js +++ b/packages/docusaurus/lib/webpack/base.js @@ -25,7 +25,6 @@ module.exports = function createBaseConfig(props, isServer) { } = props; const isProd = process.env.NODE_ENV === 'production'; - const themeFallback = path.resolve(__dirname, '../client/theme-fallback'); return { mode: isProd ? 'production' : 'development', output: { @@ -44,11 +43,6 @@ module.exports = function createBaseConfig(props, isServer) { alias: { // https://stackoverflow.com/a/55433680/6072730 ejs: 'ejs/ejs.min.js', - // These alias can be overriden in plugins. However, these components are essential - // (e.g: react-loadable requires Loading component) so we alias it here first as fallback. - '@theme/Layout': path.join(themeFallback, 'Layout'), - '@theme/Loading': path.join(themeFallback, 'Loading'), - '@theme/NotFound': path.join(themeFallback, 'NotFound'), '@site': siteDir, '@generated': generatedFilesDir, '@docusaurus': path.resolve(__dirname, '../client/exports'), diff --git a/website/package.json b/website/package.json index 4949a521c363..f4d24477008f 100644 --- a/website/package.json +++ b/website/package.json @@ -5,7 +5,7 @@ "scripts": { "start": "docusaurus start", "build": "docusaurus build", - "eject": "docusaurus eject", + "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy" }, "dependencies": { From abb8433779d50b0d229d8ee23502ca9cd3b53809 Mon Sep 17 00:00:00 2001 From: Alireza Date: Tue, 7 May 2019 17:22:18 -0700 Subject: [PATCH 09/60] fix(v2-cli): passes the missing host option to start (#1439) --- packages/docusaurus/bin/docusaurus.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/docusaurus/bin/docusaurus.js b/packages/docusaurus/bin/docusaurus.js index ccd565f4d45a..7bf8ea37a940 100755 --- a/packages/docusaurus/bin/docusaurus.js +++ b/packages/docusaurus/bin/docusaurus.js @@ -86,9 +86,10 @@ program 'Do not fallback to page refresh if hot reload fails (default: false)', ) .option('--no-cache-loader', 'Do not use cache-loader') - .action((siteDir = '.', {port, noWatch, hotOnly, cacheLoader}) => { + .action((siteDir = '.', {port, host, noWatch, hotOnly, cacheLoader}) => { wrapCommand(start)(path.resolve(siteDir), { port, + host, noWatch, hotOnly, cacheLoader, From 57a017d32ab1a89acab949dcf51018bf948daa1b Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Wed, 8 May 2019 01:21:11 -0700 Subject: [PATCH 10/60] feat(v2): Algolia search theme (#1440) * feat(v2): Algolia search plugin * patch PR #1440 (#1441) * alternative implementation * typo * refactor noop * rename SearchAlgolia -> SearchBar * changes.md --- .../docusaurus-preset-classic/src/index.js | 3 ++ .../docusaurus-theme-classic/src/index.js | 4 +- .../src/theme/Navbar/index.js | 12 +++--- .../src/theme/SearchBar.js | 8 ++++ .../package.json | 21 ++++++++++ .../src/index.js | 27 +++++++++++++ .../src/theme/SearchBar}/index.js | 4 +- .../src/theme/SearchBar}/styles.css | 0 packages/docusaurus/CHANGES.md | 4 -- .../docusaurus/lib/client/exports/Noop.js | 8 ++++ packages/docusaurus/lib/server/index.js | 38 ++++++++++--------- packages/docusaurus/lib/server/load/config.js | 2 +- packages/docusaurus/lib/server/load/theme.js | 19 +++++----- website/docusaurus.config.js | 10 +++-- 14 files changed, 116 insertions(+), 44 deletions(-) create mode 100644 packages/docusaurus-theme-classic/src/theme/SearchBar.js create mode 100644 packages/docusaurus-theme-search-algolia/package.json create mode 100644 packages/docusaurus-theme-search-algolia/src/index.js rename packages/{docusaurus-theme-classic/src/theme/Search => docusaurus-theme-search-algolia/src/theme/SearchBar}/index.js (96%) rename packages/{docusaurus-theme-classic/src/theme/Search => docusaurus-theme-search-algolia/src/theme/SearchBar}/styles.css (100%) create mode 100644 packages/docusaurus/lib/client/exports/Noop.js diff --git a/packages/docusaurus-preset-classic/src/index.js b/packages/docusaurus-preset-classic/src/index.js index 6aba831a2aa1..a3f7ef8f56e3 100644 --- a/packages/docusaurus-preset-classic/src/index.js +++ b/packages/docusaurus-preset-classic/src/index.js @@ -11,6 +11,9 @@ module.exports = function preset(context, opts = {}) { { name: '@docusaurus/theme-classic', }, + { + name: '@docusaurus/theme-search-algolia', + }, ], plugins: [ { diff --git a/packages/docusaurus-theme-classic/src/index.js b/packages/docusaurus-theme-classic/src/index.js index 9fafacab3513..f47388e6c2ee 100644 --- a/packages/docusaurus-theme-classic/src/index.js +++ b/packages/docusaurus-theme-classic/src/index.js @@ -9,7 +9,7 @@ const path = require('path'); const DEFAULT_OPTIONS = {}; -class DocusaurusThemeDefault { +class DocusaurusThemeClassic { constructor(context, opts) { this.options = {...DEFAULT_OPTIONS, ...opts}; this.context = context; @@ -24,4 +24,4 @@ class DocusaurusThemeDefault { } } -module.exports = DocusaurusThemeDefault; +module.exports = DocusaurusThemeClassic; diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js index c194addf04a0..82cc870ae0cc 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js @@ -10,9 +10,9 @@ import React from 'react'; import Link from '@docusaurus/Link'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Search from '@theme/Search'; +import SearchBar from '@theme/SearchBar'; -function Navbar(props) { +function Navbar() { const context = useDocusaurusContext(); const {siteConfig = {}} = context; // TODO: navbar headerlinks should depends on theme, not siteConfig; @@ -20,7 +20,7 @@ function Navbar(props) { baseUrl, headerLinks, headerIcon, - algolia, + themeConfig: {algolia}, title, disableHeaderTitle, } = siteConfig; @@ -41,8 +41,9 @@ function Navbar(props) {
); } + if (link.href) { - // set link to specified href + // Set link to specified href. return (
@@ -51,6 +52,7 @@ function Navbar(props) {
); } + return null; }; @@ -73,7 +75,7 @@ function Navbar(props) {
{algolia && (
- +
)}
diff --git a/packages/docusaurus-theme-classic/src/theme/SearchBar.js b/packages/docusaurus-theme-classic/src/theme/SearchBar.js new file mode 100644 index 000000000000..b2c2e8a7e2b1 --- /dev/null +++ b/packages/docusaurus-theme-classic/src/theme/SearchBar.js @@ -0,0 +1,8 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export {default} from '@docusaurus/Noop'; diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json new file mode 100644 index 000000000000..868570e1d40d --- /dev/null +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -0,0 +1,21 @@ +{ + "name": "@docusaurus/theme-search-algolia", + "version": "2.0.0-alpha.13", + "description": "Algolia search component for Docusaurus", + "main": "src/index.js", + "publishConfig": { + "access": "public" + }, + "license": "MIT", + "dependencies": { + "docsearch.js": "^2.5.2" + }, + "peerDependencies": { + "@docusaurus/core": "^2.0.0", + "react": "^16.8.4", + "react-dom": "^16.8.4" + }, + "engines": { + "node": ">=8" + } +} diff --git a/packages/docusaurus-theme-search-algolia/src/index.js b/packages/docusaurus-theme-search-algolia/src/index.js new file mode 100644 index 000000000000..d7f3838ed0b7 --- /dev/null +++ b/packages/docusaurus-theme-search-algolia/src/index.js @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const path = require('path'); + +const DEFAULT_OPTIONS = {}; + +class DocusaurusThemeSearchAlgolia { + constructor(context, opts) { + this.options = {...DEFAULT_OPTIONS, ...opts}; + this.context = context; + } + + getName() { + return 'docusaurus-theme-search-algolia'; + } + + getThemePath() { + return path.resolve(__dirname, './theme'); + } +} + +module.exports = DocusaurusThemeSearchAlgolia; diff --git a/packages/docusaurus-theme-classic/src/theme/Search/index.js b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js similarity index 96% rename from packages/docusaurus-theme-classic/src/theme/Search/index.js rename to packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js index 196378cf63c6..903dd696e8de 100644 --- a/packages/docusaurus-theme-classic/src/theme/Search/index.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js @@ -22,7 +22,9 @@ class Search extends React.Component { componentDidMount() { const {siteConfig = {}, metadata = {}} = this.context; const {version: thisVersion, language: thisLanguage} = metadata; - const {algolia} = siteConfig; + const { + themeConfig: {algolia}, + } = siteConfig; // https://github.com/algolia/docsearch/issues/352 const isClient = typeof window !== 'undefined'; diff --git a/packages/docusaurus-theme-classic/src/theme/Search/styles.css b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/styles.css similarity index 100% rename from packages/docusaurus-theme-classic/src/theme/Search/styles.css rename to packages/docusaurus-theme-search-algolia/src/theme/SearchBar/styles.css diff --git a/packages/docusaurus/CHANGES.md b/packages/docusaurus/CHANGES.md index 00c4d45bcc5a..4fb5fc1714fa 100644 --- a/packages/docusaurus/CHANGES.md +++ b/packages/docusaurus/CHANGES.md @@ -15,10 +15,6 @@ headerLinks: [ { url: "help", label: "Help" }, // Links to href destination/ external page { href: "https://github.com/", label: "GitHub" }, - // Determines search bar position among links - { search: true }, - // Determines language drop down position among links - { languages: true } ], ``` diff --git a/packages/docusaurus/lib/client/exports/Noop.js b/packages/docusaurus/lib/client/exports/Noop.js new file mode 100644 index 000000000000..5ab81b41d6b9 --- /dev/null +++ b/packages/docusaurus/lib/client/exports/Noop.js @@ -0,0 +1,8 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => null; diff --git a/packages/docusaurus/lib/server/index.js b/packages/docusaurus/lib/server/index.js index 244e4b958c42..4e8710631669 100644 --- a/packages/docusaurus/lib/server/index.js +++ b/packages/docusaurus/lib/server/index.js @@ -55,35 +55,39 @@ module.exports = async function load(siteDir, cliOptions = {}) { // These can be overriden in plugins/ through component swizzling. // However, we alias it here first as a fallback. const themeFallback = path.resolve(__dirname, '../client/theme-fallback'); - let themeAliases = await loadTheme(themeFallback); + const fallbackAliases = await loadTheme(themeFallback); - // create theme alias from plugins - await Promise.all( + // Create theme alias from plugins. + const pluginThemeAliases = await Promise.all( plugins.map(async plugin => { if (!plugin.getThemePath) { - return; + return null; } - const aliases = await loadTheme(plugin.getThemePath()); - themeAliases = { - ...themeAliases, - ...aliases, - }; + return loadTheme(plugin.getThemePath()); }), ); - // user's own theme alias override. Highest priority + // User's own theme alias override. Highest priority. const themePath = path.resolve(siteDir, 'theme'); - const aliases = await loadTheme(themePath); - themeAliases = { - ...themeAliases, - ...aliases, - }; + const userAliases = await loadTheme(themePath); + + const combinedAliases = [ + fallbackAliases, + ...pluginThemeAliases, + userAliases, + ].reduce( + (acc, curr) => ({ + ...acc, + ...curr, + }), + {}, + ); - // Make a fake plugin to resolve alias theme. + // Make a fake plugin to resolve aliased theme components. plugins.push({ configureWebpack: () => ({ resolve: { - alias: themeAliases, + alias: combinedAliases, }, }), }); diff --git a/packages/docusaurus/lib/server/load/config.js b/packages/docusaurus/lib/server/load/config.js index 8c9e6ff74281..e72c96a5f99d 100644 --- a/packages/docusaurus/lib/server/load/config.js +++ b/packages/docusaurus/lib/server/load/config.js @@ -23,7 +23,6 @@ const REQUIRED_FIELDS = [ ]; const OPTIONAL_FIELDS = [ - 'algolia', 'customFields', 'defaultLanguage', 'disableHeaderTitle', @@ -32,6 +31,7 @@ const OPTIONAL_FIELDS = [ 'markdownPlugins', 'plugins', 'presets', + 'themeConfig', ]; const DEFAULT_CONFIG = { diff --git a/packages/docusaurus/lib/server/load/theme.js b/packages/docusaurus/lib/server/load/theme.js index 426dcd9d0bf3..8e2551567675 100644 --- a/packages/docusaurus/lib/server/load/theme.js +++ b/packages/docusaurus/lib/server/load/theme.js @@ -20,16 +20,15 @@ module.exports = async function loadTheme(themePath) { }); const alias = {}; - await Promise.all( - themeComponentFiles.map(async relativeSource => { - const filePath = path.join(themePath, relativeSource); - const fileName = fileToPath(relativeSource); - const aliasName = posixPath( - normalizeUrl(['@theme', fileName]).replace(/\/$/, ''), - ); - alias[aliasName] = filePath; - }), - ); + + themeComponentFiles.forEach(relativeSource => { + const filePath = path.join(themePath, relativeSource); + const fileName = fileToPath(relativeSource); + const aliasName = posixPath( + normalizeUrl(['@theme', fileName]).replace(/\/$/, ''), + ); + alias[aliasName] = filePath; + }); return alias; }; diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index edcff5aac1a6..bb867abe896f 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -19,10 +19,12 @@ module.exports = { ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', - algolia: { - apiKey: '47ecd3b21be71c5822571b9f59e52544', - indexName: 'docusaurus-2', - algoliaOptions: {}, + themeConfig: { + algolia: { + apiKey: '47ecd3b21be71c5822571b9f59e52544', + indexName: 'docusaurus-2', + algoliaOptions: {}, + }, }, presets: [ [ From 6696489cf49916f58c37ae4611334ec8b3cec6fa Mon Sep 17 00:00:00 2001 From: Endi Date: Wed, 8 May 2019 15:47:32 +0700 Subject: [PATCH 11/60] refactor(v2): move headerLinks -> themeConfig & rm dead code (#1442) * refactor(v2): move headerLinks -> themeConfig & rm dead code * rm -rf dead code --- .../src/theme/Navbar/index.js | 4 +-- .../src/theme/SearchBar/index.js | 13 +++----- packages/docusaurus/CHANGES.md | 2 ++ .../custom-site/docusaurus.config.js | 4 --- .../simple-site/docusaurus.config.js | 4 --- .../lib/server/load/__tests__/config.test.js | 19 ++---------- packages/docusaurus/lib/server/load/config.js | 30 ------------------- website/docusaurus.config.js | 10 +++---- 8 files changed, 15 insertions(+), 71 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js index 82cc870ae0cc..45d476e96448 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js @@ -15,12 +15,10 @@ import SearchBar from '@theme/SearchBar'; function Navbar() { const context = useDocusaurusContext(); const {siteConfig = {}} = context; - // TODO: navbar headerlinks should depends on theme, not siteConfig; const { baseUrl, - headerLinks, headerIcon, - themeConfig: {algolia}, + themeConfig: {algolia, headerLinks = []}, title, disableHeaderTitle, } = siteConfig; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js index 903dd696e8de..9db2b5c482d4 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js @@ -20,8 +20,7 @@ class Search extends React.Component { } componentDidMount() { - const {siteConfig = {}, metadata = {}} = this.context; - const {version: thisVersion, language: thisLanguage} = metadata; + const {siteConfig = {}} = this.context; const { themeConfig: {algolia}, } = siteConfig; @@ -35,11 +34,7 @@ class Search extends React.Component { apiKey: algolia.apiKey, indexName: algolia.indexName, inputSelector: '#search_input_react', - algoliaOptions: JSON.parse( - JSON.stringify(algolia.algoliaOptions) - .replace('VERSION', thisVersion) - .replace('LANGUAGE', thisLanguage), - ), + algoliaOptions: algolia.algoliaOptions, }); }); } else { @@ -55,8 +50,8 @@ class Search extends React.Component { ) : null; } diff --git a/packages/docusaurus/CHANGES.md b/packages/docusaurus/CHANGES.md index 4fb5fc1714fa..77f2618e3b9d 100644 --- a/packages/docusaurus/CHANGES.md +++ b/packages/docusaurus/CHANGES.md @@ -18,6 +18,8 @@ headerLinks: [ ], ``` +- `headerLinks` is now moved to themeConfig + # Additions ### Presets diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js index 1c9781942192..d317be1f914d 100644 --- a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js +++ b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js @@ -12,10 +12,6 @@ module.exports = { projectName: 'sakura', baseUrl: '/sakura/', url: 'https://docusaurus.io', - headerLinks: [ - {doc: 'foo/bar', label: 'Docs'}, - {page: 'hello/world', label: 'Hello'}, - ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', plugins: [ diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js index 8fd1e8ba35b7..495f082c659b 100644 --- a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js +++ b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js @@ -12,10 +12,6 @@ module.exports = { projectName: 'hello', baseUrl: '/', url: 'https://docusaurus.io', - headerLinks: [ - {doc: 'foo/bar', label: 'Docs'}, - {page: 'hello/world', label: 'Hello'}, - ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', plugins: [ diff --git a/packages/docusaurus/lib/server/load/__tests__/config.test.js b/packages/docusaurus/lib/server/load/__tests__/config.test.js index f21b47cb2f91..9d453527b7cf 100644 --- a/packages/docusaurus/lib/server/load/__tests__/config.test.js +++ b/packages/docusaurus/lib/server/load/__tests__/config.test.js @@ -22,19 +22,6 @@ Object { "baseUrl": "/", "favicon": "img/docusaurus.ico", "headerIcon": "img/docusaurus.svg", - "headerLinks": Array [ - Object { - "doc": "foo/bar", - "label": "Docs", - }, - Object { - "label": "Hello", - "page": "hello/world", - }, - Object { - "languages": true, - }, - ], "organizationName": "endiliey", "plugins": Any, "projectName": "hello", @@ -52,7 +39,7 @@ Object { expect(() => { loadConfig(siteDir); }).toThrowErrorMatchingInlineSnapshot( - `"The required field(s) 'favicon', 'headerLinks', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'url' are missing from docusaurus.config.js"`, + `"The required field(s) 'favicon', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'url' are missing from docusaurus.config.js"`, ); }); @@ -61,7 +48,7 @@ Object { expect(() => { loadConfig(siteDir); }).toThrowErrorMatchingInlineSnapshot( - `"The required field(s) 'favicon', 'headerLinks', 'headerIcon' are missing from docusaurus.config.js"`, + `"The required field(s) 'favicon', 'headerIcon' are missing from docusaurus.config.js"`, ); }); @@ -70,7 +57,7 @@ Object { expect(() => { loadConfig(siteDir); }).toThrowErrorMatchingInlineSnapshot( - `"The required field(s) 'baseUrl', 'favicon', 'headerLinks', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'title', 'url' are missing from docusaurus.config.js"`, + `"The required field(s) 'baseUrl', 'favicon', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'title', 'url' are missing from docusaurus.config.js"`, ); }); }); diff --git a/packages/docusaurus/lib/server/load/config.js b/packages/docusaurus/lib/server/load/config.js index e72c96a5f99d..fed378f1f579 100644 --- a/packages/docusaurus/lib/server/load/config.js +++ b/packages/docusaurus/lib/server/load/config.js @@ -13,7 +13,6 @@ const {CONFIG_FILE_NAME} = require('../../constants'); const REQUIRED_FIELDS = [ 'baseUrl', 'favicon', - 'headerLinks', 'headerIcon', 'organizationName', 'projectName', @@ -24,11 +23,7 @@ const REQUIRED_FIELDS = [ const OPTIONAL_FIELDS = [ 'customFields', - 'defaultLanguage', - 'disableHeaderTitle', 'githubHost', - 'highlight', - 'markdownPlugins', 'plugins', 'presets', 'themeConfig', @@ -66,31 +61,6 @@ function loadConfig(siteDir, deleteCache = true) { // Merge default config with loaded config. const config = {...DEFAULT_CONFIG, ...loadedConfig}; - // Build final headerLinks based on siteConfig. - const {headerLinks} = config; - - // Add language dropdown to end if location not specified. - let languages = false; - headerLinks.forEach(link => { - if (link.languages) { - languages = true; - } - }); - if (!languages) { - headerLinks.push({languages: true}); - } - let search = false; - headerLinks.forEach(link => { - // Append search bar if location not specified. - if (link.search) { - search = true; - } - }); - if (!search && config.algolia) { - headerLinks.push({search: true}); - } - config.headerLinks = headerLinks; - // User's own array of custom fields/ // e.g: if they want to include some.field so they can access it later from `props.siteConfig`. const {customFields = []} = config; diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index bb867abe896f..854beda76331 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -12,11 +12,6 @@ module.exports = { projectName: 'docusaurus', baseUrl: '/', url: 'https://docusaurus-2.netlify.com', - headerLinks: [ - {url: 'docs/introduction', label: 'Docs'}, - {url: 'blog', label: 'Blog'}, - {url: 'feedback/', label: 'Feedback'}, - ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', themeConfig: { @@ -25,6 +20,11 @@ module.exports = { indexName: 'docusaurus-2', algoliaOptions: {}, }, + headerLinks: [ + {url: 'docs/introduction', label: 'Docs'}, + {url: 'blog', label: 'Blog'}, + {url: 'feedback/', label: 'Feedback'}, + ], }, presets: [ [ From ccc51439a688c2a139c6cc0a5ec0882a467cd2a1 Mon Sep 17 00:00:00 2001 From: endiliey Date: Wed, 8 May 2019 16:54:48 +0800 Subject: [PATCH 12/60] chore(v2): better chunk naming --- packages/docusaurus/lib/server/load/routes.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus/lib/server/load/routes.js b/packages/docusaurus/lib/server/load/routes.js index 8175f8a3e73f..9f8fa5fcd62e 100644 --- a/packages/docusaurus/lib/server/load/routes.js +++ b/packages/docusaurus/lib/server/load/routes.js @@ -72,7 +72,7 @@ async function loadRoutes(pluginsRouteConfigs) { const componentChunk = genImportChunk(componentPath, 'component'); addRoutesChunkNames(routePath, 'component', componentChunk); - function genRouteChunkNames(value) { + function genRouteChunkNames(value, prefix) { if (Array.isArray(value)) { return value.map(genRouteChunkNames); } @@ -80,14 +80,14 @@ async function loadRoutes(pluginsRouteConfigs) { if (_.isObject(value) && !value.__import) { const newValue = {}; Object.keys(value).forEach(key => { - newValue[key] = genRouteChunkNames(value[key]); + newValue[key] = genRouteChunkNames(value[key], key); }); return newValue; } const importChunk = genImportChunk( getModulePath(value), - 'module', + prefix, routePath, ); registry[importChunk.chunkName] = { From 5f7b3fec5167cb3b3c3b20ae5e3d6fab2f48eba8 Mon Sep 17 00:00:00 2001 From: Endi Date: Wed, 8 May 2019 23:03:52 +0700 Subject: [PATCH 13/60] refactor(v2): add flowtype + refactor test (#1443) * chore(v2): add flow setup * nits * fix * add flow-typed * ignore compiled library * fix error * fix typing * fix module name mapper * setup for @docusaurus/core * dont try remove type without @flow * fix can't find @docusaurus/utils * fix test * remove obscure relative paths * more refactoring * add typing for server/load/theme.js * no need to ship .flow source --- .circleci/config.yml | 3 + .eslintignore | 2 + .flowconfig | 14 + .gitignore | 3 + .prettierignore | 5 +- babel.config.js | 13 +- .../npm/escape-string-regexp_v1.x.x.js | 6 +- flow-typed/npm/fs-extra_v7.x.x.js | 768 +++ flow-typed/npm/lodash_v4.x.x.js | 6047 +++++++++++++++++ jest.config.js | 7 +- package.json | 16 +- .../__snapshots__/utils.test.js.snap | 3 + .../__fixtures__/website}/docs/foo/bar.md | 0 .../__fixtures__/website}/docs/foo/baz.md | 0 .../__fixtures__/website}/docs/hello.md | 0 .../__fixtures__/website}/docs/permalink.md | 0 .../__fixtures__/website}/sidebars.json | 0 .../src/__tests__/index.test.js | 11 +- .../src/__tests__/metadata.test.js | 15 +- .../src/__tests__/sidebars.test.js | 16 +- .../website}/pages/hello/world.js | 0 .../__fixtures__/website}/pages/index.js | 0 .../src/__tests__/index.test.js | 48 +- .../src/__tests__/index.test.js | 12 +- packages/docusaurus-utils/.npmignore | 1 + packages/docusaurus-utils/package.json | 9 +- packages/docusaurus-utils/src/index.js | 32 +- packages/docusaurus/.npmignore | 1 + packages/docusaurus/package.json | 8 +- .../docusaurus/{lib => src}/client/App.js | 0 .../{lib => src}/client/PendingNavigation.js | 0 .../client/__tests__/flat.test.js | 0 .../{lib => src}/client/clientEntry.js | 0 .../{lib => src}/client/docusaurus.js | 0 .../client/exports/ComponentCreator.js | 0 .../{lib => src}/client/exports/Head.js | 0 .../{lib => src}/client/exports/Link.js | 0 .../{lib => src}/client/exports/Noop.js | 0 .../{lib => src}/client/exports/context.js | 0 .../client/exports/useDocusaurusContext.js | 0 .../docusaurus/{lib => src}/client/flat.js | 0 .../{lib => src}/client/nprogress.css | 0 .../{lib => src}/client/prefetch.js | 0 .../docusaurus/{lib => src}/client/preload.js | 0 .../{lib => src}/client/serverEntry.js | 0 .../client/templates/index.html.template.ejs | 0 .../client/templates/ssr.html.template.js | 0 .../client/theme-fallback/Layout/index.js | 0 .../client/theme-fallback/Loading/index.js | 0 .../client/theme-fallback/NotFound/index.js | 0 .../docusaurus/{lib => src}/commands/build.js | 0 .../{lib => src}/commands/deploy.js | 0 .../docusaurus/{lib => src}/commands/init.js | 0 .../docusaurus/{lib => src}/commands/start.js | 0 .../{lib => src}/commands/swizzle.js | 0 packages/docusaurus/{lib => src}/constants.js | 0 packages/docusaurus/{lib => src}/index.js | 0 .../docusaurus/{lib => src}/server/index.js | 0 .../bad-site/docusaurus.config.js | 0 .../custom-site/docusaurus.config.js | 0 .../__fixtures__/custom-site/pages/bar/baz.js | 0 .../__fixtures__/custom-site/pages/foo.js | 0 .../custom-site/pages/foo/index.js | 0 .../__fixtures__/custom-site/pages/index.js | 0 .../__fixtures__/custom-site}/sidebars.json | 0 .../custom-site/static/img/docusaurus.ico | Bin .../custom-site/static/img/docusaurus.svg | 0 .../__tests__/__fixtures__/docs/foo/bar.md | 66 + .../__tests__/__fixtures__/docs/foo/baz.md | 74 + .../load/__tests__/__fixtures__/docs/hello.md | 54 + .../__tests__/__fixtures__/docs/permalink.md | 7 + .../load/__tests__/__fixtures__/preset-bar.js | 0 .../load/__tests__/__fixtures__/preset-foo.js | 0 .../load/__tests__/__fixtures__/preset-qux.js | 0 .../simple-site/docusaurus.config.js | 0 .../simple-site/pages/hello/world.js | 22 + .../__fixtures__/simple-site/pages/index.js | 23 + .../__fixtures__/simple-site/sidebars.json | 11 + .../simple-site/static/img/docusaurus.ico | Bin .../simple-site/static/img/docusaurus.svg | 0 .../simple-site/static/img/sakura.png | Bin .../static/img/slash-introducing.png | Bin .../wrong-site/docusaurus.config.js | 0 .../server/load/__tests__/config.test.js | 2 +- .../server/load/__tests__/presets.test.js | 0 .../server/load/__tests__/routes.test.js | 2 +- .../{lib => src}/server/load/config.js | 0 .../server/load}/loadSetup.js | 4 +- .../{lib => src}/server/load/plugins.js | 0 .../{lib => src}/server/load/presets.js | 0 .../{lib => src}/server/load/routes.js | 0 .../{lib => src}/server/load/theme.js | 6 +- .../webpack/__tests__/base.test.js | 2 +- .../webpack/__tests__/client.test.js | 2 +- .../webpack/__tests__/server.test.js | 2 +- .../webpack/__tests__/utils.test.js | 0 .../docusaurus/{lib => src}/webpack/base.js | 0 .../docusaurus/{lib => src}/webpack/client.js | 0 .../webpack/plugins/ChunkManifestPlugin.js | 0 .../webpack/plugins/WaitPlugin.js | 0 .../docusaurus/{lib => src}/webpack/server.js | 0 .../docusaurus/{lib => src}/webpack/utils.js | 0 yarn.lock | 3189 ++++----- 103 files changed, 8909 insertions(+), 1597 deletions(-) create mode 100644 .flowconfig rename jest.transform.js => flow-typed/npm/escape-string-regexp_v1.x.x.js (60%) create mode 100644 flow-typed/npm/fs-extra_v7.x.x.js create mode 100644 flow-typed/npm/lodash_v4.x.x.js rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__ => docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website}/docs/foo/bar.md (100%) rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__ => docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website}/docs/foo/baz.md (100%) rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__ => docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website}/docs/hello.md (100%) rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__ => docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website}/docs/permalink.md (100%) rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__/custom-site => docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website}/sidebars.json (100%) rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__/simple-site => docusaurus-plugin-content-pages/src/__tests__/__fixtures__/website}/pages/hello/world.js (100%) rename packages/{docusaurus/lib/server/load/__tests__/__fixtures__/simple-site => docusaurus-plugin-content-pages/src/__tests__/__fixtures__/website}/pages/index.js (100%) create mode 100644 packages/docusaurus-utils/.npmignore create mode 100644 packages/docusaurus/.npmignore rename packages/docusaurus/{lib => src}/client/App.js (100%) rename packages/docusaurus/{lib => src}/client/PendingNavigation.js (100%) rename packages/docusaurus/{lib => src}/client/__tests__/flat.test.js (100%) rename packages/docusaurus/{lib => src}/client/clientEntry.js (100%) rename packages/docusaurus/{lib => src}/client/docusaurus.js (100%) rename packages/docusaurus/{lib => src}/client/exports/ComponentCreator.js (100%) rename packages/docusaurus/{lib => src}/client/exports/Head.js (100%) rename packages/docusaurus/{lib => src}/client/exports/Link.js (100%) rename packages/docusaurus/{lib => src}/client/exports/Noop.js (100%) rename packages/docusaurus/{lib => src}/client/exports/context.js (100%) rename packages/docusaurus/{lib => src}/client/exports/useDocusaurusContext.js (100%) rename packages/docusaurus/{lib => src}/client/flat.js (100%) rename packages/docusaurus/{lib => src}/client/nprogress.css (100%) rename packages/docusaurus/{lib => src}/client/prefetch.js (100%) rename packages/docusaurus/{lib => src}/client/preload.js (100%) rename packages/docusaurus/{lib => src}/client/serverEntry.js (100%) rename packages/docusaurus/{lib => src}/client/templates/index.html.template.ejs (100%) rename packages/docusaurus/{lib => src}/client/templates/ssr.html.template.js (100%) rename packages/docusaurus/{lib => src}/client/theme-fallback/Layout/index.js (100%) rename packages/docusaurus/{lib => src}/client/theme-fallback/Loading/index.js (100%) rename packages/docusaurus/{lib => src}/client/theme-fallback/NotFound/index.js (100%) rename packages/docusaurus/{lib => src}/commands/build.js (100%) rename packages/docusaurus/{lib => src}/commands/deploy.js (100%) rename packages/docusaurus/{lib => src}/commands/init.js (100%) rename packages/docusaurus/{lib => src}/commands/start.js (100%) rename packages/docusaurus/{lib => src}/commands/swizzle.js (100%) rename packages/docusaurus/{lib => src}/constants.js (100%) rename packages/docusaurus/{lib => src}/index.js (100%) rename packages/docusaurus/{lib => src}/server/index.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/bad-site/docusaurus.config.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/pages/bar/baz.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/pages/foo.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/pages/foo/index.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/pages/index.js (100%) rename packages/docusaurus/{lib/server/load/__tests__/__fixtures__/simple-site => src/server/load/__tests__/__fixtures__/custom-site}/sidebars.json (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.ico (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.svg (100%) create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/bar.md create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/baz.md create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/hello.md create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/permalink.md rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/preset-bar.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/preset-foo.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/preset-qux.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js (100%) create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/hello/world.js create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/index.js create mode 100644 packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/sidebars.json rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.ico (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.svg (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/simple-site/static/img/sakura.png (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/simple-site/static/img/slash-introducing.png (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/__fixtures__/wrong-site/docusaurus.config.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/config.test.js (98%) rename packages/docusaurus/{lib => src}/server/load/__tests__/presets.test.js (100%) rename packages/docusaurus/{lib => src}/server/load/__tests__/routes.test.js (96%) rename packages/docusaurus/{lib => src}/server/load/config.js (100%) rename packages/docusaurus/{lib/server/load/__tests__ => src/server/load}/loadSetup.js (86%) rename packages/docusaurus/{lib => src}/server/load/plugins.js (100%) rename packages/docusaurus/{lib => src}/server/load/presets.js (100%) rename packages/docusaurus/{lib => src}/server/load/routes.js (100%) rename packages/docusaurus/{lib => src}/server/load/theme.js (87%) rename packages/docusaurus/{lib => src}/webpack/__tests__/base.test.js (92%) rename packages/docusaurus/{lib => src}/webpack/__tests__/client.test.js (92%) rename packages/docusaurus/{lib => src}/webpack/__tests__/server.test.js (92%) rename packages/docusaurus/{lib => src}/webpack/__tests__/utils.test.js (100%) rename packages/docusaurus/{lib => src}/webpack/base.js (100%) rename packages/docusaurus/{lib => src}/webpack/client.js (100%) rename packages/docusaurus/{lib => src}/webpack/plugins/ChunkManifestPlugin.js (100%) rename packages/docusaurus/{lib => src}/webpack/plugins/WaitPlugin.js (100%) rename packages/docusaurus/{lib => src}/webpack/server.js (100%) rename packages/docusaurus/{lib => src}/webpack/utils.js (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 75d7c06d09d5..48a9f448bda3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,6 +41,9 @@ jobs: - run: name: Check ESLint command: yarn lint + - run: + name: Check Flow + command: yarn flow check - run: name: Check Prettier command: yarn prettier:diff diff --git a/.eslintignore b/.eslintignore index 41d132a32969..f1dc7f76c3e1 100644 --- a/.eslintignore +++ b/.eslintignore @@ -10,3 +10,5 @@ scripts packages/docusaurus-1.x/lib/core/metadata.js packages/docusaurus-1.x/lib/core/MetadataBlog.js packages/docusaurus-1.x/lib/core/__tests__/split-tab.test.js +packages/docusaurus-utils/lib +packages/docusaurus/lib diff --git a/.flowconfig b/.flowconfig new file mode 100644 index 000000000000..c56a11463890 --- /dev/null +++ b/.flowconfig @@ -0,0 +1,14 @@ +[ignore] +/packages/.*/lib +/packages/.*/__tests__ + +[include] + +[libs] + +[lints] + +[options] +module.name_mapper='^@docusaurus\/\([a-zA-Z0-9_\-]+\)$' -> '/packages/docusaurus-\1/src/index' + +[strict] diff --git a/.gitignore b/.gitignore index d1d1691c0b61..0dd577d51fac 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ yarn-error.log build .docusaurus .cache-loader +packages/docusaurus-utils/lib +packages/docusaurus/lib/ + diff --git a/.prettierignore b/.prettierignore index c8fba6db4c18..799eaf59d20a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,7 @@ dist node_modules build -.docusaurus \ No newline at end of file +.docusaurus +packages/docusaurus-utils/lib +packages/docusaurus/lib +flow-typed diff --git a/babel.config.js b/babel.config.js index a6af74e16530..761fbcf30815 100644 --- a/babel.config.js +++ b/babel.config.js @@ -6,7 +6,18 @@ */ module.exports = { - presets: ['@babel/env', '@babel/react'], + presets: [ + [ + '@babel/env', + { + targets: { + node: 'current', + }, + }, + ], + '@babel/react', + '@babel/preset-flow', + ], plugins: [ '@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-object-rest-spread', diff --git a/jest.transform.js b/flow-typed/npm/escape-string-regexp_v1.x.x.js similarity index 60% rename from jest.transform.js rename to flow-typed/npm/escape-string-regexp_v1.x.x.js index 007fdfb91bbb..528fc1cfed29 100644 --- a/jest.transform.js +++ b/flow-typed/npm/escape-string-regexp_v1.x.x.js @@ -5,6 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -const babelConfig = require('./babel.config'); - -module.exports = require('babel-jest').createTransformer(babelConfig); +declare module 'escape-string-regexp' { + declare module.exports: (input: string) => string; +} diff --git a/flow-typed/npm/fs-extra_v7.x.x.js b/flow-typed/npm/fs-extra_v7.x.x.js new file mode 100644 index 000000000000..7d9135259ef2 --- /dev/null +++ b/flow-typed/npm/fs-extra_v7.x.x.js @@ -0,0 +1,768 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +declare module 'fs-extra' { + import type {Stats, ReadStream, WriteStream} from 'fs'; + + declare export type SymlinkType = 'dir' | 'file'; + declare export type FsSymlinkType = 'dir' | 'file' | 'junction'; + + declare export type CopyFilterSync = (src: string, dest: string) => boolean; + declare export type CopyFilterAsync = ( + src: string, + dest: string, + ) => Promise; + + declare export type CopyOptions = { + dereference?: boolean, + overwrite?: boolean, + preserveTimestamps?: boolean, + errorOnExist?: boolean, + recursive?: boolean, + }; + + declare export type CopyOptionsAync = CopyOptions & { + filter?: CopyFilterSync | CopyFilterAsync, + }; + + declare export type CopyOptionsSync = CopyOptions & { + filter?: CopyFilterSync, + }; + + declare export type MoveOptions = { + overwrite?: boolean, + limit?: number, + }; + + declare export type ReadOptions = { + throws?: boolean, + fs?: Object, + reviver?: any, + encoding?: string, + flag?: string, + }; + + declare export type WriteFileOptions = { + encoding?: string, + flag?: string, + mode?: number, + }; + + declare export type WriteOptions = WriteFileOptions & { + fs?: Object, + replacer?: any, + spaces?: number | string, + EOL?: string, + }; + + declare export type ReadResult = { + bytesRead: number, + buffer: Buffer, + }; + + declare export type WriteResult = { + bytesWritten: number, + buffer: Buffer, + }; + + declare export function copy( + src: string, + dest: string, + options?: CopyOptionsAync, + ): Promise; + declare export function copy( + src: string, + dest: string, + callback: (err: Error) => void, + ): void; + declare export function copy( + src: string, + dest: string, + options: CopyOptionsAync, + callback: (err: Error) => void, + ): void; + declare export function copySync( + src: string, + dest: string, + options?: CopyOptionsSync, + ): void; + + declare export function move( + src: string, + dest: string, + options?: MoveOptions, + ): Promise; + declare export function move( + src: string, + dest: string, + callback: (err: Error) => void, + ): void; + declare export function move( + src: string, + dest: string, + options: MoveOptions, + callback: (err: Error) => void, + ): void; + declare export function moveSync( + src: string, + dest: string, + options?: MoveOptions, + ): void; + + declare export function createFile(file: string): Promise; + declare export function createFile( + file: string, + callback: (err: Error) => void, + ): void; + declare export function createFileSync(file: string): void; + declare export function createReadStream( + path: string, + options?: Object, + ): ReadStream; + declare export function createWriteStream( + path: string, + options?: Object, + ): WriteStream; + + declare export function ensureDir(path: string): Promise; + declare export function ensureDir( + path: string, + callback: (err: Error) => void, + ): void; + declare export function ensureDirSync(path: string): void; + + declare export function exists(path: string): Promise; + declare export function exists( + path: string, + callback?: (exists: boolean) => void, + ): void; + + declare export function mkdirs(dir: string): Promise; + declare export function mkdirs( + dir: string, + callback: (err: Error) => void, + ): void; + declare export function mkdirsSync(dir: string): void; + + declare export function mkdirp(dir: string): Promise; + declare export function mkdirp( + dir: string, + callback: (err: Error) => void, + ): void; + declare export function mkdirpSync(dir: string): void; + + declare export function outputFile( + file: string, + data: any, + options?: WriteFileOptions | string, + ): Promise; + declare export function outputFile( + file: string, + data: any, + callback: (err: Error) => void, + ): void; + declare export function outputFile( + file: string, + data: any, + options: WriteFileOptions | string, + callback: (err: Error) => void, + ): void; + declare export function outputFileSync( + file: string, + data: any, + options?: WriteFileOptions | string, + ): void; + + declare export function readJson( + file: string, + options?: ReadOptions, + ): Promise; + declare export function readJson( + file: string, + callback: (err: Error, jsonObject: any) => void, + ): void; + declare export function readJson( + file: string, + options: ReadOptions, + callback: (err: Error, jsonObject: any) => void, + ): void; + declare export function readJSON( + file: string, + options?: ReadOptions, + ): Promise; + declare export function readJSON( + file: string, + callback: (err: Error, jsonObject: any) => void, + ): void; + declare export function readJSON( + file: string, + options: ReadOptions, + callback: (err: Error, jsonObject: any) => void, + ): void; + + declare export function readJsonSync( + file: string, + options?: ReadOptions, + ): any; + declare export function readJSONSync( + file: string, + options?: ReadOptions, + ): any; + + declare export function remove(dir: string): Promise; + declare export function remove( + dir: string, + callback: (err: Error) => void, + ): void; + declare export function removeSync(dir: string): void; + + declare export function outputJson( + file: string, + data: any, + options?: WriteOptions, + ): Promise; + declare export function outputJSON( + file: string, + data: any, + options?: WriteOptions, + ): Promise; + declare export function outputJson( + file: string, + data: any, + options: WriteOptions, + callback: (err: Error) => void, + ): void; + declare export function outputJSON( + file: string, + data: any, + options: WriteOptions, + callback: (err: Error) => void, + ): void; + declare export function outputJson( + file: string, + data: any, + callback: (err: Error) => void, + ): void; + declare export function outputJSON( + file: string, + data: any, + callback: (err: Error) => void, + ): void; + declare export function outputJsonSync( + file: string, + data: any, + options?: WriteOptions, + ): void; + declare export function outputJSONSync( + file: string, + data: any, + options?: WriteOptions, + ): void; + + declare export function writeJSON( + file: string, + object: any, + options?: WriteOptions, + ): Promise; + declare export function writeJSON( + file: string, + object: any, + callback: (err: Error) => void, + ): void; + declare export function writeJSON( + file: string, + object: any, + options: WriteOptions, + callback: (err: Error) => void, + ): void; + declare export function writeJson( + file: string, + object: any, + options?: WriteOptions, + ): Promise; + declare export function writeJson( + file: string, + object: any, + callback: (err: Error) => void, + ): void; + declare export function writeJson( + file: string, + object: any, + options: WriteOptions, + callback: (err: Error) => void, + ): void; + + declare export function writeJsonSync( + file: string, + object: any, + options?: WriteOptions, + ): void; + declare export function writeJSONSync( + file: string, + object: any, + options?: WriteOptions, + ): void; + + declare export function ensureFile(path: string): Promise; + declare export function ensureFile( + path: string, + callback: (err: Error) => void, + ): void; + declare export function ensureFileSync(path: string): void; + + declare export function ensureLink(src: string, dest: string): Promise; + declare export function ensureLink( + src: string, + dest: string, + callback: (err: Error) => void, + ): void; + declare export function ensureLinkSync(src: string, dest: string): void; + + declare export function ensureSymlink( + src: string, + dest: string, + type?: SymlinkType, + ): Promise; + declare export function ensureSymlink( + src: string, + dest: string, + type: SymlinkType, + callback: (err: Error) => void, + ): void; + declare export function ensureSymlink( + src: string, + dest: string, + callback: (err: Error) => void, + ): void; + declare export function ensureSymlinkSync( + src: string, + dest: string, + type?: SymlinkType, + ): void; + + declare export function emptyDir(path: string): Promise; + declare export function emptyDir( + path: string, + callback: (err: Error) => void, + ): void; + declare export function emptyDirSync(path: string): void; + + declare export function pathExists(path: string): Promise; + declare export function pathExists( + path: string, + callback: (err: Error, exists: boolean) => void, + ): void; + declare export function pathExistsSync(path: string): boolean; + + declare export function access( + path: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function access( + path: string | Buffer, + mode: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function access( + path: string | Buffer, + mode?: number, + ): Promise; + + declare export function appendFile( + file: string | Buffer | number, + data: any, + options: {encoding?: string, mode?: number | string, flag?: string}, + callback: (err: ErrnoError) => void, + ): void; + declare export function appendFile( + file: string | Buffer | number, + data: any, + callback: (err: ErrnoError) => void, + ): void; + declare export function appendFile( + file: string | Buffer | number, + data: any, + options?: {encoding?: string, mode?: number | string, flag?: string}, + ): Promise; + + declare export function chmod( + path: string | Buffer, + mode: string | number, + callback: (err: ErrnoError) => void, + ): void; + declare export function chmod( + path: string | Buffer, + mode: string | number, + ): Promise; + + declare export function chown( + path: string | Buffer, + uid: number, + gid: number, + ): Promise; + declare export function chown( + path: string | Buffer, + uid: number, + gid: number, + callback: (err: ErrnoError) => void, + ): void; + + declare export function close( + fd: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function close(fd: number): Promise; + + declare export function fchmod( + fd: number, + mode: string | number, + callback: (err: ErrnoError) => void, + ): void; + declare export function fchmod( + fd: number, + mode: string | number, + ): Promise; + + declare export function fchown( + fd: number, + uid: number, + gid: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function fchown( + fd: number, + uid: number, + gid: number, + ): Promise; + + declare export function fdatasync(fd: number, callback: () => void): void; + declare export function fdatasync(fd: number): Promise; + + declare export function fstat( + fd: number, + callback: (err: ErrnoError, stats: Stats) => any, + ): void; + declare export function fstat(fd: number): Promise; + + declare export function fsync( + fd: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function fsync(fd: number): Promise; + + declare export function ftruncate( + fd: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function ftruncate( + fd: number, + len: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function ftruncate(fd: number, len?: number): Promise; + + declare export function futimes( + fd: number, + atime: number, + mtime: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function futimes( + fd: number, + atime: Date, + mtime: Date, + callback: (err: ErrnoError) => void, + ): void; + declare export function futimes( + fd: number, + atime: number, + mtime: number, + ): Promise; + declare export function futimes( + fd: number, + atime: Date, + mtime: Date, + ): Promise; + + declare export function lchown( + path: string | Buffer, + uid: number, + gid: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function lchown( + path: string | Buffer, + uid: number, + gid: number, + ): Promise; + + declare export function link( + srcpath: string | Buffer, + dstpath: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function link( + srcpath: string | Buffer, + dstpath: string | Buffer, + ): Promise; + + declare export function lstat( + path: string | Buffer, + callback: (err: ErrnoError, stats: Stats) => any, + ): void; + declare export function lstat(path: string | Buffer): Promise; + + declare export function mkdir( + path: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function mkdir( + path: string | Buffer, + mode: number | string, + callback: (err: ErrnoError) => void, + ): void; + declare export function mkdir(path: string | Buffer): Promise; + + declare export function open( + path: string | Buffer, + flags: string | number, + callback: (err: ErrnoError, fd: number) => void, + ): void; + declare export function open( + path: string | Buffer, + flags: string | number, + mode: number, + callback: (err: ErrnoError, fd: number) => void, + ): void; + declare export function open( + path: string | Buffer, + flags: string | number, + mode?: number, + ): Promise; + + declare export function read( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: number | null, + callback: (err: ErrnoError, bytesRead: number, buffer: Buffer) => void, + ): void; + declare export function read( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: number | null, + ): Promise; + + declare export function readFile( + file: string | Buffer | number, + callback: (err: ErrnoError, data: Buffer) => void, + ): void; + declare export function readFile( + file: string | Buffer | number, + encoding: string, + callback: (err: ErrnoError, data: string) => void, + ): void; + declare export function readFile( + file: string | Buffer | number, + options: {flag?: string} | {encoding: string, flag?: string}, + callback: (err: ErrnoError, data: Buffer) => void, + ): void; + declare export function readFile( + file: string | Buffer | number, + options: {flag?: string} | {encoding: string, flag?: string}, + ): Promise; + declare export function readFile( + file: string | Buffer | number, + encoding: string, + ): Promise; + declare export function readFile( + file: string | Buffer | number, + ): Promise; + + declare export function readdir( + path: string | Buffer, + callback: (err: ErrnoError, files: string[]) => void, + ): void; + declare export function readdir(path: string | Buffer): Promise; + + declare export function readlink( + path: string | Buffer, + callback: (err: ErrnoError, linkString: string) => any, + ): void; + declare export function readlink(path: string | Buffer): Promise; + + declare export function realpath( + path: string | Buffer, + callback: (err: ErrnoError, resolvedPath: string) => any, + ): void; + declare export function realpath( + path: string | Buffer, + cache: {[path: string]: string}, + callback: (err: ErrnoError, resolvedPath: string) => any, + ): void; + declare export function realpath( + path: string | Buffer, + cache?: {[path: string]: string}, + ): Promise; + + declare export function rename( + oldPath: string, + newPath: string, + callback: (err: ErrnoError) => void, + ): void; + declare export function rename( + oldPath: string, + newPath: string, + ): Promise; + + declare export function rmdir( + path: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function rmdir(path: string | Buffer): Promise; + + declare export function stat( + path: string | Buffer, + callback: (err: ErrnoError, stats: Stats) => any, + ): void; + declare export function stat(path: string | Buffer): Promise; + + declare export function statSync(path: string): Stats; + + declare export function symlink( + srcpath: string | Buffer, + dstpath: string | Buffer, + type: FsSymlinkType | void, + callback: (err: ErrnoError) => void, + ): void; + declare export function symlink( + srcpath: string | Buffer, + dstpath: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function symlink( + srcpath: string | Buffer, + dstpath: string | Buffer, + type?: FsSymlinkType, + ): Promise; + + declare export function truncate( + path: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function truncate( + path: string | Buffer, + len: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function truncate( + path: string | Buffer, + len?: number, + ): Promise; + + declare export function unlink( + path: string | Buffer, + callback: (err: ErrnoError) => void, + ): void; + declare export function unlink(path: string | Buffer): Promise; + + declare export function utimes( + path: string | Buffer, + atime: number, + mtime: number, + callback: (err: ErrnoError) => void, + ): void; + declare export function utimes( + path: string | Buffer, + atime: Date, + mtime: Date, + callback: (err: ErrnoError) => void, + ): void; + declare export function utimes( + path: string | Buffer, + atime: number, + mtime: number, + ): Promise; + declare export function utimes( + path: string | Buffer, + atime: Date, + mtime: Date, + ): Promise; + + declare export function write( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: number | null, + callback: (err: ErrnoError, written: number, buffer: Buffer) => void, + ): void; + declare export function write( + fd: number, + buffer: Buffer, + offset: number, + length: number, + callback: (err: ErrnoError, written: number, buffer: Buffer) => void, + ): void; + declare export function write( + fd: number, + data: any, + callback: (err: ErrnoError, written: number, str: string) => void, + ): void; + declare export function write( + fd: number, + data: any, + offset: number, + callback: (err: ErrnoError, written: number, str: string) => void, + ): void; + declare export function write( + fd: number, + data: any, + offset: number, + encoding: string, + callback: (err: ErrnoError, written: number, str: string) => void, + ): void; + declare export function write( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position?: number | null, + ): Promise; + declare export function write( + fd: number, + data: any, + offset: number, + encoding?: string, + ): Promise; + + declare export function writeFile( + file: string | Buffer | number, + data: any, + callback: (err: ErrnoError) => void, + ): void; + declare export function writeFile( + file: string | Buffer | number, + data: any, + options?: WriteFileOptions | string, + ): Promise; + declare export function writeFile( + file: string | Buffer | number, + data: any, + options: WriteFileOptions | string, + callback: (err: ErrnoError) => void, + ): void; + + declare export function mkdtemp(prefix: string): Promise; + declare export function mkdtemp( + prefix: string, + callback: (err: ErrnoError, folder: string) => void, + ): void; +} diff --git a/flow-typed/npm/lodash_v4.x.x.js b/flow-typed/npm/lodash_v4.x.x.js new file mode 100644 index 000000000000..583bbfce2a86 --- /dev/null +++ b/flow-typed/npm/lodash_v4.x.x.js @@ -0,0 +1,6047 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +declare module 'lodash' { + declare type Path = $ReadOnlyArray | string | number; + declare type __CurriedFunction1 = (...r: [AA]) => R; + declare type CurriedFunction1 = __CurriedFunction1; + + declare type __CurriedFunction2 = (( + ...r: [AA] + ) => CurriedFunction1) & + ((...r: [AA, BB]) => R); + declare type CurriedFunction2 = __CurriedFunction2; + + declare type __CurriedFunction3 = (( + ...r: [AA] + ) => CurriedFunction2) & + ((...r: [AA, BB]) => CurriedFunction1) & + ((...r: [AA, BB, CC]) => R); + declare type CurriedFunction3 = __CurriedFunction3< + A, + B, + C, + R, + *, + *, + *, + >; + + declare type __CurriedFunction4< + A, + B, + C, + D, + R, + AA: A, + BB: B, + CC: C, + DD: D, + > = ((...r: [AA]) => CurriedFunction3) & + ((...r: [AA, BB]) => CurriedFunction2) & + ((...r: [AA, BB, CC]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD]) => R); + declare type CurriedFunction4 = __CurriedFunction4< + A, + B, + C, + D, + R, + *, + *, + *, + *, + >; + + declare type __CurriedFunction5< + A, + B, + C, + D, + E, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + > = ((...r: [AA]) => CurriedFunction4) & + ((...r: [AA, BB]) => CurriedFunction3) & + ((...r: [AA, BB, CC]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE]) => R); + declare type CurriedFunction5 = __CurriedFunction5< + A, + B, + C, + D, + E, + R, + *, + *, + *, + *, + *, + >; + + declare type __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + FF: F, + > = ((...r: [AA]) => CurriedFunction5) & + ((...r: [AA, BB]) => CurriedFunction4) & + ((...r: [AA, BB, CC]) => CurriedFunction3) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE, FF]) => R); + declare type CurriedFunction6 = __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + *, + *, + *, + *, + *, + *, + >; + + declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & + (((...r: [A, B]) => R) => CurriedFunction2) & + (((...r: [A, B, C]) => R) => CurriedFunction3) & + (( + (...r: [A, B, C, D]) => R, + ) => CurriedFunction4) & + (( + (...r: [A, B, C, D, E]) => R, + ) => CurriedFunction5) & + (( + (...r: [A, B, C, D, E, F]) => R, + ) => CurriedFunction6); + + declare type UnaryFn = (a: A) => R; + + declare type TemplateSettings = { + escape?: RegExp, + evaluate?: RegExp, + imports?: Object, + interpolate?: RegExp, + variable?: string, + }; + + declare type TruncateOptions = { + length?: number, + omission?: string, + separator?: RegExp | string, + }; + + declare type DebounceOptions = { + leading?: boolean, + maxWait?: number, + trailing?: boolean, + }; + + declare type ThrottleOptions = { + leading?: boolean, + trailing?: boolean, + }; + + declare type NestedArray = Array>; + + declare type matchesIterateeShorthand = {[key: any]: any}; + declare type matchesPropertyIterateeShorthand = [string, any]; + declare type propertyIterateeShorthand = string; + + declare type OPredicate = + | ((value: A, key: string, object: O) => any) + | matchesIterateeShorthand + | matchesPropertyIterateeShorthand + | propertyIterateeShorthand; + + declare type OIterateeWithResult = + | Object + | string + | ((value: V, key: string, object: O) => R); + declare type OIteratee = OIterateeWithResult; + declare type OFlatMapIteratee = OIterateeWithResult>; + + declare type Predicate = + | ((value: T, index: number, array: Array) => any) + | matchesIterateeShorthand + | matchesPropertyIterateeShorthand + | propertyIterateeShorthand; + + declare type _ValueOnlyIteratee = (value: T) => mixed; + declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; + declare type _Iteratee = ( + item: T, + index: number, + array: ?Array, + ) => mixed; + declare type Iteratee = _Iteratee | Object | string; + declare type FlatMapIteratee = + | ((item: T, index: number, array: ?$ReadOnlyArray) => Array) + | Object + | string; + declare type Comparator = (item: T, item2: T) => boolean; + + declare type MapIterator = + | ((item: T, index: number, array: Array) => U) + | propertyIterateeShorthand; + + declare type ReadOnlyMapIterator = + | ((item: T, index: number, array: $ReadOnlyArray) => U) + | propertyIterateeShorthand; + + declare type OMapIterator = + | ((item: T, key: string, object: O) => U) + | propertyIterateeShorthand; + + declare class Lodash { + // Array + chunk(array?: ?Array, size?: ?number): Array>; + compact(array?: ?Array): Array; + concat( + base?: ?$ReadOnlyArray, + ...elements: Array + ): Array; + difference( + array?: ?$ReadOnlyArray, + ...values: Array> + ): Array; + differenceBy( + array?: ?$ReadOnlyArray, + values?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): T[]; + differenceWith( + array?: ?$ReadOnlyArray, + values?: ?$ReadOnlyArray, + comparator?: ?Comparator, + ): T[]; + drop(array?: ?Array, n?: ?number): Array; + dropRight(array?: ?Array, n?: ?number): Array; + dropRightWhile(array?: ?Array, predicate?: ?Predicate): Array; + dropWhile(array?: ?Array, predicate?: ?Predicate): Array; + fill( + array?: ?Array, + value?: ?U, + start?: ?number, + end?: ?number, + ): Array; + findIndex( + array: $ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number, + ): number; + findIndex( + array: void | null, + predicate?: ?Predicate, + fromIndex?: ?number, + ): -1; + findLastIndex( + array: $ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number, + ): number; + findLastIndex( + array: void | null, + predicate?: ?Predicate, + fromIndex?: ?number, + ): -1; + // alias of _.head + first(array: ?$ReadOnlyArray): T; + flatten(array?: ?Array | X>): Array; + flattenDeep(array?: ?(any[])): Array; + flattenDepth(array?: ?(any[]), depth?: ?number): any[]; + fromPairs(pairs?: ?Array<[A, B]>): {[key: A]: B}; + head(array: ?$ReadOnlyArray): T; + indexOf(array: Array, value: T, fromIndex?: number): number; + indexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; + initial(array: ?Array): Array; + intersection(...arrays?: Array<$ReadOnlyArray>): Array; + // Workaround until (...parameter: T, parameter2: U) works + intersectionBy( + a1?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): Array; + intersectionBy( + a1?: ?$ReadOnlyArray, + a2?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): Array; + intersectionBy( + a1?: ?$ReadOnlyArray, + a2?: ?$ReadOnlyArray, + a3?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): Array; + intersectionBy( + a1?: ?$ReadOnlyArray, + a2?: ?$ReadOnlyArray, + a3?: ?$ReadOnlyArray, + a4?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): Array; + // Workaround until (...parameter: T, parameter2: U) works + intersectionWith( + a1?: ?$ReadOnlyArray, + comparator?: ?Comparator, + ): Array; + intersectionWith( + a1?: ?$ReadOnlyArray, + a2?: ?$ReadOnlyArray, + comparator?: ?Comparator, + ): Array; + intersectionWith( + a1?: ?$ReadOnlyArray, + a2?: ?$ReadOnlyArray, + a3?: ?$ReadOnlyArray, + comparator?: ?Comparator, + ): Array; + intersectionWith( + a1?: ?$ReadOnlyArray, + a2?: ?$ReadOnlyArray, + a3?: ?$ReadOnlyArray, + a4?: ?$ReadOnlyArray, + comparator?: ?Comparator, + ): Array; + join(array: Array, separator?: ?string): string; + join(array: void | null, separator?: ?string): ''; + last(array: ?$ReadOnlyArray): T; + lastIndexOf(array: Array, value?: ?T, fromIndex?: ?number): number; + lastIndexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; + nth(array: T[], n?: ?number): T; + nth(array: void | null, n?: ?number): void; + pull(array: Array, ...values?: Array): Array; + pull(array: T, ...values?: Array): T; + pullAll(array: Array, values?: ?Array): Array; + pullAll(array: T, values?: ?Array): T; + pullAllBy( + array: Array, + values?: ?Array, + iteratee?: ?ValueOnlyIteratee, + ): Array; + pullAllBy( + array: T, + values?: ?Array, + iteratee?: ?ValueOnlyIteratee, + ): T; + pullAllWith(array: T[], values?: ?(T[]), comparator?: ?Function): T[]; + pullAllWith( + array: T, + values?: ?Array, + comparator?: ?Function, + ): T; + pullAt(array?: ?Array, ...indexed?: Array): Array; + pullAt(array?: ?Array, indexed?: ?Array): Array; + remove(array?: ?Array, predicate?: ?Predicate): Array; + reverse(array: Array): Array; + reverse(array: T): T; + slice( + array?: ?$ReadOnlyArray, + start?: ?number, + end?: ?number, + ): Array; + sortedIndex(array: Array, value: T): number; + sortedIndex(array: void | null, value: ?T): 0; + sortedIndexBy( + array: Array, + value?: ?T, + iteratee?: ?ValueOnlyIteratee, + ): number; + sortedIndexBy( + array: void | null, + value?: ?T, + iteratee?: ?ValueOnlyIteratee, + ): 0; + sortedIndexOf(array: Array, value: T): number; + sortedIndexOf(array: void | null, value?: ?T): -1; + sortedLastIndex(array: Array, value: T): number; + sortedLastIndex(array: void | null, value?: ?T): 0; + sortedLastIndexBy( + array: Array, + value: T, + iteratee?: ValueOnlyIteratee, + ): number; + sortedLastIndexBy( + array: void | null, + value?: ?T, + iteratee?: ?ValueOnlyIteratee, + ): 0; + sortedLastIndexOf(array: Array, value: T): number; + sortedLastIndexOf(array: void | null, value?: ?T): -1; + sortedUniq(array?: ?Array): Array; + sortedUniqBy( + array?: ?Array, + iteratee?: ?ValueOnlyIteratee, + ): Array; + tail(array?: ?Array): Array; + take(array?: ?$ReadOnlyArray, n?: ?number): Array; + takeRight(array?: ?$ReadOnlyArray, n?: ?number): Array; + takeRightWhile(array?: ?Array, predicate?: ?Predicate): Array; + takeWhile(array?: ?Array, predicate?: ?Predicate): Array; + union(...arrays?: Array<$ReadOnlyArray>): Array; + // Workaround until (...parameter: T, parameter2: U) works + unionBy( + a1?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): Array; + unionBy( + a1?: ?$ReadOnlyArray, + a2: $ReadOnlyArray, + iteratee?: ValueOnlyIteratee, + ): Array; + unionBy( + a1: $ReadOnlyArray, + a2: $ReadOnlyArray, + a3: $ReadOnlyArray, + iteratee?: ValueOnlyIteratee, + ): Array; + unionBy( + a1: $ReadOnlyArray, + a2: $ReadOnlyArray, + a3: $ReadOnlyArray, + a4: $ReadOnlyArray, + iteratee?: ValueOnlyIteratee, + ): Array; + // Workaround until (...parameter: T, parameter2: U) works + unionWith(a1?: ?Array, comparator?: ?Comparator): Array; + unionWith( + a1: $ReadOnlyArray, + a2: $ReadOnlyArray, + comparator?: Comparator, + ): Array; + unionWith( + a1: $ReadOnlyArray, + a2: $ReadOnlyArray, + a3: $ReadOnlyArray, + comparator?: Comparator, + ): Array; + unionWith( + a1: $ReadOnlyArray, + a2: $ReadOnlyArray, + a3: $ReadOnlyArray, + a4: $ReadOnlyArray, + comparator?: Comparator, + ): Array; + uniq(array?: ?$ReadOnlyArray): Array; + uniqBy( + array?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): Array; + uniqWith( + array?: ?$ReadOnlyArray, + comparator?: ?Comparator, + ): Array; + unzip(array?: ?Array): Array; + unzipWith(array: ?Array, iteratee?: ?Iteratee): Array; + without(array?: ?$ReadOnlyArray, ...values?: Array): Array; + xor(...array: Array>): Array; + // Workaround until (...parameter: T, parameter2: U) works + xorBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; + xorBy( + a1: Array, + a2: Array, + iteratee?: ValueOnlyIteratee, + ): Array; + xorBy( + a1: Array, + a2: Array, + a3: Array, + iteratee?: ValueOnlyIteratee, + ): Array; + xorBy( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + iteratee?: ValueOnlyIteratee, + ): Array; + // Workaround until (...parameter: T, parameter2: U) works + xorWith(a1?: ?Array, comparator?: ?Comparator): Array; + xorWith( + a1: Array, + a2: Array, + comparator?: Comparator, + ): Array; + xorWith( + a1: Array, + a2: Array, + a3: Array, + comparator?: Comparator, + ): Array; + xorWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + comparator?: Comparator, + ): Array; + zip(a1?: ?(A[]), a2?: ?(B[])): Array<[A, B]>; + zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; + zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; + zip( + a1: A[], + a2: B[], + a3: C[], + a4: D[], + a5: E[], + ): Array<[A, B, C, D, E]>; + + zipObject(props: Array, values?: ?Array): {[key: K]: V}; + zipObject(props: void | null, values?: ?Array): {}; + zipObjectDeep(props: any[], values?: ?any): Object; + zipObjectDeep(props: void | null, values?: ?any): {}; + + zipWith(a1?: ?Array): Array<[A]>; + zipWith(a1: Array, iteratee: (A) => T): Array; + + zipWith(a1: Array, a2: Array): Array<[A, B]>; + zipWith( + a1: Array, + a2: Array, + iteratee: (A, B) => T, + ): Array; + + zipWith( + a1: Array, + a2: Array, + a3: Array, + ): Array<[A, B, C]>; + zipWith( + a1: Array, + a2: Array, + a3: Array, + iteratee: (A, B, C) => T, + ): Array; + + zipWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + ): Array<[A, B, C, D]>; + zipWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + iteratee: (A, B, C, D) => T, + ): Array; + + // Collection + countBy(array: Array, iteratee?: ?ValueOnlyIteratee): Object; + countBy(array: void | null, iteratee?: ?ValueOnlyIteratee): {}; + countBy(object: T, iteratee?: ?ValueOnlyIteratee): Object; + // alias of _.forEach + each(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; + each(array: T, iteratee?: ?Iteratee): T; + each(object: T, iteratee?: ?OIteratee): T; + // alias of _.forEachRight + eachRight(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; + eachRight(array: T, iteratee?: ?Iteratee): T; + eachRight(object: T, iteratee?: OIteratee): T; + every(array?: ?$ReadOnlyArray, iteratee?: ?Iteratee): boolean; + every(object: T, iteratee?: OIteratee): boolean; + filter(array?: ?$ReadOnlyArray, predicate?: ?Predicate): Array; + filter( + object: T, + predicate?: OPredicate, + ): Array; + find( + array: $ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number, + ): T | void; + find( + array: void | null, + predicate?: ?Predicate, + fromIndex?: ?number, + ): void; + find( + object: T, + predicate?: OPredicate, + fromIndex?: number, + ): V; + findLast( + array: ?$ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number, + ): T | void; + findLast( + object: T, + predicate?: ?OPredicate, + ): V; + flatMap( + array?: ?$ReadOnlyArray, + iteratee?: ?FlatMapIteratee, + ): Array; + flatMap( + object: T, + iteratee?: OFlatMapIteratee, + ): Array; + flatMapDeep( + array?: ?$ReadOnlyArray, + iteratee?: ?FlatMapIteratee, + ): Array; + flatMapDeep( + object: T, + iteratee?: ?OFlatMapIteratee, + ): Array; + flatMapDepth( + array?: ?Array, + iteratee?: ?FlatMapIteratee, + depth?: ?number, + ): Array; + flatMapDepth( + object: T, + iteratee?: OFlatMapIteratee, + depth?: number, + ): Array; + forEach(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; + forEach(array: T, iteratee?: ?Iteratee): T; + forEach(object: T, iteratee?: ?OIteratee): T; + forEachRight( + array: $ReadOnlyArray, + iteratee?: ?Iteratee, + ): Array; + forEachRight(array: T, iteratee?: ?Iteratee): T; + forEachRight(object: T, iteratee?: ?OIteratee): T; + groupBy( + array: $ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): {[key: V]: Array}; + groupBy(array: void | null, iteratee?: ?ValueOnlyIteratee): {}; + groupBy( + object: T, + iteratee?: ValueOnlyIteratee, + ): {[key: V]: Array}; + includes( + array: $ReadOnlyArray, + value: T, + fromIndex?: ?number, + ): boolean; + includes(array: void | null, value?: ?T, fromIndex?: ?number): false; + includes(object: T, value: any, fromIndex?: number): boolean; + includes(str: string, value: string, fromIndex?: number): boolean; + invokeMap( + array?: ?$ReadOnlyArray, + path?: ?((value: T) => Path) | Path, + ...args?: Array + ): Array; + invokeMap( + object: T, + path: ((value: any) => Path) | Path, + ...args?: Array + ): Array; + keyBy( + array: $ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee, + ): {[key: V]: T}; + keyBy(array: void | null, iteratee?: ?ValueOnlyIteratee<*>): {}; + keyBy( + object: T, + iteratee?: ?ValueOnlyIteratee, + ): {[key: V]: A}; + map(array?: ?Array, iteratee?: ?MapIterator): Array; + map( + array: ?$ReadOnlyArray, + iteratee?: ReadOnlyMapIterator, + ): Array; + map( + object: ?T, + iteratee?: OMapIterator, + ): Array; + map( + str: ?string, + iteratee?: (char: string, index: number, str: string) => any, + ): string; + orderBy( + array: $ReadOnlyArray, + iteratees?: ?$ReadOnlyArray> | ?string, + orders?: ?$ReadOnlyArray<'asc' | 'desc'> | ?string, + ): Array; + orderBy( + array: null | void, + iteratees?: ?$ReadOnlyArray> | ?string, + orders?: ?$ReadOnlyArray<'asc' | 'desc'> | ?string, + ): Array; + orderBy( + object: T, + iteratees?: $ReadOnlyArray> | string, + orders?: $ReadOnlyArray<'asc' | 'desc'> | string, + ): Array; + partition( + array?: ?$ReadOnlyArray, + predicate?: ?Predicate, + ): [Array, Array]; + partition( + object: T, + predicate?: OPredicate, + ): [Array, Array]; + reduce( + array: $ReadOnlyArray, + iteratee?: ( + accumulator: U, + value: T, + index: number, + array: ?Array, + ) => U, + accumulator?: U, + ): U; + reduce( + array: void | null, + iteratee?: ?( + accumulator: U, + value: T, + index: number, + array: ?Array, + ) => U, + accumulator?: ?U, + ): void | null; + reduce( + object: T, + iteratee?: (accumulator: U, value: any, key: string, object: T) => U, + accumulator?: U, + ): U; + reduceRight( + array: void | null, + iteratee?: ?( + accumulator: U, + value: T, + index: number, + array: ?Array, + ) => U, + accumulator?: ?U, + ): void | null; + reduceRight( + array: $ReadOnlyArray, + iteratee?: ?( + accumulator: U, + value: T, + index: number, + array: ?Array, + ) => U, + accumulator?: ?U, + ): U; + reduceRight( + object: T, + iteratee?: ?(accumulator: U, value: any, key: string, object: T) => U, + accumulator?: ?U, + ): U; + reject(array: ?$ReadOnlyArray, predicate?: Predicate): Array; + reject( + object?: ?T, + predicate?: ?OPredicate, + ): Array; + sample(array: ?Array): T; + sample(object: T): V; + sampleSize(array?: ?Array, n?: ?number): Array; + sampleSize(object: T, n?: number): Array; + shuffle(array: ?Array): Array; + shuffle(object: T): Array; + size(collection: $ReadOnlyArray | Object | string): number; + some(array: void | null, predicate?: ?Predicate): false; + some(array: ?$ReadOnlyArray, predicate?: Predicate): boolean; + some( + object?: ?T, + predicate?: OPredicate, + ): boolean; + sortBy( + array: ?$ReadOnlyArray, + ...iteratees?: $ReadOnlyArray> + ): Array; + sortBy( + array: ?$ReadOnlyArray, + iteratees?: $ReadOnlyArray>, + ): Array; + sortBy( + object: T, + ...iteratees?: Array> + ): Array; + sortBy( + object: T, + iteratees?: $ReadOnlyArray>, + ): Array; + + // Date + now(): number; + + // Function + after(n: number, fn: Function): Function; + ary(func: Function, n?: number): Function; + before(n: number, fn: Function): Function; + bind any>( + func: F, + thisArg: any, + ...partials: Array + ): F; + bindKey(obj?: ?Object, key?: ?string, ...partials?: Array): Function; + curry: Curry; + curry(func: Function, arity?: number): Function; + curryRight(func: Function, arity?: number): Function; + debounce any>( + func: F, + wait?: number, + options?: DebounceOptions, + ): F; + defer(func: (...any[]) => any, ...args?: Array): TimeoutID; + delay(func: Function, wait: number, ...args?: Array): TimeoutID; + flip(func: (...any[]) => R): (...any[]) => R; + memoize(func: (...A) => R, resolver?: (...A) => any): (...A) => R; + negate(predicate: (...A) => R): (...A) => boolean; + once any>(func: F): F; + overArgs(func?: ?Function, ...transforms?: Array): Function; + overArgs(func?: ?Function, transforms?: ?Array): Function; + partial(func: (...any[]) => R, ...partials: any[]): (...any[]) => R; + partialRight( + func: (...any[]) => R, + ...partials: Array + ): (...any[]) => R; + partialRight( + func: (...any[]) => R, + partials: Array, + ): (...any[]) => R; + rearg(func: Function, ...indexes: Array): Function; + rearg(func: Function, indexes: Array): Function; + rest(func: Function, start?: number): Function; + spread(func: Function): Function; + throttle any>( + func: F, + wait?: number, + options?: ThrottleOptions, + ): F; + unary any>(func: F): F; + wrap(value?: any, wrapper?: ?Function): Function; + + // Lang + castArray(value: *): any[]; + clone(value: T): T; + cloneDeep(value: T): T; + cloneDeepWith( + value: T, + customizer?: ?( + value: T, + key: number | string, + object: T, + stack: any, + ) => U, + ): U; + cloneWith( + value: T, + customizer?: ?( + value: T, + key: number | string, + object: T, + stack: any, + ) => U, + ): U; + conformsTo( + source: T, + predicates: T & {[key: string]: (x: any) => boolean}, + ): boolean; + eq(value: any, other: any): boolean; + gt(value: any, other: any): boolean; + gte(value: any, other: any): boolean; + isArguments(value: void | null): false; + isArguments(value: any): boolean; + isArray(value: Array): true; + isArray(value: any): false; + isArrayBuffer(value: ArrayBuffer): true; + isArrayBuffer(value: any): false; + isArrayLike(value: Array | string | {length: number}): true; + isArrayLike(value: any): false; + isArrayLikeObject(value: {length: number} | Array): true; + isArrayLikeObject(value: any): false; + isBoolean(value: boolean): true; + isBoolean(value: any): false; + isBuffer(value: void | null): false; + isBuffer(value: any): boolean; + isDate(value: Date): true; + isDate(value: any): false; + isElement(value: Element): true; + isElement(value: any): false; + isEmpty(value: void | null | '' | {} | [] | number | boolean): true; + isEmpty(value: any): boolean; + isEqual(value: any, other: any): boolean; + isEqualWith( + value?: ?T, + other?: ?U, + customizer?: ?( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any, + ) => boolean | void, + ): boolean; + isError(value: Error): true; + isError(value: any): false; + isFinite(value: number): boolean; + isFinite(value: any): false; + isFunction(value: Function): true; + isFunction(value: any): false; + isInteger(value: number): boolean; + isInteger(value: any): false; + isLength(value: void | null): false; + isLength(value: any): boolean; + isMap(value: Map): true; + isMap(value: any): false; + isMatch(object?: ?Object, source?: ?Object): boolean; + isMatchWith( + object?: ?T, + source?: ?U, + customizer?: ?( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U, + ) => boolean | void, + ): boolean; + isNaN(value: number): boolean; + isNaN(value: any): false; + isNative(value: number | string | void | null | Object): false; + isNative(value: any): boolean; + isNil(value: void | null): true; + isNil(value: any): false; + isNull(value: null): true; + isNull(value: any): false; + isNumber(value: number): true; + isNumber(value: any): false; + isObject(value: any): boolean; + isObjectLike(value: void | null): false; + isObjectLike(value: any): boolean; + isPlainObject(value: any): boolean; + isRegExp(value: RegExp): true; + isRegExp(value: any): false; + isSafeInteger(value: number): boolean; + isSafeInteger(value: any): false; + isSet(value: Set): true; + isSet(value: any): false; + isString(value: string): true; + isString(value: any): false; + isSymbol(value: Symbol): true; + isSymbol(value: any): false; + isTypedArray(value: $TypedArray): true; + isTypedArray(value: any): false; + isUndefined(value: void): true; + isUndefined(value: any): false; + isWeakMap(value: WeakMap): true; + isWeakMap(value: any): false; + isWeakSet(value: WeakSet): true; + isWeakSet(value: any): false; + lt(value: any, other: any): boolean; + lte(value: any, other: any): boolean; + toArray(value: any): Array; + toFinite(value: void | null): 0; + toFinite(value: any): number; + toInteger(value: void | null): 0; + toInteger(value: any): number; + toLength(value: void | null): 0; + toLength(value: any): number; + toNumber(value: void | null): 0; + toNumber(value: any): number; + toPlainObject(value: any): Object; + toSafeInteger(value: void | null): 0; + toSafeInteger(value: any): number; + toString(value: void | null): ''; + toString(value: any): string; + + // Math + add(augend: number, addend: number): number; + ceil(number: number, precision?: number): number; + divide(dividend: number, divisor: number): number; + floor(number: number, precision?: number): number; + max(array: ?Array): T; + maxBy(array: ?$ReadOnlyArray, iteratee?: Iteratee): T; + mean(array: Array<*>): number; + meanBy(array: Array, iteratee?: Iteratee): number; + min(array: ?Array): T; + minBy(array: ?$ReadOnlyArray, iteratee?: Iteratee): T; + multiply(multiplier: number, multiplicand: number): number; + round(number: number, precision?: number): number; + subtract(minuend: number, subtrahend: number): number; + sum(array: Array<*>): number; + sumBy(array: $ReadOnlyArray, iteratee?: Iteratee): number; + + // number + clamp(number?: number, lower?: ?number, upper?: ?number): number; + clamp(number: ?number, lower?: ?number, upper?: ?number): 0; + inRange(number: number, start?: number, end: number): boolean; + random(lower?: number, upper?: number, floating?: boolean): number; + + // Object + assign(object?: ?Object, ...sources?: Array): Object; + assignIn(): {}; + assignIn(a: A, b: B): A & B; + assignIn(a: A, b: B, c: C): A & B & C; + assignIn(a: A, b: B, c: C, d: D): A & B & C & D; + assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; + assignInWith(): {}; + assignInWith( + object: T, + s1: A, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): Object; + assignInWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + ): Object; + assignInWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C, + ) => any | void, + ): Object; + assignInWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D, + ) => any | void, + ): Object; + assignWith(): {}; + assignWith( + object: T, + s1: A, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): Object; + assignWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + ): Object; + assignWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C, + ) => any | void, + ): Object; + assignWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D, + ) => any | void, + ): Object; + at(object?: ?Object, ...paths: Array): Array; + at(object?: ?Object, paths: Array): Array; + create(prototype: void | null, properties: void | null): {}; + create(prototype: T, properties: Object): T; + create(prototype: any, properties: void | null): {}; + defaults(object?: ?Object, ...sources?: Array): Object; + defaultsDeep(object?: ?Object, ...sources?: Array): Object; + // alias for _.toPairs + entries(object?: ?Object): Array<[string, any]>; + // alias for _.toPairsIn + entriesIn(object?: ?Object): Array<[string, any]>; + // alias for _.assignIn + extend(a?: ?A, b?: ?B): A & B; + extend(a: A, b: B, c: C): A & B & C; + extend(a: A, b: B, c: C, d: D): A & B & C & D; + extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; + // alias for _.assignInWith + extendWith( + object?: ?T, + s1?: ?A, + customizer?: ?( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): Object; + extendWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + ): Object; + extendWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C, + ) => any | void, + ): Object; + extendWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D, + ) => any | void, + ): Object; + findKey( + object: T, + predicate?: ?OPredicate, + ): string | void; + findKey( + object: void | null, + predicate?: ?OPredicate, + ): void; + findLastKey( + object: T, + predicate?: ?OPredicate, + ): string | void; + findLastKey( + object: void | null, + predicate?: ?OPredicate, + ): void; + forIn(object: Object, iteratee?: ?OIteratee<*>): Object; + forIn(object: void | null, iteratee?: ?OIteratee<*>): null; + forInRight(object: Object, iteratee?: ?OIteratee<*>): Object; + forInRight(object: void | null, iteratee?: ?OIteratee<*>): null; + forOwn(object: Object, iteratee?: ?OIteratee<*>): Object; + forOwn(object: void | null, iteratee?: ?OIteratee<*>): null; + forOwnRight(object: Object, iteratee?: ?OIteratee<*>): Object; + forOwnRight(object: void | null, iteratee?: ?OIteratee<*>): null; + functions(object?: ?Object): Array; + functionsIn(object?: ?Object): Array; + get( + object?: ?Object | ?$ReadOnlyArray | void | null, + path?: ?Path, + defaultValue?: any, + ): any; + has(object: Object, path: Path): boolean; + has(object: Object, path: void | null): false; + has(object: void | null, path?: ?Path): false; + hasIn(object: Object, path: Path): boolean; + hasIn(object: Object, path: void | null): false; + hasIn(object: void | null, path?: ?Path): false; + invert(object: Object, multiVal?: ?boolean): Object; + invert(object: void | null, multiVal?: ?boolean): {}; + invertBy(object: Object, iteratee?: ?Function): Object; + invertBy(object: void | null, iteratee?: ?Function): {}; + invoke(object?: ?Object, path?: ?Path, ...args?: Array): any; + keys(object?: ?{[key: K]: any}): Array; + keys(object?: ?Object): Array; + keysIn(object?: ?Object): Array; + mapKeys(object: Object, iteratee?: ?OIteratee<*>): Object; + mapKeys(object: void | null, iteratee?: ?OIteratee<*>): {}; + mapValues(object: Object, iteratee?: ?OIteratee<*>): Object; + mapValues(object: void | null, iteratee?: ?OIteratee<*>): {}; + merge(object?: ?Object, ...sources?: Array): Object; + mergeWith(): {}; + mergeWith( + object: T, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): Object; + mergeWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + ): Object; + mergeWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C, + ) => any | void, + ): Object; + mergeWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D, + ) => any | void, + ): Object; + omit(object?: ?Object, ...props: Array): Object; + omit(object?: ?Object, props: Array): Object; + omitBy( + object: T, + predicate?: ?OPredicate, + ): Object; + omitBy(object: void | null, predicate?: ?OPredicate): {}; + pick(object?: ?Object, ...props: Array): Object; + pick(object?: ?Object, props: Array): Object; + pickBy( + object: T, + predicate?: ?OPredicate, + ): Object; + pickBy(object: void | null, predicate?: ?OPredicate): {}; + result(object?: ?Object, path?: ?Path, defaultValue?: any): any; + set(object: Object, path?: ?Path, value: any): Object; + set(object: T, path?: ?Path, value?: ?any): T; + setWith( + object: T, + path?: ?Path, + value: any, + customizer?: (nsValue: any, key: string, nsObject: T) => any, + ): Object; + setWith( + object: T, + path?: ?Path, + value?: ?any, + customizer?: ?(nsValue: any, key: string, nsObject: T) => any, + ): T; + toPairs(object?: ?Object | Array<*>): Array<[string, any]>; + toPairsIn(object?: ?Object): Array<[string, any]>; + transform( + collection: Object | $ReadOnlyArray, + iteratee?: ?OIteratee<*>, + accumulator?: any, + ): any; + transform( + collection: void | null, + iteratee?: ?OIteratee<*>, + accumulator?: ?any, + ): {}; + unset(object: void | null, path?: ?Path): true; + unset(object: Object, path?: ?Path): boolean; + update(object: Object, path: Path, updater: Function): Object; + update(object: T, path?: ?Path, updater?: ?Function): T; + updateWith( + object: Object, + path?: ?Path, + updater?: ?Function, + customizer?: ?Function, + ): Object; + updateWith( + object: T, + path?: ?Path, + updater?: ?Function, + customizer?: ?Function, + ): T; + values(object?: ?Object): Array; + valuesIn(object?: ?Object): Array; + + // Seq + // harder to read, but this is _() + (value: any): any; + chain(value: T): any; + tap(value: T, interceptor: (value: T) => any): T; + thru(value: T1, interceptor: (value: T1) => T2): T2; + // TODO: _.prototype.* + + // String + camelCase(string: string): string; + camelCase(string: void | null): ''; + capitalize(string: string): string; + capitalize(string: void | null): ''; + deburr(string: string): string; + deburr(string: void | null): ''; + endsWith(string: string, target?: string, position?: ?number): boolean; + endsWith(string: void | null, target?: ?string, position?: ?number): false; + escape(string: string): string; + escape(string: void | null): ''; + escapeRegExp(string: string): string; + escapeRegExp(string: void | null): ''; + kebabCase(string: string): string; + kebabCase(string: void | null): ''; + lowerCase(string: string): string; + lowerCase(string: void | null): ''; + lowerFirst(string: string): string; + lowerFirst(string: void | null): ''; + pad(string?: ?string, length?: ?number, chars?: ?string): string; + padEnd(string?: ?string, length?: ?number, chars?: ?string): string; + padStart(string?: ?string, length?: ?number, chars?: ?string): string; + parseInt(string: string, radix?: ?number): number; + repeat(string: string, n?: ?number): string; + repeat(string: void | null, n?: ?number): ''; + replace( + string: string, + pattern: RegExp | string, + replacement: ((string: string) => string) | string, + ): string; + replace( + string: void | null, + pattern?: ?RegExp | ?string, + replacement: ?((string: string) => string) | ?string, + ): ''; + snakeCase(string: string): string; + snakeCase(string: void | null): ''; + split( + string?: ?string, + separator?: ?RegExp | ?string, + limit?: ?number, + ): Array; + startCase(string: string): string; + startCase(string: void | null): ''; + startsWith(string: string, target?: string, position?: number): boolean; + startsWith( + string: void | null, + target?: ?string, + position?: ?number, + ): false; + template(string?: ?string, options?: ?TemplateSettings): Function; + toLower(string: string): string; + toLower(string: void | null): ''; + toUpper(string: string): string; + toUpper(string: void | null): ''; + trim(string: string, chars?: string): string; + trim(string: void | null, chars?: ?string): ''; + trimEnd(string: string, chars?: ?string): string; + trimEnd(string: void | null, chars?: ?string): ''; + trimStart(string: string, chars?: ?string): string; + trimStart(string: void | null, chars?: ?string): ''; + truncate(string: string, options?: TruncateOptions): string; + truncate(string: void | null, options?: ?TruncateOptions): ''; + unescape(string: string): string; + unescape(string: void | null): ''; + upperCase(string: string): string; + upperCase(string: void | null): ''; + upperFirst(string: string): string; + upperFirst(string: void | null): ''; + words(string?: ?string, pattern?: ?RegExp | ?string): Array; + + // Util + attempt(func: Function, ...args: Array): any; + bindAll(object: Object, methodNames?: ?Array): Object; + bindAll(object: T, methodNames?: ?Array): T; + bindAll(object: Object, ...methodNames: Array): Object; + cond(pairs?: ?NestedArray): Function; + conforms(source?: ?Object): Function; + constant(value: T): () => T; + defaultTo(value: T1, defaultValue: T2): T2; + defaultTo(value: T1, defaultValue: T2): T1; + // NaN is a number instead of its own type, otherwise it would behave like null/void + defaultTo(value: T1, defaultValue: T2): T1 | T2; + flow: $ComposeReverse & ((funcs: Array) => Function); + flowRight: $Compose & ((funcs: Array) => Function); + identity(value: T): T; + iteratee(func?: any): Function; + matches(source?: ?Object): Function; + matchesProperty(path?: ?Path, srcValue: any): Function; + method(path?: ?Path, ...args?: Array): Function; + methodOf(object?: ?Object, ...args?: Array): Function; + mixin( + object?: T, + source: Object, + options?: {chain: boolean}, + ): T; + noConflict(): Lodash; + noop(...args: Array): void; + nthArg(n?: ?number): Function; + over(...iteratees: Array): Function; + over(iteratees: Array): Function; + overEvery(...predicates: Array): Function; + overEvery(predicates: Array): Function; + overSome(...predicates: Array): Function; + overSome(predicates: Array): Function; + property(path?: ?Path): Function; + propertyOf(object?: ?Object): Function; + range(start: number, end: number, step?: number): Array; + range(end: number, step?: number): Array; + rangeRight(start?: ?number, end?: ?number, step?: ?number): Array; + rangeRight(end?: ?number, step?: ?number): Array; + runInContext(context?: ?Object): Function; + + stubArray(): Array<*>; + stubFalse(): false; + stubObject(): {}; + stubString(): ''; + stubTrue(): true; + times(n?: ?number, ...rest?: Array): Array; + times(n: number, iteratee: (i: number) => T): Array; + toPath(value: any): Array; + uniqueId(prefix?: ?string): string; + + // Properties + VERSION: string; + templateSettings: TemplateSettings; + } + + declare module.exports: Lodash; +} + +declare module 'lodash/fp' { + declare type Path = $ReadOnlyArray | string | number; + declare type __CurriedFunction1 = (...r: [AA]) => R; + declare type CurriedFunction1 = __CurriedFunction1; + + declare type __CurriedFunction2 = (( + ...r: [AA] + ) => CurriedFunction1) & + ((...r: [AA, BB]) => R); + declare type CurriedFunction2 = __CurriedFunction2; + + declare type __CurriedFunction3 = (( + ...r: [AA] + ) => CurriedFunction2) & + ((...r: [AA, BB]) => CurriedFunction1) & + ((...r: [AA, BB, CC]) => R); + declare type CurriedFunction3 = __CurriedFunction3< + A, + B, + C, + R, + *, + *, + *, + >; + + declare type __CurriedFunction4< + A, + B, + C, + D, + R, + AA: A, + BB: B, + CC: C, + DD: D, + > = ((...r: [AA]) => CurriedFunction3) & + ((...r: [AA, BB]) => CurriedFunction2) & + ((...r: [AA, BB, CC]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD]) => R); + declare type CurriedFunction4 = __CurriedFunction4< + A, + B, + C, + D, + R, + *, + *, + *, + *, + >; + + declare type __CurriedFunction5< + A, + B, + C, + D, + E, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + > = ((...r: [AA]) => CurriedFunction4) & + ((...r: [AA, BB]) => CurriedFunction3) & + ((...r: [AA, BB, CC]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE]) => R); + declare type CurriedFunction5 = __CurriedFunction5< + A, + B, + C, + D, + E, + R, + *, + *, + *, + *, + *, + >; + + declare type __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + FF: F, + > = ((...r: [AA]) => CurriedFunction5) & + ((...r: [AA, BB]) => CurriedFunction4) & + ((...r: [AA, BB, CC]) => CurriedFunction3) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE, FF]) => R); + declare type CurriedFunction6 = __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + *, + *, + *, + *, + *, + *, + >; + + declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & + (((...r: [A, B]) => R) => CurriedFunction2) & + (((...r: [A, B, C]) => R) => CurriedFunction3) & + (( + (...r: [A, B, C, D]) => R, + ) => CurriedFunction4) & + (( + (...r: [A, B, C, D, E]) => R, + ) => CurriedFunction5) & + (( + (...r: [A, B, C, D, E, F]) => R, + ) => CurriedFunction6); + + declare type UnaryFn = (a: A) => R; + + declare type TemplateSettings = { + escape?: RegExp, + evaluate?: RegExp, + imports?: Object, + interpolate?: RegExp, + variable?: string, + }; + + declare type TruncateOptions = { + length?: number, + omission?: string, + separator?: RegExp | string, + }; + + declare type DebounceOptions = { + leading?: boolean, + maxWait?: number, + trailing?: boolean, + }; + + declare type ThrottleOptions = { + leading?: boolean, + trailing?: boolean, + }; + + declare type NestedArray = Array>; + + declare type matchesIterateeShorthand = {[string | number]: any}; + declare type matchesPropertyIterateeShorthand = [string, any]; + declare type propertyIterateeShorthand = string; + + declare type OPredicate = + | ((value: A) => any) + | matchesIterateeShorthand + | matchesPropertyIterateeShorthand + | propertyIterateeShorthand; + + declare type OIterateeWithResult = Object | string | ((value: V) => R); + declare type OIteratee = OIterateeWithResult; + declare type OFlatMapIteratee = OIterateeWithResult>; + + declare type Predicate = + | ((value: T) => any) + | matchesIterateeShorthand + | matchesPropertyIterateeShorthand + | propertyIterateeShorthand; + + declare type _ValueOnlyIteratee = (value: T) => mixed; + declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; + declare type _Iteratee = (item: T) => mixed; + declare type Iteratee = _Iteratee | Object | string; + declare type FlatMapIteratee = + | ((item: T) => Array) + | Object + | string; + declare type Comparator = (item: T, item2: T) => boolean; + + declare type MapIterator = ((item: T) => U) | propertyIterateeShorthand; + + declare type OMapIterator = + | ((item: T) => U) + | propertyIterateeShorthand; + + declare class Lodash { + // Array + chunk(size: number): (array: Array) => Array>; + chunk(size: number, array: Array): Array>; + compact(array?: ?$ReadOnlyArray): Array; + concat | T, B: Array | U>( + base: A, + ): (elements: B) => Array; + concat | T, B: Array | U>( + base: A, + elements: B, + ): Array; + difference(values: $ReadOnlyArray): (array: $ReadOnlyArray) => T[]; + difference(values: $ReadOnlyArray, array: $ReadOnlyArray): T[]; + differenceBy( + iteratee: ValueOnlyIteratee, + ): ((values: $ReadOnlyArray) => (array: $ReadOnlyArray) => T[]) & + ((values: $ReadOnlyArray, array: $ReadOnlyArray) => T[]); + differenceBy( + iteratee: ValueOnlyIteratee, + values: $ReadOnlyArray, + ): (array: $ReadOnlyArray) => T[]; + differenceBy( + iteratee: ValueOnlyIteratee, + values: $ReadOnlyArray, + array: $ReadOnlyArray, + ): T[]; + differenceWith( + comparator: Comparator, + ): ((first: $ReadOnly) => (second: $ReadOnly) => T[]) & + ((first: $ReadOnly, second: $ReadOnly) => T[]); + differenceWith( + comparator: Comparator, + first: $ReadOnly, + ): (second: $ReadOnly) => T[]; + differenceWith( + comparator: Comparator, + first: $ReadOnly, + second: $ReadOnly, + ): T[]; + drop(n: number): (array: Array) => Array; + drop(n: number, array: Array): Array; + dropLast(n: number): (array: Array) => Array; + dropLast(n: number, array: Array): Array; + dropRight(n: number): (array: Array) => Array; + dropRight(n: number, array: Array): Array; + dropRightWhile(predicate: Predicate): (array: Array) => Array; + dropRightWhile(predicate: Predicate, array: Array): Array; + dropWhile(predicate: Predicate): (array: Array) => Array; + dropWhile(predicate: Predicate, array: Array): Array; + dropLastWhile(predicate: Predicate): (array: Array) => Array; + dropLastWhile(predicate: Predicate, array: Array): Array; + fill( + start: number, + ): (( + end: number, + ) => ((value: U) => (array: Array) => Array) & + ((value: U, array: Array) => Array)) & + ((end: number, value: U) => (array: Array) => Array) & + ((end: number, value: U, array: Array) => Array); + fill( + start: number, + end: number, + ): ((value: U) => (array: Array) => Array) & + ((value: U, array: Array) => Array); + fill( + start: number, + end: number, + value: U, + ): (array: Array) => Array; + fill( + start: number, + end: number, + value: U, + array: Array, + ): Array; + findIndex(predicate: Predicate): (array: $ReadOnlyArray) => number; + findIndex(predicate: Predicate, array: $ReadOnlyArray): number; + findIndexFrom( + predicate: Predicate, + ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & + ((fromIndex: number, array: $ReadOnlyArray) => number); + findIndexFrom( + predicate: Predicate, + fromIndex: number, + ): (array: $ReadOnlyArray) => number; + findIndexFrom( + predicate: Predicate, + fromIndex: number, + array: $ReadOnlyArray, + ): number; + findLastIndex( + predicate: Predicate, + ): (array: $ReadOnlyArray) => number; + findLastIndex(predicate: Predicate, array: $ReadOnlyArray): number; + findLastIndexFrom( + predicate: Predicate, + ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & + ((fromIndex: number, array: $ReadOnlyArray) => number); + findLastIndexFrom( + predicate: Predicate, + fromIndex: number, + ): (array: $ReadOnlyArray) => number; + findLastIndexFrom( + predicate: Predicate, + fromIndex: number, + array: $ReadOnlyArray, + ): number; + // alias of _.head + first(array: $ReadOnlyArray): T; + flatten(array: Array | X>): Array; + unnest(array: Array | X>): Array; + flattenDeep(array: any[]): Array; + flattenDepth(depth: number): (array: any[]) => any[]; + flattenDepth(depth: number, array: any[]): any[]; + fromPairs(pairs: Array<[A, B]>): {[key: A]: B}; + head(array: $ReadOnlyArray): T; + indexOf(value: T): (array: Array) => number; + indexOf(value: T, array: Array): number; + indexOfFrom( + value: T, + ): ((fromIndex: number) => (array: Array) => number) & + ((fromIndex: number, array: Array) => number); + indexOfFrom(value: T, fromIndex: number): (array: Array) => number; + indexOfFrom(value: T, fromIndex: number, array: Array): number; + initial(array: Array): Array; + init(array: Array): Array; + intersection(a1: Array): (a2: Array) => Array; + intersection(a1: Array, a2: Array): Array; + intersectionBy( + iteratee: ValueOnlyIteratee, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + intersectionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + ): (a2: Array) => Array; + intersectionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array, + ): Array; + intersectionWith( + comparator: Comparator, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + intersectionWith( + comparator: Comparator, + a1: Array, + ): (a2: Array) => Array; + intersectionWith( + comparator: Comparator, + a1: Array, + a2: Array, + ): Array; + join(separator: string): (array: Array) => string; + join(separator: string, array: Array): string; + last(array: Array): T; + lastIndexOf(value: T): (array: Array) => number; + lastIndexOf(value: T, array: Array): number; + lastIndexOfFrom( + value: T, + ): ((fromIndex: number) => (array: Array) => number) & + ((fromIndex: number, array: Array) => number); + lastIndexOfFrom( + value: T, + fromIndex: number, + ): (array: Array) => number; + lastIndexOfFrom(value: T, fromIndex: number, array: Array): number; + nth(n: number): (array: T[]) => T; + nth(n: number, array: T[]): T; + pull(value: T): (array: Array) => Array; + pull(value: T, array: Array): Array; + pullAll(values: Array): (array: Array) => Array; + pullAll(values: Array, array: Array): Array; + pullAllBy( + iteratee: ValueOnlyIteratee, + ): ((values: Array) => (array: Array) => Array) & + ((values: Array, array: Array) => Array); + pullAllBy( + iteratee: ValueOnlyIteratee, + values: Array, + ): (array: Array) => Array; + pullAllBy( + iteratee: ValueOnlyIteratee, + values: Array, + array: Array, + ): Array; + pullAllWith( + comparator: Function, + ): ((values: T[]) => (array: T[]) => T[]) & + ((values: T[], array: T[]) => T[]); + pullAllWith(comparator: Function, values: T[]): (array: T[]) => T[]; + pullAllWith(comparator: Function, values: T[], array: T[]): T[]; + pullAt(indexed: Array): (array: Array) => Array; + pullAt(indexed: Array, array: Array): Array; + remove(predicate: Predicate): (array: Array) => Array; + remove(predicate: Predicate, array: Array): Array; + reverse(array: Array): Array; + slice( + start: number, + ): ((end: number) => (array: Array) => Array) & + ((end: number, array: Array) => Array); + slice(start: number, end: number): (array: Array) => Array; + slice(start: number, end: number, array: Array): Array; + sortedIndex(value: T): (array: Array) => number; + sortedIndex(value: T, array: Array): number; + sortedIndexBy( + iteratee: ValueOnlyIteratee, + ): ((value: T) => (array: Array) => number) & + ((value: T, array: Array) => number); + sortedIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + ): (array: Array) => number; + sortedIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + array: Array, + ): number; + sortedIndexOf(value: T): (array: Array) => number; + sortedIndexOf(value: T, array: Array): number; + sortedLastIndex(value: T): (array: Array) => number; + sortedLastIndex(value: T, array: Array): number; + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + ): ((value: T) => (array: Array) => number) & + ((value: T, array: Array) => number); + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + ): (array: Array) => number; + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + array: Array, + ): number; + sortedLastIndexOf(value: T): (array: Array) => number; + sortedLastIndexOf(value: T, array: Array): number; + sortedUniq(array: Array): Array; + sortedUniqBy(iteratee: ValueOnlyIteratee, array: Array): Array; + tail(array: Array): Array; + take(n: number): (array: $ReadOnlyArray) => Array; + take(n: number, array: $ReadOnlyArray): Array; + takeRight(n: number): (array: $ReadOnlyArray) => Array; + takeRight(n: number, array: $ReadOnlyArray): Array; + takeLast(n: number): (array: Array) => Array; + takeLast(n: number, array: Array): Array; + takeRightWhile(predicate: Predicate): (array: Array) => Array; + takeRightWhile(predicate: Predicate, array: Array): Array; + takeLastWhile(predicate: Predicate): (array: Array) => Array; + takeLastWhile(predicate: Predicate, array: Array): Array; + takeWhile(predicate: Predicate): (array: Array) => Array; + takeWhile(predicate: Predicate, array: Array): Array; + union(a1: Array): (a2: Array) => Array; + union(a1: Array, a2: Array): Array; + unionBy( + iteratee: ValueOnlyIteratee, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + unionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + ): (a2: Array) => Array; + unionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array, + ): Array; + unionWith( + comparator: Comparator, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + unionWith( + comparator: Comparator, + a1: Array, + ): (a2: Array) => Array; + unionWith( + comparator: Comparator, + a1: Array, + a2: Array, + ): Array; + uniq(array: Array): Array; + uniqBy(iteratee: ValueOnlyIteratee): (array: Array) => Array; + uniqBy(iteratee: ValueOnlyIteratee, array: Array): Array; + uniqWith(comparator: Comparator): (array: Array) => Array; + uniqWith(comparator: Comparator, array: Array): Array; + unzip(array: Array): Array; + unzipWith(iteratee: Iteratee): (array: Array) => Array; + unzipWith(iteratee: Iteratee, array: Array): Array; + without(values: Array): (array: Array) => Array; + without(values: Array, array: Array): Array; + xor(a1: Array): (a2: Array) => Array; + xor(a1: Array, a2: Array): Array; + symmetricDifference(a1: Array): (a2: Array) => Array; + symmetricDifference(a1: Array, a2: Array): Array; + xorBy( + iteratee: ValueOnlyIteratee, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + xorBy( + iteratee: ValueOnlyIteratee, + a1: Array, + ): (a2: Array) => Array; + xorBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array, + ): Array; + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + a1: Array, + ): (a2: Array) => Array; + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array, + ): Array; + xorWith( + comparator: Comparator, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + xorWith( + comparator: Comparator, + a1: Array, + ): (a2: Array) => Array; + xorWith(comparator: Comparator, a1: Array, a2: Array): Array; + symmetricDifferenceWith( + comparator: Comparator, + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + symmetricDifferenceWith( + comparator: Comparator, + a1: Array, + ): (a2: Array) => Array; + symmetricDifferenceWith( + comparator: Comparator, + a1: Array, + a2: Array, + ): Array; + zip(a1: A[]): (a2: B[]) => Array<[A, B]>; + zip(a1: A[], a2: B[]): Array<[A, B]>; + zipAll(arrays: Array>): Array; + zipObject(props?: Array): (values?: Array) => {[key: K]: V}; + zipObject(props?: Array, values?: Array): {[key: K]: V}; + zipObj(props: Array): (values: Array) => Object; + zipObj(props: Array, values: Array): Object; + zipObjectDeep(props: any[]): (values: any) => Object; + zipObjectDeep(props: any[], values: any): Object; + zipWith( + iteratee: Iteratee, + ): ((a1: NestedArray) => (a2: NestedArray) => Array) & + ((a1: NestedArray, a2: NestedArray) => Array); + zipWith( + iteratee: Iteratee, + a1: NestedArray, + ): (a2: NestedArray) => Array; + zipWith( + iteratee: Iteratee, + a1: NestedArray, + a2: NestedArray, + ): Array; + // Collection + countBy( + iteratee: ValueOnlyIteratee, + ): (collection: Array | {[id: any]: T}) => {[string]: number}; + countBy( + iteratee: ValueOnlyIteratee, + collection: Array | {[id: any]: T}, + ): {[string]: number}; + // alias of _.forEach + each( + iteratee: Iteratee | OIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + each( + iteratee: Iteratee | OIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + // alias of _.forEachRight + eachRight( + iteratee: Iteratee | OIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + eachRight( + iteratee: Iteratee | OIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + every( + iteratee: Iteratee | OIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => boolean; + every( + iteratee: Iteratee | OIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): boolean; + all( + iteratee: Iteratee | OIteratee, + ): (collection: Array | {[id: any]: T}) => boolean; + all( + iteratee: Iteratee | OIteratee, + collection: Array | {[id: any]: T}, + ): boolean; + filter( + predicate: Predicate | OPredicate, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + filter( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + find( + predicate: Predicate | OPredicate, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => T | void; + find( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | {[id: any]: T}, + ): T | void; + findFrom( + predicate: Predicate | OPredicate, + ): (( + fromIndex: number, + ) => (collection: $ReadOnlyArray | {[id: any]: T}) => T | void) & + (( + fromIndex: number, + collection: $ReadOnlyArray | {[id: any]: T}, + ) => T | void); + findFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + ): (collection: Array | {[id: any]: T}) => T | void; + findFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + collection: $ReadOnlyArray | {[id: any]: T}, + ): T | void; + findLast( + predicate: Predicate | OPredicate, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => T | void; + findLast( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | {[id: any]: T}, + ): T | void; + findLastFrom( + predicate: Predicate | OPredicate, + ): (( + fromIndex: number, + ) => (collection: $ReadOnlyArray | {[id: any]: T}) => T | void) & + (( + fromIndex: number, + collection: $ReadOnlyArray | {[id: any]: T}, + ) => T | void); + findLastFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => T | void; + findLastFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + collection: $ReadOnlyArray | {[id: any]: T}, + ): T | void; + flatMap( + iteratee: FlatMapIteratee | OFlatMapIteratee, + ): (collection: Array | {[id: any]: T}) => Array; + flatMap( + iteratee: FlatMapIteratee | OFlatMapIteratee, + collection: Array | {[id: any]: T}, + ): Array; + flatMapDeep( + iteratee: FlatMapIteratee | OFlatMapIteratee, + ): (collection: Array | {[id: any]: T}) => Array; + flatMapDeep( + iteratee: FlatMapIteratee | OFlatMapIteratee, + collection: Array | {[id: any]: T}, + ): Array; + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + ): (( + depth: number, + ) => (collection: Array | {[id: any]: T}) => Array) & + ((depth: number, collection: Array | {[id: any]: T}) => Array); + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + depth: number, + ): (collection: Array | {[id: any]: T}) => Array; + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + depth: number, + collection: Array | {[id: any]: T}, + ): Array; + forEach( + iteratee: Iteratee | OIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + forEach( + iteratee: Iteratee | OIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + forEachRight( + iteratee: Iteratee | OIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + forEachRight( + iteratee: Iteratee | OIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + groupBy( + iteratee: ValueOnlyIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => {[key: V]: Array}; + groupBy( + iteratee: ValueOnlyIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): {[key: V]: Array}; + includes(value: T): (collection: Array | {[id: any]: T}) => boolean; + includes(value: T, collection: Array | {[id: any]: T}): boolean; + includes(value: string): (str: string) => boolean; + includes(value: string, str: string): boolean; + contains(value: string): (str: string) => boolean; + contains(value: string, str: string): boolean; + contains(value: T): (collection: Array | {[id: any]: T}) => boolean; + contains(value: T, collection: Array | {[id: any]: T}): boolean; + includesFrom( + value: string, + ): ((fromIndex: number) => (str: string) => boolean) & + ((fromIndex: number, str: string) => boolean); + includesFrom(value: string, fromIndex: number): (str: string) => boolean; + includesFrom(value: string, fromIndex: number, str: string): boolean; + includesFrom( + value: T, + ): ((fromIndex: number) => (collection: Array) => boolean) & + ((fromIndex: number, collection: Array) => boolean); + includesFrom( + value: T, + fromIndex: number, + ): (collection: Array) => boolean; + includesFrom(value: T, fromIndex: number, collection: Array): boolean; + invokeMap( + path: ((value: T) => Path) | Path, + ): (collection: Array | {[id: any]: T}) => Array; + invokeMap( + path: ((value: T) => Path) | Path, + collection: Array | {[id: any]: T}, + ): Array; + invokeArgsMap( + path: ((value: T) => Path) | Path, + ): (( + collection: Array | {[id: any]: T}, + ) => (args: Array) => Array) & + ((collection: Array | {[id: any]: T}, args: Array) => Array); + invokeArgsMap( + path: ((value: T) => Path) | Path, + collection: Array | {[id: any]: T}, + ): (args: Array) => Array; + invokeArgsMap( + path: ((value: T) => Path) | Path, + collection: Array | {[id: any]: T}, + args: Array, + ): Array; + keyBy( + iteratee: ValueOnlyIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => {[key: V]: T}; + keyBy( + iteratee: ValueOnlyIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): {[key: V]: T}; + indexBy( + iteratee: ValueOnlyIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => {[key: V]: T}; + indexBy( + iteratee: ValueOnlyIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): {[key: V]: T}; + map( + iteratee: MapIterator | OMapIterator, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + map( + iteratee: MapIterator | OMapIterator, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + map(iteratee: (char: string) => any): (str: string) => string; + map(iteratee: (char: string) => any, str: string): string; + pluck( + iteratee: MapIterator | OMapIterator, + ): (collection: Array | {[id: any]: T}) => Array; + pluck( + iteratee: MapIterator | OMapIterator, + collection: Array | {[id: any]: T}, + ): Array; + pluck(iteratee: (char: string) => any): (str: string) => string; + pluck(iteratee: (char: string) => any, str: string): string; + orderBy( + iteratees: $ReadOnlyArray | OIteratee<*>> | string, + ): (( + orders: $ReadOnlyArray<'asc' | 'desc'> | string, + ) => (collection: $ReadOnlyArray | {[id: any]: T}) => Array) & + (( + orders: $ReadOnlyArray<'asc' | 'desc'> | string, + collection: $ReadOnlyArray | {[id: any]: T}, + ) => Array); + orderBy( + iteratees: $ReadOnlyArray | OIteratee<*>> | string, + orders: $ReadOnlyArray<'asc' | 'desc'> | string, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + orderBy( + iteratees: $ReadOnlyArray | OIteratee<*>> | string, + orders: $ReadOnlyArray<'asc' | 'desc'> | string, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + partition( + predicate: Predicate | OPredicate, + ): (collection: Array | {[id: any]: T}) => [Array, Array]; + partition( + predicate: Predicate | OPredicate, + collection: Array | {[id: any]: T}, + ): [Array, Array]; + reduce( + iteratee: (accumulator: U, value: T) => U, + ): ((accumulator: U) => (collection: Array | {[id: any]: T}) => U) & + ((accumulator: U, collection: Array | {[id: any]: T}) => U); + reduce( + iteratee: (accumulator: U, value: T) => U, + accumulator: U, + ): (collection: Array | {[id: any]: T}) => U; + reduce( + iteratee: (accumulator: U, value: T) => U, + accumulator: U, + collection: Array | {[id: any]: T}, + ): U; + reduceRight( + iteratee: (value: T, accumulator: U) => U, + ): ((accumulator: U) => (collection: Array | {[id: any]: T}) => U) & + ((accumulator: U, collection: Array | {[id: any]: T}) => U); + reduceRight( + iteratee: (value: T, accumulator: U) => U, + accumulator: U, + ): (collection: Array | {[id: any]: T}) => U; + reduceRight( + iteratee: (value: T, accumulator: U) => U, + accumulator: U, + collection: Array | {[id: any]: T}, + ): U; + reject( + predicate: Predicate | OPredicate, + ): (collection: Array | {[id: any]: T}) => Array; + reject( + predicate: Predicate | OPredicate, + collection: Array | {[id: any]: T}, + ): Array; + sample(collection: Array | {[id: any]: T}): T; + sampleSize( + n: number, + ): (collection: Array | {[id: any]: T}) => Array; + sampleSize(n: number, collection: Array | {[id: any]: T}): Array; + shuffle(collection: Array | {[id: any]: T}): Array; + size(collection: $ReadOnlyArray | Object | string): number; + some( + predicate: Predicate | OPredicate, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => boolean; + some( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | {[id: any]: T}, + ): boolean; + any( + predicate: Predicate | OPredicate, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => boolean; + any( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | {[id: any]: T}, + ): boolean; + sortBy( + iteratees: + | $ReadOnlyArray | OIteratee> + | Iteratee + | OIteratee, + ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; + sortBy( + iteratees: + | $ReadOnlyArray | OIteratee> + | Iteratee + | OIteratee, + collection: $ReadOnlyArray | {[id: any]: T}, + ): Array; + + // Date + now(): number; + + // Function + after(fn: Function): (n: number) => Function; + after(fn: Function, n: number): Function; + ary(func: Function): Function; + nAry(n: number): (func: Function) => Function; + nAry(n: number, func: Function): Function; + before(fn: Function): (n: number) => Function; + before(fn: Function, n: number): Function; + bind(func: Function): (thisArg: any) => Function; + bind(func: Function, thisArg: any): Function; + bindKey(obj: Object): (key: string) => Function; + bindKey(obj: Object, key: string): Function; + curry: Curry; + curryN(arity: number): (func: Function) => Function; + curryN(arity: number, func: Function): Function; + curryRight(func: Function): Function; + curryRightN(arity: number): (func: Function) => Function; + curryRightN(arity: number, func: Function): Function; + debounce(wait: number): (func: (...A) => R) => (...A) => R; + debounce(wait: number, func: (...A) => R): (...A) => R; + defer(func: (...any[]) => any): TimeoutID; + delay(wait: number): (func: Function) => TimeoutID; + delay(wait: number, func: Function): TimeoutID; + flip(func: Function): Function; + memoize(func: F): F; + negate(predicate: (...A) => R): (...A) => boolean; + complement(predicate: Function): Function; + once(func: Function): Function; + overArgs(func: Function): (transforms: Array) => Function; + overArgs(func: Function, transforms: Array): Function; + useWith(func: Function): (transforms: Array) => Function; + useWith(func: Function, transforms: Array): Function; + partial(func: Function): (partials: any[]) => Function; + partial(func: Function, partials: any[]): Function; + partialRight(func: Function): (partials: Array) => Function; + partialRight(func: Function, partials: Array): Function; + rearg(indexes: Array): (func: Function) => Function; + rearg(indexes: Array, func: Function): Function; + rest(func: Function): Function; + unapply(func: Function): Function; + restFrom(start: number): (func: Function) => Function; + restFrom(start: number, func: Function): Function; + spread(func: Function): Function; + apply(func: Function): Function; + spreadFrom(start: number): (func: Function) => Function; + spreadFrom(start: number, func: Function): Function; + throttle(wait: number): (func: (...A) => R) => (...A) => R; + throttle(wait: number, func: (...A) => R): (...A) => R; + unary(func: (T, ...any[]) => R): T => R; + wrap(wrapper: Function): (value: any) => Function; + wrap(wrapper: Function, value: any): Function; + + // Lang + castArray(value: *): any[]; + clone(value: T): T; + cloneDeep(value: T): T; + cloneDeepWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + ): (value: T) => U; + cloneDeepWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + value: T, + ): U; + cloneWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + ): (value: T) => U; + cloneWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + value: T, + ): U; + conformsTo( + predicates: T & {[key: string]: (x: any) => boolean}, + ): (source: T) => boolean; + conformsTo( + predicates: T & {[key: string]: (x: any) => boolean}, + source: T, + ): boolean; + where( + predicates: T & {[key: string]: (x: any) => boolean}, + ): (source: T) => boolean; + where( + predicates: T & {[key: string]: (x: any) => boolean}, + source: T, + ): boolean; + conforms( + predicates: T & {[key: string]: (x: any) => boolean}, + ): (source: T) => boolean; + conforms( + predicates: T & {[key: string]: (x: any) => boolean}, + source: T, + ): boolean; + eq(value: any): (other: any) => boolean; + eq(value: any, other: any): boolean; + identical(value: any): (other: any) => boolean; + identical(value: any, other: any): boolean; + gt(value: any): (other: any) => boolean; + gt(value: any, other: any): boolean; + gte(value: any): (other: any) => boolean; + gte(value: any, other: any): boolean; + isArguments(value: any): boolean; + isArray(value: any): boolean; + isArrayBuffer(value: any): boolean; + isArrayLike(value: any): boolean; + isArrayLikeObject(value: any): boolean; + isBoolean(value: any): boolean; + isBuffer(value: any): boolean; + isDate(value: any): boolean; + isElement(value: any): boolean; + isEmpty(value: any): boolean; + isEqual(value: any): (other: any) => boolean; + isEqual(value: any, other: any): boolean; + equals(value: any): (other: any) => boolean; + equals(value: any, other: any): boolean; + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any, + ) => boolean | void, + ): ((value: T) => (other: U) => boolean) & + ((value: T, other: U) => boolean); + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any, + ) => boolean | void, + value: T, + ): (other: U) => boolean; + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any, + ) => boolean | void, + value: T, + other: U, + ): boolean; + isError(value: any): boolean; + isFinite(value: any): boolean; + isFunction(value: any): boolean; + isInteger(value: any): boolean; + isLength(value: any): boolean; + isMap(value: any): boolean; + isMatch(source: Object): (object: Object) => boolean; + isMatch(source: Object, object: Object): boolean; + whereEq(source: Object): (object: Object) => boolean; + whereEq(source: Object, object: Object): boolean; + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U, + ) => boolean | void, + ): ((source: U) => (object: T) => boolean) & + ((source: U, object: T) => boolean); + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U, + ) => boolean | void, + source: U, + ): (object: T) => boolean; + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U, + ) => boolean | void, + source: U, + object: T, + ): boolean; + isNaN(value: any): boolean; + isNative(value: any): boolean; + isNil(value: any): boolean; + isNull(value: any): boolean; + isNumber(value: any): boolean; + isObject(value: any): boolean; + isObjectLike(value: any): boolean; + isPlainObject(value: any): boolean; + isRegExp(value: any): boolean; + isSafeInteger(value: any): boolean; + isSet(value: any): boolean; + isString(value: string): true; + isString(value: any): false; + isSymbol(value: any): boolean; + isTypedArray(value: any): boolean; + isUndefined(value: any): boolean; + isWeakMap(value: any): boolean; + isWeakSet(value: any): boolean; + lt(value: any): (other: any) => boolean; + lt(value: any, other: any): boolean; + lte(value: any): (other: any) => boolean; + lte(value: any, other: any): boolean; + toArray(value: any): Array; + toFinite(value: any): number; + toInteger(value: any): number; + toLength(value: any): number; + toNumber(value: any): number; + toPlainObject(value: any): Object; + toSafeInteger(value: any): number; + toString(value: any): string; + + // Math + add(augend: number): (addend: number) => number; + add(augend: number, addend: number): number; + ceil(number: number): number; + divide(dividend: number): (divisor: number) => number; + divide(dividend: number, divisor: number): number; + floor(number: number): number; + max(array: Array): T; + maxBy(iteratee: Iteratee): (array: Array) => T; + maxBy(iteratee: Iteratee, array: Array): T; + mean(array: Array<*>): number; + meanBy(iteratee: Iteratee): (array: Array) => number; + meanBy(iteratee: Iteratee, array: Array): number; + min(array: Array): T; + minBy(iteratee: Iteratee): (array: Array) => T; + minBy(iteratee: Iteratee, array: Array): T; + multiply(multiplier: number): (multiplicand: number) => number; + multiply(multiplier: number, multiplicand: number): number; + round(number: number): number; + subtract(minuend: number): (subtrahend: number) => number; + subtract(minuend: number, subtrahend: number): number; + sum(array: Array<*>): number; + sumBy(iteratee: Iteratee): (array: Array) => number; + sumBy(iteratee: Iteratee, array: Array): number; + + // number + clamp( + lower: number, + ): ((upper: number) => (number: number) => number) & + ((upper: number, number: number) => number); + clamp(lower: number, upper: number): (number: number) => number; + clamp(lower: number, upper: number, number: number): number; + inRange( + start: number, + ): ((end: number) => (number: number) => boolean) & + ((end: number, number: number) => boolean); + inRange(start: number, end: number): (number: number) => boolean; + inRange(start: number, end: number, number: number): boolean; + random(lower: number): (upper: number) => number; + random(lower: number, upper: number): number; + + // Object + assign(object: Object): (source: Object) => Object; + assign(object: Object, source: Object): Object; + assignAll(objects: Array): Object; + assignInAll(objects: Array): Object; + extendAll(objects: Array): Object; + assignIn(a: A): (b: B) => A & B; + assignIn(a: A, b: B): A & B; + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + object: T, + ): (s1: A) => Object; + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + object: T, + s1: A, + ): Object; + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + object: T, + ): (s1: A) => Object; + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + object: T, + s1: A, + ): Object; + assignInAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + ): (objects: Array) => Object; + assignInAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + objects: Array, + ): Object; + extendAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + ): (objects: Array) => Object; + extendAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + objects: Array, + ): Object; + assignAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + ): (objects: Array) => Object; + assignAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + objects: Array, + ): Object; + at(paths: Array): (object: Object) => Array; + at(paths: Array, object: Object): Array; + props(paths: Array): (object: Object) => Array; + props(paths: Array, object: Object): Array; + paths(paths: Array): (object: Object) => Array; + paths(paths: Array, object: Object): Array; + create(prototype: T): T; + defaults(source: Object): (object: Object) => Object; + defaults(source: Object, object: Object): Object; + defaultsAll(objects: Array): Object; + defaultsDeep(source: Object): (object: Object) => Object; + defaultsDeep(source: Object, object: Object): Object; + defaultsDeepAll(objects: Array): Object; + // alias for _.toPairs + entries(object: Object): Array<[string, any]>; + // alias for _.toPairsIn + entriesIn(object: Object): Array<[string, any]>; + // alias for _.assignIn + extend(a: A): (b: B) => A & B; + extend(a: A, b: B): A & B; + // alias for _.assignInWith + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + object: T, + ): (s1: A) => Object; + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A, + ) => any | void, + object: T, + s1: A, + ): Object; + findKey( + predicate: OPredicate, + ): (object: T) => string | void; + findKey( + predicate: OPredicate, + object: T, + ): string | void; + findLastKey( + predicate: OPredicate, + ): (object: T) => string | void; + findLastKey( + predicate: OPredicate, + object: T, + ): string | void; + forIn(iteratee: OIteratee<*>): (object: Object) => Object; + forIn(iteratee: OIteratee<*>, object: Object): Object; + forInRight(iteratee: OIteratee<*>): (object: Object) => Object; + forInRight(iteratee: OIteratee<*>, object: Object): Object; + forOwn(iteratee: OIteratee<*>): (object: Object) => Object; + forOwn(iteratee: OIteratee<*>, object: Object): Object; + forOwnRight(iteratee: OIteratee<*>): (object: Object) => Object; + forOwnRight(iteratee: OIteratee<*>, object: Object): Object; + functions(object: Object): Array; + functionsIn(object: Object): Array; + get( + path: Path, + ): (object: Object | $ReadOnlyArray | void | null) => any; + get(path: Path, object: Object | $ReadOnlyArray | void | null): any; + prop(path: Path): (object: Object | Array) => any; + prop(path: Path, object: Object | Array): any; + path(path: Path): (object: Object | Array) => any; + path(path: Path, object: Object | Array): any; + getOr( + defaultValue: any, + ): ((path: Path) => (object: Object | Array) => any) & + ((path: Path, object: Object | $ReadOnlyArray | void | null) => any); + getOr( + defaultValue: any, + path: Path, + ): (object: Object | $ReadOnlyArray | void | null) => any; + getOr( + defaultValue: any, + path: Path, + object: Object | $ReadOnlyArray | void | null, + ): any; + propOr( + defaultValue: any, + ): ((path: Path) => (object: Object | Array) => any) & + ((path: Path, object: Object | Array) => any); + propOr(defaultValue: any, path: Path): (object: Object | Array) => any; + propOr(defaultValue: any, path: Path, object: Object | Array): any; + pathOr( + defaultValue: any, + ): ((path: Path) => (object: Object | Array) => any) & + ((path: Path, object: Object | Array) => any); + pathOr(defaultValue: any, path: Path): (object: Object | Array) => any; + pathOr(defaultValue: any, path: Path, object: Object | Array): any; + has(path: Path): (object: Object) => boolean; + has(path: Path, object: Object): boolean; + hasIn(path: Path): (object: Object) => boolean; + hasIn(path: Path, object: Object): boolean; + invert(object: Object): Object; + invertObj(object: Object): Object; + invertBy(iteratee: Function): (object: Object) => Object; + invertBy(iteratee: Function, object: Object): Object; + invoke(path: Path): (object: Object) => any; + invoke(path: Path, object: Object): any; + invokeArgs( + path: Path, + ): ((object: Object) => (args: Array) => any) & + ((object: Object, args: Array) => any); + invokeArgs(path: Path, object: Object): (args: Array) => any; + invokeArgs(path: Path, object: Object, args: Array): any; + keys(object: {[key: K]: any}): Array; + keys(object: Object): Array; + keysIn(object: Object): Array; + mapKeys(iteratee: OIteratee<*>): (object: Object) => Object; + mapKeys(iteratee: OIteratee<*>, object: Object): Object; + mapValues(iteratee: OIteratee<*>): (object: Object) => Object; + mapValues(iteratee: OIteratee<*>, object: Object): Object; + merge(object: Object): (source: Object) => Object; + merge(object: Object, source: Object): Object; + mergeAll(objects: Array): Object; + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + object: T, + ): (s1: A) => Object; + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B, + ) => any | void, + object: T, + s1: A, + ): Object; + mergeAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + ): (objects: Array) => Object; + mergeAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object, + ) => any | void, + objects: Array, + ): Object; + omit(props: Array): (object: Object) => Object; + omit(props: Array, object: Object): Object; + omitAll(props: Array): (object: Object) => Object; + omitAll(props: Array, object: Object): Object; + omitBy( + predicate: OPredicate, + ): (object: T) => Object; + omitBy(predicate: OPredicate, object: T): Object; + pick(props: Array): (object: Object) => Object; + pick(props: Array, object: Object): Object; + pickAll(props: Array): (object: Object) => Object; + pickAll(props: Array, object: Object): Object; + pickBy( + predicate: OPredicate, + ): (object: T) => Object; + pickBy(predicate: OPredicate, object: T): Object; + result(path: Path): (object: Object) => any; + result(path: Path, object: Object): any; + set( + path: Path, + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + set(path: Path, value: any): (object: Object) => Object; + set(path: Path, value: any, object: Object): Object; + assoc( + path: Path, + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + assoc(path: Path, value: any): (object: Object) => Object; + assoc(path: Path, value: any, object: Object): Object; + assocPath( + path: Path, + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + assocPath(path: Path, value: any): (object: Object) => Object; + assocPath(path: Path, value: any, object: Object): Object; + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + ): (( + path: Path, + ) => ((value: any) => (object: T) => Object) & + ((value: any, object: T) => Object)) & + ((path: Path, value: any) => (object: T) => Object) & + ((path: Path, value: any, object: T) => Object); + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Path, + ): ((value: any) => (object: T) => Object) & + ((value: any, object: T) => Object); + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Path, + value: any, + ): (object: T) => Object; + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Path, + value: any, + object: T, + ): Object; + toPairs(object: Object | Array<*>): Array<[string, any]>; + toPairsIn(object: Object): Array<[string, any]>; + transform( + iteratee: OIteratee<*>, + ): (( + accumulator: any, + ) => (collection: Object | $ReadOnlyArray) => any) & + ((accumulator: any, collection: Object | $ReadOnlyArray) => any); + transform( + iteratee: OIteratee<*>, + accumulator: any, + ): (collection: Object | $ReadOnlyArray) => any; + transform( + iteratee: OIteratee<*>, + accumulator: any, + collection: Object | $ReadOnlyArray, + ): any; + unset(path: Path): (object: Object) => Object; + unset(path: Path, object: Object): Object; + dissoc(path: Path): (object: Object) => Object; + dissoc(path: Path, object: Object): Object; + dissocPath(path: Path): (object: Object) => Object; + dissocPath(path: Path, object: Object): Object; + update( + path: Path, + ): ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object); + update(path: Path, updater: Function): (object: Object) => Object; + update(path: Path, updater: Function, object: Object): Object; + updateWith( + customizer: Function, + ): (( + path: Path, + ) => ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object)) & + ((path: Path, updater: Function) => (object: Object) => Object) & + ((path: Path, updater: Function, object: Object) => Object); + updateWith( + customizer: Function, + path: Path, + ): ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object); + updateWith( + customizer: Function, + path: Path, + updater: Function, + ): (object: Object) => Object; + updateWith( + customizer: Function, + path: Path, + updater: Function, + object: Object, + ): Object; + values(object: Object): Array; + valuesIn(object: Object): Array; + + tap(interceptor: (value: T) => any): (value: T) => T; + tap(interceptor: (value: T) => any, value: T): T; + thru(interceptor: (value: T1) => T2): (value: T1) => T2; + thru(interceptor: (value: T1) => T2, value: T1): T2; + + // String + camelCase(string: string): string; + capitalize(string: string): string; + deburr(string: string): string; + endsWith(target: string): (string: string) => boolean; + endsWith(target: string, string: string): boolean; + escape(string: string): string; + escapeRegExp(string: string): string; + kebabCase(string: string): string; + lowerCase(string: string): string; + lowerFirst(string: string): string; + pad(length: number): (string: string) => string; + pad(length: number, string: string): string; + padChars( + chars: string, + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padChars(chars: string, length: number): (string: string) => string; + padChars(chars: string, length: number, string: string): string; + padEnd(length: number): (string: string) => string; + padEnd(length: number, string: string): string; + padCharsEnd( + chars: string, + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padCharsEnd(chars: string, length: number): (string: string) => string; + padCharsEnd(chars: string, length: number, string: string): string; + padStart(length: number): (string: string) => string; + padStart(length: number, string: string): string; + padCharsStart( + chars: string, + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padCharsStart(chars: string, length: number): (string: string) => string; + padCharsStart(chars: string, length: number, string: string): string; + parseInt(radix: number): (string: string) => number; + parseInt(radix: number, string: string): number; + repeat(n: number): (string: string) => string; + repeat(n: number, string: string): string; + replace( + pattern: RegExp | string, + ): (( + replacement: ((string: string) => string) | string, + ) => (string: string) => string) & + (( + replacement: ((string: string) => string) | string, + string: string, + ) => string); + replace( + pattern: RegExp | string, + replacement: ((string: string) => string) | string, + ): (string: string) => string; + replace( + pattern: RegExp | string, + replacement: ((string: string) => string) | string, + string: string, + ): string; + snakeCase(string: string): string; + split(separator: RegExp | string): (string: string) => Array; + split(separator: RegExp | string, string: string): Array; + startCase(string: string): string; + startsWith(target: string): (string: string) => boolean; + startsWith(target: string, string: string): boolean; + template(string: string): Function; + toLower(string: string): string; + toUpper(string: string): string; + trim(string: string): string; + trimChars(chars: string): (string: string) => string; + trimChars(chars: string, string: string): string; + trimEnd(string: string): string; + trimCharsEnd(chars: string): (string: string) => string; + trimCharsEnd(chars: string, string: string): string; + trimStart(string: string): string; + trimCharsStart(chars: string): (string: string) => string; + trimCharsStart(chars: string, string: string): string; + truncate(options: TruncateOptions): (string: string) => string; + truncate(options: TruncateOptions, string: string): string; + unescape(string: string): string; + upperCase(string: string): string; + upperFirst(string: string): string; + words(string: string): Array; + + // Util + attempt(func: Function): any; + bindAll(methodNames: Array): (object: Object) => Object; + bindAll(methodNames: Array, object: Object): Object; + cond(pairs: NestedArray): Function; + constant(value: T): () => T; + always(value: T): () => T; + defaultTo(defaultValue: T2): (value: T1) => T2; + defaultTo(defaultValue: T2, value: T1): T2; + defaultTo(defaultValue: T2): (value: T1) => T1; + defaultTo(defaultValue: T2, value: T1): T1; + // NaN is a number instead of its own type, otherwise it would behave like null/void + defaultTo(defaultValue: T2): (value: T1) => T1 | T2; + defaultTo(defaultValue: T2, value: T1): T1 | T2; + flow: $ComposeReverse & ((funcs: Array) => Function); + pipe: $ComposeReverse & ((funcs: Array) => Function); + flowRight: $Compose & ((funcs: Array) => Function); + compose: $Compose & ((funcs: Array) => Function); + compose(funcs: Array): Function; + identity(value: T): T; + iteratee(func: any): Function; + matches(source: Object): (object: Object) => boolean; + matches(source: Object, object: Object): boolean; + matchesProperty(path: Path): (srcValue: any) => Function; + matchesProperty(path: Path, srcValue: any): Function; + propEq(path: Path): (srcValue: any) => Function; + propEq(path: Path, srcValue: any): Function; + pathEq(path: Path): (srcValue: any) => Function; + pathEq(path: Path, srcValue: any): Function; + method(path: Path): Function; + methodOf(object: Object): Function; + mixin( + object: T, + ): ((source: Object) => (options: {chain: boolean}) => T) & + ((source: Object, options: {chain: boolean}) => T); + mixin( + object: T, + source: Object, + ): (options: {chain: boolean}) => T; + mixin( + object: T, + source: Object, + options: {chain: boolean}, + ): T; + noConflict(): Lodash; + noop(...args: Array): void; + nthArg(n: number): Function; + over(iteratees: Array): Function; + juxt(iteratees: Array): Function; + overEvery(predicates: Array): Function; + allPass(predicates: Array): Function; + overSome(predicates: Array): Function; + anyPass(predicates: Array): Function; + property(path: Path): (object: Object | Array) => any; + property(path: Path, object: Object | Array): any; + propertyOf(object: Object): (path: Path) => Function; + propertyOf(object: Object, path: Path): Function; + range(start: number): (end: number) => Array; + range(start: number, end: number): Array; + rangeStep( + step: number, + ): ((start: number) => (end: number) => Array) & + ((start: number, end: number) => Array); + rangeStep(step: number, start: number): (end: number) => Array; + rangeStep(step: number, start: number, end: number): Array; + rangeRight(start: number): (end: number) => Array; + rangeRight(start: number, end: number): Array; + rangeStepRight( + step: number, + ): ((start: number) => (end: number) => Array) & + ((start: number, end: number) => Array); + rangeStepRight(step: number, start: number): (end: number) => Array; + rangeStepRight(step: number, start: number, end: number): Array; + runInContext(context: Object): Function; + + stubArray(): Array<*>; + stubFalse(): false; + F(): false; + stubObject(): {}; + stubString(): ''; + stubTrue(): true; + T(): true; + times(iteratee: (i: number) => T): (n: number) => Array; + times(iteratee: (i: number) => T, n: number): Array; + toPath(value: any): Array; + uniqueId(prefix: string): string; + + __: any; + placeholder: any; + + convert(options: { + cap?: boolean, + curry?: boolean, + fixed?: boolean, + immutable?: boolean, + rearg?: boolean, + }): void; + + // Properties + VERSION: string; + templateSettings: TemplateSettings; + } + + declare module.exports: Lodash; +} + +declare module 'lodash/chunk' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'chunk'>; +} + +declare module 'lodash/compact' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'compact'>; +} + +declare module 'lodash/concat' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'concat'>; +} + +declare module 'lodash/difference' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'difference'>; +} + +declare module 'lodash/differenceBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'differenceBy'>; +} + +declare module 'lodash/differenceWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'differenceWith'>; +} + +declare module 'lodash/drop' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'drop'>; +} + +declare module 'lodash/dropRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropRight'>; +} + +declare module 'lodash/dropRightWhile' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropRightWhile'>; +} + +declare module 'lodash/dropWhile' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropWhile'>; +} + +declare module 'lodash/fill' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'fill'>; +} + +declare module 'lodash/findIndex' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'findIndex'>; +} + +declare module 'lodash/findLastIndex' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLastIndex'>; +} + +declare module 'lodash/first' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'first'>; +} + +declare module 'lodash/flatten' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatten'>; +} + +declare module 'lodash/flattenDeep' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flattenDeep'>; +} + +declare module 'lodash/flattenDepth' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flattenDepth'>; +} + +declare module 'lodash/fromPairs' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'fromPairs'>; +} + +declare module 'lodash/head' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'head'>; +} + +declare module 'lodash/indexOf' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'indexOf'>; +} + +declare module 'lodash/initial' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'initial'>; +} + +declare module 'lodash/intersection' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersection'>; +} + +declare module 'lodash/intersectionBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersectionBy'>; +} + +declare module 'lodash/intersectionWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersectionWith'>; +} + +declare module 'lodash/join' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'join'>; +} + +declare module 'lodash/last' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'last'>; +} + +declare module 'lodash/lastIndexOf' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'lastIndexOf'>; +} + +declare module 'lodash/nth' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'nth'>; +} + +declare module 'lodash/pull' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pull'>; +} + +declare module 'lodash/pullAll' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAll'>; +} + +declare module 'lodash/pullAllBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAllBy'>; +} + +declare module 'lodash/pullAllWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAllWith'>; +} + +declare module 'lodash/pullAt' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAt'>; +} + +declare module 'lodash/remove' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'remove'>; +} + +declare module 'lodash/reverse' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'reverse'>; +} + +declare module 'lodash/slice' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'slice'>; +} + +declare module 'lodash/sortedIndex' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndex'>; +} + +declare module 'lodash/sortedIndexBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndexBy'>; +} + +declare module 'lodash/sortedIndexOf' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndexOf'>; +} + +declare module 'lodash/sortedLastIndex' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedLastIndex'>; +} + +declare module 'lodash/sortedLastIndexBy' { + declare module.exports: $PropertyType< + $Exports<'lodash'>, + 'sortedLastIndexBy', + >; +} + +declare module 'lodash/sortedLastIndexOf' { + declare module.exports: $PropertyType< + $Exports<'lodash'>, + 'sortedLastIndexOf', + >; +} + +declare module 'lodash/sortedUniq' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedUniq'>; +} + +declare module 'lodash/sortedUniqBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedUniqBy'>; +} + +declare module 'lodash/tail' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'tail'>; +} + +declare module 'lodash/take' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'take'>; +} + +declare module 'lodash/takeRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeRight'>; +} + +declare module 'lodash/takeRightWhile' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeRightWhile'>; +} + +declare module 'lodash/takeWhile' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeWhile'>; +} + +declare module 'lodash/union' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'union'>; +} + +declare module 'lodash/unionBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unionBy'>; +} + +declare module 'lodash/unionWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unionWith'>; +} + +declare module 'lodash/uniq' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniq'>; +} + +declare module 'lodash/uniqBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqBy'>; +} + +declare module 'lodash/uniqWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqWith'>; +} + +declare module 'lodash/unzip' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unzip'>; +} + +declare module 'lodash/unzipWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unzipWith'>; +} + +declare module 'lodash/without' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'without'>; +} + +declare module 'lodash/xor' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'xor'>; +} + +declare module 'lodash/xorBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'xorBy'>; +} + +declare module 'lodash/xorWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'xorWith'>; +} + +declare module 'lodash/zip' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'zip'>; +} + +declare module 'lodash/zipObject' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipObject'>; +} + +declare module 'lodash/zipObjectDeep' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipObjectDeep'>; +} + +declare module 'lodash/zipWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipWith'>; +} + +declare module 'lodash/countBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'countBy'>; +} + +declare module 'lodash/each' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'each'>; +} + +declare module 'lodash/eachRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'eachRight'>; +} + +declare module 'lodash/every' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'every'>; +} + +declare module 'lodash/filter' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'filter'>; +} + +declare module 'lodash/find' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'find'>; +} + +declare module 'lodash/findLast' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLast'>; +} + +declare module 'lodash/flatMap' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMap'>; +} + +declare module 'lodash/flatMapDeep' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMapDeep'>; +} + +declare module 'lodash/flatMapDepth' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMapDepth'>; +} + +declare module 'lodash/forEach' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'forEach'>; +} + +declare module 'lodash/forEachRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'forEachRight'>; +} + +declare module 'lodash/groupBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'groupBy'>; +} + +declare module 'lodash/includes' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'includes'>; +} + +declare module 'lodash/invokeMap' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'invokeMap'>; +} + +declare module 'lodash/keyBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'keyBy'>; +} + +declare module 'lodash/map' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'map'>; +} + +declare module 'lodash/orderBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'orderBy'>; +} + +declare module 'lodash/partition' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'partition'>; +} + +declare module 'lodash/reduce' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'reduce'>; +} + +declare module 'lodash/reduceRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'reduceRight'>; +} + +declare module 'lodash/reject' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'reject'>; +} + +declare module 'lodash/sample' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sample'>; +} + +declare module 'lodash/sampleSize' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sampleSize'>; +} + +declare module 'lodash/shuffle' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'shuffle'>; +} + +declare module 'lodash/size' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'size'>; +} + +declare module 'lodash/some' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'some'>; +} + +declare module 'lodash/sortBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortBy'>; +} + +declare module 'lodash/now' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'now'>; +} + +declare module 'lodash/after' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'after'>; +} + +declare module 'lodash/ary' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'ary'>; +} + +declare module 'lodash/before' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'before'>; +} + +declare module 'lodash/bind' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'bind'>; +} + +declare module 'lodash/bindKey' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'bindKey'>; +} + +declare module 'lodash/curry' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'curry'>; +} + +declare module 'lodash/curryRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'curryRight'>; +} + +declare module 'lodash/debounce' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'debounce'>; +} + +declare module 'lodash/defer' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'defer'>; +} + +declare module 'lodash/delay' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'delay'>; +} + +declare module 'lodash/flip' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flip'>; +} + +declare module 'lodash/memoize' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'memoize'>; +} + +declare module 'lodash/negate' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'negate'>; +} + +declare module 'lodash/once' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'once'>; +} + +declare module 'lodash/overArgs' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'overArgs'>; +} + +declare module 'lodash/partial' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'partial'>; +} + +declare module 'lodash/partialRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'partialRight'>; +} + +declare module 'lodash/rearg' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'rearg'>; +} + +declare module 'lodash/rest' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'rest'>; +} + +declare module 'lodash/spread' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'spread'>; +} + +declare module 'lodash/throttle' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'throttle'>; +} + +declare module 'lodash/unary' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unary'>; +} + +declare module 'lodash/wrap' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'wrap'>; +} + +declare module 'lodash/castArray' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'castArray'>; +} + +declare module 'lodash/clone' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'clone'>; +} + +declare module 'lodash/cloneDeep' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneDeep'>; +} + +declare module 'lodash/cloneDeepWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneDeepWith'>; +} + +declare module 'lodash/cloneWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneWith'>; +} + +declare module 'lodash/conformsTo' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'conformsTo'>; +} + +declare module 'lodash/eq' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'eq'>; +} + +declare module 'lodash/gt' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'gt'>; +} + +declare module 'lodash/gte' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'gte'>; +} + +declare module 'lodash/isArguments' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArguments'>; +} + +declare module 'lodash/isArray' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArray'>; +} + +declare module 'lodash/isArrayBuffer' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayBuffer'>; +} + +declare module 'lodash/isArrayLike' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayLike'>; +} + +declare module 'lodash/isArrayLikeObject' { + declare module.exports: $PropertyType< + $Exports<'lodash'>, + 'isArrayLikeObject', + >; +} + +declare module 'lodash/isBoolean' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isBoolean'>; +} + +declare module 'lodash/isBuffer' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isBuffer'>; +} + +declare module 'lodash/isDate' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isDate'>; +} + +declare module 'lodash/isElement' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isElement'>; +} + +declare module 'lodash/isEmpty' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEmpty'>; +} + +declare module 'lodash/isEqual' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEqual'>; +} + +declare module 'lodash/isEqualWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEqualWith'>; +} + +declare module 'lodash/isError' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isError'>; +} + +declare module 'lodash/isFinite' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isFinite'>; +} + +declare module 'lodash/isFunction' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isFunction'>; +} + +declare module 'lodash/isInteger' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isInteger'>; +} + +declare module 'lodash/isLength' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isLength'>; +} + +declare module 'lodash/isMap' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMap'>; +} + +declare module 'lodash/isMatch' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMatch'>; +} + +declare module 'lodash/isMatchWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMatchWith'>; +} + +declare module 'lodash/isNaN' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNaN'>; +} + +declare module 'lodash/isNative' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNative'>; +} + +declare module 'lodash/isNil' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNil'>; +} + +declare module 'lodash/isNull' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNull'>; +} + +declare module 'lodash/isNumber' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNumber'>; +} + +declare module 'lodash/isObject' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isObject'>; +} + +declare module 'lodash/isObjectLike' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isObjectLike'>; +} + +declare module 'lodash/isPlainObject' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isPlainObject'>; +} + +declare module 'lodash/isRegExp' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isRegExp'>; +} + +declare module 'lodash/isSafeInteger' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSafeInteger'>; +} + +declare module 'lodash/isSet' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSet'>; +} + +declare module 'lodash/isString' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isString'>; +} + +declare module 'lodash/isSymbol' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSymbol'>; +} + +declare module 'lodash/isTypedArray' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isTypedArray'>; +} + +declare module 'lodash/isUndefined' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isUndefined'>; +} + +declare module 'lodash/isWeakMap' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isWeakMap'>; +} + +declare module 'lodash/isWeakSet' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'isWeakSet'>; +} + +declare module 'lodash/lt' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'lt'>; +} + +declare module 'lodash/lte' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'lte'>; +} + +declare module 'lodash/toArray' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toArray'>; +} + +declare module 'lodash/toFinite' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toFinite'>; +} + +declare module 'lodash/toInteger' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toInteger'>; +} + +declare module 'lodash/toLength' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toLength'>; +} + +declare module 'lodash/toNumber' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toNumber'>; +} + +declare module 'lodash/toPlainObject' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPlainObject'>; +} + +declare module 'lodash/toSafeInteger' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toSafeInteger'>; +} + +declare module 'lodash/toString' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toString'>; +} + +declare module 'lodash/add' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'add'>; +} + +declare module 'lodash/ceil' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'ceil'>; +} + +declare module 'lodash/divide' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'divide'>; +} + +declare module 'lodash/floor' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'floor'>; +} + +declare module 'lodash/max' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'max'>; +} + +declare module 'lodash/maxBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'maxBy'>; +} + +declare module 'lodash/mean' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'mean'>; +} + +declare module 'lodash/meanBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'meanBy'>; +} + +declare module 'lodash/min' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'min'>; +} + +declare module 'lodash/minBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'minBy'>; +} + +declare module 'lodash/multiply' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'multiply'>; +} + +declare module 'lodash/round' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'round'>; +} + +declare module 'lodash/subtract' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'subtract'>; +} + +declare module 'lodash/sum' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sum'>; +} + +declare module 'lodash/sumBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'sumBy'>; +} + +declare module 'lodash/clamp' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'clamp'>; +} + +declare module 'lodash/inRange' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'inRange'>; +} + +declare module 'lodash/random' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'random'>; +} + +declare module 'lodash/assign' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'assign'>; +} + +declare module 'lodash/assignIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignIn'>; +} + +declare module 'lodash/assignInWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignInWith'>; +} + +declare module 'lodash/assignWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignWith'>; +} + +declare module 'lodash/at' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'at'>; +} + +declare module 'lodash/create' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'create'>; +} + +declare module 'lodash/defaults' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaults'>; +} + +declare module 'lodash/defaultsDeep' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaultsDeep'>; +} + +declare module 'lodash/entries' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'entries'>; +} + +declare module 'lodash/entriesIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'entriesIn'>; +} + +declare module 'lodash/extend' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'extend'>; +} + +declare module 'lodash/extendWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'extendWith'>; +} + +declare module 'lodash/findKey' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'findKey'>; +} + +declare module 'lodash/findLastKey' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLastKey'>; +} + +declare module 'lodash/forIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'forIn'>; +} + +declare module 'lodash/forInRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'forInRight'>; +} + +declare module 'lodash/forOwn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'forOwn'>; +} + +declare module 'lodash/forOwnRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'forOwnRight'>; +} + +declare module 'lodash/functions' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'functions'>; +} + +declare module 'lodash/functionsIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'functionsIn'>; +} + +declare module 'lodash/get' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'get'>; +} + +declare module 'lodash/has' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'has'>; +} + +declare module 'lodash/hasIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'hasIn'>; +} + +declare module 'lodash/invert' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'invert'>; +} + +declare module 'lodash/invertBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'invertBy'>; +} + +declare module 'lodash/invoke' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'invoke'>; +} + +declare module 'lodash/keys' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'keys'>; +} + +declare module 'lodash/keysIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'keysIn'>; +} + +declare module 'lodash/mapKeys' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'mapKeys'>; +} + +declare module 'lodash/mapValues' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'mapValues'>; +} + +declare module 'lodash/merge' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'merge'>; +} + +declare module 'lodash/mergeWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'mergeWith'>; +} + +declare module 'lodash/omit' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'omit'>; +} + +declare module 'lodash/omitBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'omitBy'>; +} + +declare module 'lodash/pick' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pick'>; +} + +declare module 'lodash/pickBy' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pickBy'>; +} + +declare module 'lodash/result' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'result'>; +} + +declare module 'lodash/set' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'set'>; +} + +declare module 'lodash/setWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'setWith'>; +} + +declare module 'lodash/toPairs' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPairs'>; +} + +declare module 'lodash/toPairsIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPairsIn'>; +} + +declare module 'lodash/transform' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'transform'>; +} + +declare module 'lodash/unset' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unset'>; +} + +declare module 'lodash/update' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'update'>; +} + +declare module 'lodash/updateWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'updateWith'>; +} + +declare module 'lodash/values' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'values'>; +} + +declare module 'lodash/valuesIn' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'valuesIn'>; +} + +declare module 'lodash/chain' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'chain'>; +} + +declare module 'lodash/tap' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'tap'>; +} + +declare module 'lodash/thru' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'thru'>; +} + +declare module 'lodash/camelCase' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'camelCase'>; +} + +declare module 'lodash/capitalize' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'capitalize'>; +} + +declare module 'lodash/deburr' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'deburr'>; +} + +declare module 'lodash/endsWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'endsWith'>; +} + +declare module 'lodash/escape' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'escape'>; +} + +declare module 'lodash/escapeRegExp' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'escapeRegExp'>; +} + +declare module 'lodash/kebabCase' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'kebabCase'>; +} + +declare module 'lodash/lowerCase' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'lowerCase'>; +} + +declare module 'lodash/lowerFirst' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'lowerFirst'>; +} + +declare module 'lodash/pad' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'pad'>; +} + +declare module 'lodash/padEnd' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'padEnd'>; +} + +declare module 'lodash/padStart' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'padStart'>; +} + +declare module 'lodash/parseInt' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'parseInt'>; +} + +declare module 'lodash/repeat' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'repeat'>; +} + +declare module 'lodash/replace' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'replace'>; +} + +declare module 'lodash/snakeCase' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'snakeCase'>; +} + +declare module 'lodash/split' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'split'>; +} + +declare module 'lodash/startCase' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'startCase'>; +} + +declare module 'lodash/startsWith' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'startsWith'>; +} + +declare module 'lodash/template' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'template'>; +} + +declare module 'lodash/toLower' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toLower'>; +} + +declare module 'lodash/toUpper' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toUpper'>; +} + +declare module 'lodash/trim' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'trim'>; +} + +declare module 'lodash/trimEnd' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'trimEnd'>; +} + +declare module 'lodash/trimStart' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'trimStart'>; +} + +declare module 'lodash/truncate' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'truncate'>; +} + +declare module 'lodash/unescape' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'unescape'>; +} + +declare module 'lodash/upperCase' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'upperCase'>; +} + +declare module 'lodash/upperFirst' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'upperFirst'>; +} + +declare module 'lodash/words' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'words'>; +} + +declare module 'lodash/attempt' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'attempt'>; +} + +declare module 'lodash/bindAll' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'bindAll'>; +} + +declare module 'lodash/cond' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'cond'>; +} + +declare module 'lodash/conforms' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'conforms'>; +} + +declare module 'lodash/constant' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'constant'>; +} + +declare module 'lodash/defaultTo' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaultTo'>; +} + +declare module 'lodash/flow' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flow'>; +} + +declare module 'lodash/flowRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'flowRight'>; +} + +declare module 'lodash/identity' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'identity'>; +} + +declare module 'lodash/iteratee' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'iteratee'>; +} + +declare module 'lodash/matches' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'matches'>; +} + +declare module 'lodash/matchesProperty' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'matchesProperty'>; +} + +declare module 'lodash/method' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'method'>; +} + +declare module 'lodash/methodOf' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'methodOf'>; +} + +declare module 'lodash/mixin' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'mixin'>; +} + +declare module 'lodash/noConflict' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'noConflict'>; +} + +declare module 'lodash/noop' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'noop'>; +} + +declare module 'lodash/nthArg' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'nthArg'>; +} + +declare module 'lodash/over' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'over'>; +} + +declare module 'lodash/overEvery' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'overEvery'>; +} + +declare module 'lodash/overSome' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'overSome'>; +} + +declare module 'lodash/property' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'property'>; +} + +declare module 'lodash/propertyOf' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'propertyOf'>; +} + +declare module 'lodash/range' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'range'>; +} + +declare module 'lodash/rangeRight' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'rangeRight'>; +} + +declare module 'lodash/runInContext' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'runInContext'>; +} + +declare module 'lodash/stubArray' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubArray'>; +} + +declare module 'lodash/stubFalse' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubFalse'>; +} + +declare module 'lodash/stubObject' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubObject'>; +} + +declare module 'lodash/stubString' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubString'>; +} + +declare module 'lodash/stubTrue' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubTrue'>; +} + +declare module 'lodash/times' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'times'>; +} + +declare module 'lodash/toPath' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPath'>; +} + +declare module 'lodash/uniqueId' { + declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqueId'>; +} + +declare module 'lodash/fp/chunk' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'chunk'>; +} + +declare module 'lodash/fp/compact' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'compact'>; +} + +declare module 'lodash/fp/concat' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'concat'>; +} + +declare module 'lodash/fp/difference' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'difference'>; +} + +declare module 'lodash/fp/differenceBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'differenceBy'>; +} + +declare module 'lodash/fp/differenceWith' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'differenceWith', + >; +} + +declare module 'lodash/fp/drop' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'drop'>; +} + +declare module 'lodash/fp/dropLast' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropLast'>; +} + +declare module 'lodash/fp/dropRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropRight'>; +} + +declare module 'lodash/fp/dropRightWhile' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'dropRightWhile', + >; +} + +declare module 'lodash/fp/dropWhile' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropWhile'>; +} + +declare module 'lodash/fp/dropLastWhile' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropLastWhile'>; +} + +declare module 'lodash/fp/fill' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'fill'>; +} + +declare module 'lodash/fp/findIndex' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findIndex'>; +} + +declare module 'lodash/fp/findIndexFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findIndexFrom'>; +} + +declare module 'lodash/fp/findLastIndex' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLastIndex'>; +} + +declare module 'lodash/fp/findLastIndexFrom' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'findLastIndexFrom', + >; +} + +declare module 'lodash/fp/first' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'first'>; +} + +declare module 'lodash/fp/flatten' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatten'>; +} + +declare module 'lodash/fp/unnest' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unnest'>; +} + +declare module 'lodash/fp/flattenDeep' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flattenDeep'>; +} + +declare module 'lodash/fp/flattenDepth' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flattenDepth'>; +} + +declare module 'lodash/fp/fromPairs' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'fromPairs'>; +} + +declare module 'lodash/fp/head' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'head'>; +} + +declare module 'lodash/fp/indexOf' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'indexOf'>; +} + +declare module 'lodash/fp/indexOfFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'indexOfFrom'>; +} + +declare module 'lodash/fp/initial' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'initial'>; +} + +declare module 'lodash/fp/init' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'init'>; +} + +declare module 'lodash/fp/intersection' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'intersection'>; +} + +declare module 'lodash/fp/intersectionBy' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'intersectionBy', + >; +} + +declare module 'lodash/fp/intersectionWith' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'intersectionWith', + >; +} + +declare module 'lodash/fp/join' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'join'>; +} + +declare module 'lodash/fp/last' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'last'>; +} + +declare module 'lodash/fp/lastIndexOf' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lastIndexOf'>; +} + +declare module 'lodash/fp/lastIndexOfFrom' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'lastIndexOfFrom', + >; +} + +declare module 'lodash/fp/nth' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'nth'>; +} + +declare module 'lodash/fp/pull' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pull'>; +} + +declare module 'lodash/fp/pullAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAll'>; +} + +declare module 'lodash/fp/pullAllBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAllBy'>; +} + +declare module 'lodash/fp/pullAllWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAllWith'>; +} + +declare module 'lodash/fp/pullAt' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAt'>; +} + +declare module 'lodash/fp/remove' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'remove'>; +} + +declare module 'lodash/fp/reverse' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reverse'>; +} + +declare module 'lodash/fp/slice' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'slice'>; +} + +declare module 'lodash/fp/sortedIndex' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedIndex'>; +} + +declare module 'lodash/fp/sortedIndexBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedIndexBy'>; +} + +declare module 'lodash/fp/sortedIndexOf' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedIndexOf'>; +} + +declare module 'lodash/fp/sortedLastIndex' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'sortedLastIndex', + >; +} + +declare module 'lodash/fp/sortedLastIndexBy' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'sortedLastIndexBy', + >; +} + +declare module 'lodash/fp/sortedLastIndexOf' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'sortedLastIndexOf', + >; +} + +declare module 'lodash/fp/sortedUniq' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedUniq'>; +} + +declare module 'lodash/fp/sortedUniqBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedUniqBy'>; +} + +declare module 'lodash/fp/tail' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'tail'>; +} + +declare module 'lodash/fp/take' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'take'>; +} + +declare module 'lodash/fp/takeRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeRight'>; +} + +declare module 'lodash/fp/takeLast' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeLast'>; +} + +declare module 'lodash/fp/takeRightWhile' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'takeRightWhile', + >; +} + +declare module 'lodash/fp/takeLastWhile' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeLastWhile'>; +} + +declare module 'lodash/fp/takeWhile' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeWhile'>; +} + +declare module 'lodash/fp/union' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'union'>; +} + +declare module 'lodash/fp/unionBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unionBy'>; +} + +declare module 'lodash/fp/unionWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unionWith'>; +} + +declare module 'lodash/fp/uniq' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniq'>; +} + +declare module 'lodash/fp/uniqBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniqBy'>; +} + +declare module 'lodash/fp/uniqWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniqWith'>; +} + +declare module 'lodash/fp/unzip' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unzip'>; +} + +declare module 'lodash/fp/unzipWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unzipWith'>; +} + +declare module 'lodash/fp/without' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'without'>; +} + +declare module 'lodash/fp/xor' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'xor'>; +} + +declare module 'lodash/fp/symmetricDifference' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'symmetricDifference', + >; +} + +declare module 'lodash/fp/xorBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'xorBy'>; +} + +declare module 'lodash/fp/symmetricDifferenceBy' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'symmetricDifferenceBy', + >; +} + +declare module 'lodash/fp/xorWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'xorWith'>; +} + +declare module 'lodash/fp/symmetricDifferenceWith' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'symmetricDifferenceWith', + >; +} + +declare module 'lodash/fp/zip' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zip'>; +} + +declare module 'lodash/fp/zipAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipAll'>; +} + +declare module 'lodash/fp/zipObject' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipObject'>; +} + +declare module 'lodash/fp/zipObj' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipObj'>; +} + +declare module 'lodash/fp/zipObjectDeep' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipObjectDeep'>; +} + +declare module 'lodash/fp/zipWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipWith'>; +} + +declare module 'lodash/fp/countBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'countBy'>; +} + +declare module 'lodash/fp/each' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'each'>; +} + +declare module 'lodash/fp/eachRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'eachRight'>; +} + +declare module 'lodash/fp/every' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'every'>; +} + +declare module 'lodash/fp/all' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'all'>; +} + +declare module 'lodash/fp/filter' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'filter'>; +} + +declare module 'lodash/fp/find' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'find'>; +} + +declare module 'lodash/fp/findFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findFrom'>; +} + +declare module 'lodash/fp/findLast' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLast'>; +} + +declare module 'lodash/fp/findLastFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLastFrom'>; +} + +declare module 'lodash/fp/flatMap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatMap'>; +} + +declare module 'lodash/fp/flatMapDeep' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatMapDeep'>; +} + +declare module 'lodash/fp/flatMapDepth' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatMapDepth'>; +} + +declare module 'lodash/fp/forEach' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forEach'>; +} + +declare module 'lodash/fp/forEachRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forEachRight'>; +} + +declare module 'lodash/fp/groupBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'groupBy'>; +} + +declare module 'lodash/fp/includes' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'includes'>; +} + +declare module 'lodash/fp/contains' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'contains'>; +} + +declare module 'lodash/fp/includesFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'includesFrom'>; +} + +declare module 'lodash/fp/invokeMap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invokeMap'>; +} + +declare module 'lodash/fp/invokeArgsMap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invokeArgsMap'>; +} + +declare module 'lodash/fp/keyBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'keyBy'>; +} + +declare module 'lodash/fp/indexBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'indexBy'>; +} + +declare module 'lodash/fp/map' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'map'>; +} + +declare module 'lodash/fp/pluck' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pluck'>; +} + +declare module 'lodash/fp/orderBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'orderBy'>; +} + +declare module 'lodash/fp/partition' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'partition'>; +} + +declare module 'lodash/fp/reduce' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reduce'>; +} + +declare module 'lodash/fp/reduceRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reduceRight'>; +} + +declare module 'lodash/fp/reject' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reject'>; +} + +declare module 'lodash/fp/sample' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sample'>; +} + +declare module 'lodash/fp/sampleSize' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sampleSize'>; +} + +declare module 'lodash/fp/shuffle' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'shuffle'>; +} + +declare module 'lodash/fp/size' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'size'>; +} + +declare module 'lodash/fp/some' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'some'>; +} + +declare module 'lodash/fp/any' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'any'>; +} + +declare module 'lodash/fp/sortBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortBy'>; +} + +declare module 'lodash/fp/now' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'now'>; +} + +declare module 'lodash/fp/after' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'after'>; +} + +declare module 'lodash/fp/ary' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'ary'>; +} + +declare module 'lodash/fp/nAry' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'nAry'>; +} + +declare module 'lodash/fp/before' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'before'>; +} + +declare module 'lodash/fp/bind' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'bind'>; +} + +declare module 'lodash/fp/bindKey' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'bindKey'>; +} + +declare module 'lodash/fp/curry' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curry'>; +} + +declare module 'lodash/fp/curryN' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curryN'>; +} + +declare module 'lodash/fp/curryRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curryRight'>; +} + +declare module 'lodash/fp/curryRightN' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curryRightN'>; +} + +declare module 'lodash/fp/debounce' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'debounce'>; +} + +declare module 'lodash/fp/defer' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defer'>; +} + +declare module 'lodash/fp/delay' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'delay'>; +} + +declare module 'lodash/fp/flip' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flip'>; +} + +declare module 'lodash/fp/memoize' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'memoize'>; +} + +declare module 'lodash/fp/negate' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'negate'>; +} + +declare module 'lodash/fp/complement' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'complement'>; +} + +declare module 'lodash/fp/once' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'once'>; +} + +declare module 'lodash/fp/overArgs' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'overArgs'>; +} + +declare module 'lodash/fp/useWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'useWith'>; +} + +declare module 'lodash/fp/partial' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'partial'>; +} + +declare module 'lodash/fp/partialRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'partialRight'>; +} + +declare module 'lodash/fp/rearg' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rearg'>; +} + +declare module 'lodash/fp/rest' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rest'>; +} + +declare module 'lodash/fp/unapply' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unapply'>; +} + +declare module 'lodash/fp/restFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'restFrom'>; +} + +declare module 'lodash/fp/spread' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'spread'>; +} + +declare module 'lodash/fp/apply' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'apply'>; +} + +declare module 'lodash/fp/spreadFrom' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'spreadFrom'>; +} + +declare module 'lodash/fp/throttle' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'throttle'>; +} + +declare module 'lodash/fp/unary' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unary'>; +} + +declare module 'lodash/fp/wrap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'wrap'>; +} + +declare module 'lodash/fp/castArray' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'castArray'>; +} + +declare module 'lodash/fp/clone' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'clone'>; +} + +declare module 'lodash/fp/cloneDeep' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cloneDeep'>; +} + +declare module 'lodash/fp/cloneDeepWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cloneDeepWith'>; +} + +declare module 'lodash/fp/cloneWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cloneWith'>; +} + +declare module 'lodash/fp/conformsTo' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'conformsTo'>; +} + +declare module 'lodash/fp/where' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'where'>; +} + +declare module 'lodash/fp/conforms' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'conforms'>; +} + +declare module 'lodash/fp/eq' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'eq'>; +} + +declare module 'lodash/fp/identical' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'identical'>; +} + +declare module 'lodash/fp/gt' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'gt'>; +} + +declare module 'lodash/fp/gte' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'gte'>; +} + +declare module 'lodash/fp/isArguments' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArguments'>; +} + +declare module 'lodash/fp/isArray' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArray'>; +} + +declare module 'lodash/fp/isArrayBuffer' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArrayBuffer'>; +} + +declare module 'lodash/fp/isArrayLike' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArrayLike'>; +} + +declare module 'lodash/fp/isArrayLikeObject' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'isArrayLikeObject', + >; +} + +declare module 'lodash/fp/isBoolean' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isBoolean'>; +} + +declare module 'lodash/fp/isBuffer' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isBuffer'>; +} + +declare module 'lodash/fp/isDate' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isDate'>; +} + +declare module 'lodash/fp/isElement' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isElement'>; +} + +declare module 'lodash/fp/isEmpty' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isEmpty'>; +} + +declare module 'lodash/fp/isEqual' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isEqual'>; +} + +declare module 'lodash/fp/equals' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'equals'>; +} + +declare module 'lodash/fp/isEqualWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isEqualWith'>; +} + +declare module 'lodash/fp/isError' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isError'>; +} + +declare module 'lodash/fp/isFinite' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isFinite'>; +} + +declare module 'lodash/fp/isFunction' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isFunction'>; +} + +declare module 'lodash/fp/isInteger' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isInteger'>; +} + +declare module 'lodash/fp/isLength' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isLength'>; +} + +declare module 'lodash/fp/isMap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isMap'>; +} + +declare module 'lodash/fp/isMatch' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isMatch'>; +} + +declare module 'lodash/fp/whereEq' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'whereEq'>; +} + +declare module 'lodash/fp/isMatchWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isMatchWith'>; +} + +declare module 'lodash/fp/isNaN' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNaN'>; +} + +declare module 'lodash/fp/isNative' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNative'>; +} + +declare module 'lodash/fp/isNil' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNil'>; +} + +declare module 'lodash/fp/isNull' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNull'>; +} + +declare module 'lodash/fp/isNumber' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNumber'>; +} + +declare module 'lodash/fp/isObject' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isObject'>; +} + +declare module 'lodash/fp/isObjectLike' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isObjectLike'>; +} + +declare module 'lodash/fp/isPlainObject' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isPlainObject'>; +} + +declare module 'lodash/fp/isRegExp' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isRegExp'>; +} + +declare module 'lodash/fp/isSafeInteger' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isSafeInteger'>; +} + +declare module 'lodash/fp/isSet' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isSet'>; +} + +declare module 'lodash/fp/isString' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isString'>; +} + +declare module 'lodash/fp/isSymbol' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isSymbol'>; +} + +declare module 'lodash/fp/isTypedArray' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isTypedArray'>; +} + +declare module 'lodash/fp/isUndefined' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isUndefined'>; +} + +declare module 'lodash/fp/isWeakMap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isWeakMap'>; +} + +declare module 'lodash/fp/isWeakSet' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isWeakSet'>; +} + +declare module 'lodash/fp/lt' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lt'>; +} + +declare module 'lodash/fp/lte' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lte'>; +} + +declare module 'lodash/fp/toArray' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toArray'>; +} + +declare module 'lodash/fp/toFinite' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toFinite'>; +} + +declare module 'lodash/fp/toInteger' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toInteger'>; +} + +declare module 'lodash/fp/toLength' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toLength'>; +} + +declare module 'lodash/fp/toNumber' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toNumber'>; +} + +declare module 'lodash/fp/toPlainObject' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPlainObject'>; +} + +declare module 'lodash/fp/toSafeInteger' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toSafeInteger'>; +} + +declare module 'lodash/fp/toString' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toString'>; +} + +declare module 'lodash/fp/add' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'add'>; +} + +declare module 'lodash/fp/ceil' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'ceil'>; +} + +declare module 'lodash/fp/divide' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'divide'>; +} + +declare module 'lodash/fp/floor' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'floor'>; +} + +declare module 'lodash/fp/max' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'max'>; +} + +declare module 'lodash/fp/maxBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'maxBy'>; +} + +declare module 'lodash/fp/mean' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mean'>; +} + +declare module 'lodash/fp/meanBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'meanBy'>; +} + +declare module 'lodash/fp/min' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'min'>; +} + +declare module 'lodash/fp/minBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'minBy'>; +} + +declare module 'lodash/fp/multiply' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'multiply'>; +} + +declare module 'lodash/fp/round' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'round'>; +} + +declare module 'lodash/fp/subtract' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'subtract'>; +} + +declare module 'lodash/fp/sum' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sum'>; +} + +declare module 'lodash/fp/sumBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sumBy'>; +} + +declare module 'lodash/fp/clamp' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'clamp'>; +} + +declare module 'lodash/fp/inRange' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'inRange'>; +} + +declare module 'lodash/fp/random' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'random'>; +} + +declare module 'lodash/fp/assign' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assign'>; +} + +declare module 'lodash/fp/assignAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignAll'>; +} + +declare module 'lodash/fp/assignInAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignInAll'>; +} + +declare module 'lodash/fp/extendAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extendAll'>; +} + +declare module 'lodash/fp/assignIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignIn'>; +} + +declare module 'lodash/fp/assignInWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignInWith'>; +} + +declare module 'lodash/fp/assignWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignWith'>; +} + +declare module 'lodash/fp/assignInAllWith' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'assignInAllWith', + >; +} + +declare module 'lodash/fp/extendAllWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extendAllWith'>; +} + +declare module 'lodash/fp/assignAllWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignAllWith'>; +} + +declare module 'lodash/fp/at' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'at'>; +} + +declare module 'lodash/fp/props' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'props'>; +} + +declare module 'lodash/fp/paths' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'paths'>; +} + +declare module 'lodash/fp/create' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'create'>; +} + +declare module 'lodash/fp/defaults' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaults'>; +} + +declare module 'lodash/fp/defaultsAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaultsAll'>; +} + +declare module 'lodash/fp/defaultsDeep' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaultsDeep'>; +} + +declare module 'lodash/fp/defaultsDeepAll' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'defaultsDeepAll', + >; +} + +declare module 'lodash/fp/entries' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'entries'>; +} + +declare module 'lodash/fp/entriesIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'entriesIn'>; +} + +declare module 'lodash/fp/extend' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extend'>; +} + +declare module 'lodash/fp/extendWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extendWith'>; +} + +declare module 'lodash/fp/findKey' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findKey'>; +} + +declare module 'lodash/fp/findLastKey' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLastKey'>; +} + +declare module 'lodash/fp/forIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forIn'>; +} + +declare module 'lodash/fp/forInRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forInRight'>; +} + +declare module 'lodash/fp/forOwn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forOwn'>; +} + +declare module 'lodash/fp/forOwnRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forOwnRight'>; +} + +declare module 'lodash/fp/functions' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'functions'>; +} + +declare module 'lodash/fp/functionsIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'functionsIn'>; +} + +declare module 'lodash/fp/get' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'get'>; +} + +declare module 'lodash/fp/prop' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'prop'>; +} + +declare module 'lodash/fp/path' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'path'>; +} + +declare module 'lodash/fp/getOr' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'getOr'>; +} + +declare module 'lodash/fp/propOr' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'propOr'>; +} + +declare module 'lodash/fp/pathOr' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pathOr'>; +} + +declare module 'lodash/fp/has' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'has'>; +} + +declare module 'lodash/fp/hasIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'hasIn'>; +} + +declare module 'lodash/fp/invert' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invert'>; +} + +declare module 'lodash/fp/invertObj' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invertObj'>; +} + +declare module 'lodash/fp/invertBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invertBy'>; +} + +declare module 'lodash/fp/invoke' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invoke'>; +} + +declare module 'lodash/fp/invokeArgs' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invokeArgs'>; +} + +declare module 'lodash/fp/keys' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'keys'>; +} + +declare module 'lodash/fp/keysIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'keysIn'>; +} + +declare module 'lodash/fp/mapKeys' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mapKeys'>; +} + +declare module 'lodash/fp/mapValues' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mapValues'>; +} + +declare module 'lodash/fp/merge' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'merge'>; +} + +declare module 'lodash/fp/mergeAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mergeAll'>; +} + +declare module 'lodash/fp/mergeWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mergeWith'>; +} + +declare module 'lodash/fp/mergeAllWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mergeAllWith'>; +} + +declare module 'lodash/fp/omit' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'omit'>; +} + +declare module 'lodash/fp/omitAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'omitAll'>; +} + +declare module 'lodash/fp/omitBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'omitBy'>; +} + +declare module 'lodash/fp/pick' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pick'>; +} + +declare module 'lodash/fp/pickAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pickAll'>; +} + +declare module 'lodash/fp/pickBy' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pickBy'>; +} + +declare module 'lodash/fp/result' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'result'>; +} + +declare module 'lodash/fp/set' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'set'>; +} + +declare module 'lodash/fp/assoc' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assoc'>; +} + +declare module 'lodash/fp/assocPath' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assocPath'>; +} + +declare module 'lodash/fp/setWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'setWith'>; +} + +declare module 'lodash/fp/toPairs' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPairs'>; +} + +declare module 'lodash/fp/toPairsIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPairsIn'>; +} + +declare module 'lodash/fp/transform' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'transform'>; +} + +declare module 'lodash/fp/unset' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unset'>; +} + +declare module 'lodash/fp/dissoc' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dissoc'>; +} + +declare module 'lodash/fp/dissocPath' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dissocPath'>; +} + +declare module 'lodash/fp/update' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'update'>; +} + +declare module 'lodash/fp/updateWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'updateWith'>; +} + +declare module 'lodash/fp/values' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'values'>; +} + +declare module 'lodash/fp/valuesIn' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'valuesIn'>; +} + +declare module 'lodash/fp/tap' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'tap'>; +} + +declare module 'lodash/fp/thru' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'thru'>; +} + +declare module 'lodash/fp/camelCase' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'camelCase'>; +} + +declare module 'lodash/fp/capitalize' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'capitalize'>; +} + +declare module 'lodash/fp/deburr' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'deburr'>; +} + +declare module 'lodash/fp/endsWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'endsWith'>; +} + +declare module 'lodash/fp/escape' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'escape'>; +} + +declare module 'lodash/fp/escapeRegExp' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'escapeRegExp'>; +} + +declare module 'lodash/fp/kebabCase' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'kebabCase'>; +} + +declare module 'lodash/fp/lowerCase' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lowerCase'>; +} + +declare module 'lodash/fp/lowerFirst' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lowerFirst'>; +} + +declare module 'lodash/fp/pad' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pad'>; +} + +declare module 'lodash/fp/padChars' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padChars'>; +} + +declare module 'lodash/fp/padEnd' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padEnd'>; +} + +declare module 'lodash/fp/padCharsEnd' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padCharsEnd'>; +} + +declare module 'lodash/fp/padStart' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padStart'>; +} + +declare module 'lodash/fp/padCharsStart' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padCharsStart'>; +} + +declare module 'lodash/fp/parseInt' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'parseInt'>; +} + +declare module 'lodash/fp/repeat' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'repeat'>; +} + +declare module 'lodash/fp/replace' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'replace'>; +} + +declare module 'lodash/fp/snakeCase' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'snakeCase'>; +} + +declare module 'lodash/fp/split' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'split'>; +} + +declare module 'lodash/fp/startCase' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'startCase'>; +} + +declare module 'lodash/fp/startsWith' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'startsWith'>; +} + +declare module 'lodash/fp/template' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'template'>; +} + +declare module 'lodash/fp/toLower' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toLower'>; +} + +declare module 'lodash/fp/toUpper' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toUpper'>; +} + +declare module 'lodash/fp/trim' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trim'>; +} + +declare module 'lodash/fp/trimChars' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimChars'>; +} + +declare module 'lodash/fp/trimEnd' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimEnd'>; +} + +declare module 'lodash/fp/trimCharsEnd' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimCharsEnd'>; +} + +declare module 'lodash/fp/trimStart' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimStart'>; +} + +declare module 'lodash/fp/trimCharsStart' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'trimCharsStart', + >; +} + +declare module 'lodash/fp/truncate' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'truncate'>; +} + +declare module 'lodash/fp/unescape' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unescape'>; +} + +declare module 'lodash/fp/upperCase' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'upperCase'>; +} + +declare module 'lodash/fp/upperFirst' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'upperFirst'>; +} + +declare module 'lodash/fp/words' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'words'>; +} + +declare module 'lodash/fp/attempt' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'attempt'>; +} + +declare module 'lodash/fp/bindAll' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'bindAll'>; +} + +declare module 'lodash/fp/cond' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cond'>; +} + +declare module 'lodash/fp/constant' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'constant'>; +} + +declare module 'lodash/fp/always' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'always'>; +} + +declare module 'lodash/fp/defaultTo' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaultTo'>; +} + +declare module 'lodash/fp/flow' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flow'>; +} + +declare module 'lodash/fp/pipe' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pipe'>; +} + +declare module 'lodash/fp/flowRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flowRight'>; +} + +declare module 'lodash/fp/compose' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'compose'>; +} + +declare module 'lodash/fp/identity' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'identity'>; +} + +declare module 'lodash/fp/iteratee' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'iteratee'>; +} + +declare module 'lodash/fp/matches' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'matches'>; +} + +declare module 'lodash/fp/matchesProperty' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'matchesProperty', + >; +} + +declare module 'lodash/fp/propEq' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'propEq'>; +} + +declare module 'lodash/fp/pathEq' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pathEq'>; +} + +declare module 'lodash/fp/method' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'method'>; +} + +declare module 'lodash/fp/methodOf' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'methodOf'>; +} + +declare module 'lodash/fp/mixin' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mixin'>; +} + +declare module 'lodash/fp/noConflict' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'noConflict'>; +} + +declare module 'lodash/fp/noop' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'noop'>; +} + +declare module 'lodash/fp/nthArg' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'nthArg'>; +} + +declare module 'lodash/fp/over' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'over'>; +} + +declare module 'lodash/fp/juxt' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'juxt'>; +} + +declare module 'lodash/fp/overEvery' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'overEvery'>; +} + +declare module 'lodash/fp/allPass' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'allPass'>; +} + +declare module 'lodash/fp/overSome' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'overSome'>; +} + +declare module 'lodash/fp/anyPass' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'anyPass'>; +} + +declare module 'lodash/fp/property' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'property'>; +} + +declare module 'lodash/fp/propertyOf' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'propertyOf'>; +} + +declare module 'lodash/fp/range' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'range'>; +} + +declare module 'lodash/fp/rangeStep' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rangeStep'>; +} + +declare module 'lodash/fp/rangeRight' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rangeRight'>; +} + +declare module 'lodash/fp/rangeStepRight' { + declare module.exports: $PropertyType< + $Exports<'lodash/fp'>, + 'rangeStepRight', + >; +} + +declare module 'lodash/fp/runInContext' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'runInContext'>; +} + +declare module 'lodash/fp/stubArray' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubArray'>; +} + +declare module 'lodash/fp/stubFalse' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubFalse'>; +} + +declare module 'lodash/fp/F' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'F'>; +} + +declare module 'lodash/fp/stubObject' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubObject'>; +} + +declare module 'lodash/fp/stubString' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubString'>; +} + +declare module 'lodash/fp/stubTrue' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubTrue'>; +} + +declare module 'lodash/fp/T' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'T'>; +} + +declare module 'lodash/fp/times' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'times'>; +} + +declare module 'lodash/fp/toPath' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPath'>; +} + +declare module 'lodash/fp/uniqueId' { + declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniqueId'>; +} diff --git a/jest.config.js b/jest.config.js index 11af0dbe4e80..8aa1e24ac069 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,11 +12,8 @@ module.exports = { verbose: true, testURL: 'http://localhost/', testEnvironment: 'node', - moduleNameMapper: { - '^@lib/(.*)$': '/packages/docusaurus/lib/$1', - }, - testPathIgnorePatterns: ['loadSetup.js', '/node_modules/', '__fixtures__'], + testPathIgnorePatterns: ['/node_modules/', '__fixtures__'], transform: { - '^.+\\.js$': '/jest.transform.js', + '^.+\\.js$': 'babel-jest', }, }; diff --git a/package.json b/package.json index 00f756c60ef5..cedc04f1414a 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,12 @@ "website-1.x" ], "scripts": { + "build": "lerna run --parallel build --no-private", + "build:clean": "lerna run --parallel build:clean --no-private", + "build:watch": "lerna run --parallel build:watch --no-private", + "flow": "flow", + "flow-typed": "flow-typed", + "install": "yarn run build", "prettier": "prettier --config .prettierrc --write \"**/*.js\"", "prettier:diff": "prettier --config .prettierrc --list-different \"**/*.js\"", "lint": "eslint --cache \"**/*.js\"", @@ -13,7 +19,8 @@ "test": "jest" }, "devDependencies": { - "babel-core": "^7.0.0-0", + "@babel/core": "^7.4.4", + "@babel/preset-flow": "^7.0.0", "babel-eslint": "8", "enzyme": "^3.9.0", "enzyme-adapter-react-16": "^1.12.1", @@ -26,16 +33,19 @@ "eslint-plugin-react": "^7.11.1", "eslint-plugin-react-hooks": "^0.0.0", "filepath": "^1.1.0", + "flow-bin": "^0.98.1", + "flow-remove-types": "^1.2.3", + "flow-typed": "^2.5.1", "front-matter": "^2.3.0", "glob-promise": "^3.3.0", "husky": "^1.3.1", - "jest": "^24.1.0", + "jest": "^24.6.0", "lerna": "^3.13.1", "lint-staged": "^7.2.0", "prettier": "^1.13.7", "react": "^16.8.4", "react-dom": "^16.8.4", - "rimraf": "^2.6.2" + "rimraf": "^2.6.3" }, "lint-staged": { "linters": { diff --git a/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/utils.test.js.snap b/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/utils.test.js.snap index 6ad028dea8aa..c935ec38a612 100644 --- a/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/utils.test.js.snap +++ b/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/utils.test.js.snap @@ -26,6 +26,9 @@ exports[`server utils autoprefix css 1`] = ` ::-webkit-input-placeholder { color: gray; } +::-moz-placeholder { + color: gray; +} :-ms-input-placeholder { color: gray; } diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/foo/bar.md b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/bar.md similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/foo/bar.md rename to packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/bar.md diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/foo/baz.md b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/baz.md similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/foo/baz.md rename to packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/baz.md diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/hello.md b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/hello.md similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/hello.md rename to packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/hello.md diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/permalink.md b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/permalink.md similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/docs/permalink.md rename to packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/permalink.md diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/sidebars.json b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/sidebars.json similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/sidebars.json rename to packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/sidebars.json diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js index e1c33180e40c..dcfb73673f24 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js @@ -5,14 +5,17 @@ * LICENSE file in the root directory of this source tree. */ -import '@babel/polyfill'; import path from 'path'; -import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup'; import DocusaurusPluginContentDocs from '../index'; describe('loadDocs', () => { test('simple website', async () => { - const {siteDir, siteConfig} = await loadSetup('simple'); + const siteDir = path.join(__dirname, '__fixtures__', 'website'); + const siteConfig = { + title: 'Hello', + baseUrl: '/', + url: 'https://docusaurus.io', + }; const sidebarPath = path.join(siteDir, 'sidebars.json'); const plugin = new DocusaurusPluginContentDocs( { @@ -20,7 +23,7 @@ describe('loadDocs', () => { siteConfig, }, { - path: '../docs', + path: 'docs', sidebarPath, }, ); diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js index a78a35767d0f..c18bd07cc21a 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js @@ -8,13 +8,17 @@ import '@babel/polyfill'; import path from 'path'; import processMetadata from '../metadata'; -import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup'; describe('processMetadata', () => { + const siteDir = path.join(__dirname, '__fixtures__', 'website'); + const siteConfig = { + title: 'Hello', + baseUrl: '/', + url: 'https://docusaurus.io', + }; + const docsDir = path.resolve(siteDir, 'docs'); + test('normal docs', async () => { - const props = await loadSetup('simple'); - const {siteDir, siteConfig} = props; - const docsDir = path.resolve(siteDir, '..', 'docs'); const sourceA = path.join('foo', 'bar.md'); const sourceB = path.join('hello.md'); const dataA = await processMetadata( @@ -46,9 +50,6 @@ describe('processMetadata', () => { }); test('docs with custom permalink', async () => { - const props = await loadSetup('simple'); - const {siteDir, siteConfig} = props; - const docsDir = path.resolve(siteDir, '..', 'docs'); const source = path.join('permalink.md'); const data = await processMetadata(source, docsDir, {}, siteConfig, 'docs'); expect(data).toEqual({ diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js index d288909e674f..379bcff4c6d2 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js @@ -7,23 +7,23 @@ import path from 'path'; import loadSidebars from '../sidebars'; -import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup'; /* eslint-disable global-require, import/no-dynamic-require */ describe('loadSidebars', () => { - const fixtures = path.join(__dirname, '..', '__fixtures__'); - test('normal site with sidebars', async () => { - const {siteDir} = await loadSetup('simple'); - const sidebar = require(path.join(siteDir, 'sidebars.json')); - const result = loadSidebars({siteDir, sidebar}); + const sidebar = require(path.join( + __dirname, + '__fixtures__', + 'website', + 'sidebars.json', + )); + const result = loadSidebars({sidebar}); expect(result).toMatchSnapshot(); }); test('site without sidebars', () => { - const siteDir = path.join(fixtures, 'bad-site'); - const result = loadSidebars({siteDir, sidebar: {}}); + const result = loadSidebars({sidebar: {}}); expect(result).toMatchSnapshot(); }); }); diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/pages/hello/world.js b/packages/docusaurus-plugin-content-pages/src/__tests__/__fixtures__/website/pages/hello/world.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/pages/hello/world.js rename to packages/docusaurus-plugin-content-pages/src/__tests__/__fixtures__/website/pages/hello/world.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/pages/index.js b/packages/docusaurus-plugin-content-pages/src/__tests__/__fixtures__/website/pages/index.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/pages/index.js rename to packages/docusaurus-plugin-content-pages/src/__tests__/__fixtures__/website/pages/index.js diff --git a/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.js b/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.js index 4d651fd712ed..945d449b37c2 100644 --- a/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.js +++ b/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.js @@ -7,35 +7,31 @@ import path from 'path'; -import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup'; import DocusaurusPluginContentPages from '../index'; describe('docusaurus-plugin-content-pages', () => { - describe('loadContent', () => { - test.each([ - [ - 'simple', - pagesDir => [ - { - permalink: '/', - source: path.join(pagesDir, 'index.js'), - }, - { - permalink: '/hello/world', - source: path.join(pagesDir, 'hello', 'world.js'), - }, - ], - ], - ])('%s website', async (type, expected) => { - const {siteDir, siteConfig} = await loadSetup(type); - const plugin = new DocusaurusPluginContentPages({ - siteDir, - siteConfig, - }); - const pagesMetadatas = await plugin.loadContent(); - const pagesDir = plugin.contentPath; - - expect(pagesMetadatas).toEqual(expected(pagesDir)); + test('simple pages', async () => { + const siteConfig = { + title: 'Hello', + baseUrl: '/', + url: 'https://docusaurus.io', + }; + const siteDir = path.join(__dirname, '__fixtures__', 'website'); + const plugin = new DocusaurusPluginContentPages({ + siteDir, + siteConfig, }); + const pagesMetadatas = await plugin.loadContent(); + const pagesDir = plugin.contentPath; + expect(pagesMetadatas).toEqual([ + { + permalink: '/', + source: path.join(pagesDir, 'index.js'), + }, + { + permalink: '/hello/world', + source: path.join(pagesDir, 'hello', 'world.js'), + }, + ]); }); }); diff --git a/packages/docusaurus-plugin-sitemap/src/__tests__/index.test.js b/packages/docusaurus-plugin-sitemap/src/__tests__/index.test.js index bb30f04b57e6..383b0af16715 100644 --- a/packages/docusaurus-plugin-sitemap/src/__tests__/index.test.js +++ b/packages/docusaurus-plugin-sitemap/src/__tests__/index.test.js @@ -5,13 +5,17 @@ * LICENSE file in the root directory of this source tree. */ -import loadSetup from '../../../docusaurus/lib/server/load/__tests__/loadSetup'; import DocusaurusPluginSitemap from '../index'; describe('docusaurus-plugin-sitemap', () => { describe('createSitemap', () => { - test.each(['simple'])('%s website', async type => { - const context = await loadSetup(type); + test('simple site', async () => { + const context = { + siteConfig: { + url: 'https://example.com', + }, + routesPaths: ['/', '/test'], + }; const plugin = new DocusaurusPluginSitemap(context, null); const sitemap = await plugin.createSitemap(context); expect(sitemap).toContain( @@ -20,7 +24,7 @@ describe('docusaurus-plugin-sitemap', () => { }); test('empty site', async () => { - const context = await loadSetup('empty'); + const context = {}; const plugin = new DocusaurusPluginSitemap(context, null); expect( plugin.createSitemap(context), diff --git a/packages/docusaurus-utils/.npmignore b/packages/docusaurus-utils/.npmignore new file mode 100644 index 000000000000..85de9cf93344 --- /dev/null +++ b/packages/docusaurus-utils/.npmignore @@ -0,0 +1 @@ +src diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index feebe1f42de9..9413fae05381 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -2,10 +2,17 @@ "name": "@docusaurus/utils", "version": "2.0.0-alpha.13", "description": "Node utility functions for Docusaurus packages", - "main": "src/index.js", + "main": "lib/index.js", "publishConfig": { "access": "public" }, + "scripts": { + "prepublish": "yarn run build", + "build": "yarn run build:clean && yarn run build:lib", + "build:clean": "rimraf lib", + "build:lib": "flow-remove-types -q -x '.js,.css,.ejs' src --out-dir lib --ignore '/__tests__/'", + "build:watch": "watch \"yarn build\" src" + }, "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5", diff --git a/packages/docusaurus-utils/src/index.js b/packages/docusaurus-utils/src/index.js index f1e50c24d714..d0e80eab4327 100644 --- a/packages/docusaurus-utils/src/index.js +++ b/packages/docusaurus-utils/src/index.js @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +/* @flow */ + const path = require('path'); const fm = require('front-matter'); const {createHash} = require('crypto'); @@ -14,7 +16,11 @@ const escapeStringRegexp = require('escape-string-regexp'); const fs = require('fs-extra'); const fileHash = new Map(); -async function generate(generatedFilesDir, file, content) { +async function generate( + generatedFilesDir: string, + file: string, + content: any, +): Promise { const filepath = path.join(generatedFilesDir, file); const lastHash = fileHash.get(filepath); const currentHash = createHash('md5') @@ -31,14 +37,14 @@ async function generate(generatedFilesDir, file, content) { const indexRE = /(^|.*\/)index\.(md|js)$/i; const extRE = /\.(md|js)$/; -function fileToPath(file) { +function fileToPath(file: string): string { if (indexRE.test(file)) { return file.replace(indexRE, '/$1'); } return `/${file.replace(extRE, '').replace(/\\/g, '/')}`; } -function encodePath(userpath) { +function encodePath(userpath: string): string { return userpath .split('/') .map(item => encodeURIComponent(item)) @@ -50,7 +56,7 @@ function encodePath(userpath) { * @param {string} str input string * @returns {string} */ -function docuHash(str) { +function docuHash(str: string): string { if (str === '/') { return 'index'; } @@ -66,7 +72,7 @@ function docuHash(str) { * @param {string} pagePath * @returns {string} unique react component name */ -function genComponentName(pagePath) { +function genComponentName(pagePath: string): string { if (pagePath === '/') { return 'index'; } @@ -83,7 +89,7 @@ function genComponentName(pagePath) { * @param {string} str windows backslash paths * @returns {string} posix-style path */ -function posixPath(str) { +function posixPath(str: string): string { const isExtendedLengthPath = /^\\\\\?\\/.test(str); const hasNonAscii = /[^\u0000-\u0080]+/.test(str); // eslint-disable-line @@ -94,7 +100,11 @@ function posixPath(str) { } const chunkNameCache = new Map(); -function genChunkName(modulePath, prefix, preferredName) { +function genChunkName( + modulePath: string, + prefix?: string, + preferredName?: string, +): string { let chunkName = chunkNameCache.get(modulePath); if (!chunkName) { let str = modulePath; @@ -112,7 +122,7 @@ function genChunkName(modulePath, prefix, preferredName) { return chunkName; } -function idx(target, keyPaths) { +function idx(target?: {}, keyPaths: string | string[]): any { return ( target && (Array.isArray(keyPaths) @@ -121,7 +131,7 @@ function idx(target, keyPaths) { ); } -function getSubFolder(file, refDir) { +function getSubFolder(file: string, refDir: string): ?string { const separator = escapeStringRegexp(path.sep); const baseDir = escapeStringRegexp(path.basename(refDir)); const regexSubFolder = new RegExp( @@ -131,7 +141,7 @@ function getSubFolder(file, refDir) { return match && match[1]; } -function parse(fileString) { +function parse(fileString: string): {} { if (!fm.test(fileString)) { return {metadata: null, content: fileString}; } @@ -140,7 +150,7 @@ function parse(fileString) { return {metadata, content}; } -function normalizeUrl(rawUrls) { +function normalizeUrl(rawUrls: string[]): string { const urls = rawUrls; const resultArray = []; diff --git a/packages/docusaurus/.npmignore b/packages/docusaurus/.npmignore new file mode 100644 index 000000000000..85de9cf93344 --- /dev/null +++ b/packages/docusaurus/.npmignore @@ -0,0 +1 @@ +src diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index 636215ccee3a..fbddfcdf93b2 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -23,7 +23,12 @@ "docusaurus": "bin/docusaurus.js" }, "scripts": { - "docusaurus": "node bin/docusaurus" + "docusaurus": "node bin/docusaurus", + "prepublish": "yarn run build", + "build": "yarn run build:clean && yarn run build:lib", + "build:clean": "rimraf lib", + "build:lib": "flow-remove-types -q -x '.js,.css,.ejs' src --out-dir lib --ignore '/__tests__/'", + "build:watch": "watch \"yarn build\" src" }, "bugs": { "url": "https://github.com/facebook/Docusaurus/issues" @@ -35,7 +40,6 @@ "@babel/preset-env": "^7.4.2", "@babel/preset-react": "^7.0.0", "@docusaurus/utils": "^2.0.0-alpha.13", - "babel-jest": "^24.1.0", "babel-loader": "^8.0.0", "babel-plugin-dynamic-import-node": "^2.2.0", "cache-loader": "^2.0.1", diff --git a/packages/docusaurus/lib/client/App.js b/packages/docusaurus/src/client/App.js similarity index 100% rename from packages/docusaurus/lib/client/App.js rename to packages/docusaurus/src/client/App.js diff --git a/packages/docusaurus/lib/client/PendingNavigation.js b/packages/docusaurus/src/client/PendingNavigation.js similarity index 100% rename from packages/docusaurus/lib/client/PendingNavigation.js rename to packages/docusaurus/src/client/PendingNavigation.js diff --git a/packages/docusaurus/lib/client/__tests__/flat.test.js b/packages/docusaurus/src/client/__tests__/flat.test.js similarity index 100% rename from packages/docusaurus/lib/client/__tests__/flat.test.js rename to packages/docusaurus/src/client/__tests__/flat.test.js diff --git a/packages/docusaurus/lib/client/clientEntry.js b/packages/docusaurus/src/client/clientEntry.js similarity index 100% rename from packages/docusaurus/lib/client/clientEntry.js rename to packages/docusaurus/src/client/clientEntry.js diff --git a/packages/docusaurus/lib/client/docusaurus.js b/packages/docusaurus/src/client/docusaurus.js similarity index 100% rename from packages/docusaurus/lib/client/docusaurus.js rename to packages/docusaurus/src/client/docusaurus.js diff --git a/packages/docusaurus/lib/client/exports/ComponentCreator.js b/packages/docusaurus/src/client/exports/ComponentCreator.js similarity index 100% rename from packages/docusaurus/lib/client/exports/ComponentCreator.js rename to packages/docusaurus/src/client/exports/ComponentCreator.js diff --git a/packages/docusaurus/lib/client/exports/Head.js b/packages/docusaurus/src/client/exports/Head.js similarity index 100% rename from packages/docusaurus/lib/client/exports/Head.js rename to packages/docusaurus/src/client/exports/Head.js diff --git a/packages/docusaurus/lib/client/exports/Link.js b/packages/docusaurus/src/client/exports/Link.js similarity index 100% rename from packages/docusaurus/lib/client/exports/Link.js rename to packages/docusaurus/src/client/exports/Link.js diff --git a/packages/docusaurus/lib/client/exports/Noop.js b/packages/docusaurus/src/client/exports/Noop.js similarity index 100% rename from packages/docusaurus/lib/client/exports/Noop.js rename to packages/docusaurus/src/client/exports/Noop.js diff --git a/packages/docusaurus/lib/client/exports/context.js b/packages/docusaurus/src/client/exports/context.js similarity index 100% rename from packages/docusaurus/lib/client/exports/context.js rename to packages/docusaurus/src/client/exports/context.js diff --git a/packages/docusaurus/lib/client/exports/useDocusaurusContext.js b/packages/docusaurus/src/client/exports/useDocusaurusContext.js similarity index 100% rename from packages/docusaurus/lib/client/exports/useDocusaurusContext.js rename to packages/docusaurus/src/client/exports/useDocusaurusContext.js diff --git a/packages/docusaurus/lib/client/flat.js b/packages/docusaurus/src/client/flat.js similarity index 100% rename from packages/docusaurus/lib/client/flat.js rename to packages/docusaurus/src/client/flat.js diff --git a/packages/docusaurus/lib/client/nprogress.css b/packages/docusaurus/src/client/nprogress.css similarity index 100% rename from packages/docusaurus/lib/client/nprogress.css rename to packages/docusaurus/src/client/nprogress.css diff --git a/packages/docusaurus/lib/client/prefetch.js b/packages/docusaurus/src/client/prefetch.js similarity index 100% rename from packages/docusaurus/lib/client/prefetch.js rename to packages/docusaurus/src/client/prefetch.js diff --git a/packages/docusaurus/lib/client/preload.js b/packages/docusaurus/src/client/preload.js similarity index 100% rename from packages/docusaurus/lib/client/preload.js rename to packages/docusaurus/src/client/preload.js diff --git a/packages/docusaurus/lib/client/serverEntry.js b/packages/docusaurus/src/client/serverEntry.js similarity index 100% rename from packages/docusaurus/lib/client/serverEntry.js rename to packages/docusaurus/src/client/serverEntry.js diff --git a/packages/docusaurus/lib/client/templates/index.html.template.ejs b/packages/docusaurus/src/client/templates/index.html.template.ejs similarity index 100% rename from packages/docusaurus/lib/client/templates/index.html.template.ejs rename to packages/docusaurus/src/client/templates/index.html.template.ejs diff --git a/packages/docusaurus/lib/client/templates/ssr.html.template.js b/packages/docusaurus/src/client/templates/ssr.html.template.js similarity index 100% rename from packages/docusaurus/lib/client/templates/ssr.html.template.js rename to packages/docusaurus/src/client/templates/ssr.html.template.js diff --git a/packages/docusaurus/lib/client/theme-fallback/Layout/index.js b/packages/docusaurus/src/client/theme-fallback/Layout/index.js similarity index 100% rename from packages/docusaurus/lib/client/theme-fallback/Layout/index.js rename to packages/docusaurus/src/client/theme-fallback/Layout/index.js diff --git a/packages/docusaurus/lib/client/theme-fallback/Loading/index.js b/packages/docusaurus/src/client/theme-fallback/Loading/index.js similarity index 100% rename from packages/docusaurus/lib/client/theme-fallback/Loading/index.js rename to packages/docusaurus/src/client/theme-fallback/Loading/index.js diff --git a/packages/docusaurus/lib/client/theme-fallback/NotFound/index.js b/packages/docusaurus/src/client/theme-fallback/NotFound/index.js similarity index 100% rename from packages/docusaurus/lib/client/theme-fallback/NotFound/index.js rename to packages/docusaurus/src/client/theme-fallback/NotFound/index.js diff --git a/packages/docusaurus/lib/commands/build.js b/packages/docusaurus/src/commands/build.js similarity index 100% rename from packages/docusaurus/lib/commands/build.js rename to packages/docusaurus/src/commands/build.js diff --git a/packages/docusaurus/lib/commands/deploy.js b/packages/docusaurus/src/commands/deploy.js similarity index 100% rename from packages/docusaurus/lib/commands/deploy.js rename to packages/docusaurus/src/commands/deploy.js diff --git a/packages/docusaurus/lib/commands/init.js b/packages/docusaurus/src/commands/init.js similarity index 100% rename from packages/docusaurus/lib/commands/init.js rename to packages/docusaurus/src/commands/init.js diff --git a/packages/docusaurus/lib/commands/start.js b/packages/docusaurus/src/commands/start.js similarity index 100% rename from packages/docusaurus/lib/commands/start.js rename to packages/docusaurus/src/commands/start.js diff --git a/packages/docusaurus/lib/commands/swizzle.js b/packages/docusaurus/src/commands/swizzle.js similarity index 100% rename from packages/docusaurus/lib/commands/swizzle.js rename to packages/docusaurus/src/commands/swizzle.js diff --git a/packages/docusaurus/lib/constants.js b/packages/docusaurus/src/constants.js similarity index 100% rename from packages/docusaurus/lib/constants.js rename to packages/docusaurus/src/constants.js diff --git a/packages/docusaurus/lib/index.js b/packages/docusaurus/src/index.js similarity index 100% rename from packages/docusaurus/lib/index.js rename to packages/docusaurus/src/index.js diff --git a/packages/docusaurus/lib/server/index.js b/packages/docusaurus/src/server/index.js similarity index 100% rename from packages/docusaurus/lib/server/index.js rename to packages/docusaurus/src/server/index.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/bad-site/docusaurus.config.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/bad-site/docusaurus.config.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/bad-site/docusaurus.config.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/bad-site/docusaurus.config.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/bar/baz.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/bar/baz.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/bar/baz.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/bar/baz.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/foo.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/foo.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/foo.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/foo.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/foo/index.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/foo/index.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/foo/index.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/foo/index.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/index.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/index.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/pages/index.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/pages/index.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/sidebars.json b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/sidebars.json similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/sidebars.json rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/sidebars.json diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.ico b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.ico similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.ico rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.ico diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.svg b/packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.svg similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.svg rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/custom-site/static/img/docusaurus.svg diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/bar.md b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/bar.md new file mode 100644 index 000000000000..ac25e4969a31 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/bar.md @@ -0,0 +1,66 @@ +--- +id: bar +title: Bar +--- + +# Remarkable + +> Experience real-time editing with Remarkable! + +Click the `clear` link to start with a clean slate, or get the `permalink` to share or save your results. + +*** + +# h1 Heading +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading + + +## Horizontal Rules + +___ + +*** + +*** + + +## Typographic replacements + +Enable typographer option to see result. + +(c) (C) (r) (R) (tm) (TM) (p) (P) +- + +test.. test... test..... test?..... test!.... + +!!!!!! ???? ,, + +Remarkable -- awesome + +"Smartypants, double quotes" + +'Smartypants, single quotes' + + +## Emphasis + +**This is bold text** + +__This is bold text__ + +*This is italic text* + +_This is italic text_ + +~~Deleted text~~ + +Superscript: 19^th^ + +Subscript: H~2~O + +++Inserted text++ + +==Marked text== diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/baz.md b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/baz.md new file mode 100644 index 000000000000..e3be91b5d689 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/foo/baz.md @@ -0,0 +1,74 @@ +--- +id: baz +title: baz +--- + +## Images + +Like links, Images also have a footnote style syntax + +![Alt text][id] + +With a reference later in the document defining the URL location: + +[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat" + +## Links + +[link text](http://dev.nodeca.com) + +[link with title](http://nodeca.github.io/pica/demo/ "title text!") + +Autoconverted link https://github.com/nodeca/pica (enable linkify to see) + + + +## Footnotes + +Footnote 1 link[^first]. + +Footnote 2 link[^second]. + +Inline footnote^[Text of inline footnote] definition. + +Duplicated footnote reference[^second]. + +[^first]: Footnote **can have markup** + + and multiple paragraphs. + +[^second]: Footnote text. + + +## Definition lists + +Term 1 + +: Definition 1 +with lazy continuation. + +Term 2 with *inline markup* + +: Definition 2 + + { some code, part of Definition 2 } + + Third paragraph of definition 2. + +_Compact style:_ + +Term 1 + ~ Definition 1 + +Term 2 + ~ Definition 2a + ~ Definition 2b + + +## Abbreviations + +This is HTML abbreviation example. + +It converts "HTML", but keep intact partial entries like "xxxHTMLyyy" and so on. + +*[HTML]: Hyper Text Markup Language diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/hello.md b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/hello.md new file mode 100644 index 000000000000..c4aa17696c84 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/hello.md @@ -0,0 +1,54 @@ +--- +id: hello +title: Hello, World ! +--- + +Hi, Endilie here :) + +## Relative links + +Replace this +[foo](foo/bar.md) + +Can't replace this +[file](file.md) + +Do not replace below + +``` +[hello](hello.md) +``` + +## Blockquotes + +> Blockquotes can also be nested... +>> ...by using additional greater-than signs right next to each other... +> > > ...or with spaces between arrows. + + +## Lists + +Unordered + ++ Create a list by starting a line with `+`, `-`, or `*` ++ Sub-lists are made by indenting 2 spaces: + - Marker character change forces new list start: + * Ac tristique libero volutpat at + + Facilisis in pretium nisl aliquet + - Nulla volutpat aliquam velit ++ Very easy! + +Ordered + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa + + +1. You can use sequential numbers... +1. ...or keep all the numbers as `1.` + +Start numbering with offset: + +57. foo +1. bar diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/permalink.md b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/permalink.md new file mode 100644 index 000000000000..6e31233dba20 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/docs/permalink.md @@ -0,0 +1,7 @@ +--- +id: permalink +title: Permalink +permalink: :baseUrl:docsUrl/endiliey/:id +--- + +This has a different permalink \ No newline at end of file diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-bar.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/preset-bar.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-bar.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/preset-bar.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-foo.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/preset-foo.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-foo.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/preset-foo.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-qux.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/preset-qux.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/preset-qux.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/preset-qux.js diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/hello/world.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/hello/world.js new file mode 100644 index 000000000000..46d0a16d4823 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/hello/world.js @@ -0,0 +1,22 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import Head from '@docusaurus/Head'; + +export default class World extends React.Component { + render() { + return ( +
+ + World + +
Hello World
+
+ ); + } +} diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/index.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/index.js new file mode 100644 index 000000000000..db7b81919fd1 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/pages/index.js @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import Head from '@docusaurus/Head'; + +export default class Home extends React.Component { + render() { + return ( +
+ + Home + + +
Home ...
+
+ ); + } +} diff --git a/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/sidebars.json b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/sidebars.json new file mode 100644 index 000000000000..24d61b49c760 --- /dev/null +++ b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/sidebars.json @@ -0,0 +1,11 @@ +{ + "docs": { + "Test": [ + "foo/bar", + "foo/baz" + ], + "Guides": [ + "hello" + ] + } +} diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.ico b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.ico similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.ico rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.ico diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.svg b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.svg similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.svg rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/docusaurus.svg diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/sakura.png b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/sakura.png similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/sakura.png rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/sakura.png diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/slash-introducing.png b/packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/slash-introducing.png similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/static/img/slash-introducing.png rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/simple-site/static/img/slash-introducing.png diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/wrong-site/docusaurus.config.js b/packages/docusaurus/src/server/load/__tests__/__fixtures__/wrong-site/docusaurus.config.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/__fixtures__/wrong-site/docusaurus.config.js rename to packages/docusaurus/src/server/load/__tests__/__fixtures__/wrong-site/docusaurus.config.js diff --git a/packages/docusaurus/lib/server/load/__tests__/config.test.js b/packages/docusaurus/src/server/load/__tests__/config.test.js similarity index 98% rename from packages/docusaurus/lib/server/load/__tests__/config.test.js rename to packages/docusaurus/src/server/load/__tests__/config.test.js index 9d453527b7cf..0a6eb205d9c1 100644 --- a/packages/docusaurus/lib/server/load/__tests__/config.test.js +++ b/packages/docusaurus/src/server/load/__tests__/config.test.js @@ -7,7 +7,7 @@ import path from 'path'; import loadConfig from '../config'; -import loadSetup from './loadSetup'; +import loadSetup from '../loadSetup'; describe('loadConfig', () => { test('website with valid siteConfig', async () => { diff --git a/packages/docusaurus/lib/server/load/__tests__/presets.test.js b/packages/docusaurus/src/server/load/__tests__/presets.test.js similarity index 100% rename from packages/docusaurus/lib/server/load/__tests__/presets.test.js rename to packages/docusaurus/src/server/load/__tests__/presets.test.js diff --git a/packages/docusaurus/lib/server/load/__tests__/routes.test.js b/packages/docusaurus/src/server/load/__tests__/routes.test.js similarity index 96% rename from packages/docusaurus/lib/server/load/__tests__/routes.test.js rename to packages/docusaurus/src/server/load/__tests__/routes.test.js index 6e8e12b1402e..b900b0ba7daa 100644 --- a/packages/docusaurus/lib/server/load/__tests__/routes.test.js +++ b/packages/docusaurus/src/server/load/__tests__/routes.test.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import loadSetup from './loadSetup'; +import loadSetup from '../loadSetup'; describe('loadRoutes', () => { test('simple website', async () => { diff --git a/packages/docusaurus/lib/server/load/config.js b/packages/docusaurus/src/server/load/config.js similarity index 100% rename from packages/docusaurus/lib/server/load/config.js rename to packages/docusaurus/src/server/load/config.js diff --git a/packages/docusaurus/lib/server/load/__tests__/loadSetup.js b/packages/docusaurus/src/server/load/loadSetup.js similarity index 86% rename from packages/docusaurus/lib/server/load/__tests__/loadSetup.js rename to packages/docusaurus/src/server/load/loadSetup.js index 61a9fda92f08..98557130d67b 100644 --- a/packages/docusaurus/lib/server/load/__tests__/loadSetup.js +++ b/packages/docusaurus/src/server/load/loadSetup.js @@ -7,11 +7,11 @@ import '@babel/polyfill'; import path from 'path'; -import load from '../../index'; +import load from '../index'; // Helper methods to setup dummy/fake projects const loadSetup = async name => { - const fixtures = path.join(__dirname, '__fixtures__'); + const fixtures = path.join(__dirname, '__tests__', '__fixtures__'); const simpleSite = path.join(fixtures, 'simple-site'); const customSite = path.join(fixtures, 'custom-site'); diff --git a/packages/docusaurus/lib/server/load/plugins.js b/packages/docusaurus/src/server/load/plugins.js similarity index 100% rename from packages/docusaurus/lib/server/load/plugins.js rename to packages/docusaurus/src/server/load/plugins.js diff --git a/packages/docusaurus/lib/server/load/presets.js b/packages/docusaurus/src/server/load/presets.js similarity index 100% rename from packages/docusaurus/lib/server/load/presets.js rename to packages/docusaurus/src/server/load/presets.js diff --git a/packages/docusaurus/lib/server/load/routes.js b/packages/docusaurus/src/server/load/routes.js similarity index 100% rename from packages/docusaurus/lib/server/load/routes.js rename to packages/docusaurus/src/server/load/routes.js diff --git a/packages/docusaurus/lib/server/load/theme.js b/packages/docusaurus/src/server/load/theme.js similarity index 87% rename from packages/docusaurus/lib/server/load/theme.js rename to packages/docusaurus/src/server/load/theme.js index 8e2551567675..569504c215e7 100644 --- a/packages/docusaurus/lib/server/load/theme.js +++ b/packages/docusaurus/src/server/load/theme.js @@ -5,13 +5,15 @@ * LICENSE file in the root directory of this source tree. */ +/* @flow */ + const globby = require('globby'); const fs = require('fs-extra'); const path = require('path'); const {fileToPath, posixPath, normalizeUrl} = require('@docusaurus/utils'); -module.exports = async function loadTheme(themePath) { - if (!fs.existsSync(themePath)) { +module.exports = async function loadTheme(themePath: string) { + if (!fs.pathExistsSync(themePath)) { return null; } diff --git a/packages/docusaurus/lib/webpack/__tests__/base.test.js b/packages/docusaurus/src/webpack/__tests__/base.test.js similarity index 92% rename from packages/docusaurus/lib/webpack/__tests__/base.test.js rename to packages/docusaurus/src/webpack/__tests__/base.test.js index 7263a961b926..c1d526b3fa0e 100644 --- a/packages/docusaurus/lib/webpack/__tests__/base.test.js +++ b/packages/docusaurus/src/webpack/__tests__/base.test.js @@ -7,7 +7,7 @@ import {validate} from 'webpack'; import createBaseConfig from '../base'; -import loadSetup from '../../server/load/__tests__/loadSetup'; +import loadSetup from '../../server/load/loadSetup'; describe('webpack base config', () => { test('simple', async () => { diff --git a/packages/docusaurus/lib/webpack/__tests__/client.test.js b/packages/docusaurus/src/webpack/__tests__/client.test.js similarity index 92% rename from packages/docusaurus/lib/webpack/__tests__/client.test.js rename to packages/docusaurus/src/webpack/__tests__/client.test.js index 9e712d29d797..607dee4a56c3 100644 --- a/packages/docusaurus/lib/webpack/__tests__/client.test.js +++ b/packages/docusaurus/src/webpack/__tests__/client.test.js @@ -8,7 +8,7 @@ import {validate} from 'webpack'; import createClientConfig from '../client'; -import loadSetup from '../../server/load/__tests__/loadSetup'; +import loadSetup from '../../server/load/loadSetup'; describe('webpack dev config', () => { test('simple', async () => { diff --git a/packages/docusaurus/lib/webpack/__tests__/server.test.js b/packages/docusaurus/src/webpack/__tests__/server.test.js similarity index 92% rename from packages/docusaurus/lib/webpack/__tests__/server.test.js rename to packages/docusaurus/src/webpack/__tests__/server.test.js index 38639256a499..e68b6b2eb429 100644 --- a/packages/docusaurus/lib/webpack/__tests__/server.test.js +++ b/packages/docusaurus/src/webpack/__tests__/server.test.js @@ -8,7 +8,7 @@ import {validate} from 'webpack'; import createServerConfig from '../server'; -import loadSetup from '../../server/load/__tests__/loadSetup'; +import loadSetup from '../../server/load/loadSetup'; describe('webpack production config', () => { test('simple', async () => { diff --git a/packages/docusaurus/lib/webpack/__tests__/utils.test.js b/packages/docusaurus/src/webpack/__tests__/utils.test.js similarity index 100% rename from packages/docusaurus/lib/webpack/__tests__/utils.test.js rename to packages/docusaurus/src/webpack/__tests__/utils.test.js diff --git a/packages/docusaurus/lib/webpack/base.js b/packages/docusaurus/src/webpack/base.js similarity index 100% rename from packages/docusaurus/lib/webpack/base.js rename to packages/docusaurus/src/webpack/base.js diff --git a/packages/docusaurus/lib/webpack/client.js b/packages/docusaurus/src/webpack/client.js similarity index 100% rename from packages/docusaurus/lib/webpack/client.js rename to packages/docusaurus/src/webpack/client.js diff --git a/packages/docusaurus/lib/webpack/plugins/ChunkManifestPlugin.js b/packages/docusaurus/src/webpack/plugins/ChunkManifestPlugin.js similarity index 100% rename from packages/docusaurus/lib/webpack/plugins/ChunkManifestPlugin.js rename to packages/docusaurus/src/webpack/plugins/ChunkManifestPlugin.js diff --git a/packages/docusaurus/lib/webpack/plugins/WaitPlugin.js b/packages/docusaurus/src/webpack/plugins/WaitPlugin.js similarity index 100% rename from packages/docusaurus/lib/webpack/plugins/WaitPlugin.js rename to packages/docusaurus/src/webpack/plugins/WaitPlugin.js diff --git a/packages/docusaurus/lib/webpack/server.js b/packages/docusaurus/src/webpack/server.js similarity index 100% rename from packages/docusaurus/lib/webpack/server.js rename to packages/docusaurus/src/webpack/server.js diff --git a/packages/docusaurus/lib/webpack/utils.js b/packages/docusaurus/src/webpack/utils.js similarity index 100% rename from packages/docusaurus/lib/webpack/utils.js rename to packages/docusaurus/src/webpack/utils.js diff --git a/yarn.lock b/yarn.lock index 02b48d1575bf..f79a12a38410 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,38 +16,18 @@ dependencies: "@babel/highlight" "7.0.0-beta.44" -"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.0.tgz#248fd6874b7d755010bfe61f557461d4f446d9e9" - integrity sha512-Dzl7U0/T69DFOTwqz/FJdnOSWS57NpjNfCwMKHABr589Lg8uX1RrlBIJ7L5Dubt/xkLsx0xH5EBFzlBVes1ayA== +"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.2.2", "@babel/core@^7.4.0", "@babel/core@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250" + integrity sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helpers" "^7.4.0" - "@babel/parser" "^7.4.0" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.2.2": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f" - integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helpers" "^7.4.3" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" + "@babel/generator" "^7.4.4" + "@babel/helpers" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -67,12 +47,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.0.0", "@babel/generator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" - integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== +"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== dependencies: - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" jsesc "^2.5.1" lodash "^4.17.11" source-map "^0.5.0" @@ -101,34 +81,34 @@ "@babel/types" "^7.3.0" esutils "^2.0.0" -"@babel/helper-call-delegate@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f" - integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ== +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== dependencies: - "@babel/helper-hoist-variables" "^7.4.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.0.tgz#30fd090e059d021995c1762a5b76798fa0b51d82" - integrity sha512-2K8NohdOT7P6Vyp23QH4w2IleP8yG3UJsbRKwA4YP6H8fErcLkFuuEEqbF2/BYBKSNci/FWJiqm6R3VhM/QHgw== +"@babel/helper-create-class-features-plugin@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" + integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.0" - "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-define-map@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9" - integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA== +"@babel/helper-define-map@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" + integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" lodash "^4.17.11" "@babel/helper-explode-assignable-expression@^7.1.0": @@ -171,12 +151,12 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-hoist-variables@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6" - integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw== +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== dependencies: - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" "@babel/helper-member-expression-to-functions@^7.0.0": version "7.0.0" @@ -192,17 +172,17 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@^7.1.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" - integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" + integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.2.2" - "@babel/types" "^7.2.2" - lodash "^4.17.10" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.4.4" + lodash "^4.17.11" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -216,12 +196,12 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" - integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" + integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== dependencies: - lodash "^4.17.10" + lodash "^4.17.11" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -234,15 +214,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz#4f56adb6aedcd449d2da9399c2dcf0545463b64c" - integrity sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg== +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" + integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== dependencies: "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -259,12 +239,12 @@ dependencies: "@babel/types" "7.0.0-beta.44" -"@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" - integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" "@babel/helper-wrap-function@^7.1.0": version "7.2.0" @@ -276,23 +256,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.4.0": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.2.tgz#3bdfa46a552ca77ef5a0f8551be5f0845ae989be" - integrity sha512-gQR1eQeroDzFBikhrCccm5Gs2xBjZ57DNjGbqTaHo911IpmSxflOQWMAHPw/TXk8L3isv7s9lYzUkexOeTQUYg== - dependencies: - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" - -"@babel/helpers@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b" - integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q== +"@babel/helpers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" + integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== dependencies: - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" @@ -312,15 +283,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.0": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.2.tgz#b4521a400cb5a871eab3890787b4bc1326d38d91" - integrity sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g== - -"@babel/parser@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b" - integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" + integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -332,11 +298,11 @@ "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-proposal-class-properties@^7.0.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.0.tgz#d70db61a2f1fd79de927eea91f6411c964e084b8" - integrity sha512-t2ECPNOXsIeK1JxJNKmgbzQtoG27KIlVE61vTqX0DKR9E9sZlVVxWUtEW9D5FlZ8b8j7SBNCHY47GgPKCKlpPg== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce" + integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.4.0" + "@babel/helper-create-class-features-plugin" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-json-strings@^7.2.0": @@ -347,10 +313,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.0.tgz#e4960575205eadf2a1ab4e0c79f9504d5b82a97f" - integrity sha512-uTNi8pPYyUH2eWHyYWWSYJKwKg34hhgl4/dbejEjL+64OhbHjTX7wEVWMQl82tEmdDsGeu77+s8HHLS627h6OQ== +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" + integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -363,13 +329,13 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623" - integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" "@babel/plugin-syntax-async-generators@^7.2.0": @@ -386,6 +352,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" @@ -421,10 +394,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0" - integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g== +"@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" + integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -437,26 +410,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb" - integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ== +"@babel/plugin-transform-block-scoping@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" + integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.11" -"@babel/plugin-transform-classes@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.0.tgz#e3428d3c8a3d01f33b10c529b998ba1707043d4d" - integrity sha512-XGg1Mhbw4LDmrO9rSTNe+uI79tQPdGs0YASlxgweYRLZqo/EQktjaOV4tchL/UZbM0F+/94uOipmdNGoaGOEYg== +"@babel/plugin-transform-classes@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" + integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.4.0" + "@babel/helper-define-map" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.0" - "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -466,21 +439,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.0.tgz#acbb9b2418d290107db333f4d6cd8aa6aea00343" - integrity sha512-HySkoatyYTY3ZwLI8GGvkRWCFrjAGXUHur5sMecmCIdIharnlcWWivOqDJI76vvmVZfzwb6G08NREsrY96RhGQ== +"@babel/plugin-transform-destructuring@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" + integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" - integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" "@babel/plugin-transform-duplicate-keys@^7.2.0": version "7.2.0" @@ -497,17 +470,25 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-for-of@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.0.tgz#56c8c36677f5d4a16b80b12f7b768de064aaeb5f" - integrity sha512-vWdfCEYLlYSxbsKj5lGtzA49K3KANtb8qCPQ1em07txJzsBwY+cKJzBHizj5fl3CCx7vt+WPdgDLTHmydkbQSQ== +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" + integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== dependencies: "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" -"@babel/plugin-transform-function-name@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" - integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== +"@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -519,6 +500,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-modules-amd@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" @@ -527,21 +515,21 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.0.tgz#3b8ec61714d3b75d20c5ccfa157f2c2e087fd4ca" - integrity sha512-iWKAooAkipG7g1IY0eah7SumzfnIT3WNhT4uYB2kIsvHnNSB6MDYVa5qyICSwaTBDBY2c4SnJ3JtEa6ltJd6Jw== +"@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" + integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== dependencies: - "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1" - integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ== +"@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" + integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== dependencies: - "@babel/helper-hoist-variables" "^7.4.0" + "@babel/helper-hoist-variables" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-umd@^7.2.0": @@ -552,17 +540,17 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.2": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e" - integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ== +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.4.tgz#5611d96d987dfc4a3a81c4383bb173361037d68d" + integrity sha512-Ki+Y9nXBlKfhD+LXaRS7v95TtTGYRAf9Y1rTDiE75zf8YQz4GDaWRXosMfJBXxnk88mGFjWdCRIeqDbon7spYA== dependencies: regexp-tree "^0.1.0" -"@babel/plugin-transform-new-target@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150" - integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw== +"@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -574,15 +562,22 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" -"@babel/plugin-transform-parameters@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.0.tgz#a1309426fac4eecd2a9439a4c8c35124a11a48a9" - integrity sha512-Xqv6d1X+doyiuCGDoVJFtlZx0onAX0tnc3dY8w71pv/O0dODAbusVv2Ale3cGOwfiyi895ivOBhYa9DhAM8dUA== +"@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== dependencies: - "@babel/helper-call-delegate" "^7.4.0" + "@babel/helper-call-delegate" "^7.4.4" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" @@ -615,13 +610,20 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-regenerator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.0.tgz#0780e27ee458cc3fdbad18294d703e972ae1f6d1" - integrity sha512-SZ+CgL4F0wm4npojPU6swo/cK4FcbLgxLd4cWpHaNXY/NJ2dpahODCqBbAwb2rDmVszVb3SSjnk9/vik3AYdBw== +"@babel/plugin-transform-regenerator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.4.tgz#5b4da4df79391895fca9e28f99e87e22cfc02072" + integrity sha512-Zz3w+pX1SI0KMIiqshFZkwnVGUhDZzpX2vtPzfJBKQQq8WsP/Xy9DNdELWivxcKOCX/Pywge4SiEaPaLtoDT4g== dependencies: regenerator-transform "^0.13.4" +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-shorthand-properties@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" @@ -644,10 +646,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" -"@babel/plugin-transform-template-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" - integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== +"@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -659,81 +661,84 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-unicode-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" - integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== +"@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/polyfill@^7.0.0", "@babel/polyfill@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.4.0.tgz#90f9d68ae34ac42ab4b4aa03151848f536960218" - integrity sha512-bVsjsrtsDflIHp5I6caaAa2V25Kzn50HKPL6g3X0P0ni1ks+58cPB8Mz6AOKVuRPgaVdq/OwEUc/1vKqX+Mo4A== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.2" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.5.4" -"@babel/polyfill@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.4.3.tgz#332dc6f57b718017c3a8b37b4eea8aa6eeac1187" - integrity sha512-rkv8WIvJshA5Ev8iNMGgz5WZkRtgtiPexiT7w5qevGTuT7ZBfM3de9ox1y9JR5/OXb/sWGBbWlHNa7vQKqku3Q== +"@babel/polyfill@^7.0.0", "@babel/polyfill@^7.4.0", "@babel/polyfill@^7.4.3": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.4.4.tgz#78801cf3dbe657844eeabf31c1cae3828051e893" + integrity sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg== dependencies: core-js "^2.6.5" regenerator-runtime "^0.13.2" "@babel/preset-env@^7.0.0", "@babel/preset-env@^7.4.2": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.2.tgz#2f5ba1de2daefa9dcca653848f96c7ce2e406676" - integrity sha512-OEz6VOZaI9LW08CWVS3d9g/0jZA6YCn1gsKIy/fut7yZCJti5Lm1/Hi+uo/U+ODm7g4I6gULrCP+/+laT8xAsA== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.4.tgz#b6f6825bfb27b3e1394ca3de4f926482722c1d6f" + integrity sha512-FU1H+ACWqZZqfw1x2G1tgtSSYSfxJLkpaUQL37CenULFARDo+h4xJoVHzRoHbK+85ViLciuI7ME4WTIhFRBBlw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.4.0" + "@babel/plugin-proposal-object-rest-spread" "^7.4.4" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.4.0" + "@babel/plugin-transform-async-to-generator" "^7.4.4" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.4.0" - "@babel/plugin-transform-classes" "^7.4.0" + "@babel/plugin-transform-block-scoping" "^7.4.4" + "@babel/plugin-transform-classes" "^7.4.4" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.4.0" - "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.0" - "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.4.0" - "@babel/plugin-transform-modules-systemjs" "^7.4.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-modules-systemjs" "^7.4.4" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2" - "@babel/plugin-transform-new-target" "^7.4.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.4" + "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.4.0" - "@babel/plugin-transform-regenerator" "^7.4.0" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.4" + "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.2.0" "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.2.0" - "@babel/types" "^7.4.0" - browserslist "^4.4.2" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.4.4" + browserslist "^4.5.2" core-js-compat "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" - semver "^5.3.0" + semver "^5.5.0" + +"@babel/preset-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" + integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" "@babel/preset-react@^7.0.0": version "7.0.0" @@ -747,9 +752,9 @@ "@babel/plugin-transform-react-jsx-source" "^7.0.0" "@babel/register@^7.0.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.0.tgz#d9d0a621db268fb14200f2685a4f8924c822404c" - integrity sha512-ekziebXBnS/7V6xk8sBfLSSD6YZuy6P29igBtR6OL/tswKdxOV+Yqq0nzICMguVYtGRZYUCGpfGV8J9Za2iBdw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23" + integrity sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA== dependencies: core-js "^3.0.0" find-cache-dir "^2.0.0" @@ -759,9 +764,9 @@ source-map-support "^0.5.9" "@babel/runtime@^7.1.2": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.2.tgz#f5ab6897320f16decd855eed70b705908a313fe8" - integrity sha512-7Bl2rALb7HpvXFL7TETNzKSAeBVCPHELzc0C//9FCxN8nsiueWSJBqaF+2oIJScyILStASR/Cx5WMkXGYTiJFA== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.4.tgz#dc2e34982eb236803aa27a07fea6857af1b9171d" + integrity sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg== dependencies: regenerator-runtime "^0.13.2" @@ -775,14 +780,14 @@ babylon "7.0.0-beta.44" lodash "^4.2.0" -"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" - integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.0" - "@babel/types" "^7.4.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" @@ -800,32 +805,17 @@ invariant "^2.2.0" lodash "^4.2.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.0.tgz#14006967dd1d2b3494cdd650c686db9daf0ddada" - integrity sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.0" - "@babel/parser" "^7.4.0" - "@babel/types" "^7.4.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/traverse@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84" - integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" + integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" + "@babel/generator" "^7.4.4" "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/types" "^7.4.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.11" @@ -839,10 +829,10 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" - integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== dependencies: esutils "^2.0.2" lodash "^4.17.11" @@ -856,42 +846,41 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@jest/console@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" - integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== +"@jest/console@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" + integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== dependencies: "@jest/source-map" "^24.3.0" - "@types/node" "*" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.5.0.tgz#2cefc6a69e9ebcae1da8f7c75f8a257152ba1ec0" - integrity sha512-RDZArRzAs51YS7dXG1pbXbWGxK53rvUu8mCDYsgqqqQ6uSOaTjcVyBl2Jce0exT2rSLk38ca7az7t2f3b0/oYQ== +"@jest/core@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" + integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== dependencies: - "@jest/console" "^24.3.0" - "@jest/reporters" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.5.0" - jest-config "^24.5.0" - jest-haste-map "^24.5.0" - jest-message-util "^24.5.0" + jest-changed-files "^24.8.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.5.0" - jest-runner "^24.5.0" - jest-runtime "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" - jest-watcher "^24.5.0" + jest-resolve-dependencies "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + jest-watcher "^24.8.0" micromatch "^3.1.10" p-each-series "^1.0.0" pirates "^4.0.1" @@ -899,48 +888,47 @@ rimraf "^2.5.4" strip-ansi "^5.0.0" -"@jest/environment@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.5.0.tgz#a2557f7808767abea3f9e4cc43a172122a63aca8" - integrity sha512-tzUHR9SHjMXwM8QmfHb/EJNbF0fjbH4ieefJBvtwO8YErLTrecc1ROj0uo2VnIT6SlpEGZnvdCK6VgKYBo8LsA== - dependencies: - "@jest/fake-timers" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" - jest-mock "^24.5.0" - -"@jest/fake-timers@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.5.0.tgz#4a29678b91fd0876144a58f8d46e6c62de0266f0" - integrity sha512-i59KVt3QBz9d+4Qr4QxsKgsIg+NjfuCjSOWj3RQhjF5JNy+eVJDhANQ4WzulzNCHd72srMAykwtRn5NYDGVraw== - dependencies: - "@jest/types" "^24.5.0" - "@types/node" "*" - jest-message-util "^24.5.0" - jest-mock "^24.5.0" - -"@jest/reporters@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.5.0.tgz#9363a210d0daa74696886d9cb294eb8b3ad9b4d9" - integrity sha512-vfpceiaKtGgnuC3ss5czWOihKOUSyjJA4M4udm6nH8xgqsuQYcyDCi4nMMcBKsHXWgz9/V5G7iisnZGfOh1w6Q== - dependencies: - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" +"@jest/environment@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" + integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== + dependencies: + "@jest/fake-timers" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + +"@jest/fake-timers@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1" + integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw== + dependencies: + "@jest/types" "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" + +"@jest/reporters@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" + integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" - istanbul-api "^2.1.1" istanbul-lib-coverage "^2.0.2" istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - jest-haste-map "^24.5.0" - jest-resolve "^24.5.0" - jest-runtime "^24.5.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" + istanbul-reports "^2.1.1" + jest-haste-map "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" node-notifier "^5.2.1" slash "^2.0.0" source-map "^0.6.0" @@ -955,52 +943,63 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.5.0.tgz#ab66fb7741a04af3363443084e72ea84861a53f2" - integrity sha512-u66j2vBfa8Bli1+o3rCaVnVYa9O8CAFZeqiqLVhnarXtreSXG33YQ6vNYBogT7+nYiFNOohTU21BKiHlgmxD5A== +"@jest/test-result@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" + integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng== + dependencies: + "@jest/console" "^24.7.1" + "@jest/types" "^24.8.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" + integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== dependencies: - "@jest/console" "^24.3.0" - "@jest/types" "^24.5.0" - "@types/istanbul-lib-coverage" "^1.1.0" + "@jest/test-result" "^24.8.0" + jest-haste-map "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" -"@jest/transform@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.5.0.tgz#6709fc26db918e6af63a985f2cc3c464b4cf99d9" - integrity sha512-XSsDz1gdR/QMmB8UCKlweAReQsZrD/DK7FuDlNo/pE8EcKMrfi2kqLRk8h8Gy/PDzgqJj64jNEzOce9pR8oj1w== +"@jest/transform@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5" + integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.5.0" + jest-haste-map "^24.8.0" jest-regex-util "^24.3.0" - jest-util "^24.5.0" + jest-util "^24.8.0" micromatch "^3.1.10" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.5.0.tgz#feee214a4d0167b0ca447284e95a57aa10b3ee95" - integrity sha512-kN7RFzNMf2R8UDadPOl6ReyI+MT8xfqRuAnuVL+i4gwjv/zubdDK+EDeLHYwq1j0CSSR2W/MmgaRlMZJzXdmVA== +"@jest/types@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" + integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== dependencies: - "@types/istanbul-lib-coverage" "^1.1.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" -"@lerna/add@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.13.1.tgz#2cd7838857edb3b43ed73e3c21f69a20beb9b702" - integrity sha512-cXk42YbuhzEnADCK8Qte5laC9Qo03eJLVnr0qKY85jQUM/T4URe3IIUemqpg0CpVATrB+Vz+iNdeqw9ng1iALw== +"@lerna/add@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.13.3.tgz#f4c1674839780e458f0426d4f7b6d0a77b9a2ae9" + integrity sha512-T3/Lsbo9ZFq+vL3ssaHxA8oKikZAPTJTGFe4CRuQgWCDd/M61+51jeWsngdaHpwzSSRDRjxg8fJTG10y10pnfA== dependencies: - "@lerna/bootstrap" "3.13.1" - "@lerna/command" "3.13.1" - "@lerna/filter-options" "3.13.0" + "@lerna/bootstrap" "3.13.3" + "@lerna/command" "3.13.3" + "@lerna/filter-options" "3.13.3" "@lerna/npm-conf" "3.13.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" @@ -1018,19 +1017,19 @@ "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/bootstrap@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.13.1.tgz#f2edd7c8093c8b139e78b0ca5f845f23efd01f08" - integrity sha512-mKdi5Ds5f82PZwEFyB9/W60I3iELobi1i87sTeVrbJh/um7GvqpSPy7kG/JPxyOdMpB2njX6LiJgw+7b6BEPWw== +"@lerna/bootstrap@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.13.3.tgz#a0e5e466de5c100b49d558d39139204fc4db5c95" + integrity sha512-2XzijnLHRZOVQh8pwS7+5GR3cG4uh+EiLrWOishCq2TVzkqgjaS3GGBoef7KMCXfWHoLqAZRr/jEdLqfETLVqg== dependencies: "@lerna/batch-packages" "3.13.0" - "@lerna/command" "3.13.1" - "@lerna/filter-options" "3.13.0" - "@lerna/has-npm-version" "3.13.0" - "@lerna/npm-install" "3.13.0" + "@lerna/command" "3.13.3" + "@lerna/filter-options" "3.13.3" + "@lerna/has-npm-version" "3.13.3" + "@lerna/npm-install" "3.13.3" "@lerna/package-graph" "3.13.0" "@lerna/pulse-till-done" "3.13.0" - "@lerna/rimraf-dir" "3.13.0" + "@lerna/rimraf-dir" "3.13.3" "@lerna/run-lifecycle" "3.13.0" "@lerna/run-parallel-batches" "3.13.0" "@lerna/symlink-binary" "3.13.0" @@ -1048,44 +1047,44 @@ read-package-tree "^5.1.6" semver "^5.5.0" -"@lerna/changed@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.13.1.tgz#dc92476aad43c932fe741969bbd0bcf6146a4c52" - integrity sha512-BRXitEJGOkoudbxEewW7WhjkLxFD+tTk4PrYpHLyCBk63pNTWtQLRE6dc1hqwh4emwyGncoyW6RgXfLgMZgryw== +"@lerna/changed@3.13.4": + version "3.13.4" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.13.4.tgz#c69d8a079999e49611dd58987f08437baee81ad4" + integrity sha512-9lfOyRVObasw6L/z7yCSfsEl1QKy0Eamb8t2Krg1deIoAt+cE3JXOdGGC1MhOSli+7f/U9LyLXjJzIOs/pc9fw== dependencies: - "@lerna/collect-updates" "3.13.0" - "@lerna/command" "3.13.1" + "@lerna/collect-updates" "3.13.3" + "@lerna/command" "3.13.3" "@lerna/listable" "3.13.0" "@lerna/output" "3.13.0" - "@lerna/version" "3.13.1" + "@lerna/version" "3.13.4" -"@lerna/check-working-tree@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.13.0.tgz#1ddcd4d9b1aceb65efaaa4cd1333a66706d67c9c" - integrity sha512-dsdO15NXX5To+Q53SYeCrBEpiqv4m5VkaPZxbGQZNwoRen1MloXuqxSymJANQn+ZLEqarv5V56gydebeROPH5A== +"@lerna/check-working-tree@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.13.3.tgz#836a3ffd4413a29aca92ccca4a115e4f97109992" + integrity sha512-LoGZvTkne+V1WpVdCTU0XNzFKsQa2AiAFKksGRT0v8NQj6VAPp0jfVYDayTqwaWt2Ne0OGKOFE79Y5LStOuhaQ== dependencies: - "@lerna/describe-ref" "3.13.0" + "@lerna/describe-ref" "3.13.3" "@lerna/validation-error" "3.13.0" -"@lerna/child-process@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.13.0.tgz#84e35adf3217a6983edd28080657b9596a052674" - integrity sha512-0iDS8y2jiEucD4fJHEzKoc8aQJgm7s+hG+0RmDNtfT0MM3n17pZnf5JOMtS1FJp+SEXOjMKQndyyaDIPFsnp6A== +"@lerna/child-process@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.13.3.tgz#6c084ee5cca9fc9e04d6bf4fc3f743ed26ff190c" + integrity sha512-3/e2uCLnbU+bydDnDwyadpOmuzazS01EcnOleAnuj9235CU2U97DH6OyoG1EW/fU59x11J+HjIqovh5vBaMQjQ== dependencies: chalk "^2.3.1" execa "^1.0.0" strong-log-transformer "^2.0.0" -"@lerna/clean@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.13.1.tgz#9a7432efceccd720a51da5c76f849fc59c5a14ce" - integrity sha512-myGIaXv7RUO2qCFZXvx8SJeI+eN6y9SUD5zZ4/LvNogbOiEIlujC5lUAqK65rAHayQ9ltSa/yK6Xv510xhZXZQ== +"@lerna/clean@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.13.3.tgz#5673a1238e0712d31711e7e4e8cb9641891daaea" + integrity sha512-xmNauF1PpmDaKdtA2yuRc23Tru4q7UMO6yB1a/TTwxYPYYsAWG/CBK65bV26J7x4RlZtEv06ztYGMa9zh34UXA== dependencies: - "@lerna/command" "3.13.1" - "@lerna/filter-options" "3.13.0" + "@lerna/command" "3.13.3" + "@lerna/filter-options" "3.13.3" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" - "@lerna/rimraf-dir" "3.13.0" + "@lerna/rimraf-dir" "3.13.3" p-map "^1.2.0" p-map-series "^1.0.0" p-waterfall "^1.0.0" @@ -1100,23 +1099,23 @@ npmlog "^4.1.2" yargs "^12.0.1" -"@lerna/collect-updates@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.13.0.tgz#f0828d84ff959ff153d006765659ffc4d68cdefc" - integrity sha512-uR3u6uTzrS1p46tHQ/mlHog/nRJGBqskTHYYJbgirujxm6FqNh7Do+I1Q/7zSee407G4lzsNxZdm8IL927HemQ== +"@lerna/collect-updates@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.13.3.tgz#616648da59f0aff4a8e60257795cc46ca6921edd" + integrity sha512-sTpALOAxli/ZS+Mjq6fbmjU9YXqFJ2E4FrE1Ijl4wPC5stXEosg2u0Z1uPY+zVKdM+mOIhLxPVdx83rUgRS+Cg== dependencies: - "@lerna/child-process" "3.13.0" - "@lerna/describe-ref" "3.13.0" + "@lerna/child-process" "3.13.3" + "@lerna/describe-ref" "3.13.3" minimatch "^3.0.4" npmlog "^4.1.2" slash "^1.0.0" -"@lerna/command@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.13.1.tgz#b60dda2c0d9ffbb6030d61ddf7cceedc1e8f7e6e" - integrity sha512-SYWezxX+iheWvzRoHCrbs8v5zHPaxAx3kWvZhqi70vuGsdOVAWmaG4IvHLn11ztS+Vpd5PM+ztBWSbnykpLFKQ== +"@lerna/command@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.13.3.tgz#5b20b3f507224573551039e0460bc36c39f7e9d1" + integrity sha512-WHFIQCubJV0T8gSLRNr6exZUxTswrh+iAtJCb86SE0Sa+auMPklE8af7w2Yck5GJfewmxSjke3yrjNxQrstx7w== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" "@lerna/package-graph" "3.13.0" "@lerna/project" "3.13.1" "@lerna/validation-error" "3.13.0" @@ -1152,13 +1151,13 @@ fs-extra "^7.0.0" npmlog "^4.1.2" -"@lerna/create@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.13.1.tgz#2c1284cfdc59f0d2b88286d78bc797f4ab330f79" - integrity sha512-pLENMXgTkQuvKxAopjKeoLOv9fVUCnpTUD7aLrY5d95/1xqSZlnsOcQfUYcpMf3GpOvHc8ILmI5OXkPqjAf54g== +"@lerna/create@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.13.3.tgz#6ded142c54b7f3cea86413c3637b067027b7f55d" + integrity sha512-4M5xT1AyUMwt1gCDph4BfW3e6fZmt0KjTa3FoXkUotf/w/eqTsc2IQ+ULz2+gOFQmtuNbqIZEOK3J4P9ArJJ/A== dependencies: - "@lerna/child-process" "3.13.0" - "@lerna/command" "3.13.1" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.13.3" "@lerna/npm-conf" "3.13.0" "@lerna/validation-error" "3.13.0" camelcase "^5.0.0" @@ -1176,42 +1175,42 @@ validate-npm-package-name "^3.0.0" whatwg-url "^7.0.0" -"@lerna/describe-ref@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.13.0.tgz#fb4c3863fd6bcccad67ce7b183887a5fc1942bb6" - integrity sha512-UJefF5mLxLae9I2Sbz5RLYGbqbikRuMqdgTam0MS5OhXnyuuKYBUpwBshCURNb1dPBXTQhSwc7+oUhORx8ojCg== +"@lerna/describe-ref@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.13.3.tgz#13318513613f6a407d37fc5dc025ec2cfb705606" + integrity sha512-5KcLTvjdS4gU5evW8ESbZ0BF44NM5HrP3dQNtWnOUSKJRgsES8Gj0lq9AlB2+YglZfjEftFT03uOYOxnKto4Uw== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" npmlog "^4.1.2" -"@lerna/diff@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.13.1.tgz#5c734321b0f6c46a3c87f55c99afef3b01d46520" - integrity sha512-cKqmpONO57mdvxtp8e+l5+tjtmF04+7E+O0QEcLcNUAjC6UR2OSM77nwRCXDukou/1h72JtWs0jjcdYLwAmApg== +"@lerna/diff@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.13.3.tgz#883cb3a83a956dbfc2c17bc9a156468a5d3fae17" + integrity sha512-/DRS2keYbnKaAC+5AkDyZRGkP/kT7v1GlUS0JGZeiRDPQ1H6PzhX09EgE5X6nj0Ytrm0sUasDeN++CDVvgaI+A== dependencies: - "@lerna/child-process" "3.13.0" - "@lerna/command" "3.13.1" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.13.3" "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/exec@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.13.1.tgz#4439e90fb0877ec38a6ef933c86580d43eeaf81b" - integrity sha512-I34wEP9lrAqqM7tTXLDxv/6454WFzrnXDWpNDbiKQiZs6SIrOOjmm6I4FiQsx+rU3o9d+HkC6tcUJRN5mlJUgA== +"@lerna/exec@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.13.3.tgz#5d2eda3f6e584f2f15b115e8a4b5bc960ba5de85" + integrity sha512-c0bD4XqM96CTPV8+lvkxzE7mkxiFyv/WNM4H01YvvbFAJzk+S4Y7cBtRkIYFTfkFZW3FLo8pEgtG1ONtIdM+tg== dependencies: "@lerna/batch-packages" "3.13.0" - "@lerna/child-process" "3.13.0" - "@lerna/command" "3.13.1" - "@lerna/filter-options" "3.13.0" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.13.3" + "@lerna/filter-options" "3.13.3" "@lerna/run-parallel-batches" "3.13.0" "@lerna/validation-error" "3.13.0" -"@lerna/filter-options@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.13.0.tgz#976e3d8b9fcd47001ab981d276565c1e9f767868" - integrity sha512-SRp7DCo9zrf+7NkQxZMkeyO1GRN6GICoB9UcBAbXhLbWisT37Cx5/6+jh49gYB63d/0/WYHSEPMlheUrpv1Srw== +"@lerna/filter-options@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.13.3.tgz#aa42a4ab78837b8a6c4278ba871d27e92d77c54f" + integrity sha512-DbtQX4eRgrBz1wCFWRP99JBD7ODykYme9ykEK79+RrKph40znhJQRlLg4idogj6IsUEzwo1OHjihCzSfnVo6Cg== dependencies: - "@lerna/collect-updates" "3.13.0" + "@lerna/collect-updates" "3.13.3" "@lerna/filter-packages" "3.13.0" dedent "^0.7.0" @@ -1240,12 +1239,12 @@ ssri "^6.0.1" tar "^4.4.8" -"@lerna/github-client@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.13.1.tgz#cb9bf9f01685a0cee0fac63f287f6c3673e45aa3" - integrity sha512-iPLUp8FFoAKGURksYEYZzfuo9TRA+NepVlseRXFaWlmy36dCQN20AciINpoXiXGoHcEUHXUKHQvY3ARFdMlf3w== +"@lerna/github-client@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.13.3.tgz#bcf9b4ff40bdd104cb40cd257322f052b41bb9ce" + integrity sha512-fcJkjab4kX0zcLLSa/DCUNvU3v8wmy2c1lhdIbL7s7gABmDcV0QZq93LhnEee3VkC9UpnJ6GKG4EkD7eIifBnA== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" "@octokit/plugin-enterprise-rest" "^2.1.1" "@octokit/rest" "^16.16.0" git-url-parse "^11.1.2" @@ -1256,21 +1255,21 @@ resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== -"@lerna/has-npm-version@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.13.0.tgz#6e1f7e9336cce3e029066f0175f06dd9d51ad09f" - integrity sha512-Oqu7DGLnrMENPm+bPFGOHnqxK8lCnuYr6bk3g/CoNn8/U0qgFvHcq6Iv8/Z04TsvleX+3/RgauSD2kMfRmbypg== +"@lerna/has-npm-version@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.13.3.tgz#167e3f602a2fb58f84f93cf5df39705ca6432a2d" + integrity sha512-mQzoghRw4dBg0R9FFfHrj0TH0glvXyzdEZmYZ8Isvx5BSuEEwpsryoywuZSdppcvLu8o7NAdU5Tac8cJ/mT52w== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" semver "^5.5.0" -"@lerna/import@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.13.1.tgz#69d641341a38b79bd379129da1c717d51dd728c7" - integrity sha512-A1Vk1siYx1XkRl6w+zkaA0iptV5TIynVlHPR9S7NY0XAfhykjztYVvwtxarlh6+VcNrO9We6if0+FXCrfDEoIg== +"@lerna/import@3.13.4": + version "3.13.4" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.13.4.tgz#e9a1831b8fed33f3cbeab3b84c722c9371a2eaf7" + integrity sha512-dn6eNuPEljWsifBEzJ9B6NoaLwl/Zvof7PBUPA4hRyRlqG5sXRn6F9DnusMTovvSarbicmTURbOokYuotVWQQA== dependencies: - "@lerna/child-process" "3.13.0" - "@lerna/command" "3.13.1" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.13.3" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" "@lerna/validation-error" "3.13.0" @@ -1278,35 +1277,35 @@ fs-extra "^7.0.0" p-map-series "^1.0.0" -"@lerna/init@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.13.1.tgz#0392c822abb3d63a75be4916c5e761cfa7b34dda" - integrity sha512-M59WACqim8WkH5FQEGOCEZ89NDxCKBfFTx4ZD5ig3LkGyJ8RdcJq5KEfpW/aESuRE9JrZLzVr0IjKbZSxzwEMA== +"@lerna/init@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.13.3.tgz#ebd522fee9b9d7d3b2dacb0261eaddb4826851ff" + integrity sha512-bK/mp0sF6jT0N+c+xrbMCqN4xRoiZCXQzlYsyACxPK99KH/mpHv7hViZlTYUGlYcymtew6ZC770miv5A9wF9hA== dependencies: - "@lerna/child-process" "3.13.0" - "@lerna/command" "3.13.1" + "@lerna/child-process" "3.13.3" + "@lerna/command" "3.13.3" fs-extra "^7.0.0" p-map "^1.2.0" write-json-file "^2.3.0" -"@lerna/link@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.13.1.tgz#7d8ed4774bfa198d1780f790a14abb8722a3aad1" - integrity sha512-N3h3Fj1dcea+1RaAoAdy4g2m3fvU7m89HoUn5X/Zcw5n2kPoK8kTO+NfhNAatfRV8VtMXst8vbNrWQQtfm0FFw== +"@lerna/link@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.13.3.tgz#11124d4a0c8d0b79752fbda3babedfd62dd57847" + integrity sha512-IHhtdhA0KlIdevCsq6WHkI2rF3lHWHziJs2mlrEWAKniVrFczbELON1KJAgdJS1k3kAP/WeWVqmIYZ2hJDxMvg== dependencies: - "@lerna/command" "3.13.1" + "@lerna/command" "3.13.3" "@lerna/package-graph" "3.13.0" "@lerna/symlink-dependencies" "3.13.0" p-map "^1.2.0" slash "^1.0.0" -"@lerna/list@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.13.1.tgz#f9513ed143e52156c10ada4070f903c5847dcd10" - integrity sha512-635iRbdgd9gNvYLLIbYdQCQLr+HioM5FGJLFS0g3DPGygr6iDR8KS47hzCRGH91LU9NcM1mD1RoT/AChF+QbiA== +"@lerna/list@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.13.3.tgz#fa93864d43cadeb4cd540a4e78a52886c57dbe74" + integrity sha512-rLRDsBCkydMq2FL6WY1J/elvnXIjxxRtb72lfKHdvDEqVdquT5Qgt9ci42hwjmcocFwWcFJgF6BZozj5pbc13A== dependencies: - "@lerna/command" "3.13.1" - "@lerna/filter-options" "3.13.0" + "@lerna/command" "3.13.3" + "@lerna/filter-options" "3.13.3" "@lerna/listable" "3.13.0" "@lerna/output" "3.13.0" @@ -1347,12 +1346,12 @@ npm-registry-fetch "^3.9.0" npmlog "^4.1.2" -"@lerna/npm-install@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.13.0.tgz#88f4cc39f4f737c8a8721256b915ea1bcc6a7227" - integrity sha512-qNyfts//isYQxore6fsPorNYJmPVKZ6tOThSH97tP0aV91zGMtrYRqlAoUnDwDdAjHPYEM16hNujg2wRmsqqIw== +"@lerna/npm-install@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.13.3.tgz#9b09852732e51c16d2e060ff2fd8bfbbb49cf7ba" + integrity sha512-7Jig9MLpwAfcsdQ5UeanAjndChUjiTjTp50zJ+UZz4CbIBIDhoBehvNMTCL2G6pOEC7sGEg6sAqJINAqred6Tg== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" "@lerna/get-npm-exec-opts" "3.13.0" fs-extra "^7.0.0" npm-package-arg "^6.1.0" @@ -1360,25 +1359,26 @@ signal-exit "^3.0.2" write-pkg "^3.1.0" -"@lerna/npm-publish@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.13.0.tgz#5c74808376e778865ffdc5885fe83935e15e60c3" - integrity sha512-y4WO0XTaf9gNRkI7as6P2ItVDOxmYHwYto357fjybcnfXgMqEA94c3GJ++jU41j0A9vnmYC6/XxpTd9sVmH9tA== +"@lerna/npm-publish@3.13.2": + version "3.13.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.13.2.tgz#ad713ca6f91a852687d7d0e1bda7f9c66df21768" + integrity sha512-HMucPyEYZfom5tRJL4GsKBRi47yvSS2ynMXYxL3kO0ie+j9J7cb0Ir8NmaAMEd3uJWJVFCPuQarehyfTDZsSxg== dependencies: "@lerna/run-lifecycle" "3.13.0" figgy-pudding "^3.5.1" fs-extra "^7.0.0" libnpmpublish "^1.1.1" + npm-package-arg "^6.1.0" npmlog "^4.1.2" pify "^3.0.0" read-package-json "^2.0.13" -"@lerna/npm-run-script@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.13.0.tgz#e5997f045402b9948bdc066033ebb36bf94fc9e4" - integrity sha512-hiL3/VeVp+NFatBjkGN8mUdX24EfZx9rQlSie0CMgtjc7iZrtd0jCguLomSCRHYjJuvqgbp+LLYo7nHVykfkaQ== +"@lerna/npm-run-script@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.13.3.tgz#9bb6389ed70cd506905d6b05b6eab336b4266caf" + integrity sha512-qR4o9BFt5hI8Od5/DqLalOJydnKpiQFEeN0h9xZi7MwzuX1Ukwh3X22vqsX4YRbipIelSFtrDzleNVUm5jj0ow== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" "@lerna/get-npm-exec-opts" "3.13.0" npmlog "^4.1.2" @@ -1447,21 +1447,21 @@ inquirer "^6.2.0" npmlog "^4.1.2" -"@lerna/publish@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.13.1.tgz#217e401dcb5824cdd6d36555a36303fb7520c514" - integrity sha512-KhCJ9UDx76HWCF03i5TD7z5lX+2yklHh5SyO8eDaLptgdLDQ0Z78lfGj3JhewHU2l46FztmqxL/ss0IkWHDL+g== +"@lerna/publish@3.13.4": + version "3.13.4" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.13.4.tgz#25b678c285110897a7fc5198a35bdfa9db7f9cc1" + integrity sha512-v03pabiPlqCDwX6cVNis1PDdT6/jBgkVb5Nl4e8wcJXevIhZw3ClvtI94gSZu/wdoVFX0RMfc8QBVmaimSO0qg== dependencies: "@lerna/batch-packages" "3.13.0" - "@lerna/check-working-tree" "3.13.0" - "@lerna/child-process" "3.13.0" - "@lerna/collect-updates" "3.13.0" - "@lerna/command" "3.13.1" - "@lerna/describe-ref" "3.13.0" + "@lerna/check-working-tree" "3.13.3" + "@lerna/child-process" "3.13.3" + "@lerna/collect-updates" "3.13.3" + "@lerna/command" "3.13.3" + "@lerna/describe-ref" "3.13.3" "@lerna/log-packed" "3.13.0" "@lerna/npm-conf" "3.13.0" "@lerna/npm-dist-tag" "3.13.0" - "@lerna/npm-publish" "3.13.0" + "@lerna/npm-publish" "3.13.2" "@lerna/output" "3.13.0" "@lerna/pack-directory" "3.13.1" "@lerna/prompt" "3.13.0" @@ -1469,7 +1469,7 @@ "@lerna/run-lifecycle" "3.13.0" "@lerna/run-parallel-batches" "3.13.0" "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.13.1" + "@lerna/version" "3.13.4" figgy-pudding "^3.5.1" fs-extra "^7.0.0" libnpmaccess "^3.0.1" @@ -1499,12 +1499,12 @@ npmlog "^4.1.2" read-cmd-shim "^1.0.1" -"@lerna/rimraf-dir@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.13.0.tgz#bb1006104b4aabcb6985624273254648f872b278" - integrity sha512-kte+pMemulre8cmPqljxIYjCmdLByz8DgHBHXB49kz2EiPf8JJ+hJFt0PzEubEyJZ2YE2EVAx5Tv5+NfGNUQyQ== +"@lerna/rimraf-dir@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.13.3.tgz#3a8e71317fde853893ef0262bc9bba6a180b7227" + integrity sha512-d0T1Hxwu3gpYVv73ytSL+/Oy8JitsmvOYUR5ouRSABsmqS7ZZCh5t6FgVDDGVXeuhbw82+vuny1Og6Q0k4ilqw== dependencies: - "@lerna/child-process" "3.13.0" + "@lerna/child-process" "3.13.3" npmlog "^4.1.2" path-exists "^3.0.0" rimraf "^2.6.2" @@ -1527,15 +1527,15 @@ p-map "^1.2.0" p-map-series "^1.0.0" -"@lerna/run@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.13.1.tgz#87e174c1d271894ddd29adc315c068fb7b1b0117" - integrity sha512-nv1oj7bsqppWm1M4ifN+/IIbVu9F4RixrbQD2okqDGYne4RQPAXyb5cEZuAzY/wyGTWWiVaZ1zpj5ogPWvH0bw== +"@lerna/run@3.13.3": + version "3.13.3" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.13.3.tgz#0781c82d225ef6e85e28d3e763f7fc090a376a21" + integrity sha512-ygnLIfIYS6YY1JHWOM4CsdZiY8kTYPsDFOLAwASlRnlAXF9HiMT08GFXLmMHIblZJ8yJhsM2+QgraCB0WdxzOQ== dependencies: "@lerna/batch-packages" "3.13.0" - "@lerna/command" "3.13.1" - "@lerna/filter-options" "3.13.0" - "@lerna/npm-run-script" "3.13.0" + "@lerna/command" "3.13.3" + "@lerna/filter-options" "3.13.3" + "@lerna/npm-run-script" "3.13.3" "@lerna/output" "3.13.0" "@lerna/run-parallel-batches" "3.13.0" "@lerna/timer" "3.13.0" @@ -1577,18 +1577,18 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@3.13.1": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.13.1.tgz#5e919d13abb13a663dcc7922bb40931f12fb137b" - integrity sha512-WpfKc5jZBBOJ6bFS4atPJEbHSiywQ/Gcd+vrwaEGyQHWHQZnPTvhqLuq3q9fIb9sbuhH5pSY6eehhuBrKqTnjg== +"@lerna/version@3.13.4": + version "3.13.4" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.13.4.tgz#ea23b264bebda425ccbfcdcd1de13ef45a390e59" + integrity sha512-pptWUEgN/lUTQZu34+gfH1g4Uhs7TDKRcdZY9A4T9k6RTOwpKC2ceLGiXdeR+ZgQJAey2C4qiE8fo5Z6Rbc6QA== dependencies: "@lerna/batch-packages" "3.13.0" - "@lerna/check-working-tree" "3.13.0" - "@lerna/child-process" "3.13.0" - "@lerna/collect-updates" "3.13.0" - "@lerna/command" "3.13.1" + "@lerna/check-working-tree" "3.13.3" + "@lerna/child-process" "3.13.3" + "@lerna/collect-updates" "3.13.3" + "@lerna/command" "3.13.3" "@lerna/conventional-commits" "3.13.0" - "@lerna/github-client" "3.13.1" + "@lerna/github-client" "3.13.3" "@lerna/output" "3.13.0" "@lerna/prompt" "3.13.0" "@lerna/run-lifecycle" "3.13.0" @@ -1623,9 +1623,9 @@ unist-util-visit "^1.1.3" "@mdx-js/mdx@^1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.0.14.tgz#f27d51cc0919c2d2be9681fb7689eb8a5a3ea1cd" - integrity sha512-x0V06637Ei3i/ZsagaulupSXPcwmMQC11JzKTTlITszOsLKciDleySbB51Y8WGqEYx1km7WSFacVQcQkj6ONSw== + version "1.0.18" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.0.18.tgz#42bb35e36b7566aed88c5c11a381705f974bc03b" + integrity sha512-KO2odMrZC77Yf9bhL0Qu0GtvVivVV6dL5DWJeuMeSkc9wkL9fBT06re67TfgeJ37R+lyslkG+uPUahIj4/SOoQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" @@ -1635,7 +1635,7 @@ hast-util-raw "^5.0.0" lodash.uniq "^4.5.0" mdast-util-to-hast "^4.0.0" - remark-mdx "^1.0.14" + remark-mdx "^1.0.18" remark-parse "^6.0.0" remark-squeeze-paragraphs "^3.0.1" to-style "^1.3.3" @@ -1644,9 +1644,9 @@ unist-util-visit "^1.3.0" "@mdx-js/react@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.0.6.tgz#59bc131b68cc4f1a246d1e2b79f1223a897e6b65" - integrity sha512-y7Oua/TqZ+2JxRP7Skdno6SPuRnStAgk5LVFLcsowlhu2h6WuUfVI0HvL0KVouCW030v95qDAiLZDVhBiuDSNQ== + version "1.0.16" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.0.16.tgz#414c3fce49493a4c60e5590cfc0a2a07efc19f38" + integrity sha512-HJJO8LYogt9UT4TP3+TVeokMj0lgwCONKlcOfr7VMb38Z6DDE3Ydvi+M3iScUea2DfifS4kGztgJ7zH6HXynTw== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1661,13 +1661,13 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@octokit/endpoint@^3.2.0": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-3.2.3.tgz#bd9aea60cd94ce336656b57a5c9cb7f10be8f4f3" - integrity sha512-yUPCt4vMIOclox13CUxzuKiPJIFo46b/6GhUnUTw5QySczN1L0DtSxgmIZrZV4SAb9EyAqrceoyrWoYVnfF2AA== +"@octokit/endpoint@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.0.tgz#242e32e9d5e2aa9a3075a3de086f198f423d7e39" + integrity sha512-H2DQxteNHrZ2infTlaHPFd6OC+4+erPXwYWDlp/Ey+64FI0kBk7uO2CL6VYNTJdVEoD4OGV+4uyHZgJTkvobIw== dependencies: deepmerge "3.2.0" - is-plain-object "^2.0.4" + is-plain-object "^3.0.0" universal-user-agent "^2.0.1" url-template "^2.0.8" @@ -1676,24 +1676,40 @@ resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.2.2.tgz#c0e22067a043e19f96ff9c7832e2a3019f9be75c" integrity sha512-CTZr64jZYhGWNTDGlSJ2mvIlFsm9OEO3LqWn9I/gmoHI4jRBp4kpHoFYNemG4oA75zUAcmbuWblb7jjP877YZw== -"@octokit/request@2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-2.4.2.tgz#87c36e820dd1e43b1629f4f35c95b00cd456320b" - integrity sha512-lxVlYYvwGbKSHXfbPk5vxEA8w4zHOH1wobado4a9EfsyD3Cbhuhus1w0Ye9Ro0eMubGO8kNy5d+xNFisM3Tvaw== +"@octokit/request@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.2.tgz#dd2424691f486d7ea332ec06e3de55b1ea13c5dc" + integrity sha512-lBH2hf2Yuh9XlmP3MSpn3jL9DyCGG+cuPXDRQiJMK42BwW6xFhwWmG1k6xWykcLM4GwZG/5fuwcqnQXYG0ZTSg== dependencies: - "@octokit/endpoint" "^3.2.0" + "@octokit/endpoint" "^5.1.0" deprecation "^1.0.1" - is-plain-object "^2.0.4" + is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" universal-user-agent "^2.0.1" +"@octokit/rest@^15.2.6": + version "15.18.1" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.18.1.tgz#ec7fb0f8775ef64dc095fae6635411d3fbff9b62" + integrity sha512-g2tecjp2TEtYV8bKAFvfQtu+W29HM7ektmWmw8zrMy9/XCKDEYRErR2YvvhN9+IxkLC4O3lDqYP4b6WgsL6Utw== + dependencies: + before-after-hook "^1.1.0" + btoa-lite "^1.0.0" + debug "^3.1.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.0" + lodash "^4.17.4" + node-fetch "^2.1.1" + universal-user-agent "^2.0.0" + url-template "^2.0.8" + "@octokit/rest@^16.16.0": - version "16.20.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.20.0.tgz#54462b6e540b5d40063850d370ce8e084cf127d6" - integrity sha512-tN5j64P6QymlMzKo94DG1LRNHCwMnLg5poZlVhsCfkHhEWKpofZ1qBDr2/0w6qDLav4EA1XXMmZdNpvGhc9BDQ== + version "16.25.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.3.tgz#ce9e7a6230d20d58574ec929f622f2778ead7eb4" + integrity sha512-/6/Isn9pNoKUQwuWUaskxMC6kFxtXTHhzsgYbyirEQ3UvcLciHvPgtRTbuV3bbVf0x4+4WEfKaI9UzxmPQ3W3A== dependencies: - "@octokit/request" "2.4.2" + "@octokit/request" "3.0.2" + atob-lite "^2.0.0" before-after-hook "^1.4.0" btoa-lite "^1.0.0" deprecation "^1.0.1" @@ -1718,9 +1734,9 @@ integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== "@types/babel__core@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51" - integrity sha512-wJTeJRt7BToFx3USrCDs2BhEi4ijBInTQjOIukj6a/5tEkwpFMVZ+1ppgmE+Q/FQyc5P/VWUbx7I9NELrKruHA== + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.1.tgz#ce9a9e5d92b7031421e1d0d74ae59f572ba48be6" + integrity sha512-+hjBtgcFPYyCTo0A15+nxrCVJL7aC6Acg87TXd5OW3QhHswdrOLoles+ldL2Uk8q++7yIfl4tURtztccdeeyOw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1771,10 +1787,25 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/istanbul-lib-coverage@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" - integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" + integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" "@types/minimatch@*": version "3.0.3" @@ -1782,9 +1813,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "11.11.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.5.tgz#0c57e12eb44d44e5b6735593925286553ee7cebf" - integrity sha512-pz6wNe/XwyesgfVX7P6B0hY3TnTAYXk6KSTLdpQfbuq3be+hnMoCuFzE+yLTskPdBwmNiGRL2TAsnF09aRugvQ== + version "12.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" + integrity sha512-Jrb/x3HT4PTJp6a4avhmJCDEVrPdqLfl3e8GGMbpkGGdwAV5UGlIs4vVEfsHHfylZVOKZWpOqmqFH8CbfOZ6kg== "@types/q@^1.5.1": version "1.5.2" @@ -1819,9 +1850,9 @@ "@types/vfile-message" "*" "@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.10.tgz#17a8ec65cd8e88f51b418ceb271af18d3137df67" - integrity sha512-WsVzTPshvCSbHThUduGGxbmnwcpkgSctHGHTqzWyFg4lYAuV5qXlyFPOsP3OWqCINfmg/8VXP+zJaa4OxEsBQQ== + version "12.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" + integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== "@webassemblyjs/ast@1.8.5": version "1.8.5" @@ -1998,12 +2029,12 @@ abbrev@1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" + mime-types "~2.1.24" + negotiator "0.6.2" acorn-dynamic-import@^4.0.0: version "4.0.0" @@ -2011,9 +2042,9 @@ acorn-dynamic-import@^4.0.0: integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-globals@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" - integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== + version "4.3.2" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" + integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -2045,11 +2076,16 @@ acorn@^6.0.1, acorn@^6.0.5, acorn@^6.0.7: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== -address@1.0.3, address@^1.0.1: +address@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg== +address@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709" + integrity sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ== + agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -2069,7 +2105,7 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -airbnb-prop-types@^2.12.0: +airbnb-prop-types@^2.13.2: version "2.13.2" resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.13.2.tgz#43147a5062dd2a4a5600e748a47b64004cc5f7fc" integrity sha512-2FN6DlHr6JCSxPPi25EnqGaXC4OC3/B3k1lCd6MMYrZ51/Gf/1qDfaR+JElzWa+Tl7cY2aYOlsYJGFeQyVHIeQ== @@ -2221,13 +2257,6 @@ anymatch@^3.0.1: normalize-path "^3.0.0" picomatch "^2.0.4" -append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== - dependencies: - default-require-extensions "^2.0.0" - aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -2366,10 +2395,10 @@ array-uniq@^1.0.1: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= -array-uniq@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.0.0.tgz#0009e30306e37a6dd2e2e2480db5316fdade1583" - integrity sha512-O3QZEr+3wDj7otzF7PjNGs6CA3qmYMLvt5xGkjY/V0VxS+ovvqVo/5wKM/OVOAyuX4DTh9H31zE/yKtO66hTkg== +array-uniq@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" + integrity sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ== array-unique@^0.3.2: version "0.3.2" @@ -2446,12 +2475,7 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-each@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.2.tgz#8b8a7ca2a658f927e9f307d6d1a42f4199f0f735" - integrity sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg== - -async-each@^1.0.3: +async-each@^1.0.1, async-each@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== @@ -2466,7 +2490,7 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.5.0, async@^2.6.1: +async@^2.5.0: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== @@ -2478,6 +2502,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= + atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -2508,12 +2537,12 @@ autoprefixer@^6.3.1: postcss-value-parser "^3.2.3" autoprefixer@^9.1.5: - version "9.5.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.0.tgz#7e51d0355c11596e6cf9a0afc9a44e86d1596c70" - integrity sha512-hMKcyHsZn5+qL6AUeP3c8OyuteZ4VaUlg+fWbyl8z7PqsKHF/Bf8/px3K6AT8aMzDkBo8Bc11245MM+itDBOxQ== + version "9.5.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.1.tgz#243b1267b67e7e947f28919d786b50d3bb0fb357" + integrity sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ== dependencies: - browserslist "^4.4.2" - caniuse-lite "^1.0.30000947" + browserslist "^4.5.4" + caniuse-lite "^1.0.30000957" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.14" @@ -2545,11 +2574,6 @@ babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^7.0.0-0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - babel-eslint@8: version "8.2.6" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" @@ -2562,16 +2586,16 @@ babel-eslint@8: eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" -babel-jest@^24.1.0, babel-jest@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.5.0.tgz#0ea042789810c2bec9065f7c8ab4dc18e1d28559" - integrity sha512-0fKCXyRwxFTJL0UXDJiT2xYxO9Lu2vBd9n+cC+eDjESzcVG3s2DRGAxbzJX21fceB1WYoBjAh8pQ83dKcl003g== +babel-jest@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" + integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== dependencies: - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.3.0" + babel-preset-jest "^24.6.0" chalk "^2.4.2" slash "^2.0.0" @@ -2593,43 +2617,60 @@ babel-plugin-dynamic-import-node@^2.2.0: object.assign "^4.1.0" babel-plugin-istanbul@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893" - integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ== + version "5.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba" + integrity sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ== dependencies: find-up "^3.0.0" - istanbul-lib-instrument "^3.0.0" - test-exclude "^5.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" -babel-plugin-jest-hoist@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" - integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== +babel-plugin-jest-hoist@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" + integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== dependencies: "@types/babel__traverse" "^7.0.6" -babel-preset-jest@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" - integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-jest@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" + integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.3.0" + babel-plugin-jest-hoist "^24.6.0" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" babylon@7.0.0-beta.44: version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== -babylon@^6.17.4: +babylon@^6.15.0, babylon@^6.17.4: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bail@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" - integrity sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" + integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== balanced-match@^0.4.2: version "0.4.2" @@ -2671,7 +2712,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^1.4.0: +before-after-hook@^1.1.0, before-after-hook@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg== @@ -2686,6 +2727,11 @@ bfj@^6.1.1: hoopy "^0.1.2" tryer "^1.0.0" +big-integer@^1.6.17: + version "1.6.43" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.43.tgz#8ac15bf13e93e509500859061233e19d8d0d99d1" + integrity sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -2720,9 +2766,9 @@ bin-version-check@^4.0.0: semver-truncate "^1.1.2" bin-version@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-3.0.0.tgz#1a8be03f652171713b1b1ccc4b0ebea460b08818" - integrity sha512-Ekhwm6AUiMbZ1LgVCNMkgjovpMR30FyQN74laAW9gs0NPjZR5gdY0ARNB0YsQG8GOme3CsHbxmeyq/7Ofq6QYQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" + integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== dependencies: execa "^1.0.0" find-versions "^3.0.0" @@ -2740,15 +2786,23 @@ bin-wrapper@^4.0.0: pify "^4.0.1" binary-extensions@^1.0.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz#9523e001306a32444b907423f1de2164222f6ab1" - integrity sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw== + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== +binary@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + bl@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" @@ -2770,9 +2824,14 @@ bluebird@3.0.5: integrity sha1-L/nQfJs+2ynW0oD+B1KDZefs05I= bluebird@^3.0.5, bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== + +bluebird@~3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -2946,14 +3005,14 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.4.2, browserslist@^4.5.1: - version "4.5.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.2.tgz#36ad281f040af684555a23c780f5c2081c752df0" - integrity sha512-zmJVLiKLrzko0iszd/V4SsjTaomFeoVzQGYYOYgRgsbh7WNh95RgDB0CmBdFWYs/3MyFSt69NypjL/h3iaddKQ== +browserslist@^4.5.2, browserslist@^4.5.4: + version "4.5.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.6.tgz#ea42e8581ca2513fa7f371d4dd66da763938163d" + integrity sha512-o/hPOtbU9oX507lIqon+UvPYqpx3mHc8cV3QemSBTXwkG8gSQSK6UKvXcE/DcleU3+A59XTUHyCvZ5qGy8xVAg== dependencies: - caniuse-lite "^1.0.30000951" - electron-to-chromium "^1.3.116" - node-releases "^1.1.11" + caniuse-lite "^1.0.30000963" + electron-to-chromium "^1.3.127" + node-releases "^1.1.17" bser@^2.0.0: version "2.0.0" @@ -2995,11 +3054,21 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-indexof-polyfill@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz#a9fb806ce8145d5428510ce72f278bb363a638bf" + integrity sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8= + buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -3022,6 +3091,11 @@ buffer@^5.2.1: base64-js "^1.0.2" ieee754 "^1.1.4" +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -3148,9 +3222,9 @@ callsites@^2.0.0: integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" - integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@3.0.x, camel-case@^3.0.0: version "3.0.0" @@ -3182,15 +3256,20 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= camelcase@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" - integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-api@^1.5.2: version "1.6.1" @@ -3203,14 +3282,14 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000951" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000951.tgz#64a5d491c8164a4f81ce9f3ab906b61df9a61b1a" - integrity sha512-Nb8bgexT3HDxPMFOLcT5kol/dHsXpPiiFLU079+msbSBTsq9zZaCpzqDb122+9B9woZnTG5Z8lt+3adIaxKj2A== + version "1.0.30000967" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000967.tgz#a2e9e6260e026208250f3b2d587ef02314cefa86" + integrity sha512-70gk6cLSD5rItxnZ7WUxyCpM9LAjEb1tVzlENQfXQXZS/IiGnfAC6u32G5cZFlDBKjNPBIta/QSx5CZLZepxRA== -caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000947, caniuse-lite@^1.0.30000951: - version "1.0.30000951" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000951.tgz#c7c2fd4d71080284c8677dd410368df8d83688fe" - integrity sha512-eRhP+nQ6YUkIcNQ6hnvdhMkdc7n3zadog0KXNRxAZTT2kHjUb1yGn71OrPhSn8MOvlX97g5CR97kGVj8fMsXWg== +caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000963: + version "1.0.30000967" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" + integrity sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ== capture-exit@^2.0.0: version "2.0.0" @@ -3235,9 +3314,16 @@ caw@^2.0.0, caw@^2.0.1: url-to-options "^1.0.1" ccount@^1.0.0, ccount@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" - integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" + integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== + +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= + dependencies: + traverse ">=0.3.0 <0.4" chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" @@ -3284,24 +3370,24 @@ change-case@^3.0.2: upper-case-first "^1.1.0" character-entities-html4@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" - integrity sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.3.tgz#5ce6e01618e47048ac22f34f7f39db5c6fd679ef" + integrity sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg== character-entities-legacy@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz#7c6defb81648498222c9855309953d05f4d63a9c" - integrity sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" + integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== character-entities@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz#58c8f371c0774ef0ba9b2aca5f00d8f100e6e363" - integrity sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ== + version "1.2.3" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" + integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== character-reference-invalid@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz#21e421ad3d84055952dab4a43a04e73cd425d3ed" - integrity sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" + integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== chardet@^0.4.0: version "0.4.2" @@ -3313,6 +3399,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +charenc@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + check-types@^7.3.0: version "7.4.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" @@ -3352,7 +3443,7 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^2.0.0: +chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" integrity sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A== @@ -3371,25 +3462,6 @@ chokidar@^2.0.0: optionalDependencies: fsevents "^1.2.7" -chokidar@^2.0.2, chokidar@^2.0.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.4.tgz#244a65d68beedf1078c2f193cf2735c2cfdc7da2" - integrity sha512-ZVuFiB9IGOHqu+Jh7B7fSTmzsfDmUtC6yqd/V72UPQeXbNHONbMV0chOXtLXjsP3NvdUsHTNMg02NtXPDaSmNQ== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - chokidar@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.0.tgz#6b538f0fd6d5d31d5dd2b59e05426bec0f49aa40" @@ -3471,9 +3543,9 @@ clean-css@4.2.x: source-map "~0.6.0" clean-webpack-plugin@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-2.0.1.tgz#2241526b0030aa0249e78714471298f867fc2829" - integrity sha512-vway5pXGVd91bicwjaf8j188Al6VMf9R9Ekl6q0qeiaWStRsOOXuh4qtjX1UrUvmz5XevQVCdjBuzr4Tzsnpog== + version "2.0.2" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-2.0.2.tgz#805a19ff20d46a06125298a25eb31142ecad2166" + integrity sha512-pi1111o4OBd9qvacbgs+NRqClfVPKVIc66B4d8kx6Ho/L+i9entQ/NpK600CsTYTPu3kWvKwwyKarsYMvC2xeA== dependencies: del "^4.0.0" @@ -3506,6 +3578,15 @@ clipboard@^2.0.0: select "^1.1.2" tiny-emitter "^2.0.0" +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -3567,9 +3648,9 @@ coffee-script@^1.12.4: integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz#ce05cf49e54c3277ae573036a26851ba430a0091" - integrity sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" + integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== collection-visit@^1.0.0: version "1.0.0" @@ -3637,6 +3718,11 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -3658,18 +3744,21 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" comma-separated-tokens@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.5.tgz#b13793131d9ea2d2431cf5b507ddec258f0ce0db" - integrity sha512-Cg90/fcK93n0ecgYTAz1jaA3zvnQ0ExlmKY1rdbyHqAx6BHxwoJc+J7HDu0iuQ7ixEs1qaa+WyQ6oeuBpYP1iA== - dependencies: - trim "0.0.1" + version "1.0.6" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.6.tgz#3cd3d8adc725ab473843db338bcdfd4a7bb087bf" + integrity sha512-f20oA7jsrrmERTS70r3tmRSxR8IJV2MTN7qe6hzgX+3ARfXrdMJFvGWvWQK0xpcBurg9j9eO2MiqzZ8Y+/UPCA== commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.11.0, commander@^2.14.1, commander@^2.15.1, commander@^2.16.0, commander@^2.18.0, commander@^2.19.0, commander@^2.9.0, commander@~2.19.0: +commander@^2.11.0, commander@^2.14.1, commander@^2.15.1, commander@^2.16.0, commander@^2.18.0, commander@^2.19.0, commander@^2.9.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@~2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== @@ -3694,24 +3783,19 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" -compare-versions@^3.2.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" - integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== - component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== compressible@~2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.16.tgz#a49bf9858f3821b64ce1be0296afc7380466a77f" - integrity sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA== + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== dependencies: - mime-db ">= 1.38.0 < 2" + mime-db ">= 1.40.0 < 2" -compression@^1.5.2: +compression@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== @@ -3739,6 +3823,16 @@ concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -3747,7 +3841,7 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -connect-history-api-fallback@^1.3.0: +connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== @@ -3828,12 +3922,12 @@ conventional-changelog-angular@^5.0.3: q "^1.5.1" conventional-changelog-core@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.1.6.tgz#ac1731a461c50d150d29c1ad4f33143293bcd32f" - integrity sha512-5teTAZOtJ4HLR6384h50nPAaKdDr+IaU0rnD2Gg2C3MS7hKsEPH8pZxrDNqam9eOSPQg9tET6uZY79zzgSz+ig== + version "3.2.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.2.tgz#de41e6b4a71011a18bcee58e744f6f8f0e7c29c0" + integrity sha512-cssjAKajxaOX5LNAJLB+UOcoWjAIBvXtDMedv/58G+YEmAXMNfC16mmPl0JDOuVJVfIqM0nqQiZ8UCm8IXbE0g== dependencies: - conventional-changelog-writer "^4.0.3" - conventional-commits-parser "^3.0.1" + conventional-changelog-writer "^4.0.5" + conventional-commits-parser "^3.0.2" dateformat "^3.0.0" get-pkg-repo "^1.0.0" git-raw-commits "2.0.0" @@ -3844,20 +3938,20 @@ conventional-changelog-core@^3.1.6: q "^1.5.1" read-pkg "^3.0.0" read-pkg-up "^3.0.0" - through2 "^2.0.0" + through2 "^3.0.0" -conventional-changelog-preset-loader@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz#81d1a07523913f3d17da3a49f0091f967ad345b0" - integrity sha512-pBY+qnUoJPXAXXqVGwQaVmcye05xi6z231QM98wHWamGAmu/ghkBprQAwmF5bdmyobdVxiLhPY3PrCfSeUNzRQ== +conventional-changelog-preset-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz#65bb600547c56d5627d23135154bcd9a907668c4" + integrity sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA== -conventional-changelog-writer@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz#916a2b302d0bb5ef18efd236a034c13fb273cde1" - integrity sha512-bIlpSiQtQZ1+nDVHEEh798Erj2jhN/wEjyw9sfxY9es6h7pREE5BNJjfv0hXGH/FTrAsEpHUq4xzK99eePpwuA== +conventional-changelog-writer@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.5.tgz#fb9e384bb294e8e8a9f2568a3f4d1e11953d8641" + integrity sha512-g/Myp4MaJ1A+f7Ai+SnVhkcWtaHk6flw0SYN7A+vQ+MTu0+gSovQWs4Pg4NtcNUcIztYQ9YHsoxHP+GGQplI7Q== dependencies: compare-func "^1.3.1" - conventional-commits-filter "^2.0.1" + conventional-commits-filter "^2.0.2" dateformat "^3.0.0" handlebars "^4.1.0" json-stringify-safe "^5.0.1" @@ -3865,38 +3959,38 @@ conventional-changelog-writer@^4.0.3: meow "^4.0.0" semver "^5.5.0" split "^1.0.0" - through2 "^2.0.0" + through2 "^3.0.0" -conventional-commits-filter@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" - integrity sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A== +conventional-commits-filter@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" + integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== dependencies: - is-subset "^0.1.1" + lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" - integrity sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg== +conventional-commits-parser@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.2.tgz#1295590dd195f64f53d6f8eb7c41114bb9a60742" + integrity sha512-y5eqgaKR0F6xsBNVSQ/5cI5qIF3MojddSUi1vKIggRkqUTbkqFKH9P5YX/AT1BVZp9DtSzBTIkvjyVLotLsVog== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" lodash "^4.2.1" meow "^4.0.0" split2 "^2.0.0" - through2 "^2.0.0" + through2 "^3.0.0" trim-off-newlines "^1.0.0" conventional-recommended-bump@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz#05540584641d3da758c8863c09788fcaeb586872" - integrity sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-4.1.1.tgz#37014fadeda267d0607e2fc81124da840a585127" + integrity sha512-JT2vKfSP9kR18RXXf55BRY1O3AHG8FPg5btP3l7LYfcWJsiXI6MCf30DepQ98E8Qhowvgv7a8iev0J1bEDkTFA== dependencies: - concat-stream "^1.6.0" - conventional-changelog-preset-loader "^2.0.2" - conventional-commits-filter "^2.0.1" - conventional-commits-parser "^3.0.1" + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.1.1" + conventional-commits-filter "^2.0.2" + conventional-commits-parser "^3.0.2" git-raw-commits "2.0.0" git-semver-tags "^2.0.2" meow "^4.0.0" @@ -3937,31 +4031,31 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.0.0.tgz#cd9810b8000742535a4a43773866185e310bd4f7" - integrity sha512-W/Ppz34uUme3LmXWjMgFlYyGnbo1hd9JvA0LNQ4EmieqVjg2GPYbj3H6tcdP2QGPGWdRKUqZVbVKLNIFVs/HiA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.0.1.tgz#bff73ba31ca8687431b9c88f78d3362646fb76f0" + integrity sha512-2pC3e+Ht/1/gD7Sim/sqzvRplMiRnFQVlPpDVaHtY9l7zZP7knamr3VRD6NyGfHd84MrDC0tAM9ulNxYMW0T3g== dependencies: - browserslist "^4.5.1" - core-js "3.0.0" - core-js-pure "3.0.0" - semver "^5.6.0" + browserslist "^4.5.4" + core-js "3.0.1" + core-js-pure "3.0.1" + semver "^6.0.0" -core-js-pure@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.0.tgz#a5679adb4875427c8c0488afc93e6f5b7125859b" - integrity sha512-yPiS3fQd842RZDgo/TAKGgS0f3p2nxssF1H65DIZvZv0Od5CygP8puHXn3IQiM/39VAvgCbdaMQpresrbGgt9g== +core-js-pure@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.1.tgz#37358fb0d024e6b86d443d794f4e37e949098cbe" + integrity sha512-mSxeQ6IghKW3MoyF4cz19GJ1cMm7761ON+WObSyLfTu/Jn3x7w4NwNFnrZxgl4MTSvYYepVLNuRtlB4loMwJ5g== -core-js@3.0.0, core-js@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.0.tgz#a8dbfa978d29bfc263bfb66c556d0ca924c28957" - integrity sha512-WBmxlgH2122EzEJ6GH8o9L/FeoUKxxxZ6q6VUxoTlsE4EvbTWKJb447eyVxTEuq0LpXjlq/kCB2qgBvsYRkLvQ== +core-js@3.0.1, core-js@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738" + integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew== core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= -core-js@^2.5.7, core-js@^2.6.5: +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7, core-js@^2.6.5: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== @@ -3972,14 +4066,13 @@ core-util-is@1.0.2, core-util-is@~1.0.0: integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.2, cosmiconfig@^5.0.7, cosmiconfig@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf" - integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q== + version "5.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" + integrity sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" - js-yaml "^3.9.0" - lodash.get "^4.4.2" + js-yaml "^3.13.0" parse-json "^4.0.0" create-ecdh@^4.0.0: @@ -4050,6 +4143,11 @@ crowdin-cli@^0.3.0: yamljs "^0.2.1" yargs "^2.3.0" +crypt@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -4224,9 +4322,9 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== cssstyle@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.1.tgz#3aceb2759eaf514ac1a21628d723d6043a819495" - integrity sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A== + version "1.2.2" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" + integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow== dependencies: cssom "0.3.x" @@ -4290,7 +4388,7 @@ debug@0.7.4: resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk= -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -4331,18 +4429,11 @@ decamelize-keys@^1.0.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decamelize@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" - integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg== - dependencies: - xregexp "4.0.0" - decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -4443,7 +4534,7 @@ deepmerge@^2.1.1: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== -default-gateway@^4.0.1: +default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== @@ -4451,13 +4542,6 @@ default-gateway@^4.0.1: execa "^1.0.0" ip-regex "^2.1.0" -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= - dependencies: - strip-bom "^3.0.0" - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -4499,29 +4583,18 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -del@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-4.0.0.tgz#4fa27e92c366cb45b9bdaa56a9b8703dced17437" - integrity sha512-/BnSJ+SuZyLu7xMn48kZY0nMXDi+5KNmR4g8n21Wivsl8+B9njV6/5kcTNE9juSprp0zRWBU28JuHUq0FqK1Nw== +del@^4.0.0, del@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== dependencies: + "@types/glob" "^7.1.1" globby "^6.1.0" is-path-cwd "^2.0.0" is-path-in-cwd "^2.0.0" p-map "^2.0.0" pify "^4.0.1" - rimraf "^2.6.2" + rimraf "^2.6.3" delayed-stream@~1.0.0: version "1.0.0" @@ -4631,7 +4704,7 @@ dir-glob@2.0.0: arrify "^1.0.1" path-type "^3.0.0" -dir-glob@^2.2.1: +dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== @@ -4861,6 +4934,13 @@ download@^7.1.0: p-event "^2.1.0" pify "^3.0.0" +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -4899,10 +4979,10 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.116: - version "1.3.119" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.119.tgz#9a7770da667252aeb81f667853f67c2b26e00197" - integrity sha512-3mtqcAWa4HgG+Djh/oNXlPH0cOH6MmtwxN1nHSaReb9P0Vn51qYPqYwLeoSuAX9loU1wrOBhFbiX3CkeIxPfgg== +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.127: + version "1.3.133" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" + integrity sha512-lyoC8aoqbbDqsprb6aPdt9n3DpOZZzdz/T4IZKsR0/dkZIxnJVUjjcpOSwA66jPRIOyDAamCTAUqweU05kKNSg== elegant-spinner@^1.0.1: version "1.0.1" @@ -4979,9 +5059,9 @@ envify@^4.0.0: through "~2.3.4" envinfo@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.2.0.tgz#7e6d7638740d2d43806431403be6dd4bddf15af9" - integrity sha512-hHDGx34o8V0IULC6MnMb+jIMEJ5LBuK/EIbFi8/aw81r6q+wXCvu9QCA9RPbpOaBxtlH/16cYB2HkBnRFTy4SQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.3.0.tgz#b09aadc63f558ad53124248e865d84eeadf1ce84" + integrity sha512-CyFTT0VNXWNkudz4Izb/YwBNL4Ev+ZIlRxn1uTZa8LdDHrRZqtaJn7LpFCI3aAtDjSU1hkh53uHGIFrmDQtb/Q== enzyme-adapter-react-16@^1.12.1: version "1.12.1" @@ -4997,11 +5077,11 @@ enzyme-adapter-react-16@^1.12.1: semver "^5.6.0" enzyme-adapter-utils@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.11.0.tgz#6ffff782b1b57dd46c72a845a91fc4103956a117" - integrity sha512-0VZeoE9MNx+QjTfsjmO1Mo+lMfunucYB4wt5ficU85WB/LoetTJrbuujmHP3PJx6pSoaAuLA+Mq877x4LoxdNg== + version "1.12.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93" + integrity sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA== dependencies: - airbnb-prop-types "^2.12.0" + airbnb-prop-types "^2.13.2" function.prototype.name "^1.1.0" object.assign "^4.1.0" object.fromentries "^2.0.0" @@ -5150,10 +5230,10 @@ eslint-import-resolver-node@^0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-module-utils@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" - integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== +eslint-module-utils@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== dependencies: debug "^2.6.8" pkg-dir "^2.0.0" @@ -5164,20 +5244,21 @@ eslint-plugin-header@^3.0.0: integrity sha512-OIu2ciVW8jK4Ove4JHm1I7X0C98PZuLCyCsoUhAm2HpyGS+zr34qLM6iV06unnDvssvvEh5BkOfaLRF+N7cGoQ== eslint-plugin-import@^2.14.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" - integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== + version "2.17.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz#d227d5c6dc67eca71eb590d2bb62fb38d86e9fcb" + integrity sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g== dependencies: + array-includes "^3.0.3" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.3.0" + eslint-module-utils "^2.4.0" has "^1.0.3" lodash "^4.17.11" minimatch "^3.0.4" read-pkg-up "^2.0.0" - resolve "^1.9.0" + resolve "^1.10.0" eslint-plugin-jsx-a11y@^6.0.3: version "6.2.1" @@ -5199,17 +5280,17 @@ eslint-plugin-react-hooks@^0.0.0: integrity sha512-SXyU7C3E8AJbXKMdb10P/zHazcxzfuWR5OFwAVZKXVU7P/H56NLszVG6WdQBo9Pt80FfnPXtUGGbWhs3/98N4w== eslint-plugin-react@^7.11.1: - version "7.12.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c" - integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ== + version "7.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.13.0.tgz#bc13fd7101de67996ea51b33873cd9dc2b7e5758" + integrity sha512-uA5LrHylu8lW/eAH3bEQe9YdzpPaFd9yAJTwTi/i/BKTD7j6aQMKVAdGM/ML72zD6womuSK7EiGtMKuK06lWjQ== dependencies: array-includes "^3.0.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.0.1" + jsx-ast-utils "^2.1.0" object.fromentries "^2.0.0" - prop-types "^15.6.2" - resolve "^1.9.0" + prop-types "^15.7.2" + resolve "^1.10.1" eslint-restricted-globals@^0.1.1: version "0.1.1" @@ -5349,9 +5430,9 @@ eval@^0.1.0: require-like ">= 0.1.1" eventemitter3@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== events@^1.1.0: version "1.1.1" @@ -5401,19 +5482,6 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -5497,19 +5565,19 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.5.0.tgz#492fb0df8378d8474cc84b827776b069f46294ed" - integrity sha512-p2Gmc0CLxOgkyA93ySWmHFYHUPFIHG6XZ06l7WArWAsrqYVaVEkOU5NtT5i68KUyGKbkQgDCkiT65bWmdoL6Bw== +expect@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" + integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" ansi-styles "^3.2.0" - jest-get-type "^24.3.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" + jest-get-type "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" jest-regex-util "^24.3.0" -express@^4.15.3, express@^4.16.2, express@^4.16.3, express@^4.16.4: +express@^4.15.3, express@^4.16.3, express@^4.16.4: version "4.16.4" resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== @@ -5741,9 +5809,9 @@ file-type@5.2.0, file-type@^5.2.0: integrity sha1-LdvqfHP/42No365J3DOMBYwritY= file-type@^10.4.0, file-type@^10.7.0: - version "10.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.9.0.tgz#f6c12c7cb9e6b8aeefd6917555fd4f9eadf31891" - integrity sha512-9C5qtGR/fNibHC5gzuMmmgnjH3QDDLKMa8lYe9CiZVmAnI4aUaoMh40QyUPzzs0RYo837SOBKh7TYwle4G8E4w== + version "10.11.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" + integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== file-type@^3.8.0: version "3.9.0" @@ -5786,14 +5854,6 @@ filepath@^1.1.0: dependencies: bluebird "3.0.5" -fileset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - filesize@3.5.11: version "3.5.11" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" @@ -5882,11 +5942,11 @@ find-up@^2.0.0, find-up@^2.1.0: locate-path "^2.0.0" find-versions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.0.0.tgz#2c05a86e839c249101910100b354196785a2c065" - integrity sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A== + version "3.1.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" + integrity sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q== dependencies: - array-uniq "^2.0.0" + array-uniq "^2.1.0" semver-regex "^2.0.0" flat-cache@^1.2.1: @@ -5904,6 +5964,40 @@ flatten@^1.0.2: resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= +flow-bin@^0.98.1: + version "0.98.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.98.1.tgz#a8d781621c91703df69928acc83c9777e2fcbb49" + integrity sha512-y1YzQgbFUX4EG6h2EO8PhyJeS0VxNgER8XsTwU8IXw4KozfneSmGVgw8y3TwAOza7rVhTlHEoli1xNuNW1rhPw== + +flow-remove-types@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/flow-remove-types/-/flow-remove-types-1.2.3.tgz#6131aefc7da43364bb8b479758c9dec7735d1a18" + integrity sha512-ypq/U3V+t9atYiOuSJd40tekCra03EHKoRsiK/wXGrsZimuum0kdwVY7Yv0HTaoXgHW1WiayomYd+Q3kkvPl9Q== + dependencies: + babylon "^6.15.0" + vlq "^0.2.1" + +flow-typed@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-2.5.1.tgz#0ff565cc94d2af8c557744ba364b6f14726a6b9f" + integrity sha1-D/VlzJTSr4xVd0S6NktvFHJqa58= + dependencies: + "@octokit/rest" "^15.2.6" + babel-polyfill "^6.26.0" + colors "^1.1.2" + fs-extra "^5.0.0" + glob "^7.1.2" + got "^7.1.0" + md5 "^2.1.0" + mkdirp "^0.5.1" + rimraf "^2.6.2" + semver "^5.5.0" + table "^4.0.2" + through "^2.3.8" + unzipper "^0.8.11" + which "^1.3.0" + yargs "^4.2.0" + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -5989,11 +6083,11 @@ front-matter@^2.3.0: js-yaml "^3.10.0" front-matter@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-3.0.1.tgz#9ed0a8e2771b1367c4d8809b2f91c528b9b04d0c" - integrity sha512-iCHZ7RZGE36uG58iIWp8zrhDi9BZjlDiRj7aRcGm45EIqrbK+u4KTAmRKLG3FOaVkFhZI5/29SUo7sMLzlQkcA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-3.0.2.tgz#2401cd05fcf22bd0de48a104ffb4efb1ff5c8465" + integrity sha512-iBGZaWyzqgsrPGsqrXZP6N4hp5FzSKDi18nfAoYpgz3qK5sAwFv/ojmn3VS60SOgLvq6CtojNqy0y6ZNz05IzQ== dependencies: - js-yaml "^3.10.0" + js-yaml "^3.13.1" fs-constants@^1.0.0: version "1.0.0" @@ -6041,19 +6135,19 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" - integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" + nan "^2.12.1" + node-pre-gyp "^0.12.0" fsevents@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.6.tgz#87b19df0bfb4a1a51d7ddb51b01b5f3bedb40c33" integrity sha512-vfmKZp3XPM36DNF0qhW+Cdxk7xm7gTEHY1clv1Xq1arwRQuKZgAhw+NZNWbJBtuaNxzNXwhfdPYRrvIbjfS33A== -fstream@^1.0.0, fstream@^1.0.2: +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= @@ -6282,9 +6376,9 @@ glob-to-regexp@^0.3.0: integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -6338,9 +6432,9 @@ global@^4.3.2: process "~0.5.1" globals@^11.0.1, globals@^11.1.0: - version "11.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" - integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globby@8.0.2, globby@^8.0.1: version "8.0.2" @@ -6367,13 +6461,13 @@ globby@^6.1.0: pinkie-promise "^2.0.0" globby@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.1.0.tgz#e90f4d5134109e6d855abdd31bdb1b085428592e" - integrity sha512-VtYjhHr7ncls724Of5W6Kaahz0ag7dB4G62/2HsN+xEKG6SrPzM1AJMerGxQTwJGnN9reeyxdvXbuZYpfssCvg== + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== dependencies: "@types/glob" "^7.1.1" array-union "^1.0.2" - dir-glob "^2.2.1" + dir-glob "^2.2.2" fast-glob "^2.2.6" glob "^7.1.3" ignore "^4.0.3" @@ -6396,7 +6490,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -got@^7.0.0: +got@^7.0.0, got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== @@ -6477,23 +6571,31 @@ gzip-size@3.0.0: dependencies: duplexer "^0.1.1" -gzip-size@5.0.0, gzip-size@^5.0.0: +gzip-size@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA== dependencies: duplexer "^0.1.1" - pify "^3.0.0" + pify "^3.0.0" + +gzip-size@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.0.tgz#2db0396c71f5c902d5cf6b52add5030b93c99bd2" + integrity sha512-wfSnvypBDRW94v5W3ckvvz/zFUNdJ81VgOP6tE4bPpRUcc0wGqU+y0eZjJEvKxwubJFix6P84sE8M51YWLT7rQ== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" handle-thing@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== -handlebars@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.1.tgz#6e4e41c18ebe7719ae4d38e5aca3d32fa3dd23d3" - integrity sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA== +handlebars@^4.1.0, handlebars@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -6607,10 +6709,10 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hast-to-hyperscript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-6.0.0.tgz#051ee17d41b30da8c5ceb001189adf70226f12f4" - integrity sha512-QnJbXddVGNJ5v3KegK1MY6luTkNDBcJnCQZcekt7AkES2z4tYy85pbFUXx7Mb0iXZBKfwoVdgfxU12GbmlwbbQ== +hast-to-hyperscript@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-7.0.0.tgz#8062d02ccf487cc62cc3804e06f2d3d744aa6c97" + integrity sha512-0BqSZCyxxIzPNPy0sx18Ii+xLKIkv4pu8b4M9bOvAqCwRmEDcYdLT1jyl2CqPlM2Egb7RWrqOPRfNgFAeriPSg== dependencies: comma-separated-tokens "^1.0.0" property-information "^5.0.0" @@ -6660,11 +6762,11 @@ hast-util-raw@^5.0.0: zwitch "^1.0.0" hast-util-to-parse5@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-5.0.0.tgz#1041df0d57e60210bd3e4b97596397500223399a" - integrity sha512-1BG07SLp9RHnAy/A2Fugza5YCo45Ter8csOGbxL7a7f9Rvq9aE64/4hlqc083M8yLLp7J5tYxmiFWYbD0zQJnA== + version "5.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-5.1.0.tgz#dfdb467da3f720a0331bd315b5d06d535f1c1ad3" + integrity sha512-o08Q+7KNu2mO9060o0TojXOxiZmbU0G+IMDaAahE0vuwr9zSejFRonfnSQLn6pDqSDJyaEkdqtVcwITBIT2jqw== dependencies: - hast-to-hyperscript "^6.0.0" + hast-to-hyperscript "^7.0.0" property-information "^5.0.0" web-namespaces "^1.0.0" xtend "^4.0.1" @@ -6795,7 +6897,7 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" -html-entities@^1.2.0: +html-entities@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= @@ -6814,9 +6916,9 @@ html-minifier@^3.5.20: uglify-js "3.4.x" html-void-elements@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.3.tgz#956707dbecd10cf658c92c5d27fee763aa6aa982" - integrity sha512-SaGhCDPXJVNrQyKMtKy24q6IMdXg5FCPN3z+xizxw9l+oXQw5fOoaj/ERU5KqWhSYhXtW5bWthlDbTDLBhJQrA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.4.tgz#95e8bb5ecd6b88766569c2645f2b5f1591db9ba5" + integrity sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ== html-webpack-plugin@^4.0.0-beta.5: version "4.0.0-beta.5" @@ -6908,7 +7010,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.1: +https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== @@ -6966,9 +7068,9 @@ icss-utils@^2.1.0: postcss "^6.0.1" ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== iferr@^0.1.5: version "0.1.5" @@ -7190,9 +7292,9 @@ inquirer@6.2.1: through "^2.3.6" inquirer@^6.2.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" - integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -7205,15 +7307,15 @@ inquirer@^6.2.0: run-async "^2.2.0" rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^5.0.0" + strip-ansi "^5.1.0" through "^2.3.6" internal-ip@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.2.0.tgz#46e81b638d84c338e5c67e42b1a17db67d0814fa" - integrity sha512-ZY8Rk+hlvFeuMmG5uH1MXhhdeMntmIaxaInvAmzMq/SHV8rv4Kh+6GiQNNDQd0wZFrcO+FiTBo8lui/osKOyJw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: - default-gateway "^4.0.1" + default-gateway "^4.2.0" ipaddr.js "^1.9.0" interpret@^1.0.0: @@ -7236,6 +7338,11 @@ invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -7251,12 +7358,7 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" - integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= - -ipaddr.js@^1.9.0: +ipaddr.js@1.9.0, ipaddr.js@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== @@ -7327,7 +7429,7 @@ is-boolean-object@^1.0.0: resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= -is-buffer@^1.1.5: +is-buffer@^1.1.5, is-buffer@~1.1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -7440,9 +7542,9 @@ is-fullwidth-code-point@^2.0.0: integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-generator-fn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e" - integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g== + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-gif@^3.0.0: version "3.0.0" @@ -7458,14 +7560,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -7540,36 +7635,24 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - is-path-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.0.0.tgz#d4777a8e227a00096a31f030db3770f84b116c02" - integrity sha512-m5dHHzpOXEiv18JEORttBO64UgTEypx99vCxQLjbBvGhOJxnTNglYoFXxwo6AbsQb79sqqycQEHv2hWkHZAijA== - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== - dependencies: - is-path-inside "^1.0.0" + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" + integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== is-path-in-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.0.0.tgz#68e452a6eec260500cec21e029c0a44cc0dcd2ea" - integrity sha512-6Vz5Gc9s/sDA3JBVu0FzWufm8xaBsqy1zn8Q6gmvGP6nSDMw78aS4poBNeatWjaRpTpxxLn1WOndAiOlk+qY8A== + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: - is-path-inside "^1.0.0" + is-path-inside "^2.1.0" -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: - path-is-inside "^1.0.1" + path-is-inside "^1.0.2" is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" @@ -7583,6 +7666,13 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== + dependencies: + isobject "^4.0.0" + is-png@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" @@ -7758,6 +7848,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + isomorphic-fetch@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" @@ -7771,76 +7866,50 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" - integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== - dependencies: - async "^2.6.1" - compare-versions "^3.2.1" - fileset "^2.0.3" - istanbul-lib-coverage "^2.0.3" - istanbul-lib-hook "^2.0.3" - istanbul-lib-instrument "^3.1.0" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.2" - istanbul-reports "^2.1.1" - js-yaml "^3.12.0" - make-dir "^1.3.0" - minimatch "^3.0.4" - once "^1.4.0" - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba" - integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw== - -istanbul-lib-hook@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz#e0e581e461c611be5d0e5ef31c5f0109759916fb" - integrity sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA== - dependencies: - append-transform "^1.0.0" +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== -istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971" - integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA== +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== dependencies: - "@babel/generator" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - istanbul-lib-coverage "^2.0.3" - semver "^5.5.0" + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" istanbul-lib-report@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4" - integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA== + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== dependencies: - istanbul-lib-coverage "^2.0.3" - make-dir "^1.3.0" - supports-color "^6.0.0" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" -istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156" - integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ== +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== dependencies: debug "^4.1.1" - istanbul-lib-coverage "^2.0.3" - make-dir "^1.3.0" - rimraf "^2.6.2" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" source-map "^0.6.1" istanbul-reports@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9" - integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw== + version "2.2.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" + integrity sha512-QCHGyZEK0bfi9GR215QSm+NJwFKEShbtc7tfbUdLAEzn3kKhLDDZqvljn8rPZM9v8CEOhzL1nlYoO4r1ryl67w== dependencies: - handlebars "^4.1.0" + handlebars "^4.1.2" isurl@^1.0.0-alpha5: version "1.0.0" @@ -7850,65 +7919,66 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" -jest-changed-files@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.5.0.tgz#4075269ee115d87194fd5822e642af22133cf705" - integrity sha512-Ikl29dosYnTsH9pYa1Tv9POkILBhN/TLZ37xbzgNsZ1D2+2n+8oEZS2yP1BrHn/T4Rs4Ggwwbp/x8CKOS5YJOg== +jest-changed-files@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" + integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.5.0.tgz#598139d3446d1942fb7dc93944b9ba766d756d4b" - integrity sha512-P+Jp0SLO4KWN0cGlNtC7JV0dW1eSFR7eRpoOucP2UM0sqlzp/bVHeo71Omonvigrj9AvCKy7NtQANtqJ7FXz8g== +jest-cli@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" + integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== dependencies: - "@jest/core" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/core" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" + jest-config "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" prompts "^2.0.1" realpath-native "^1.1.0" yargs "^12.0.2" -jest-config@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.5.0.tgz#404d1bc6bb81aed6bd1890d07e2dca9fbba2e121" - integrity sha512-t2UTh0Z2uZhGBNVseF8wA2DS2SuBiLOL6qpLq18+OZGfFUxTM7BzUVKyHFN/vuN+s/aslY1COW95j1Rw81huOQ== +jest-config@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" + integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.5.0" - babel-jest "^24.5.0" + "@jest/test-sequencer" "^24.8.0" + "@jest/types" "^24.8.0" + babel-jest "^24.8.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.5.0" - jest-environment-node "^24.5.0" - jest-get-type "^24.3.0" - jest-jasmine2 "^24.5.0" + jest-environment-jsdom "^24.8.0" + jest-environment-node "^24.8.0" + jest-get-type "^24.8.0" + jest-jasmine2 "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" + jest-resolve "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" micromatch "^3.1.10" - pretty-format "^24.5.0" + pretty-format "^24.8.0" realpath-native "^1.1.0" -jest-diff@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.5.0.tgz#a2d8627964bb06a91893c0fbcb28ab228c257652" - integrity sha512-mCILZd9r7zqL9Uh6yNoXjwGQx0/J43OD2vvWVKwOEOLZliQOsojXwqboubAQ+Tszrb6DHGmNU7m4whGeB9YOqw== +jest-diff@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" + integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== dependencies: chalk "^2.0.1" diff-sequences "^24.3.0" - jest-get-type "^24.3.0" - pretty-format "^24.5.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" jest-docblock@^24.3.0: version "24.3.0" @@ -7917,124 +7987,128 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-each@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.5.0.tgz#da14d017a1b7d0f01fb458d338314cafe7f72318" - integrity sha512-6gy3Kh37PwIT5sNvNY2VchtIFOOBh8UCYnBlxXMb5sr5wpJUDPTUATX2Axq1Vfk+HWTMpsYPeVYp4TXx5uqUBw== +jest-each@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" + integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" - jest-get-type "^24.3.0" - jest-util "^24.5.0" - pretty-format "^24.5.0" - -jest-environment-jsdom@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.5.0.tgz#1c3143063e1374100f8c2723a8b6aad23b6db7eb" - integrity sha512-62Ih5HbdAWcsqBx2ktUnor/mABBo1U111AvZWcLKeWN/n/gc5ZvDBKe4Og44fQdHKiXClrNGC6G0mBo6wrPeGQ== - dependencies: - "@jest/environment" "^24.5.0" - "@jest/fake-timers" "^24.5.0" - "@jest/types" "^24.5.0" - jest-mock "^24.5.0" - jest-util "^24.5.0" + jest-get-type "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" + +jest-environment-jsdom@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" + integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" jsdom "^11.5.1" -jest-environment-node@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.5.0.tgz#763eebdf529f75b60aa600c6cf8cb09873caa6ab" - integrity sha512-du6FuyWr/GbKLsmAbzNF9mpr2Iu2zWSaq/BNHzX+vgOcts9f2ayXBweS7RAhr+6bLp6qRpMB6utAMF5Ygktxnw== +jest-environment-node@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" + integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== dependencies: - "@jest/environment" "^24.5.0" - "@jest/fake-timers" "^24.5.0" - "@jest/types" "^24.5.0" - jest-mock "^24.5.0" - jest-util "^24.5.0" + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== -jest-get-type@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" - integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== +jest-get-type@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" + integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== -jest-haste-map@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.5.0.tgz#3f17d0c548b99c0c96ed2893f9c0ccecb2eb9066" - integrity sha512-mb4Yrcjw9vBgSvobDwH8QUovxApdimGcOkp+V1ucGGw4Uvr3VzZQBJhNm1UY3dXYm4XXyTW2G7IBEZ9pM2ggRQ== +jest-haste-map@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.0.tgz#51794182d877b3ddfd6e6d23920e3fe72f305800" + integrity sha512-ZBPRGHdPt1rHajWelXdqygIDpJx8u3xOoLyUBWRW28r3tagrgoepPrzAozW7kW9HrQfhvmiv1tncsxqHJO1onQ== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" + anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" jest-serializer "^24.4.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" micromatch "^3.1.10" sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" -jest-jasmine2@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.5.0.tgz#e6af4d7f73dc527d007cca5a5b177c0bcc29d111" - integrity sha512-sfVrxVcx1rNUbBeyIyhkqZ4q+seNKyAG6iM0S2TYBdQsXjoFDdqWFfsUxb6uXSsbimbXX/NMkJIwUZ1uT9+/Aw== +jest-jasmine2@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" + integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.5.0" + expect "^24.8.0" is-generator-fn "^2.0.0" - jest-each "^24.5.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-runtime "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - pretty-format "^24.5.0" + jest-each "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" throat "^4.0.0" -jest-leak-detector@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.5.0.tgz#21ae2b3b0da252c1171cd494f75696d65fb6fa89" - integrity sha512-LZKBjGovFRx3cRBkqmIg+BZnxbrLqhQl09IziMk3oeh1OV81Hg30RUIx885mq8qBv1PA0comB9bjKcuyNO1bCQ== +jest-leak-detector@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" + integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== dependencies: - pretty-format "^24.5.0" + pretty-format "^24.8.0" -jest-matcher-utils@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.5.0.tgz#5995549dcf09fa94406e89526e877b094dad8770" - integrity sha512-QM1nmLROjLj8GMGzg5VBra3I9hLpjMPtF1YqzQS3rvWn2ltGZLrGAO1KQ9zUCVi5aCvrkbS5Ndm2evIP9yZg1Q== +jest-matcher-utils@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" + integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== dependencies: chalk "^2.0.1" - jest-diff "^24.5.0" - jest-get-type "^24.3.0" - pretty-format "^24.5.0" + jest-diff "^24.8.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" -jest-message-util@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.5.0.tgz#181420a65a7ef2e8b5c2f8e14882c453c6d41d07" - integrity sha512-6ZYgdOojowCGiV0D8WdgctZEAe+EcFU+KrVds+0ZjvpZurUW2/oKJGltJ6FWY2joZwYXN5VL36GPV6pNVRqRnQ== +jest-message-util@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" + integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.5.0.tgz#976912c99a93f2a1c67497a9414aa4d9da4c7b76" - integrity sha512-ZnAtkWrKf48eERgAOiUxVoFavVBziO2pAi2MfZ1+bGXVkDfxWLxU0//oJBkgwbsv6OAmuLBz4XFFqvCFMqnGUw== +jest-mock@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" + integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -8046,75 +8120,75 @@ jest-regex-util@^24.3.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-resolve-dependencies@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.5.0.tgz#1a0dae9cdd41349ca4a84148b3e78da2ba33fd4b" - integrity sha512-dRVM1D+gWrFfrq2vlL5P9P/i8kB4BOYqYf3S7xczZ+A6PC3SgXYSErX/ScW/469pWMboM1uAhgLF+39nXlirCQ== +jest-resolve-dependencies@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" + integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.5.0" + jest-snapshot "^24.8.0" -jest-resolve@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.5.0.tgz#8c16ba08f60a1616c3b1cd7afb24574f50a24d04" - integrity sha512-ZIfGqLX1Rg8xJpQqNjdoO8MuxHV1q/i2OO1hLXjgCWFWs5bsedS8UrOdgjUqqNae6DXA+pCyRmdcB7lQEEbXew== +jest-resolve@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" + integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.5.0.tgz#9be26ece4fd4ab3dfb528b887523144b7c5ffca8" - integrity sha512-oqsiS9TkIZV5dVkD+GmbNfWBRPIvxqmlTQ+AQUJUQ07n+4xTSDc40r+aKBynHw9/tLzafC00DIbJjB2cOZdvMA== +jest-runner@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" + integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.5.0" + jest-config "^24.8.0" jest-docblock "^24.3.0" - jest-haste-map "^24.5.0" - jest-jasmine2 "^24.5.0" - jest-leak-detector "^24.5.0" - jest-message-util "^24.5.0" - jest-resolve "^24.5.0" - jest-runtime "^24.5.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" + jest-haste-map "^24.8.0" + jest-jasmine2 "^24.8.0" + jest-leak-detector "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" + jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.5.0.tgz#3a76e0bfef4db3896d5116e9e518be47ba771aa2" - integrity sha512-GTFHzfLdwpaeoDPilNpBrorlPoNZuZrwKKzKJs09vWwHo+9TOsIIuszK8cWOuKC7ss07aN1922Ge8fsGdsqCuw== +jest-runtime@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" + integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.8.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" "@types/yargs" "^12.0.2" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.5.0" - jest-haste-map "^24.5.0" - jest-message-util "^24.5.0" - jest-mock "^24.5.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" + jest-resolve "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" @@ -8125,35 +8199,34 @@ jest-serializer@^24.4.0: resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== -jest-snapshot@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.5.0.tgz#e5d224468a759fd19e36f01217aac912f500f779" - integrity sha512-eBEeJb5ROk0NcpodmSKnCVgMOo+Qsu5z9EDl3tGffwPzK1yV37mjGWF2YeIz1NkntgTzP+fUL4s09a0+0dpVWA== +jest-snapshot@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" + integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" - expect "^24.5.0" - jest-diff "^24.5.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-resolve "^24.5.0" + expect "^24.8.0" + jest-diff "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.5.0" + pretty-format "^24.8.0" semver "^5.5.0" -jest-util@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.5.0.tgz#9d9cb06d9dcccc8e7cc76df91b1635025d7baa84" - integrity sha512-Xy8JsD0jvBz85K7VsTIQDuY44s+hYJyppAhcsHsOsGisVtdhar6fajf2UOf2mEVEgh15ZSdA0zkCuheN8cbr1Q== +jest-util@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" + integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== dependencies: - "@jest/console" "^24.3.0" - "@jest/fake-timers" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/fake-timers" "^24.8.0" "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -8172,48 +8245,46 @@ jest-validate@^23.5.0: leven "^2.1.0" pretty-format "^23.6.0" -jest-validate@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.5.0.tgz#62fd93d81214c070bb2d7a55f329a79d8057c7de" - integrity sha512-gg0dYszxjgK2o11unSIJhkOFZqNRQbWOAB2/LOUdsd2LfD9oXiMeuee8XsT0iRy5EvSccBgB4h/9HRbIo3MHgQ== +jest-validate@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" + integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" camelcase "^5.0.0" chalk "^2.0.1" - jest-get-type "^24.3.0" + jest-get-type "^24.8.0" leven "^2.1.0" - pretty-format "^24.5.0" + pretty-format "^24.8.0" -jest-watcher@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.5.0.tgz#da7bd9cb5967e274889b42078c8f501ae1c47761" - integrity sha512-/hCpgR6bg0nKvD3nv4KasdTxuhwfViVMHUATJlnGCD0r1QrmIssimPbmc5KfAQblAVxkD8xrzuij9vfPUk1/rA== +jest-watcher@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" + integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== dependencies: - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" "@types/yargs" "^12.0.9" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.5.0" + jest-util "^24.8.0" string-length "^2.0.0" -jest-worker@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.4.0.tgz#fbc452b0120bb5c2a70cdc88fa132b48eeb11dd0" - integrity sha512-BH9X/klG9vxwoO99ZBUbZFfV8qO0XNZ5SIiCyYK2zOuJBl6YJVAeNIQjcoOVNu4HGEHeYEKsUWws8kSlSbZ9YQ== +jest-worker@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" + integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== dependencies: - "@types/node" "*" merge-stream "^1.0.1" supports-color "^6.1.0" -jest@^24.1.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.5.0.tgz#38f11ae2c2baa2f86c2bc4d8a91d2b51612cd19a" - integrity sha512-lxL+Fq5/RH7inxxmfS2aZLCf8MsS+YCUBfeiNO6BWz/MmjhDGaIEA/2bzEf9q4Q0X+mtFHiinHFvQ0u+RvW/qQ== +jest@^24.6.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081" + integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg== dependencies: import-local "^2.0.0" - jest-cli "^24.5.0" + jest-cli "^24.8.0" joi@^13.0.0: version "13.7.0" @@ -8253,10 +8324,10 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.10.0, js-yaml@^3.12.0, js-yaml@^3.8.1, js-yaml@^3.9.0, js-yaml@^3.9.1: - version "3.13.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" - integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== +js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.8.1, js-yaml@^3.9.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -8397,10 +8468,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= +jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + integrity sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA== dependencies: array-includes "^3.0.3" @@ -8411,7 +8482,7 @@ keyv@3.0.0: dependencies: json-buffer "3.0.0" -killable@^1.0.0: +killable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== @@ -8441,9 +8512,9 @@ kind-of@^6.0.0, kind-of@^6.0.2: integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== kleur@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68" - integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q== + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== lazy-cache@^2.0.2: version "2.0.2" @@ -8452,6 +8523,13 @@ lazy-cache@^2.0.2: dependencies: set-getter "^0.1.0" +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -8465,25 +8543,25 @@ left-pad@^1.3.0: integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== lerna@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.13.1.tgz#feaff562176f304bd82329ca29ce46ab6c033463" - integrity sha512-7kSz8LLozVsoUNTJzJzy+b8TnV9YdviR2Ee2PwGZSlVw3T1Rn7kOAPZjEi+3IWnOPC96zMPHVmjCmzQ4uubalw== - dependencies: - "@lerna/add" "3.13.1" - "@lerna/bootstrap" "3.13.1" - "@lerna/changed" "3.13.1" - "@lerna/clean" "3.13.1" + version "3.13.4" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.13.4.tgz#03026c11c5643f341fda42e4fb1882e2df35e6cb" + integrity sha512-qTp22nlpcgVrJGZuD7oHnFbTk72j2USFimc2Pj4kC0/rXmcU2xPtCiyuxLl8y6/6Lj5g9kwEuvKDZtSXujjX/A== + dependencies: + "@lerna/add" "3.13.3" + "@lerna/bootstrap" "3.13.3" + "@lerna/changed" "3.13.4" + "@lerna/clean" "3.13.3" "@lerna/cli" "3.13.0" - "@lerna/create" "3.13.1" - "@lerna/diff" "3.13.1" - "@lerna/exec" "3.13.1" - "@lerna/import" "3.13.1" - "@lerna/init" "3.13.1" - "@lerna/link" "3.13.1" - "@lerna/list" "3.13.1" - "@lerna/publish" "3.13.1" - "@lerna/run" "3.13.1" - "@lerna/version" "3.13.1" + "@lerna/create" "3.13.3" + "@lerna/diff" "3.13.3" + "@lerna/exec" "3.13.3" + "@lerna/import" "3.13.4" + "@lerna/init" "3.13.3" + "@lerna/link" "3.13.3" + "@lerna/list" "3.13.3" + "@lerna/publish" "3.13.4" + "@lerna/run" "3.13.3" + "@lerna/version" "3.13.4" import-local "^1.0.0" npmlog "^4.1.2" @@ -8563,6 +8641,11 @@ list-item@^1.1.1: is-number "^2.1.0" repeat-string "^1.5.2" +listenercount@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" + integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= + listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -8683,6 +8766,11 @@ lodash._reinterpolate@~3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.assign@^4.0.3, lodash.assign@^4.0.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + lodash.assignin@^4.0.9: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" @@ -8738,6 +8826,11 @@ lodash.isequal@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + lodash.map@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" @@ -8844,7 +8937,7 @@ logalot@^2.0.0: figures "^1.3.5" squeak "^1.0.0" -loglevel@^1.4.1: +loglevel@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po= @@ -8921,19 +9014,19 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -macos-release@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.1.0.tgz#c87935891fbeb0dba7537913fc66f469fee9d662" - integrity sha512-8TCbwvN1mfNxbBv0yBtfyIFMo3m1QsNbKHv7PYIp/abRBKVQBXN7ecu3aeGGgT18VC/Tf397LBDGZF9KBGJFFw== +macos-release@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" + integrity sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA== -make-dir@^1.0.0, make-dir@^1.2.0, make-dir@^1.3.0: +make-dir@^1.0.0, make-dir@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -9000,9 +9093,9 @@ map-visit@^1.0.0: object-visit "^1.0.0" markdown-escapes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz#e639cbde7b99c841c0bacc8a07982873b46d2122" - integrity sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" + integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== markdown-link@^0.1.1: version "0.1.1" @@ -9051,6 +9144,15 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +md5@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" + integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= + dependencies: + charenc "~0.0.1" + crypt "~0.0.1" + is-buffer "~1.1.1" + mdast-squeeze-paragraphs@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.4.tgz#e27affcc8cc854842ff504ebb8f380e3c8e131f8" @@ -9110,9 +9212,9 @@ media-typer@0.3.0: integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.2.0.tgz#5ee057680ed9cb8dad8a78d820f9a8897a102025" - integrity sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: map-age-cleaner "^0.1.1" mimic-fn "^2.0.0" @@ -9206,17 +9308,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.38.0 < 2", mime-db@^1.28.0, mime-db@~1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" - integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2", mime-db@^1.28.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: - version "2.1.22" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" - integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: - mime-db "~1.38.0" + mime-db "1.40.0" mime@1.4.1: version "1.4.1" @@ -9224,9 +9326,9 @@ mime@1.4.1: integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== mime@^2.3.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" - integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== + version "2.4.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" + integrity sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg== mimic-fn@^1.0.0: version "1.2.0" @@ -9234,9 +9336,9 @@ mimic-fn@^1.0.0: integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-fn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde" - integrity sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0: version "1.0.1" @@ -9276,7 +9378,7 @@ minimatch@3.0.3: dependencies: brace-expansion "^1.0.0" -minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -9422,10 +9524,10 @@ mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.9.2: - version "2.13.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.1.tgz#a15bee3790bde247e8f38f1d446edcdaeb05f2dd" - integrity sha512-I6YB/YEuDeUZMmhscXKxGgZlFnhsn5y0hgOZBadkzfTRrZBtJDZeg6eQf7PYMIEclwmorTKK8GztsyOUSVBREA== +nan@^2.12.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== nanomatch@^1.2.9: version "1.2.13" @@ -9461,18 +9563,18 @@ nearley@^2.7.10: semver "^5.4.1" needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388" + integrity sha512-CaLXV3W8Vnbps8ZANqDGz7j4x7Yj1LW4TWF/TQuDfj7Cfx4nAPTvw98qgTevtto1oHDrh3pQkaODbqupXlsWTg== dependencies: - debug "^2.1.2" + debug "^4.1.0" iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.0" @@ -9515,10 +9617,10 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" - integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== +node-fetch@^2.1.1, node-fetch@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" + integrity sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw== node-forge@0.7.5: version "0.7.5" @@ -9593,10 +9695,10 @@ node-notifier@^5.2.1: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -9609,10 +9711,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.11, node-releases@^1.1.3: - version "1.1.11" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.11.tgz#9a0841a4b0d92b7d5141ed179e764f42ad22724a" - integrity sha512-8v1j5KfP+s5WOTa1spNUAOfreajQPN12JXbRR0oDE+YrJBQCXBnNqUDj27EKpPLOoSiU3tKi3xGPB+JaOdUEQQ== +node-releases@^1.1.17, node-releases@^1.1.3: + version "1.1.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.18.tgz#cc98fd75598a324a77188ebddf6650e9cbd8b1d5" + integrity sha512-/mnVgm6u/8OwlIsoyRXtTI0RfQcxZoAZbdwyXap0EeWwcOpDDymyCHM2/aR9XKmHXrvizHoPAOs0pcbiJ6RUaA== dependencies: semver "^5.3.0" @@ -9819,9 +9921,9 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwsapi@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.1.tgz#08d6d75e69fd791bdea31507ffafe8c843b67e9c" - integrity sha512-T5GaA1J/d34AC8mkrFD2O0DR17kwJ702ZOtJOsS8RpbsQZVOC2/xYFb1i/cw+xdM54JIlMuojjDOYct8GIWtwg== + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== oauth-sign@~0.9.0: version "0.9.0" @@ -9853,9 +9955,9 @@ object-is@^1.0.1: integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" - integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" @@ -9974,7 +10076,7 @@ opn@5.4.0: dependencies: is-wsl "^1.1.0" -opn@^5.1.0: +opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== @@ -10034,6 +10136,13 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + os-locale@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -10044,11 +10153,11 @@ os-locale@^3.0.0: mem "^4.0.0" os-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.0.0.tgz#e1434dbfddb8e74b44c98b56797d951b7648a5d9" - integrity sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g== + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== dependencies: - macos-release "^2.0.0" + macos-release "^2.2.0" windows-release "^3.1.0" os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: @@ -10111,9 +10220,9 @@ p-is-promise@^1.1.0: integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= p-is-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" - integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^1.1.0: version "1.3.0" @@ -10156,9 +10265,9 @@ p-map@^1.1.1, p-map@^1.2.0: integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== p-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50" - integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w== + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-pipe@^1.1.0, p-pipe@^1.2.0: version "1.2.0" @@ -10190,9 +10299,9 @@ p-try@^1.0.0: integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.1.0.tgz#c1a0f1030e97de018bb2c718929d2af59463e505" - integrity sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== p-waterfall@^1.0.0: version "1.0.0" @@ -10347,9 +10456,9 @@ parse5@^5.0.0: integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^2.0.0: version "2.0.1" @@ -10398,7 +10507,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -10470,9 +10579,9 @@ performance-now@^2.1.0: integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.5.tgz#067456ff321d6447ca3dc32273d7bbf19ab2face" - integrity sha512-Zisqgaq/4P05ZclrU/g5XrzFqVo7YiJx+EP4haeVI9S7kvtZmZgmQMZfcvjEus9JcMhqZfQZObimT5ZydvKJGA== + version "2.0.6" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.6.tgz#f39cfedd26213982733ae6b819d3da0e736598d5" + integrity sha512-Btng9qVvFsW6FkXYQQK5nEI5i8xdXFDmlKxC7Q8S2Bu5HGWnbQf7ts2kOoxJIrZn5hmw61RZIayAg2zBuJDtyQ== pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -10546,7 +10655,7 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== -portfinder@^1.0.13, portfinder@^1.0.17, portfinder@^1.0.9: +portfinder@^1.0.13, portfinder@^1.0.17, portfinder@^1.0.20: version "1.0.20" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== @@ -10840,9 +10949,9 @@ postcss@^6.0.1, postcss@^6.0.23: supports-color "^5.4.0" postcss@^7.0.1, postcss@^7.0.14: - version "7.0.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" - integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg== + version "7.0.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz#48f64f1b4b558cb8b52c88987724359acb010da2" + integrity sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -10864,9 +10973,9 @@ prepend-http@^2.0.0: integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prettier@^1.13.7: - version "1.16.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" - integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g== + version "1.17.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" + integrity sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw== pretty-error@^2.1.1: version "2.1.1" @@ -10884,12 +10993,12 @@ pretty-format@^23.6.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.5.0.tgz#cc69a0281a62cd7242633fc135d6930cd889822d" - integrity sha512-/3RuSghukCf8Riu5Ncve0iI+BzVkbRU5EeUoArKARZobREycuH5O4waxvaNIloEXdb0qwgmEAed5vTpX1HNROQ== +pretty-format@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" + integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.8.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -10904,14 +11013,7 @@ prism-themes@^1.1.0: resolved "https://registry.yarnpkg.com/prism-themes/-/prism-themes-1.1.0.tgz#9f4fadf0c9c7ee415773717ea69c2aaa25aedbfd" integrity sha512-xBkflbKbstGGasW3P68KQzAuObLQeH//I5mn37jKVHVDrRLp4Xct/n8F/tV5h+CKIMa3nDAZ2q0bt8ItSiS72A== -prismjs@^1.15.0, prismjs@~1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.15.0.tgz#8801d332e472091ba8def94976c8877ad60398d9" - integrity sha512-Lf2JrFYx8FanHrjoV5oL8YHCclLQgbJcVZR+gikGGMqz6ub5QVWDTM6YIwm3BuPxM/LOV+rKns3LssXNLIf+DA== - optionalDependencies: - clipboard "^2.0.0" - -prismjs@^1.16.0: +prismjs@^1.15.0, prismjs@^1.16.0, prismjs@~1.16.0: version "1.16.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.16.0.tgz#406eb2c8aacb0f5f0f1167930cb83835d10a4308" integrity sha512-OA4MKxjFZHSvZcisLGe14THYsug/nF6O1f0pAJc0KN0wTyAcLqmsbE+lTGKSpyh+9pEW57+k6pg2AfYR+coyHA== @@ -10923,6 +11025,11 @@ private@^0.1.6: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" @@ -11021,12 +11128,12 @@ protoduck@^5.0.1: genfun "^5.0.0" proxy-addr@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" - integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== dependencies: forwarded "~0.1.2" - ipaddr.js "1.8.0" + ipaddr.js "1.9.0" prr@~1.0.1: version "1.0.1" @@ -11142,7 +11249,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@^2.0.0: +querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== @@ -11285,14 +11392,14 @@ react-dev-utils@^8.0.0: text-table "0.2.0" react-dom@^16.5.0, react-dom@^16.8.4: - version "16.8.5" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.5.tgz#b3e37d152b49e07faaa8de41fdf562be3463335e" - integrity sha512-VIEIvZLpFafsfu4kgmftP5L8j7P1f0YThfVTrANMhZUFMDOsA6e0kfR6wxw/8xxKs4NB59TZYbxNdPCDW34x4w== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" + integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.13.5" + scheduler "^0.13.6" react-error-overlay@^4.0.1: version "4.0.1" @@ -11300,9 +11407,9 @@ react-error-overlay@^4.0.1: integrity sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw== react-error-overlay@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.4.tgz#88dfb88857c18ceb3b9f95076f850d7121776991" - integrity sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg== + version "5.1.5" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.5.tgz#884530fd055476c764eaa8ab13b8ecf1f57bbf2c" + integrity sha512-O9JRum1Zq/qCPFH5qVEvDDrVun8Jv9vbHtZXCR1EuRj9sKg1xJTlHxBzU6AkCzpvxRLuiY4OKImy3cDLQ+UTdg== react-fast-compare@^2.0.2: version "2.0.4" @@ -11319,16 +11426,11 @@ react-helmet@^6.0.0-beta: react-fast-compare "^2.0.2" react-side-effect "^1.1.0" -react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.6: +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.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== -react-is@^16.8.1, react-is@^16.8.4: - version "16.8.5" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.5.tgz#c54ac229dd66b5afe0de5acbe47647c3da692ff8" - integrity sha512-sudt2uq5P/2TznPV4Wtdi+Lnq3yaYW8LfvPKLM9BKD8jJNBkxMVyB0C9/GmVhLw7Jbdmndk/73n7XQGeN9A3QQ== - react-loadable-ssr-addon@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.1.8.tgz#382a77d9eabc902c41e0ce14d0daa971cf0d741a" @@ -11396,14 +11498,14 @@ react-test-renderer@^16.0.0-0: scheduler "^0.13.6" react@^16.5.0, react@^16.8.4: - version "16.8.5" - resolved "https://registry.yarnpkg.com/react/-/react-16.8.5.tgz#49be3b655489d74504ad994016407e8a0445de66" - integrity sha512-daCb9TD6FZGvJ3sg8da1tRAtIuw29PbKZW++NN4wqkbEvxL+bZpaaYb4xuftW/SpXmgacf1skXl/ddX6CdOlDw== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" + integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.13.5" + scheduler "^0.13.6" read-cmd-shim@^1.0.1: version "1.0.1" @@ -11523,15 +11625,28 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.2.0.tgz#de17f229864c120a9f56945756e4f32c4045245d" - integrity sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw== +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + integrity sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@~2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + integrity sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA= + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" @@ -11631,13 +11746,13 @@ reflect.ownkeys@^0.2.0: integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= refractor@^2.3.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.7.0.tgz#3ed9a96a619e75326a429e644241dea51be070a3" - integrity sha512-v5W1SF8ysJOKvcJcpZpM7AP6xIAFDI2iKwTBeo5hd3MIzYv2wcWVcZ6HpPRz8iInJmKWeelCIDhZb2ixZEzzpw== + version "2.9.0" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.9.0.tgz#0a381aadb51513e4e6ec1ed410b5104dd65e2489" + integrity sha512-lCnCYvXpqd8hC7ksuvo516rz5q4NwzBbq0X5qjH5pxRfcQKiQxKZ8JctrSQmrR/7pcV2TRrs9TT+Whmq/wtluQ== dependencies: hastscript "^5.0.0" parse-entities "^1.1.2" - prismjs "~1.15.0" + prismjs "~1.16.0" regenerate-unicode-properties@^8.0.2: version "8.0.2" @@ -11651,6 +11766,16 @@ regenerate@^1.2.1, regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + regenerator-runtime@^0.13.2: version "0.13.2" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" @@ -11672,9 +11797,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp-tree@^0.1.0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.5.tgz#7cd71fca17198d04b4176efd79713f2998009397" - integrity sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ== + version "0.1.6" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.6.tgz#84900fa12fdf428a2ac25f04300382a7c0148479" + integrity sha512-LFrA98Dw/heXqDojz7qKFdygZmFoiVlvE1Zp7Cq2cvF+ZA+03Gmhy0k0PQlsC1jvHPiTUSs+pDHEuSWv6+6D7w== regexpp@^1.0.1: version "1.1.0" @@ -11690,7 +11815,7 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.1.3, regexpu-core@^4.5.4: +regexpu-core@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== @@ -11750,10 +11875,10 @@ remark-emoji@^2.0.2: node-emoji "^1.8.1" unist-util-visit "^1.4.0" -remark-mdx@^1.0.14: - version "1.0.14" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.0.14.tgz#6c32995d4b8ad0623bd6099a7e02a50fbe79c252" - integrity sha512-JMTp43LnFAPAEHBye+89pZQTYNuFX8YjOl19LUCtMaP6PcnK51aRLxbX0OikA/dvuI7KFQbIQMs2WscB4L57Gw== +remark-mdx@^1.0.14, remark-mdx@^1.0.18: + version "1.0.18" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.0.18.tgz#a686bcb1166ae673bc77d9e459dbd576443bf854" + integrity sha512-PLsY2LNXuJ8YHaxjuOpRk+hDviB7jBFwLmLN4m4P5/Ev+NlmG8uXisAkP4P4Al47CPmJyKHQRJMjA8mWu4exVw== dependencies: "@babel/core" "^7.2.2" "@babel/helper-plugin-utils" "^7.0.0" @@ -11923,6 +12048,11 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -11981,10 +12111,10 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" - integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.3.2, resolve@^1.5.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" + integrity sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA== dependencies: path-parse "^1.0.6" @@ -12013,7 +12143,7 @@ retry@^0.10.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -12078,9 +12208,9 @@ rx@^4.1.0: integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= rxjs@^6.1.0, rxjs@^6.3.3, rxjs@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" - integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== + version "6.5.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.1.tgz#f7a005a9386361921b8524f38f54cbf80e5d08f4" + integrity sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg== dependencies: tslib "^1.9.0" @@ -12126,14 +12256,6 @@ sax@^1.2.4, sax@~1.2.1, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.5.tgz#b7226625167041298af3b98088a9dbbf6d7733a8" - integrity sha512-K98vjkQX9OIt/riLhp6F+XtDPtMQhqNcf045vsh+pcuvHq+PHy1xCrH3pq1P40m6yR46lpVvVhKdEOtnimuUJw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler@^0.13.6: version "0.13.6" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" @@ -12176,7 +12298,7 @@ select@^1.1.2: resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= -selfsigned@^1.9.1: +selfsigned@^1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== @@ -12201,9 +12323,9 @@ semver-truncate@^1.1.2: semver "^5.3.0" "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== semver@^6.0.0: version "6.0.0" @@ -12243,11 +12365,11 @@ sentence-case@^2.1.0: upper-case-first "^1.1.2" serialize-javascript@^1.4.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" - integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== + version "1.7.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" + integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== -serve-index@^1.7.2: +serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= @@ -12302,7 +12424,7 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4, setimmediate@^1.0.5, setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -12396,9 +12518,9 @@ sitemap@^1.13.0: url-join "^1.1.0" sitemap@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-2.1.0.tgz#1633cb88c196d755ad94becfb1c1bcacc6d3425a" - integrity sha512-AkfA7RDVCITQo+j5CpXsMJlZ/8ENO2NtgMHYIh+YMvex2Hao/oe3MQgNa03p0aWY6srCfUA1Q02OgiWCAiuccA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-2.2.0.tgz#98b8502762c5d7e8c77c9be5061dce85b326f1b0" + integrity sha512-9Zoi3UBhSIt5jWENDRUbzsqLMJ+Fha3P2aQ2PRghmh0FOivtHsC4FAJdkAEKHvATajd74BWp/57Yh7kz/UA53Q== dependencies: lodash "^4.17.10" url-join "^4.0.0" @@ -12564,9 +12686,9 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: urix "^0.1.0" source-map-support@^0.5.6, source-map-support@^0.5.9, source-map-support@~0.5.10: - version "0.5.11" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.11.tgz#efac2ce0800355d026326a0ca23e162aeac9a4e2" - integrity sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ== + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -12587,11 +12709,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz#e95ab9d19ae841e200808cd96bc7bd0adbbb3412" - integrity sha512-G3jprCEw+xFEs0ORweLmblJ3XLymGGr6hxZYTYZjIlvDti9vOBUjRQa1Rzjt012aRrocKstHwdNi+F7HguPsEA== - dependencies: - trim "0.0.1" + version "1.1.3" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.3.tgz#bc6500e116d13285a94b59b58c44c7f045fe6124" + integrity sha512-/M5RAdBuQlSDPNfA5ube+fkHbHyY08pMuADLmsAQURzo56w90r681oiOoz3o3ZQyWdSeNucpTFjL+Ggd5qui3w== spdx-correct@^3.0.0: version "3.1.0" @@ -12615,9 +12735,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" - integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== spdy-transport@^3.0.0: version "3.0.0" @@ -12841,7 +12961,7 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string_decoder@0.10: +string_decoder@0.10, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= @@ -12900,7 +13020,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0: +strip-ansi@^5.0.0, strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -13003,7 +13123,7 @@ supports-color@^5.3.0, supports-color@^5.4.0: dependencies: has-flag "^3.0.0" -supports-color@^6.0.0, supports-color@^6.1.0: +supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== @@ -13024,9 +13144,9 @@ svgo@^0.7.0: whet.extend "~0.9.9" svgo@^1.0.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.0.tgz#305a8fc0f4f9710828c65039bb93d5793225ffc3" - integrity sha512-xBfxJxfk4UeVN8asec9jNxHiv3UAMv/ujwBWGYvQhhMb2u3YTGKkiybPcLFDLq7GLLWE9wa73e0/m8L5nTzQbw== + version "1.2.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316" + integrity sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA== dependencies: chalk "^2.4.1" coa "^2.0.2" @@ -13035,7 +13155,7 @@ svgo@^1.0.5: css-tree "1.0.0-alpha.28" css-url-regex "^1.1.0" csso "^3.5.1" - js-yaml "^3.12.0" + js-yaml "^3.13.1" mkdirp "~0.5.1" object.values "^1.1.0" sax "~1.2.4" @@ -13073,7 +13193,7 @@ table@4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" -table@^4.0.3: +table@^4.0.2, table@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== @@ -13086,9 +13206,9 @@ table@^4.0.3: string-width "^2.1.1" tapable@^1.0.0, tapable@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" - integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar-stream@^1.5.2: version "1.6.2" @@ -13182,15 +13302,15 @@ terser@^3.16.1: source-map "~0.6.1" source-map-support "~0.5.10" -test-exclude@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1" - integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA== +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== dependencies: - arrify "^1.0.1" + glob "^7.1.3" minimatch "^3.0.4" read-pkg-up "^4.0.0" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" text-extensions@^1.0.0: version "1.9.0" @@ -13215,6 +13335,13 @@ through2@^2.0.0, through2@^2.0.2: readable-stream "~2.3.6" xtend "~4.0.1" +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -13243,9 +13370,9 @@ tiny-emitter@^2.0.0: integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== tiny-invariant@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.3.tgz#91efaaa0269ccb6271f0296aeedb05fc3e067b7a" - integrity sha512-ytQx8T4DL8PjlX53yYzcIC0WhIZbpR0p1qcYjw2pHu3w6UtgWwFJQ/02cnhOnBBhlFx/edUIfcagCaQSe3KMWg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.4.tgz#346b5415fd93cb696b0c4e8a96697ff590f92463" + integrity sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g== tiny-lr@^1.1.1: version "1.1.1" @@ -13384,6 +13511,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= + tree-node-cli@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/tree-node-cli/-/tree-node-cli-1.2.5.tgz#afd75437976bbf2cc0c52b9949798e7530e8fd8c" @@ -13392,9 +13524,9 @@ tree-node-cli@^1.2.5: commander "^2.15.1" trim-lines@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.1.tgz#da738ff58fa74817588455e30b11b85289f2a396" - integrity sha512-X+eloHbgJGxczUk1WSjIvn7aC9oN3jVE3rQfRVKcgpavi3jxtCn0VVKtjOBj64Yop96UYn/ujJRpTbCdAF1vyg== + version "1.1.2" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.2.tgz#c8adbdbdae21bb5c2766240a661f693afe23e59b" + integrity sha512-3GOuyNeTqk3FAqc3jOJtw7FTjYl94XBR5aD9QnDbK/T4CA9sW/J0l9RoaRPE9wyPP7NF331qnHnvJFBJ+IDkmQ== trim-newlines@^1.0.0: version "1.0.0" @@ -13439,9 +13571,9 @@ trough@^1.0.0: integrity sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw== truncate-html@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/truncate-html/-/truncate-html-1.0.1.tgz#6f1d03cbb2308bfda266f9ce8f25e62c66919d4f" - integrity sha512-4Yw02HZAhGTGZsW2aNB7GtoF/SG4yPVlS4V42tehY1ZorZhIIZpdUuocdGB7W30J8WHzgOYmyhBzMTx/362Cew== + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-html/-/truncate-html-1.0.2.tgz#ff86906abd349bc3abbdc72c90590efe2fbd1e7e" + integrity sha512-QtzllbVLKLvRyB7deBizCrZP6jdwWVU9Ix/Gag+WySQrySiu+1MUe3s0R/Z0IgfGHwQqkh0RVUgp9MRiP9YVJw== dependencies: "@types/cheerio" "^0.22.8" cheerio "0.22.0" @@ -13481,12 +13613,12 @@ type-check@~0.3.2: prelude-ls "~1.1.2" type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" - mime-types "~2.1.18" + mime-types "~2.1.24" typedarray@^0.0.6: version "0.0.6" @@ -13507,11 +13639,11 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4: - version "3.5.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.1.tgz#29cb91e76c9941899bc74b075ad0e6da9250abd5" - integrity sha512-kI+3c+KphOAKIikQsZoT2oDsVYH5qvhpTtFObfMCdhPAYnjSvmW4oTWMhvDD4jtAGHJwztlBXQgozGcq3Xw9oQ== + version "3.5.11" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.11.tgz#833442c0aa29b3a7d34344c7c63adaa3f3504f6a" + integrity sha512-izPJg8RsSyqxbdnqX36ExpbH3K7tDBsAU/VfNv89VkMFy3z39zFjunQGsSHOlGlyIfGLGprGeosgQno3bo2/Kg== dependencies: - commander "~2.19.0" + commander "~2.20.0" source-map "~0.6.1" uid-number@0.0.6: @@ -13711,6 +13843,21 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unzipper@^0.8.11: + version "0.8.14" + resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.8.14.tgz#ade0524cd2fc14d11b8de258be22f9d247d3f79b" + integrity sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "~1.0.10" + listenercount "~1.0.1" + readable-stream "~2.1.5" + setimmediate "~1.0.4" + upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" @@ -13765,11 +13912,11 @@ url-parse-lax@^3.0.0: prepend-http "^2.0.0" url-parse@^1.1.8, url-parse@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8" - integrity sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg== + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: - querystringify "^2.0.0" + querystringify "^2.1.1" requires-port "^1.0.0" url-template@^2.0.8: @@ -13898,6 +14045,11 @@ vfile@^3.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vlq@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -13923,7 +14075,7 @@ wait-on@^3.2.0: request "^2.88.0" rx "^4.1.0" -walker@~1.0.5: +walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -13954,9 +14106,9 @@ wcwidth@^1.0.0: defaults "^1.0.3" web-namespaces@^1.0.0, web-namespaces@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.2.tgz#c8dc267ab639505276bae19e129dbd6ae72b22b4" - integrity sha512-II+n2ms4mPxK+RnIxRPOw3zwF2jRscdJIUE9BfkKHm4FYEg9+biIoTMnaZF5MpemE3T+VhMLrhbyD4ilkPCSbg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.3.tgz#9bbf5c99ff0908d2da031f1d732492a96571a83f" + integrity sha512-r8sAtNmgR0WKOKOxzuSgk09JsHlpKlB+uHi937qypOu3PZ17UxPrierFKDye/uNHjNTTEshu5PId8rojIPj/tA== webidl-conversions@^4.0.2: version "4.0.2" @@ -13964,9 +14116,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-bundle-analyzer@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.1.0.tgz#2f19cbb87bb6d4f3cb4e59cb67c837bd9436e89d" - integrity sha512-nyDyWEs7C6DZlgvu1pR1zzJfIWSiGPbtaByZr8q+Fd2xp70FuM/8ngCJzj3Er1TYRLSFmp1F1OInbEm4DZH8NA== + version "3.3.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz#3da733a900f515914e729fcebcd4c40dde71fc6f" + integrity sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA== dependencies: acorn "^6.0.7" acorn-walk "^6.1.1" @@ -13982,10 +14134,10 @@ webpack-bundle-analyzer@^3.1.0: opener "^1.5.1" ws "^6.0.0" -webpack-dev-middleware@^3.5.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz#91f2531218a633a99189f7de36045a331a4b9cd4" - integrity sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw== +webpack-dev-middleware@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.2.tgz#f37a27ad7c09cd7dc67cd97655413abaa1f55942" + integrity sha512-A47I5SX60IkHrMmZUlB0ZKSWi29TZTcPz7cha1Z75yYOsgWh/1AcPmQEbC8ZIbU3A1ytSv1PMU0PyPz2Lmz2jg== dependencies: memory-fs "^0.4.1" mime "^2.3.1" @@ -13993,40 +14145,40 @@ webpack-dev-middleware@^3.5.1: webpack-log "^2.0.0" webpack-dev-server@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz#1b45ce3ecfc55b6ebe5e36dab2777c02bc508c4e" - integrity sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.3.1.tgz#7046e49ded5c1255a82c5d942bcdda552b72a62d" + integrity sha512-jY09LikOyGZrxVTXK0mgIq9y2IhCoJ05848dKZqX1gAGLU1YDqgpOT71+W53JH/wI4v6ky4hm+KvSyW14JEs5A== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" - chokidar "^2.0.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" + chokidar "^2.1.5" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" debug "^4.1.1" - del "^3.0.0" - express "^4.16.2" - html-entities "^1.2.0" + del "^4.1.0" + express "^4.16.4" + html-entities "^1.2.1" http-proxy-middleware "^0.19.1" import-local "^2.0.0" internal-ip "^4.2.0" ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" + killable "^1.0.1" + loglevel "^1.6.1" + opn "^5.5.0" + portfinder "^1.0.20" schema-utils "^1.0.0" - selfsigned "^1.9.1" - semver "^5.6.0" - serve-index "^1.7.2" + selfsigned "^1.10.4" + semver "^6.0.0" + serve-index "^1.9.1" sockjs "0.3.19" sockjs-client "1.3.0" spdy "^4.0.0" - strip-ansi "^3.0.0" + strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" - webpack-dev-middleware "^3.5.1" + webpack-dev-middleware "^3.6.2" webpack-log "^2.0.0" - yargs "12.0.2" + yargs "12.0.5" webpack-log@^2.0.0: version "2.0.0" @@ -14172,6 +14324,11 @@ whet.extend@~0.9.9: resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -14191,12 +14348,17 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= + windows-release@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.1.0.tgz#8d4a7e266cbf5a233f6c717dac19ce00af36e12e" - integrity sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" + integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== dependencies: - execa "^0.10.0" + execa "^1.0.0" wordwrap@0.0.2: version "0.0.2" @@ -14214,9 +14376,9 @@ wordwrap@~1.0.0: integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" @@ -14320,16 +14482,16 @@ xmlbuilder@^10.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz#8cae6688cc9b38d850b7c8d3c0a4161dcaf475b0" integrity sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg== -xregexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" - integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== - xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -14353,13 +14515,6 @@ yamljs@^0.2.1: argparse "^1.0.7" glob "^7.0.5" -yargs-parser@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -14368,25 +14523,15 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" - integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ== +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + integrity sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ= dependencies: - cliui "^4.0.0" - decamelize "^2.0.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^10.1.0" + camelcase "^3.0.0" + lodash.assign "^4.0.6" -yargs@^12.0.1, yargs@^12.0.2: +yargs@12.0.5, yargs@^12.0.1, yargs@^12.0.2: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -14411,6 +14556,26 @@ yargs@^2.3.0: dependencies: wordwrap "0.0.2" +yargs@^4.2.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + integrity sha1-wMQpJMpKqmsObaFznfshZDn53cA= + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.1" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.1" + yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From bb0ebdda50d60eacd1f332ac2865b311260541fe Mon Sep 17 00:00:00 2001 From: Endi Date: Thu, 9 May 2019 18:32:56 +0700 Subject: [PATCH 14/60] chore(v2): rm flowtype (#1444) --- .circleci/config.yml | 3 - .eslintignore | 2 - .flowconfig | 14 - .gitignore | 2 - .prettierignore | 3 - babel.config.js | 1 - flow-typed/npm/escape-string-regexp_v1.x.x.js | 10 - flow-typed/npm/fs-extra_v7.x.x.js | 768 --- flow-typed/npm/lodash_v4.x.x.js | 6047 ----------------- package.json | 10 - packages/docusaurus-utils/.npmignore | 1 - packages/docusaurus-utils/package.json | 9 +- packages/docusaurus-utils/src/index.js | 72 +- packages/docusaurus/.npmignore | 1 - packages/docusaurus/bin/docusaurus.js | 2 +- packages/docusaurus/package.json | 7 +- packages/docusaurus/src/server/load/theme.js | 4 +- yarn.lock | 323 +- 18 files changed, 66 insertions(+), 7213 deletions(-) delete mode 100644 .flowconfig delete mode 100644 flow-typed/npm/escape-string-regexp_v1.x.x.js delete mode 100644 flow-typed/npm/fs-extra_v7.x.x.js delete mode 100644 flow-typed/npm/lodash_v4.x.x.js delete mode 100644 packages/docusaurus-utils/.npmignore delete mode 100644 packages/docusaurus/.npmignore diff --git a/.circleci/config.yml b/.circleci/config.yml index 48a9f448bda3..75d7c06d09d5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,9 +41,6 @@ jobs: - run: name: Check ESLint command: yarn lint - - run: - name: Check Flow - command: yarn flow check - run: name: Check Prettier command: yarn prettier:diff diff --git a/.eslintignore b/.eslintignore index f1dc7f76c3e1..41d132a32969 100644 --- a/.eslintignore +++ b/.eslintignore @@ -10,5 +10,3 @@ scripts packages/docusaurus-1.x/lib/core/metadata.js packages/docusaurus-1.x/lib/core/MetadataBlog.js packages/docusaurus-1.x/lib/core/__tests__/split-tab.test.js -packages/docusaurus-utils/lib -packages/docusaurus/lib diff --git a/.flowconfig b/.flowconfig deleted file mode 100644 index c56a11463890..000000000000 --- a/.flowconfig +++ /dev/null @@ -1,14 +0,0 @@ -[ignore] -/packages/.*/lib -/packages/.*/__tests__ - -[include] - -[libs] - -[lints] - -[options] -module.name_mapper='^@docusaurus\/\([a-zA-Z0-9_\-]+\)$' -> '/packages/docusaurus-\1/src/index' - -[strict] diff --git a/.gitignore b/.gitignore index 0dd577d51fac..633e2eb7cdb5 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,4 @@ yarn-error.log build .docusaurus .cache-loader -packages/docusaurus-utils/lib -packages/docusaurus/lib/ diff --git a/.prettierignore b/.prettierignore index 799eaf59d20a..6b9e084ea312 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,6 +2,3 @@ dist node_modules build .docusaurus -packages/docusaurus-utils/lib -packages/docusaurus/lib -flow-typed diff --git a/babel.config.js b/babel.config.js index 761fbcf30815..2798f4892e96 100644 --- a/babel.config.js +++ b/babel.config.js @@ -16,7 +16,6 @@ module.exports = { }, ], '@babel/react', - '@babel/preset-flow', ], plugins: [ '@babel/plugin-proposal-class-properties', diff --git a/flow-typed/npm/escape-string-regexp_v1.x.x.js b/flow-typed/npm/escape-string-regexp_v1.x.x.js deleted file mode 100644 index 528fc1cfed29..000000000000 --- a/flow-typed/npm/escape-string-regexp_v1.x.x.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -declare module 'escape-string-regexp' { - declare module.exports: (input: string) => string; -} diff --git a/flow-typed/npm/fs-extra_v7.x.x.js b/flow-typed/npm/fs-extra_v7.x.x.js deleted file mode 100644 index 7d9135259ef2..000000000000 --- a/flow-typed/npm/fs-extra_v7.x.x.js +++ /dev/null @@ -1,768 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -declare module 'fs-extra' { - import type {Stats, ReadStream, WriteStream} from 'fs'; - - declare export type SymlinkType = 'dir' | 'file'; - declare export type FsSymlinkType = 'dir' | 'file' | 'junction'; - - declare export type CopyFilterSync = (src: string, dest: string) => boolean; - declare export type CopyFilterAsync = ( - src: string, - dest: string, - ) => Promise; - - declare export type CopyOptions = { - dereference?: boolean, - overwrite?: boolean, - preserveTimestamps?: boolean, - errorOnExist?: boolean, - recursive?: boolean, - }; - - declare export type CopyOptionsAync = CopyOptions & { - filter?: CopyFilterSync | CopyFilterAsync, - }; - - declare export type CopyOptionsSync = CopyOptions & { - filter?: CopyFilterSync, - }; - - declare export type MoveOptions = { - overwrite?: boolean, - limit?: number, - }; - - declare export type ReadOptions = { - throws?: boolean, - fs?: Object, - reviver?: any, - encoding?: string, - flag?: string, - }; - - declare export type WriteFileOptions = { - encoding?: string, - flag?: string, - mode?: number, - }; - - declare export type WriteOptions = WriteFileOptions & { - fs?: Object, - replacer?: any, - spaces?: number | string, - EOL?: string, - }; - - declare export type ReadResult = { - bytesRead: number, - buffer: Buffer, - }; - - declare export type WriteResult = { - bytesWritten: number, - buffer: Buffer, - }; - - declare export function copy( - src: string, - dest: string, - options?: CopyOptionsAync, - ): Promise; - declare export function copy( - src: string, - dest: string, - callback: (err: Error) => void, - ): void; - declare export function copy( - src: string, - dest: string, - options: CopyOptionsAync, - callback: (err: Error) => void, - ): void; - declare export function copySync( - src: string, - dest: string, - options?: CopyOptionsSync, - ): void; - - declare export function move( - src: string, - dest: string, - options?: MoveOptions, - ): Promise; - declare export function move( - src: string, - dest: string, - callback: (err: Error) => void, - ): void; - declare export function move( - src: string, - dest: string, - options: MoveOptions, - callback: (err: Error) => void, - ): void; - declare export function moveSync( - src: string, - dest: string, - options?: MoveOptions, - ): void; - - declare export function createFile(file: string): Promise; - declare export function createFile( - file: string, - callback: (err: Error) => void, - ): void; - declare export function createFileSync(file: string): void; - declare export function createReadStream( - path: string, - options?: Object, - ): ReadStream; - declare export function createWriteStream( - path: string, - options?: Object, - ): WriteStream; - - declare export function ensureDir(path: string): Promise; - declare export function ensureDir( - path: string, - callback: (err: Error) => void, - ): void; - declare export function ensureDirSync(path: string): void; - - declare export function exists(path: string): Promise; - declare export function exists( - path: string, - callback?: (exists: boolean) => void, - ): void; - - declare export function mkdirs(dir: string): Promise; - declare export function mkdirs( - dir: string, - callback: (err: Error) => void, - ): void; - declare export function mkdirsSync(dir: string): void; - - declare export function mkdirp(dir: string): Promise; - declare export function mkdirp( - dir: string, - callback: (err: Error) => void, - ): void; - declare export function mkdirpSync(dir: string): void; - - declare export function outputFile( - file: string, - data: any, - options?: WriteFileOptions | string, - ): Promise; - declare export function outputFile( - file: string, - data: any, - callback: (err: Error) => void, - ): void; - declare export function outputFile( - file: string, - data: any, - options: WriteFileOptions | string, - callback: (err: Error) => void, - ): void; - declare export function outputFileSync( - file: string, - data: any, - options?: WriteFileOptions | string, - ): void; - - declare export function readJson( - file: string, - options?: ReadOptions, - ): Promise; - declare export function readJson( - file: string, - callback: (err: Error, jsonObject: any) => void, - ): void; - declare export function readJson( - file: string, - options: ReadOptions, - callback: (err: Error, jsonObject: any) => void, - ): void; - declare export function readJSON( - file: string, - options?: ReadOptions, - ): Promise; - declare export function readJSON( - file: string, - callback: (err: Error, jsonObject: any) => void, - ): void; - declare export function readJSON( - file: string, - options: ReadOptions, - callback: (err: Error, jsonObject: any) => void, - ): void; - - declare export function readJsonSync( - file: string, - options?: ReadOptions, - ): any; - declare export function readJSONSync( - file: string, - options?: ReadOptions, - ): any; - - declare export function remove(dir: string): Promise; - declare export function remove( - dir: string, - callback: (err: Error) => void, - ): void; - declare export function removeSync(dir: string): void; - - declare export function outputJson( - file: string, - data: any, - options?: WriteOptions, - ): Promise; - declare export function outputJSON( - file: string, - data: any, - options?: WriteOptions, - ): Promise; - declare export function outputJson( - file: string, - data: any, - options: WriteOptions, - callback: (err: Error) => void, - ): void; - declare export function outputJSON( - file: string, - data: any, - options: WriteOptions, - callback: (err: Error) => void, - ): void; - declare export function outputJson( - file: string, - data: any, - callback: (err: Error) => void, - ): void; - declare export function outputJSON( - file: string, - data: any, - callback: (err: Error) => void, - ): void; - declare export function outputJsonSync( - file: string, - data: any, - options?: WriteOptions, - ): void; - declare export function outputJSONSync( - file: string, - data: any, - options?: WriteOptions, - ): void; - - declare export function writeJSON( - file: string, - object: any, - options?: WriteOptions, - ): Promise; - declare export function writeJSON( - file: string, - object: any, - callback: (err: Error) => void, - ): void; - declare export function writeJSON( - file: string, - object: any, - options: WriteOptions, - callback: (err: Error) => void, - ): void; - declare export function writeJson( - file: string, - object: any, - options?: WriteOptions, - ): Promise; - declare export function writeJson( - file: string, - object: any, - callback: (err: Error) => void, - ): void; - declare export function writeJson( - file: string, - object: any, - options: WriteOptions, - callback: (err: Error) => void, - ): void; - - declare export function writeJsonSync( - file: string, - object: any, - options?: WriteOptions, - ): void; - declare export function writeJSONSync( - file: string, - object: any, - options?: WriteOptions, - ): void; - - declare export function ensureFile(path: string): Promise; - declare export function ensureFile( - path: string, - callback: (err: Error) => void, - ): void; - declare export function ensureFileSync(path: string): void; - - declare export function ensureLink(src: string, dest: string): Promise; - declare export function ensureLink( - src: string, - dest: string, - callback: (err: Error) => void, - ): void; - declare export function ensureLinkSync(src: string, dest: string): void; - - declare export function ensureSymlink( - src: string, - dest: string, - type?: SymlinkType, - ): Promise; - declare export function ensureSymlink( - src: string, - dest: string, - type: SymlinkType, - callback: (err: Error) => void, - ): void; - declare export function ensureSymlink( - src: string, - dest: string, - callback: (err: Error) => void, - ): void; - declare export function ensureSymlinkSync( - src: string, - dest: string, - type?: SymlinkType, - ): void; - - declare export function emptyDir(path: string): Promise; - declare export function emptyDir( - path: string, - callback: (err: Error) => void, - ): void; - declare export function emptyDirSync(path: string): void; - - declare export function pathExists(path: string): Promise; - declare export function pathExists( - path: string, - callback: (err: Error, exists: boolean) => void, - ): void; - declare export function pathExistsSync(path: string): boolean; - - declare export function access( - path: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function access( - path: string | Buffer, - mode: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function access( - path: string | Buffer, - mode?: number, - ): Promise; - - declare export function appendFile( - file: string | Buffer | number, - data: any, - options: {encoding?: string, mode?: number | string, flag?: string}, - callback: (err: ErrnoError) => void, - ): void; - declare export function appendFile( - file: string | Buffer | number, - data: any, - callback: (err: ErrnoError) => void, - ): void; - declare export function appendFile( - file: string | Buffer | number, - data: any, - options?: {encoding?: string, mode?: number | string, flag?: string}, - ): Promise; - - declare export function chmod( - path: string | Buffer, - mode: string | number, - callback: (err: ErrnoError) => void, - ): void; - declare export function chmod( - path: string | Buffer, - mode: string | number, - ): Promise; - - declare export function chown( - path: string | Buffer, - uid: number, - gid: number, - ): Promise; - declare export function chown( - path: string | Buffer, - uid: number, - gid: number, - callback: (err: ErrnoError) => void, - ): void; - - declare export function close( - fd: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function close(fd: number): Promise; - - declare export function fchmod( - fd: number, - mode: string | number, - callback: (err: ErrnoError) => void, - ): void; - declare export function fchmod( - fd: number, - mode: string | number, - ): Promise; - - declare export function fchown( - fd: number, - uid: number, - gid: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function fchown( - fd: number, - uid: number, - gid: number, - ): Promise; - - declare export function fdatasync(fd: number, callback: () => void): void; - declare export function fdatasync(fd: number): Promise; - - declare export function fstat( - fd: number, - callback: (err: ErrnoError, stats: Stats) => any, - ): void; - declare export function fstat(fd: number): Promise; - - declare export function fsync( - fd: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function fsync(fd: number): Promise; - - declare export function ftruncate( - fd: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function ftruncate( - fd: number, - len: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function ftruncate(fd: number, len?: number): Promise; - - declare export function futimes( - fd: number, - atime: number, - mtime: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function futimes( - fd: number, - atime: Date, - mtime: Date, - callback: (err: ErrnoError) => void, - ): void; - declare export function futimes( - fd: number, - atime: number, - mtime: number, - ): Promise; - declare export function futimes( - fd: number, - atime: Date, - mtime: Date, - ): Promise; - - declare export function lchown( - path: string | Buffer, - uid: number, - gid: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function lchown( - path: string | Buffer, - uid: number, - gid: number, - ): Promise; - - declare export function link( - srcpath: string | Buffer, - dstpath: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function link( - srcpath: string | Buffer, - dstpath: string | Buffer, - ): Promise; - - declare export function lstat( - path: string | Buffer, - callback: (err: ErrnoError, stats: Stats) => any, - ): void; - declare export function lstat(path: string | Buffer): Promise; - - declare export function mkdir( - path: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function mkdir( - path: string | Buffer, - mode: number | string, - callback: (err: ErrnoError) => void, - ): void; - declare export function mkdir(path: string | Buffer): Promise; - - declare export function open( - path: string | Buffer, - flags: string | number, - callback: (err: ErrnoError, fd: number) => void, - ): void; - declare export function open( - path: string | Buffer, - flags: string | number, - mode: number, - callback: (err: ErrnoError, fd: number) => void, - ): void; - declare export function open( - path: string | Buffer, - flags: string | number, - mode?: number, - ): Promise; - - declare export function read( - fd: number, - buffer: Buffer, - offset: number, - length: number, - position: number | null, - callback: (err: ErrnoError, bytesRead: number, buffer: Buffer) => void, - ): void; - declare export function read( - fd: number, - buffer: Buffer, - offset: number, - length: number, - position: number | null, - ): Promise; - - declare export function readFile( - file: string | Buffer | number, - callback: (err: ErrnoError, data: Buffer) => void, - ): void; - declare export function readFile( - file: string | Buffer | number, - encoding: string, - callback: (err: ErrnoError, data: string) => void, - ): void; - declare export function readFile( - file: string | Buffer | number, - options: {flag?: string} | {encoding: string, flag?: string}, - callback: (err: ErrnoError, data: Buffer) => void, - ): void; - declare export function readFile( - file: string | Buffer | number, - options: {flag?: string} | {encoding: string, flag?: string}, - ): Promise; - declare export function readFile( - file: string | Buffer | number, - encoding: string, - ): Promise; - declare export function readFile( - file: string | Buffer | number, - ): Promise; - - declare export function readdir( - path: string | Buffer, - callback: (err: ErrnoError, files: string[]) => void, - ): void; - declare export function readdir(path: string | Buffer): Promise; - - declare export function readlink( - path: string | Buffer, - callback: (err: ErrnoError, linkString: string) => any, - ): void; - declare export function readlink(path: string | Buffer): Promise; - - declare export function realpath( - path: string | Buffer, - callback: (err: ErrnoError, resolvedPath: string) => any, - ): void; - declare export function realpath( - path: string | Buffer, - cache: {[path: string]: string}, - callback: (err: ErrnoError, resolvedPath: string) => any, - ): void; - declare export function realpath( - path: string | Buffer, - cache?: {[path: string]: string}, - ): Promise; - - declare export function rename( - oldPath: string, - newPath: string, - callback: (err: ErrnoError) => void, - ): void; - declare export function rename( - oldPath: string, - newPath: string, - ): Promise; - - declare export function rmdir( - path: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function rmdir(path: string | Buffer): Promise; - - declare export function stat( - path: string | Buffer, - callback: (err: ErrnoError, stats: Stats) => any, - ): void; - declare export function stat(path: string | Buffer): Promise; - - declare export function statSync(path: string): Stats; - - declare export function symlink( - srcpath: string | Buffer, - dstpath: string | Buffer, - type: FsSymlinkType | void, - callback: (err: ErrnoError) => void, - ): void; - declare export function symlink( - srcpath: string | Buffer, - dstpath: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function symlink( - srcpath: string | Buffer, - dstpath: string | Buffer, - type?: FsSymlinkType, - ): Promise; - - declare export function truncate( - path: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function truncate( - path: string | Buffer, - len: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function truncate( - path: string | Buffer, - len?: number, - ): Promise; - - declare export function unlink( - path: string | Buffer, - callback: (err: ErrnoError) => void, - ): void; - declare export function unlink(path: string | Buffer): Promise; - - declare export function utimes( - path: string | Buffer, - atime: number, - mtime: number, - callback: (err: ErrnoError) => void, - ): void; - declare export function utimes( - path: string | Buffer, - atime: Date, - mtime: Date, - callback: (err: ErrnoError) => void, - ): void; - declare export function utimes( - path: string | Buffer, - atime: number, - mtime: number, - ): Promise; - declare export function utimes( - path: string | Buffer, - atime: Date, - mtime: Date, - ): Promise; - - declare export function write( - fd: number, - buffer: Buffer, - offset: number, - length: number, - position: number | null, - callback: (err: ErrnoError, written: number, buffer: Buffer) => void, - ): void; - declare export function write( - fd: number, - buffer: Buffer, - offset: number, - length: number, - callback: (err: ErrnoError, written: number, buffer: Buffer) => void, - ): void; - declare export function write( - fd: number, - data: any, - callback: (err: ErrnoError, written: number, str: string) => void, - ): void; - declare export function write( - fd: number, - data: any, - offset: number, - callback: (err: ErrnoError, written: number, str: string) => void, - ): void; - declare export function write( - fd: number, - data: any, - offset: number, - encoding: string, - callback: (err: ErrnoError, written: number, str: string) => void, - ): void; - declare export function write( - fd: number, - buffer: Buffer, - offset: number, - length: number, - position?: number | null, - ): Promise; - declare export function write( - fd: number, - data: any, - offset: number, - encoding?: string, - ): Promise; - - declare export function writeFile( - file: string | Buffer | number, - data: any, - callback: (err: ErrnoError) => void, - ): void; - declare export function writeFile( - file: string | Buffer | number, - data: any, - options?: WriteFileOptions | string, - ): Promise; - declare export function writeFile( - file: string | Buffer | number, - data: any, - options: WriteFileOptions | string, - callback: (err: ErrnoError) => void, - ): void; - - declare export function mkdtemp(prefix: string): Promise; - declare export function mkdtemp( - prefix: string, - callback: (err: ErrnoError, folder: string) => void, - ): void; -} diff --git a/flow-typed/npm/lodash_v4.x.x.js b/flow-typed/npm/lodash_v4.x.x.js deleted file mode 100644 index 583bbfce2a86..000000000000 --- a/flow-typed/npm/lodash_v4.x.x.js +++ /dev/null @@ -1,6047 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -declare module 'lodash' { - declare type Path = $ReadOnlyArray | string | number; - declare type __CurriedFunction1 = (...r: [AA]) => R; - declare type CurriedFunction1 = __CurriedFunction1; - - declare type __CurriedFunction2 = (( - ...r: [AA] - ) => CurriedFunction1) & - ((...r: [AA, BB]) => R); - declare type CurriedFunction2 = __CurriedFunction2; - - declare type __CurriedFunction3 = (( - ...r: [AA] - ) => CurriedFunction2) & - ((...r: [AA, BB]) => CurriedFunction1) & - ((...r: [AA, BB, CC]) => R); - declare type CurriedFunction3 = __CurriedFunction3< - A, - B, - C, - R, - *, - *, - *, - >; - - declare type __CurriedFunction4< - A, - B, - C, - D, - R, - AA: A, - BB: B, - CC: C, - DD: D, - > = ((...r: [AA]) => CurriedFunction3) & - ((...r: [AA, BB]) => CurriedFunction2) & - ((...r: [AA, BB, CC]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD]) => R); - declare type CurriedFunction4 = __CurriedFunction4< - A, - B, - C, - D, - R, - *, - *, - *, - *, - >; - - declare type __CurriedFunction5< - A, - B, - C, - D, - E, - R, - AA: A, - BB: B, - CC: C, - DD: D, - EE: E, - > = ((...r: [AA]) => CurriedFunction4) & - ((...r: [AA, BB]) => CurriedFunction3) & - ((...r: [AA, BB, CC]) => CurriedFunction2) & - ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD, EE]) => R); - declare type CurriedFunction5 = __CurriedFunction5< - A, - B, - C, - D, - E, - R, - *, - *, - *, - *, - *, - >; - - declare type __CurriedFunction6< - A, - B, - C, - D, - E, - F, - R, - AA: A, - BB: B, - CC: C, - DD: D, - EE: E, - FF: F, - > = ((...r: [AA]) => CurriedFunction5) & - ((...r: [AA, BB]) => CurriedFunction4) & - ((...r: [AA, BB, CC]) => CurriedFunction3) & - ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & - ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD, EE, FF]) => R); - declare type CurriedFunction6 = __CurriedFunction6< - A, - B, - C, - D, - E, - F, - R, - *, - *, - *, - *, - *, - *, - >; - - declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & - (((...r: [A, B]) => R) => CurriedFunction2) & - (((...r: [A, B, C]) => R) => CurriedFunction3) & - (( - (...r: [A, B, C, D]) => R, - ) => CurriedFunction4) & - (( - (...r: [A, B, C, D, E]) => R, - ) => CurriedFunction5) & - (( - (...r: [A, B, C, D, E, F]) => R, - ) => CurriedFunction6); - - declare type UnaryFn = (a: A) => R; - - declare type TemplateSettings = { - escape?: RegExp, - evaluate?: RegExp, - imports?: Object, - interpolate?: RegExp, - variable?: string, - }; - - declare type TruncateOptions = { - length?: number, - omission?: string, - separator?: RegExp | string, - }; - - declare type DebounceOptions = { - leading?: boolean, - maxWait?: number, - trailing?: boolean, - }; - - declare type ThrottleOptions = { - leading?: boolean, - trailing?: boolean, - }; - - declare type NestedArray = Array>; - - declare type matchesIterateeShorthand = {[key: any]: any}; - declare type matchesPropertyIterateeShorthand = [string, any]; - declare type propertyIterateeShorthand = string; - - declare type OPredicate = - | ((value: A, key: string, object: O) => any) - | matchesIterateeShorthand - | matchesPropertyIterateeShorthand - | propertyIterateeShorthand; - - declare type OIterateeWithResult = - | Object - | string - | ((value: V, key: string, object: O) => R); - declare type OIteratee = OIterateeWithResult; - declare type OFlatMapIteratee = OIterateeWithResult>; - - declare type Predicate = - | ((value: T, index: number, array: Array) => any) - | matchesIterateeShorthand - | matchesPropertyIterateeShorthand - | propertyIterateeShorthand; - - declare type _ValueOnlyIteratee = (value: T) => mixed; - declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; - declare type _Iteratee = ( - item: T, - index: number, - array: ?Array, - ) => mixed; - declare type Iteratee = _Iteratee | Object | string; - declare type FlatMapIteratee = - | ((item: T, index: number, array: ?$ReadOnlyArray) => Array) - | Object - | string; - declare type Comparator = (item: T, item2: T) => boolean; - - declare type MapIterator = - | ((item: T, index: number, array: Array) => U) - | propertyIterateeShorthand; - - declare type ReadOnlyMapIterator = - | ((item: T, index: number, array: $ReadOnlyArray) => U) - | propertyIterateeShorthand; - - declare type OMapIterator = - | ((item: T, key: string, object: O) => U) - | propertyIterateeShorthand; - - declare class Lodash { - // Array - chunk(array?: ?Array, size?: ?number): Array>; - compact(array?: ?Array): Array; - concat( - base?: ?$ReadOnlyArray, - ...elements: Array - ): Array; - difference( - array?: ?$ReadOnlyArray, - ...values: Array> - ): Array; - differenceBy( - array?: ?$ReadOnlyArray, - values?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): T[]; - differenceWith( - array?: ?$ReadOnlyArray, - values?: ?$ReadOnlyArray, - comparator?: ?Comparator, - ): T[]; - drop(array?: ?Array, n?: ?number): Array; - dropRight(array?: ?Array, n?: ?number): Array; - dropRightWhile(array?: ?Array, predicate?: ?Predicate): Array; - dropWhile(array?: ?Array, predicate?: ?Predicate): Array; - fill( - array?: ?Array, - value?: ?U, - start?: ?number, - end?: ?number, - ): Array; - findIndex( - array: $ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number, - ): number; - findIndex( - array: void | null, - predicate?: ?Predicate, - fromIndex?: ?number, - ): -1; - findLastIndex( - array: $ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number, - ): number; - findLastIndex( - array: void | null, - predicate?: ?Predicate, - fromIndex?: ?number, - ): -1; - // alias of _.head - first(array: ?$ReadOnlyArray): T; - flatten(array?: ?Array | X>): Array; - flattenDeep(array?: ?(any[])): Array; - flattenDepth(array?: ?(any[]), depth?: ?number): any[]; - fromPairs(pairs?: ?Array<[A, B]>): {[key: A]: B}; - head(array: ?$ReadOnlyArray): T; - indexOf(array: Array, value: T, fromIndex?: number): number; - indexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; - initial(array: ?Array): Array; - intersection(...arrays?: Array<$ReadOnlyArray>): Array; - // Workaround until (...parameter: T, parameter2: U) works - intersectionBy( - a1?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): Array; - intersectionBy( - a1?: ?$ReadOnlyArray, - a2?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): Array; - intersectionBy( - a1?: ?$ReadOnlyArray, - a2?: ?$ReadOnlyArray, - a3?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): Array; - intersectionBy( - a1?: ?$ReadOnlyArray, - a2?: ?$ReadOnlyArray, - a3?: ?$ReadOnlyArray, - a4?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): Array; - // Workaround until (...parameter: T, parameter2: U) works - intersectionWith( - a1?: ?$ReadOnlyArray, - comparator?: ?Comparator, - ): Array; - intersectionWith( - a1?: ?$ReadOnlyArray, - a2?: ?$ReadOnlyArray, - comparator?: ?Comparator, - ): Array; - intersectionWith( - a1?: ?$ReadOnlyArray, - a2?: ?$ReadOnlyArray, - a3?: ?$ReadOnlyArray, - comparator?: ?Comparator, - ): Array; - intersectionWith( - a1?: ?$ReadOnlyArray, - a2?: ?$ReadOnlyArray, - a3?: ?$ReadOnlyArray, - a4?: ?$ReadOnlyArray, - comparator?: ?Comparator, - ): Array; - join(array: Array, separator?: ?string): string; - join(array: void | null, separator?: ?string): ''; - last(array: ?$ReadOnlyArray): T; - lastIndexOf(array: Array, value?: ?T, fromIndex?: ?number): number; - lastIndexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; - nth(array: T[], n?: ?number): T; - nth(array: void | null, n?: ?number): void; - pull(array: Array, ...values?: Array): Array; - pull(array: T, ...values?: Array): T; - pullAll(array: Array, values?: ?Array): Array; - pullAll(array: T, values?: ?Array): T; - pullAllBy( - array: Array, - values?: ?Array, - iteratee?: ?ValueOnlyIteratee, - ): Array; - pullAllBy( - array: T, - values?: ?Array, - iteratee?: ?ValueOnlyIteratee, - ): T; - pullAllWith(array: T[], values?: ?(T[]), comparator?: ?Function): T[]; - pullAllWith( - array: T, - values?: ?Array, - comparator?: ?Function, - ): T; - pullAt(array?: ?Array, ...indexed?: Array): Array; - pullAt(array?: ?Array, indexed?: ?Array): Array; - remove(array?: ?Array, predicate?: ?Predicate): Array; - reverse(array: Array): Array; - reverse(array: T): T; - slice( - array?: ?$ReadOnlyArray, - start?: ?number, - end?: ?number, - ): Array; - sortedIndex(array: Array, value: T): number; - sortedIndex(array: void | null, value: ?T): 0; - sortedIndexBy( - array: Array, - value?: ?T, - iteratee?: ?ValueOnlyIteratee, - ): number; - sortedIndexBy( - array: void | null, - value?: ?T, - iteratee?: ?ValueOnlyIteratee, - ): 0; - sortedIndexOf(array: Array, value: T): number; - sortedIndexOf(array: void | null, value?: ?T): -1; - sortedLastIndex(array: Array, value: T): number; - sortedLastIndex(array: void | null, value?: ?T): 0; - sortedLastIndexBy( - array: Array, - value: T, - iteratee?: ValueOnlyIteratee, - ): number; - sortedLastIndexBy( - array: void | null, - value?: ?T, - iteratee?: ?ValueOnlyIteratee, - ): 0; - sortedLastIndexOf(array: Array, value: T): number; - sortedLastIndexOf(array: void | null, value?: ?T): -1; - sortedUniq(array?: ?Array): Array; - sortedUniqBy( - array?: ?Array, - iteratee?: ?ValueOnlyIteratee, - ): Array; - tail(array?: ?Array): Array; - take(array?: ?$ReadOnlyArray, n?: ?number): Array; - takeRight(array?: ?$ReadOnlyArray, n?: ?number): Array; - takeRightWhile(array?: ?Array, predicate?: ?Predicate): Array; - takeWhile(array?: ?Array, predicate?: ?Predicate): Array; - union(...arrays?: Array<$ReadOnlyArray>): Array; - // Workaround until (...parameter: T, parameter2: U) works - unionBy( - a1?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): Array; - unionBy( - a1?: ?$ReadOnlyArray, - a2: $ReadOnlyArray, - iteratee?: ValueOnlyIteratee, - ): Array; - unionBy( - a1: $ReadOnlyArray, - a2: $ReadOnlyArray, - a3: $ReadOnlyArray, - iteratee?: ValueOnlyIteratee, - ): Array; - unionBy( - a1: $ReadOnlyArray, - a2: $ReadOnlyArray, - a3: $ReadOnlyArray, - a4: $ReadOnlyArray, - iteratee?: ValueOnlyIteratee, - ): Array; - // Workaround until (...parameter: T, parameter2: U) works - unionWith(a1?: ?Array, comparator?: ?Comparator): Array; - unionWith( - a1: $ReadOnlyArray, - a2: $ReadOnlyArray, - comparator?: Comparator, - ): Array; - unionWith( - a1: $ReadOnlyArray, - a2: $ReadOnlyArray, - a3: $ReadOnlyArray, - comparator?: Comparator, - ): Array; - unionWith( - a1: $ReadOnlyArray, - a2: $ReadOnlyArray, - a3: $ReadOnlyArray, - a4: $ReadOnlyArray, - comparator?: Comparator, - ): Array; - uniq(array?: ?$ReadOnlyArray): Array; - uniqBy( - array?: ?$ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): Array; - uniqWith( - array?: ?$ReadOnlyArray, - comparator?: ?Comparator, - ): Array; - unzip(array?: ?Array): Array; - unzipWith(array: ?Array, iteratee?: ?Iteratee): Array; - without(array?: ?$ReadOnlyArray, ...values?: Array): Array; - xor(...array: Array>): Array; - // Workaround until (...parameter: T, parameter2: U) works - xorBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; - xorBy( - a1: Array, - a2: Array, - iteratee?: ValueOnlyIteratee, - ): Array; - xorBy( - a1: Array, - a2: Array, - a3: Array, - iteratee?: ValueOnlyIteratee, - ): Array; - xorBy( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - iteratee?: ValueOnlyIteratee, - ): Array; - // Workaround until (...parameter: T, parameter2: U) works - xorWith(a1?: ?Array, comparator?: ?Comparator): Array; - xorWith( - a1: Array, - a2: Array, - comparator?: Comparator, - ): Array; - xorWith( - a1: Array, - a2: Array, - a3: Array, - comparator?: Comparator, - ): Array; - xorWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - comparator?: Comparator, - ): Array; - zip(a1?: ?(A[]), a2?: ?(B[])): Array<[A, B]>; - zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; - zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; - zip( - a1: A[], - a2: B[], - a3: C[], - a4: D[], - a5: E[], - ): Array<[A, B, C, D, E]>; - - zipObject(props: Array, values?: ?Array): {[key: K]: V}; - zipObject(props: void | null, values?: ?Array): {}; - zipObjectDeep(props: any[], values?: ?any): Object; - zipObjectDeep(props: void | null, values?: ?any): {}; - - zipWith
(a1?: ?Array): Array<[A]>; - zipWith(a1: Array, iteratee: (A) => T): Array; - - zipWith(a1: Array, a2: Array): Array<[A, B]>; - zipWith( - a1: Array, - a2: Array, - iteratee: (A, B) => T, - ): Array; - - zipWith( - a1: Array, - a2: Array, - a3: Array, - ): Array<[A, B, C]>; - zipWith( - a1: Array, - a2: Array, - a3: Array, - iteratee: (A, B, C) => T, - ): Array; - - zipWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - ): Array<[A, B, C, D]>; - zipWith( - a1: Array, - a2: Array, - a3: Array, - a4: Array, - iteratee: (A, B, C, D) => T, - ): Array; - - // Collection - countBy(array: Array, iteratee?: ?ValueOnlyIteratee): Object; - countBy(array: void | null, iteratee?: ?ValueOnlyIteratee): {}; - countBy(object: T, iteratee?: ?ValueOnlyIteratee): Object; - // alias of _.forEach - each(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - each(array: T, iteratee?: ?Iteratee): T; - each(object: T, iteratee?: ?OIteratee): T; - // alias of _.forEachRight - eachRight(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - eachRight(array: T, iteratee?: ?Iteratee): T; - eachRight(object: T, iteratee?: OIteratee): T; - every(array?: ?$ReadOnlyArray, iteratee?: ?Iteratee): boolean; - every(object: T, iteratee?: OIteratee): boolean; - filter(array?: ?$ReadOnlyArray, predicate?: ?Predicate): Array; - filter( - object: T, - predicate?: OPredicate, - ): Array; - find( - array: $ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number, - ): T | void; - find( - array: void | null, - predicate?: ?Predicate, - fromIndex?: ?number, - ): void; - find( - object: T, - predicate?: OPredicate, - fromIndex?: number, - ): V; - findLast( - array: ?$ReadOnlyArray, - predicate?: ?Predicate, - fromIndex?: ?number, - ): T | void; - findLast( - object: T, - predicate?: ?OPredicate, - ): V; - flatMap( - array?: ?$ReadOnlyArray, - iteratee?: ?FlatMapIteratee, - ): Array; - flatMap( - object: T, - iteratee?: OFlatMapIteratee, - ): Array; - flatMapDeep( - array?: ?$ReadOnlyArray, - iteratee?: ?FlatMapIteratee, - ): Array; - flatMapDeep( - object: T, - iteratee?: ?OFlatMapIteratee, - ): Array; - flatMapDepth( - array?: ?Array, - iteratee?: ?FlatMapIteratee, - depth?: ?number, - ): Array; - flatMapDepth( - object: T, - iteratee?: OFlatMapIteratee, - depth?: number, - ): Array; - forEach(array: $ReadOnlyArray, iteratee?: ?Iteratee): Array; - forEach(array: T, iteratee?: ?Iteratee): T; - forEach(object: T, iteratee?: ?OIteratee): T; - forEachRight( - array: $ReadOnlyArray, - iteratee?: ?Iteratee, - ): Array; - forEachRight(array: T, iteratee?: ?Iteratee): T; - forEachRight(object: T, iteratee?: ?OIteratee): T; - groupBy( - array: $ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): {[key: V]: Array}; - groupBy(array: void | null, iteratee?: ?ValueOnlyIteratee): {}; - groupBy( - object: T, - iteratee?: ValueOnlyIteratee, - ): {[key: V]: Array}; - includes( - array: $ReadOnlyArray, - value: T, - fromIndex?: ?number, - ): boolean; - includes(array: void | null, value?: ?T, fromIndex?: ?number): false; - includes(object: T, value: any, fromIndex?: number): boolean; - includes(str: string, value: string, fromIndex?: number): boolean; - invokeMap( - array?: ?$ReadOnlyArray, - path?: ?((value: T) => Path) | Path, - ...args?: Array - ): Array; - invokeMap( - object: T, - path: ((value: any) => Path) | Path, - ...args?: Array - ): Array; - keyBy( - array: $ReadOnlyArray, - iteratee?: ?ValueOnlyIteratee, - ): {[key: V]: T}; - keyBy(array: void | null, iteratee?: ?ValueOnlyIteratee<*>): {}; - keyBy( - object: T, - iteratee?: ?ValueOnlyIteratee, - ): {[key: V]: A}; - map(array?: ?Array, iteratee?: ?MapIterator): Array; - map( - array: ?$ReadOnlyArray, - iteratee?: ReadOnlyMapIterator, - ): Array; - map( - object: ?T, - iteratee?: OMapIterator, - ): Array; - map( - str: ?string, - iteratee?: (char: string, index: number, str: string) => any, - ): string; - orderBy( - array: $ReadOnlyArray, - iteratees?: ?$ReadOnlyArray> | ?string, - orders?: ?$ReadOnlyArray<'asc' | 'desc'> | ?string, - ): Array; - orderBy( - array: null | void, - iteratees?: ?$ReadOnlyArray> | ?string, - orders?: ?$ReadOnlyArray<'asc' | 'desc'> | ?string, - ): Array; - orderBy( - object: T, - iteratees?: $ReadOnlyArray> | string, - orders?: $ReadOnlyArray<'asc' | 'desc'> | string, - ): Array; - partition( - array?: ?$ReadOnlyArray, - predicate?: ?Predicate, - ): [Array, Array]; - partition( - object: T, - predicate?: OPredicate, - ): [Array, Array]; - reduce( - array: $ReadOnlyArray, - iteratee?: ( - accumulator: U, - value: T, - index: number, - array: ?Array, - ) => U, - accumulator?: U, - ): U; - reduce( - array: void | null, - iteratee?: ?( - accumulator: U, - value: T, - index: number, - array: ?Array, - ) => U, - accumulator?: ?U, - ): void | null; - reduce( - object: T, - iteratee?: (accumulator: U, value: any, key: string, object: T) => U, - accumulator?: U, - ): U; - reduceRight( - array: void | null, - iteratee?: ?( - accumulator: U, - value: T, - index: number, - array: ?Array, - ) => U, - accumulator?: ?U, - ): void | null; - reduceRight( - array: $ReadOnlyArray, - iteratee?: ?( - accumulator: U, - value: T, - index: number, - array: ?Array, - ) => U, - accumulator?: ?U, - ): U; - reduceRight( - object: T, - iteratee?: ?(accumulator: U, value: any, key: string, object: T) => U, - accumulator?: ?U, - ): U; - reject(array: ?$ReadOnlyArray, predicate?: Predicate): Array; - reject( - object?: ?T, - predicate?: ?OPredicate, - ): Array; - sample(array: ?Array): T; - sample(object: T): V; - sampleSize(array?: ?Array, n?: ?number): Array; - sampleSize(object: T, n?: number): Array; - shuffle(array: ?Array): Array; - shuffle(object: T): Array; - size(collection: $ReadOnlyArray | Object | string): number; - some(array: void | null, predicate?: ?Predicate): false; - some(array: ?$ReadOnlyArray, predicate?: Predicate): boolean; - some( - object?: ?T, - predicate?: OPredicate, - ): boolean; - sortBy( - array: ?$ReadOnlyArray, - ...iteratees?: $ReadOnlyArray> - ): Array; - sortBy( - array: ?$ReadOnlyArray, - iteratees?: $ReadOnlyArray>, - ): Array; - sortBy( - object: T, - ...iteratees?: Array> - ): Array; - sortBy( - object: T, - iteratees?: $ReadOnlyArray>, - ): Array; - - // Date - now(): number; - - // Function - after(n: number, fn: Function): Function; - ary(func: Function, n?: number): Function; - before(n: number, fn: Function): Function; - bind any>( - func: F, - thisArg: any, - ...partials: Array - ): F; - bindKey(obj?: ?Object, key?: ?string, ...partials?: Array): Function; - curry: Curry; - curry(func: Function, arity?: number): Function; - curryRight(func: Function, arity?: number): Function; - debounce any>( - func: F, - wait?: number, - options?: DebounceOptions, - ): F; - defer(func: (...any[]) => any, ...args?: Array): TimeoutID; - delay(func: Function, wait: number, ...args?: Array): TimeoutID; - flip(func: (...any[]) => R): (...any[]) => R; - memoize(func: (...A) => R, resolver?: (...A) => any): (...A) => R; - negate(predicate: (...A) => R): (...A) => boolean; - once any>(func: F): F; - overArgs(func?: ?Function, ...transforms?: Array): Function; - overArgs(func?: ?Function, transforms?: ?Array): Function; - partial(func: (...any[]) => R, ...partials: any[]): (...any[]) => R; - partialRight( - func: (...any[]) => R, - ...partials: Array - ): (...any[]) => R; - partialRight( - func: (...any[]) => R, - partials: Array, - ): (...any[]) => R; - rearg(func: Function, ...indexes: Array): Function; - rearg(func: Function, indexes: Array): Function; - rest(func: Function, start?: number): Function; - spread(func: Function): Function; - throttle any>( - func: F, - wait?: number, - options?: ThrottleOptions, - ): F; - unary any>(func: F): F; - wrap(value?: any, wrapper?: ?Function): Function; - - // Lang - castArray(value: *): any[]; - clone(value: T): T; - cloneDeep(value: T): T; - cloneDeepWith( - value: T, - customizer?: ?( - value: T, - key: number | string, - object: T, - stack: any, - ) => U, - ): U; - cloneWith( - value: T, - customizer?: ?( - value: T, - key: number | string, - object: T, - stack: any, - ) => U, - ): U; - conformsTo( - source: T, - predicates: T & {[key: string]: (x: any) => boolean}, - ): boolean; - eq(value: any, other: any): boolean; - gt(value: any, other: any): boolean; - gte(value: any, other: any): boolean; - isArguments(value: void | null): false; - isArguments(value: any): boolean; - isArray(value: Array): true; - isArray(value: any): false; - isArrayBuffer(value: ArrayBuffer): true; - isArrayBuffer(value: any): false; - isArrayLike(value: Array | string | {length: number}): true; - isArrayLike(value: any): false; - isArrayLikeObject(value: {length: number} | Array): true; - isArrayLikeObject(value: any): false; - isBoolean(value: boolean): true; - isBoolean(value: any): false; - isBuffer(value: void | null): false; - isBuffer(value: any): boolean; - isDate(value: Date): true; - isDate(value: any): false; - isElement(value: Element): true; - isElement(value: any): false; - isEmpty(value: void | null | '' | {} | [] | number | boolean): true; - isEmpty(value: any): boolean; - isEqual(value: any, other: any): boolean; - isEqualWith( - value?: ?T, - other?: ?U, - customizer?: ?( - objValue: any, - otherValue: any, - key: number | string, - object: T, - other: U, - stack: any, - ) => boolean | void, - ): boolean; - isError(value: Error): true; - isError(value: any): false; - isFinite(value: number): boolean; - isFinite(value: any): false; - isFunction(value: Function): true; - isFunction(value: any): false; - isInteger(value: number): boolean; - isInteger(value: any): false; - isLength(value: void | null): false; - isLength(value: any): boolean; - isMap(value: Map): true; - isMap(value: any): false; - isMatch(object?: ?Object, source?: ?Object): boolean; - isMatchWith( - object?: ?T, - source?: ?U, - customizer?: ?( - objValue: any, - srcValue: any, - key: number | string, - object: T, - source: U, - ) => boolean | void, - ): boolean; - isNaN(value: number): boolean; - isNaN(value: any): false; - isNative(value: number | string | void | null | Object): false; - isNative(value: any): boolean; - isNil(value: void | null): true; - isNil(value: any): false; - isNull(value: null): true; - isNull(value: any): false; - isNumber(value: number): true; - isNumber(value: any): false; - isObject(value: any): boolean; - isObjectLike(value: void | null): false; - isObjectLike(value: any): boolean; - isPlainObject(value: any): boolean; - isRegExp(value: RegExp): true; - isRegExp(value: any): false; - isSafeInteger(value: number): boolean; - isSafeInteger(value: any): false; - isSet(value: Set): true; - isSet(value: any): false; - isString(value: string): true; - isString(value: any): false; - isSymbol(value: Symbol): true; - isSymbol(value: any): false; - isTypedArray(value: $TypedArray): true; - isTypedArray(value: any): false; - isUndefined(value: void): true; - isUndefined(value: any): false; - isWeakMap(value: WeakMap): true; - isWeakMap(value: any): false; - isWeakSet(value: WeakSet): true; - isWeakSet(value: any): false; - lt(value: any, other: any): boolean; - lte(value: any, other: any): boolean; - toArray(value: any): Array; - toFinite(value: void | null): 0; - toFinite(value: any): number; - toInteger(value: void | null): 0; - toInteger(value: any): number; - toLength(value: void | null): 0; - toLength(value: any): number; - toNumber(value: void | null): 0; - toNumber(value: any): number; - toPlainObject(value: any): Object; - toSafeInteger(value: void | null): 0; - toSafeInteger(value: any): number; - toString(value: void | null): ''; - toString(value: any): string; - - // Math - add(augend: number, addend: number): number; - ceil(number: number, precision?: number): number; - divide(dividend: number, divisor: number): number; - floor(number: number, precision?: number): number; - max(array: ?Array): T; - maxBy(array: ?$ReadOnlyArray, iteratee?: Iteratee): T; - mean(array: Array<*>): number; - meanBy(array: Array, iteratee?: Iteratee): number; - min(array: ?Array): T; - minBy(array: ?$ReadOnlyArray, iteratee?: Iteratee): T; - multiply(multiplier: number, multiplicand: number): number; - round(number: number, precision?: number): number; - subtract(minuend: number, subtrahend: number): number; - sum(array: Array<*>): number; - sumBy(array: $ReadOnlyArray, iteratee?: Iteratee): number; - - // number - clamp(number?: number, lower?: ?number, upper?: ?number): number; - clamp(number: ?number, lower?: ?number, upper?: ?number): 0; - inRange(number: number, start?: number, end: number): boolean; - random(lower?: number, upper?: number, floating?: boolean): number; - - // Object - assign(object?: ?Object, ...sources?: Array): Object; - assignIn(): {}; - assignIn(a: A, b: B): A & B; - assignIn(a: A, b: B, c: C): A & B & C; - assignIn(a: A, b: B, c: C, d: D): A & B & C & D; - assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; - assignInWith(): {}; - assignInWith( - object: T, - s1: A, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): Object; - assignInWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - ): Object; - assignInWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C, - ) => any | void, - ): Object; - assignInWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D, - ) => any | void, - ): Object; - assignWith(): {}; - assignWith( - object: T, - s1: A, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): Object; - assignWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - ): Object; - assignWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C, - ) => any | void, - ): Object; - assignWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D, - ) => any | void, - ): Object; - at(object?: ?Object, ...paths: Array): Array; - at(object?: ?Object, paths: Array): Array; - create(prototype: void | null, properties: void | null): {}; - create(prototype: T, properties: Object): T; - create(prototype: any, properties: void | null): {}; - defaults(object?: ?Object, ...sources?: Array): Object; - defaultsDeep(object?: ?Object, ...sources?: Array): Object; - // alias for _.toPairs - entries(object?: ?Object): Array<[string, any]>; - // alias for _.toPairsIn - entriesIn(object?: ?Object): Array<[string, any]>; - // alias for _.assignIn - extend(a?: ?A, b?: ?B): A & B; - extend(a: A, b: B, c: C): A & B & C; - extend(a: A, b: B, c: C, d: D): A & B & C & D; - extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; - // alias for _.assignInWith - extendWith( - object?: ?T, - s1?: ?A, - customizer?: ?( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): Object; - extendWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - ): Object; - extendWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C, - ) => any | void, - ): Object; - extendWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D, - ) => any | void, - ): Object; - findKey( - object: T, - predicate?: ?OPredicate, - ): string | void; - findKey( - object: void | null, - predicate?: ?OPredicate, - ): void; - findLastKey( - object: T, - predicate?: ?OPredicate, - ): string | void; - findLastKey( - object: void | null, - predicate?: ?OPredicate, - ): void; - forIn(object: Object, iteratee?: ?OIteratee<*>): Object; - forIn(object: void | null, iteratee?: ?OIteratee<*>): null; - forInRight(object: Object, iteratee?: ?OIteratee<*>): Object; - forInRight(object: void | null, iteratee?: ?OIteratee<*>): null; - forOwn(object: Object, iteratee?: ?OIteratee<*>): Object; - forOwn(object: void | null, iteratee?: ?OIteratee<*>): null; - forOwnRight(object: Object, iteratee?: ?OIteratee<*>): Object; - forOwnRight(object: void | null, iteratee?: ?OIteratee<*>): null; - functions(object?: ?Object): Array; - functionsIn(object?: ?Object): Array; - get( - object?: ?Object | ?$ReadOnlyArray | void | null, - path?: ?Path, - defaultValue?: any, - ): any; - has(object: Object, path: Path): boolean; - has(object: Object, path: void | null): false; - has(object: void | null, path?: ?Path): false; - hasIn(object: Object, path: Path): boolean; - hasIn(object: Object, path: void | null): false; - hasIn(object: void | null, path?: ?Path): false; - invert(object: Object, multiVal?: ?boolean): Object; - invert(object: void | null, multiVal?: ?boolean): {}; - invertBy(object: Object, iteratee?: ?Function): Object; - invertBy(object: void | null, iteratee?: ?Function): {}; - invoke(object?: ?Object, path?: ?Path, ...args?: Array): any; - keys(object?: ?{[key: K]: any}): Array; - keys(object?: ?Object): Array; - keysIn(object?: ?Object): Array; - mapKeys(object: Object, iteratee?: ?OIteratee<*>): Object; - mapKeys(object: void | null, iteratee?: ?OIteratee<*>): {}; - mapValues(object: Object, iteratee?: ?OIteratee<*>): Object; - mapValues(object: void | null, iteratee?: ?OIteratee<*>): {}; - merge(object?: ?Object, ...sources?: Array): Object; - mergeWith(): {}; - mergeWith( - object: T, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): Object; - mergeWith( - object: T, - s1: A, - s2: B, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - ): Object; - mergeWith( - object: T, - s1: A, - s2: B, - s3: C, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C, - ) => any | void, - ): Object; - mergeWith( - object: T, - s1: A, - s2: B, - s3: C, - s4: D, - customizer?: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B | C | D, - ) => any | void, - ): Object; - omit(object?: ?Object, ...props: Array): Object; - omit(object?: ?Object, props: Array): Object; - omitBy( - object: T, - predicate?: ?OPredicate, - ): Object; - omitBy(object: void | null, predicate?: ?OPredicate): {}; - pick(object?: ?Object, ...props: Array): Object; - pick(object?: ?Object, props: Array): Object; - pickBy( - object: T, - predicate?: ?OPredicate, - ): Object; - pickBy(object: void | null, predicate?: ?OPredicate): {}; - result(object?: ?Object, path?: ?Path, defaultValue?: any): any; - set(object: Object, path?: ?Path, value: any): Object; - set(object: T, path?: ?Path, value?: ?any): T; - setWith( - object: T, - path?: ?Path, - value: any, - customizer?: (nsValue: any, key: string, nsObject: T) => any, - ): Object; - setWith( - object: T, - path?: ?Path, - value?: ?any, - customizer?: ?(nsValue: any, key: string, nsObject: T) => any, - ): T; - toPairs(object?: ?Object | Array<*>): Array<[string, any]>; - toPairsIn(object?: ?Object): Array<[string, any]>; - transform( - collection: Object | $ReadOnlyArray, - iteratee?: ?OIteratee<*>, - accumulator?: any, - ): any; - transform( - collection: void | null, - iteratee?: ?OIteratee<*>, - accumulator?: ?any, - ): {}; - unset(object: void | null, path?: ?Path): true; - unset(object: Object, path?: ?Path): boolean; - update(object: Object, path: Path, updater: Function): Object; - update(object: T, path?: ?Path, updater?: ?Function): T; - updateWith( - object: Object, - path?: ?Path, - updater?: ?Function, - customizer?: ?Function, - ): Object; - updateWith( - object: T, - path?: ?Path, - updater?: ?Function, - customizer?: ?Function, - ): T; - values(object?: ?Object): Array; - valuesIn(object?: ?Object): Array; - - // Seq - // harder to read, but this is _() - (value: any): any; - chain(value: T): any; - tap(value: T, interceptor: (value: T) => any): T; - thru(value: T1, interceptor: (value: T1) => T2): T2; - // TODO: _.prototype.* - - // String - camelCase(string: string): string; - camelCase(string: void | null): ''; - capitalize(string: string): string; - capitalize(string: void | null): ''; - deburr(string: string): string; - deburr(string: void | null): ''; - endsWith(string: string, target?: string, position?: ?number): boolean; - endsWith(string: void | null, target?: ?string, position?: ?number): false; - escape(string: string): string; - escape(string: void | null): ''; - escapeRegExp(string: string): string; - escapeRegExp(string: void | null): ''; - kebabCase(string: string): string; - kebabCase(string: void | null): ''; - lowerCase(string: string): string; - lowerCase(string: void | null): ''; - lowerFirst(string: string): string; - lowerFirst(string: void | null): ''; - pad(string?: ?string, length?: ?number, chars?: ?string): string; - padEnd(string?: ?string, length?: ?number, chars?: ?string): string; - padStart(string?: ?string, length?: ?number, chars?: ?string): string; - parseInt(string: string, radix?: ?number): number; - repeat(string: string, n?: ?number): string; - repeat(string: void | null, n?: ?number): ''; - replace( - string: string, - pattern: RegExp | string, - replacement: ((string: string) => string) | string, - ): string; - replace( - string: void | null, - pattern?: ?RegExp | ?string, - replacement: ?((string: string) => string) | ?string, - ): ''; - snakeCase(string: string): string; - snakeCase(string: void | null): ''; - split( - string?: ?string, - separator?: ?RegExp | ?string, - limit?: ?number, - ): Array; - startCase(string: string): string; - startCase(string: void | null): ''; - startsWith(string: string, target?: string, position?: number): boolean; - startsWith( - string: void | null, - target?: ?string, - position?: ?number, - ): false; - template(string?: ?string, options?: ?TemplateSettings): Function; - toLower(string: string): string; - toLower(string: void | null): ''; - toUpper(string: string): string; - toUpper(string: void | null): ''; - trim(string: string, chars?: string): string; - trim(string: void | null, chars?: ?string): ''; - trimEnd(string: string, chars?: ?string): string; - trimEnd(string: void | null, chars?: ?string): ''; - trimStart(string: string, chars?: ?string): string; - trimStart(string: void | null, chars?: ?string): ''; - truncate(string: string, options?: TruncateOptions): string; - truncate(string: void | null, options?: ?TruncateOptions): ''; - unescape(string: string): string; - unescape(string: void | null): ''; - upperCase(string: string): string; - upperCase(string: void | null): ''; - upperFirst(string: string): string; - upperFirst(string: void | null): ''; - words(string?: ?string, pattern?: ?RegExp | ?string): Array; - - // Util - attempt(func: Function, ...args: Array): any; - bindAll(object: Object, methodNames?: ?Array): Object; - bindAll(object: T, methodNames?: ?Array): T; - bindAll(object: Object, ...methodNames: Array): Object; - cond(pairs?: ?NestedArray): Function; - conforms(source?: ?Object): Function; - constant(value: T): () => T; - defaultTo(value: T1, defaultValue: T2): T2; - defaultTo(value: T1, defaultValue: T2): T1; - // NaN is a number instead of its own type, otherwise it would behave like null/void - defaultTo(value: T1, defaultValue: T2): T1 | T2; - flow: $ComposeReverse & ((funcs: Array) => Function); - flowRight: $Compose & ((funcs: Array) => Function); - identity(value: T): T; - iteratee(func?: any): Function; - matches(source?: ?Object): Function; - matchesProperty(path?: ?Path, srcValue: any): Function; - method(path?: ?Path, ...args?: Array): Function; - methodOf(object?: ?Object, ...args?: Array): Function; - mixin( - object?: T, - source: Object, - options?: {chain: boolean}, - ): T; - noConflict(): Lodash; - noop(...args: Array): void; - nthArg(n?: ?number): Function; - over(...iteratees: Array): Function; - over(iteratees: Array): Function; - overEvery(...predicates: Array): Function; - overEvery(predicates: Array): Function; - overSome(...predicates: Array): Function; - overSome(predicates: Array): Function; - property(path?: ?Path): Function; - propertyOf(object?: ?Object): Function; - range(start: number, end: number, step?: number): Array; - range(end: number, step?: number): Array; - rangeRight(start?: ?number, end?: ?number, step?: ?number): Array; - rangeRight(end?: ?number, step?: ?number): Array; - runInContext(context?: ?Object): Function; - - stubArray(): Array<*>; - stubFalse(): false; - stubObject(): {}; - stubString(): ''; - stubTrue(): true; - times(n?: ?number, ...rest?: Array): Array; - times(n: number, iteratee: (i: number) => T): Array; - toPath(value: any): Array; - uniqueId(prefix?: ?string): string; - - // Properties - VERSION: string; - templateSettings: TemplateSettings; - } - - declare module.exports: Lodash; -} - -declare module 'lodash/fp' { - declare type Path = $ReadOnlyArray | string | number; - declare type __CurriedFunction1 = (...r: [AA]) => R; - declare type CurriedFunction1 = __CurriedFunction1; - - declare type __CurriedFunction2 = (( - ...r: [AA] - ) => CurriedFunction1) & - ((...r: [AA, BB]) => R); - declare type CurriedFunction2 = __CurriedFunction2; - - declare type __CurriedFunction3 = (( - ...r: [AA] - ) => CurriedFunction2) & - ((...r: [AA, BB]) => CurriedFunction1) & - ((...r: [AA, BB, CC]) => R); - declare type CurriedFunction3 = __CurriedFunction3< - A, - B, - C, - R, - *, - *, - *, - >; - - declare type __CurriedFunction4< - A, - B, - C, - D, - R, - AA: A, - BB: B, - CC: C, - DD: D, - > = ((...r: [AA]) => CurriedFunction3) & - ((...r: [AA, BB]) => CurriedFunction2) & - ((...r: [AA, BB, CC]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD]) => R); - declare type CurriedFunction4 = __CurriedFunction4< - A, - B, - C, - D, - R, - *, - *, - *, - *, - >; - - declare type __CurriedFunction5< - A, - B, - C, - D, - E, - R, - AA: A, - BB: B, - CC: C, - DD: D, - EE: E, - > = ((...r: [AA]) => CurriedFunction4) & - ((...r: [AA, BB]) => CurriedFunction3) & - ((...r: [AA, BB, CC]) => CurriedFunction2) & - ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD, EE]) => R); - declare type CurriedFunction5 = __CurriedFunction5< - A, - B, - C, - D, - E, - R, - *, - *, - *, - *, - *, - >; - - declare type __CurriedFunction6< - A, - B, - C, - D, - E, - F, - R, - AA: A, - BB: B, - CC: C, - DD: D, - EE: E, - FF: F, - > = ((...r: [AA]) => CurriedFunction5) & - ((...r: [AA, BB]) => CurriedFunction4) & - ((...r: [AA, BB, CC]) => CurriedFunction3) & - ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & - ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & - ((...r: [AA, BB, CC, DD, EE, FF]) => R); - declare type CurriedFunction6 = __CurriedFunction6< - A, - B, - C, - D, - E, - F, - R, - *, - *, - *, - *, - *, - *, - >; - - declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & - (((...r: [A, B]) => R) => CurriedFunction2) & - (((...r: [A, B, C]) => R) => CurriedFunction3) & - (( - (...r: [A, B, C, D]) => R, - ) => CurriedFunction4) & - (( - (...r: [A, B, C, D, E]) => R, - ) => CurriedFunction5) & - (( - (...r: [A, B, C, D, E, F]) => R, - ) => CurriedFunction6); - - declare type UnaryFn = (a: A) => R; - - declare type TemplateSettings = { - escape?: RegExp, - evaluate?: RegExp, - imports?: Object, - interpolate?: RegExp, - variable?: string, - }; - - declare type TruncateOptions = { - length?: number, - omission?: string, - separator?: RegExp | string, - }; - - declare type DebounceOptions = { - leading?: boolean, - maxWait?: number, - trailing?: boolean, - }; - - declare type ThrottleOptions = { - leading?: boolean, - trailing?: boolean, - }; - - declare type NestedArray = Array>; - - declare type matchesIterateeShorthand = {[string | number]: any}; - declare type matchesPropertyIterateeShorthand = [string, any]; - declare type propertyIterateeShorthand = string; - - declare type OPredicate = - | ((value: A) => any) - | matchesIterateeShorthand - | matchesPropertyIterateeShorthand - | propertyIterateeShorthand; - - declare type OIterateeWithResult = Object | string | ((value: V) => R); - declare type OIteratee = OIterateeWithResult; - declare type OFlatMapIteratee = OIterateeWithResult>; - - declare type Predicate = - | ((value: T) => any) - | matchesIterateeShorthand - | matchesPropertyIterateeShorthand - | propertyIterateeShorthand; - - declare type _ValueOnlyIteratee = (value: T) => mixed; - declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; - declare type _Iteratee = (item: T) => mixed; - declare type Iteratee = _Iteratee | Object | string; - declare type FlatMapIteratee = - | ((item: T) => Array) - | Object - | string; - declare type Comparator = (item: T, item2: T) => boolean; - - declare type MapIterator = ((item: T) => U) | propertyIterateeShorthand; - - declare type OMapIterator = - | ((item: T) => U) - | propertyIterateeShorthand; - - declare class Lodash { - // Array - chunk(size: number): (array: Array) => Array>; - chunk(size: number, array: Array): Array>; - compact(array?: ?$ReadOnlyArray): Array; - concat | T, B: Array | U>( - base: A, - ): (elements: B) => Array; - concat | T, B: Array | U>( - base: A, - elements: B, - ): Array; - difference(values: $ReadOnlyArray): (array: $ReadOnlyArray) => T[]; - difference(values: $ReadOnlyArray, array: $ReadOnlyArray): T[]; - differenceBy( - iteratee: ValueOnlyIteratee, - ): ((values: $ReadOnlyArray) => (array: $ReadOnlyArray) => T[]) & - ((values: $ReadOnlyArray, array: $ReadOnlyArray) => T[]); - differenceBy( - iteratee: ValueOnlyIteratee, - values: $ReadOnlyArray, - ): (array: $ReadOnlyArray) => T[]; - differenceBy( - iteratee: ValueOnlyIteratee, - values: $ReadOnlyArray, - array: $ReadOnlyArray, - ): T[]; - differenceWith( - comparator: Comparator, - ): ((first: $ReadOnly) => (second: $ReadOnly) => T[]) & - ((first: $ReadOnly, second: $ReadOnly) => T[]); - differenceWith( - comparator: Comparator, - first: $ReadOnly, - ): (second: $ReadOnly) => T[]; - differenceWith( - comparator: Comparator, - first: $ReadOnly, - second: $ReadOnly, - ): T[]; - drop(n: number): (array: Array) => Array; - drop(n: number, array: Array): Array; - dropLast(n: number): (array: Array) => Array; - dropLast(n: number, array: Array): Array; - dropRight(n: number): (array: Array) => Array; - dropRight(n: number, array: Array): Array; - dropRightWhile(predicate: Predicate): (array: Array) => Array; - dropRightWhile(predicate: Predicate, array: Array): Array; - dropWhile(predicate: Predicate): (array: Array) => Array; - dropWhile(predicate: Predicate, array: Array): Array; - dropLastWhile(predicate: Predicate): (array: Array) => Array; - dropLastWhile(predicate: Predicate, array: Array): Array; - fill( - start: number, - ): (( - end: number, - ) => ((value: U) => (array: Array) => Array) & - ((value: U, array: Array) => Array)) & - ((end: number, value: U) => (array: Array) => Array) & - ((end: number, value: U, array: Array) => Array); - fill( - start: number, - end: number, - ): ((value: U) => (array: Array) => Array) & - ((value: U, array: Array) => Array); - fill( - start: number, - end: number, - value: U, - ): (array: Array) => Array; - fill( - start: number, - end: number, - value: U, - array: Array, - ): Array; - findIndex(predicate: Predicate): (array: $ReadOnlyArray) => number; - findIndex(predicate: Predicate, array: $ReadOnlyArray): number; - findIndexFrom( - predicate: Predicate, - ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & - ((fromIndex: number, array: $ReadOnlyArray) => number); - findIndexFrom( - predicate: Predicate, - fromIndex: number, - ): (array: $ReadOnlyArray) => number; - findIndexFrom( - predicate: Predicate, - fromIndex: number, - array: $ReadOnlyArray, - ): number; - findLastIndex( - predicate: Predicate, - ): (array: $ReadOnlyArray) => number; - findLastIndex(predicate: Predicate, array: $ReadOnlyArray): number; - findLastIndexFrom( - predicate: Predicate, - ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & - ((fromIndex: number, array: $ReadOnlyArray) => number); - findLastIndexFrom( - predicate: Predicate, - fromIndex: number, - ): (array: $ReadOnlyArray) => number; - findLastIndexFrom( - predicate: Predicate, - fromIndex: number, - array: $ReadOnlyArray, - ): number; - // alias of _.head - first(array: $ReadOnlyArray): T; - flatten(array: Array | X>): Array; - unnest(array: Array | X>): Array; - flattenDeep(array: any[]): Array; - flattenDepth(depth: number): (array: any[]) => any[]; - flattenDepth(depth: number, array: any[]): any[]; - fromPairs(pairs: Array<[A, B]>): {[key: A]: B}; - head(array: $ReadOnlyArray): T; - indexOf(value: T): (array: Array) => number; - indexOf(value: T, array: Array): number; - indexOfFrom( - value: T, - ): ((fromIndex: number) => (array: Array) => number) & - ((fromIndex: number, array: Array) => number); - indexOfFrom(value: T, fromIndex: number): (array: Array) => number; - indexOfFrom(value: T, fromIndex: number, array: Array): number; - initial(array: Array): Array; - init(array: Array): Array; - intersection(a1: Array): (a2: Array) => Array; - intersection(a1: Array, a2: Array): Array; - intersectionBy( - iteratee: ValueOnlyIteratee, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - intersectionBy( - iteratee: ValueOnlyIteratee, - a1: Array, - ): (a2: Array) => Array; - intersectionBy( - iteratee: ValueOnlyIteratee, - a1: Array, - a2: Array, - ): Array; - intersectionWith( - comparator: Comparator, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - intersectionWith( - comparator: Comparator, - a1: Array, - ): (a2: Array) => Array; - intersectionWith( - comparator: Comparator, - a1: Array, - a2: Array, - ): Array; - join(separator: string): (array: Array) => string; - join(separator: string, array: Array): string; - last(array: Array): T; - lastIndexOf(value: T): (array: Array) => number; - lastIndexOf(value: T, array: Array): number; - lastIndexOfFrom( - value: T, - ): ((fromIndex: number) => (array: Array) => number) & - ((fromIndex: number, array: Array) => number); - lastIndexOfFrom( - value: T, - fromIndex: number, - ): (array: Array) => number; - lastIndexOfFrom(value: T, fromIndex: number, array: Array): number; - nth(n: number): (array: T[]) => T; - nth(n: number, array: T[]): T; - pull(value: T): (array: Array) => Array; - pull(value: T, array: Array): Array; - pullAll(values: Array): (array: Array) => Array; - pullAll(values: Array, array: Array): Array; - pullAllBy( - iteratee: ValueOnlyIteratee, - ): ((values: Array) => (array: Array) => Array) & - ((values: Array, array: Array) => Array); - pullAllBy( - iteratee: ValueOnlyIteratee, - values: Array, - ): (array: Array) => Array; - pullAllBy( - iteratee: ValueOnlyIteratee, - values: Array, - array: Array, - ): Array; - pullAllWith( - comparator: Function, - ): ((values: T[]) => (array: T[]) => T[]) & - ((values: T[], array: T[]) => T[]); - pullAllWith(comparator: Function, values: T[]): (array: T[]) => T[]; - pullAllWith(comparator: Function, values: T[], array: T[]): T[]; - pullAt(indexed: Array): (array: Array) => Array; - pullAt(indexed: Array, array: Array): Array; - remove(predicate: Predicate): (array: Array) => Array; - remove(predicate: Predicate, array: Array): Array; - reverse(array: Array): Array; - slice( - start: number, - ): ((end: number) => (array: Array) => Array) & - ((end: number, array: Array) => Array); - slice(start: number, end: number): (array: Array) => Array; - slice(start: number, end: number, array: Array): Array; - sortedIndex(value: T): (array: Array) => number; - sortedIndex(value: T, array: Array): number; - sortedIndexBy( - iteratee: ValueOnlyIteratee, - ): ((value: T) => (array: Array) => number) & - ((value: T, array: Array) => number); - sortedIndexBy( - iteratee: ValueOnlyIteratee, - value: T, - ): (array: Array) => number; - sortedIndexBy( - iteratee: ValueOnlyIteratee, - value: T, - array: Array, - ): number; - sortedIndexOf(value: T): (array: Array) => number; - sortedIndexOf(value: T, array: Array): number; - sortedLastIndex(value: T): (array: Array) => number; - sortedLastIndex(value: T, array: Array): number; - sortedLastIndexBy( - iteratee: ValueOnlyIteratee, - ): ((value: T) => (array: Array) => number) & - ((value: T, array: Array) => number); - sortedLastIndexBy( - iteratee: ValueOnlyIteratee, - value: T, - ): (array: Array) => number; - sortedLastIndexBy( - iteratee: ValueOnlyIteratee, - value: T, - array: Array, - ): number; - sortedLastIndexOf(value: T): (array: Array) => number; - sortedLastIndexOf(value: T, array: Array): number; - sortedUniq(array: Array): Array; - sortedUniqBy(iteratee: ValueOnlyIteratee, array: Array): Array; - tail(array: Array): Array; - take(n: number): (array: $ReadOnlyArray) => Array; - take(n: number, array: $ReadOnlyArray): Array; - takeRight(n: number): (array: $ReadOnlyArray) => Array; - takeRight(n: number, array: $ReadOnlyArray): Array; - takeLast(n: number): (array: Array) => Array; - takeLast(n: number, array: Array): Array; - takeRightWhile(predicate: Predicate): (array: Array) => Array; - takeRightWhile(predicate: Predicate, array: Array): Array; - takeLastWhile(predicate: Predicate): (array: Array) => Array; - takeLastWhile(predicate: Predicate, array: Array): Array; - takeWhile(predicate: Predicate): (array: Array) => Array; - takeWhile(predicate: Predicate, array: Array): Array; - union(a1: Array): (a2: Array) => Array; - union(a1: Array, a2: Array): Array; - unionBy( - iteratee: ValueOnlyIteratee, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - unionBy( - iteratee: ValueOnlyIteratee, - a1: Array, - ): (a2: Array) => Array; - unionBy( - iteratee: ValueOnlyIteratee, - a1: Array, - a2: Array, - ): Array; - unionWith( - comparator: Comparator, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - unionWith( - comparator: Comparator, - a1: Array, - ): (a2: Array) => Array; - unionWith( - comparator: Comparator, - a1: Array, - a2: Array, - ): Array; - uniq(array: Array): Array; - uniqBy(iteratee: ValueOnlyIteratee): (array: Array) => Array; - uniqBy(iteratee: ValueOnlyIteratee, array: Array): Array; - uniqWith(comparator: Comparator): (array: Array) => Array; - uniqWith(comparator: Comparator, array: Array): Array; - unzip(array: Array): Array; - unzipWith(iteratee: Iteratee): (array: Array) => Array; - unzipWith(iteratee: Iteratee, array: Array): Array; - without(values: Array): (array: Array) => Array; - without(values: Array, array: Array): Array; - xor(a1: Array): (a2: Array) => Array; - xor(a1: Array, a2: Array): Array; - symmetricDifference(a1: Array): (a2: Array) => Array; - symmetricDifference(a1: Array, a2: Array): Array; - xorBy( - iteratee: ValueOnlyIteratee, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - xorBy( - iteratee: ValueOnlyIteratee, - a1: Array, - ): (a2: Array) => Array; - xorBy( - iteratee: ValueOnlyIteratee, - a1: Array, - a2: Array, - ): Array; - symmetricDifferenceBy( - iteratee: ValueOnlyIteratee, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - symmetricDifferenceBy( - iteratee: ValueOnlyIteratee, - a1: Array, - ): (a2: Array) => Array; - symmetricDifferenceBy( - iteratee: ValueOnlyIteratee, - a1: Array, - a2: Array, - ): Array; - xorWith( - comparator: Comparator, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - xorWith( - comparator: Comparator, - a1: Array, - ): (a2: Array) => Array; - xorWith(comparator: Comparator, a1: Array, a2: Array): Array; - symmetricDifferenceWith( - comparator: Comparator, - ): ((a1: Array) => (a2: Array) => Array) & - ((a1: Array, a2: Array) => Array); - symmetricDifferenceWith( - comparator: Comparator, - a1: Array, - ): (a2: Array) => Array; - symmetricDifferenceWith( - comparator: Comparator, - a1: Array, - a2: Array, - ): Array; - zip(a1: A[]): (a2: B[]) => Array<[A, B]>; - zip(a1: A[], a2: B[]): Array<[A, B]>; - zipAll(arrays: Array>): Array; - zipObject(props?: Array): (values?: Array) => {[key: K]: V}; - zipObject(props?: Array, values?: Array): {[key: K]: V}; - zipObj(props: Array): (values: Array) => Object; - zipObj(props: Array, values: Array): Object; - zipObjectDeep(props: any[]): (values: any) => Object; - zipObjectDeep(props: any[], values: any): Object; - zipWith( - iteratee: Iteratee, - ): ((a1: NestedArray) => (a2: NestedArray) => Array) & - ((a1: NestedArray, a2: NestedArray) => Array); - zipWith( - iteratee: Iteratee, - a1: NestedArray, - ): (a2: NestedArray) => Array; - zipWith( - iteratee: Iteratee, - a1: NestedArray, - a2: NestedArray, - ): Array; - // Collection - countBy( - iteratee: ValueOnlyIteratee, - ): (collection: Array | {[id: any]: T}) => {[string]: number}; - countBy( - iteratee: ValueOnlyIteratee, - collection: Array | {[id: any]: T}, - ): {[string]: number}; - // alias of _.forEach - each( - iteratee: Iteratee | OIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - each( - iteratee: Iteratee | OIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - // alias of _.forEachRight - eachRight( - iteratee: Iteratee | OIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - eachRight( - iteratee: Iteratee | OIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - every( - iteratee: Iteratee | OIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => boolean; - every( - iteratee: Iteratee | OIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): boolean; - all( - iteratee: Iteratee | OIteratee, - ): (collection: Array | {[id: any]: T}) => boolean; - all( - iteratee: Iteratee | OIteratee, - collection: Array | {[id: any]: T}, - ): boolean; - filter( - predicate: Predicate | OPredicate, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - filter( - predicate: Predicate | OPredicate, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - find( - predicate: Predicate | OPredicate, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => T | void; - find( - predicate: Predicate | OPredicate, - collection: $ReadOnlyArray | {[id: any]: T}, - ): T | void; - findFrom( - predicate: Predicate | OPredicate, - ): (( - fromIndex: number, - ) => (collection: $ReadOnlyArray | {[id: any]: T}) => T | void) & - (( - fromIndex: number, - collection: $ReadOnlyArray | {[id: any]: T}, - ) => T | void); - findFrom( - predicate: Predicate | OPredicate, - fromIndex: number, - ): (collection: Array | {[id: any]: T}) => T | void; - findFrom( - predicate: Predicate | OPredicate, - fromIndex: number, - collection: $ReadOnlyArray | {[id: any]: T}, - ): T | void; - findLast( - predicate: Predicate | OPredicate, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => T | void; - findLast( - predicate: Predicate | OPredicate, - collection: $ReadOnlyArray | {[id: any]: T}, - ): T | void; - findLastFrom( - predicate: Predicate | OPredicate, - ): (( - fromIndex: number, - ) => (collection: $ReadOnlyArray | {[id: any]: T}) => T | void) & - (( - fromIndex: number, - collection: $ReadOnlyArray | {[id: any]: T}, - ) => T | void); - findLastFrom( - predicate: Predicate | OPredicate, - fromIndex: number, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => T | void; - findLastFrom( - predicate: Predicate | OPredicate, - fromIndex: number, - collection: $ReadOnlyArray | {[id: any]: T}, - ): T | void; - flatMap( - iteratee: FlatMapIteratee | OFlatMapIteratee, - ): (collection: Array | {[id: any]: T}) => Array; - flatMap( - iteratee: FlatMapIteratee | OFlatMapIteratee, - collection: Array | {[id: any]: T}, - ): Array; - flatMapDeep( - iteratee: FlatMapIteratee | OFlatMapIteratee, - ): (collection: Array | {[id: any]: T}) => Array; - flatMapDeep( - iteratee: FlatMapIteratee | OFlatMapIteratee, - collection: Array | {[id: any]: T}, - ): Array; - flatMapDepth( - iteratee: FlatMapIteratee | OFlatMapIteratee, - ): (( - depth: number, - ) => (collection: Array | {[id: any]: T}) => Array) & - ((depth: number, collection: Array | {[id: any]: T}) => Array); - flatMapDepth( - iteratee: FlatMapIteratee | OFlatMapIteratee, - depth: number, - ): (collection: Array | {[id: any]: T}) => Array; - flatMapDepth( - iteratee: FlatMapIteratee | OFlatMapIteratee, - depth: number, - collection: Array | {[id: any]: T}, - ): Array; - forEach( - iteratee: Iteratee | OIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - forEach( - iteratee: Iteratee | OIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - forEachRight( - iteratee: Iteratee | OIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - forEachRight( - iteratee: Iteratee | OIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - groupBy( - iteratee: ValueOnlyIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => {[key: V]: Array}; - groupBy( - iteratee: ValueOnlyIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): {[key: V]: Array}; - includes(value: T): (collection: Array | {[id: any]: T}) => boolean; - includes(value: T, collection: Array | {[id: any]: T}): boolean; - includes(value: string): (str: string) => boolean; - includes(value: string, str: string): boolean; - contains(value: string): (str: string) => boolean; - contains(value: string, str: string): boolean; - contains(value: T): (collection: Array | {[id: any]: T}) => boolean; - contains(value: T, collection: Array | {[id: any]: T}): boolean; - includesFrom( - value: string, - ): ((fromIndex: number) => (str: string) => boolean) & - ((fromIndex: number, str: string) => boolean); - includesFrom(value: string, fromIndex: number): (str: string) => boolean; - includesFrom(value: string, fromIndex: number, str: string): boolean; - includesFrom( - value: T, - ): ((fromIndex: number) => (collection: Array) => boolean) & - ((fromIndex: number, collection: Array) => boolean); - includesFrom( - value: T, - fromIndex: number, - ): (collection: Array) => boolean; - includesFrom(value: T, fromIndex: number, collection: Array): boolean; - invokeMap( - path: ((value: T) => Path) | Path, - ): (collection: Array | {[id: any]: T}) => Array; - invokeMap( - path: ((value: T) => Path) | Path, - collection: Array | {[id: any]: T}, - ): Array; - invokeArgsMap( - path: ((value: T) => Path) | Path, - ): (( - collection: Array | {[id: any]: T}, - ) => (args: Array) => Array) & - ((collection: Array | {[id: any]: T}, args: Array) => Array); - invokeArgsMap( - path: ((value: T) => Path) | Path, - collection: Array | {[id: any]: T}, - ): (args: Array) => Array; - invokeArgsMap( - path: ((value: T) => Path) | Path, - collection: Array | {[id: any]: T}, - args: Array, - ): Array; - keyBy( - iteratee: ValueOnlyIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => {[key: V]: T}; - keyBy( - iteratee: ValueOnlyIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): {[key: V]: T}; - indexBy( - iteratee: ValueOnlyIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => {[key: V]: T}; - indexBy( - iteratee: ValueOnlyIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): {[key: V]: T}; - map( - iteratee: MapIterator | OMapIterator, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - map( - iteratee: MapIterator | OMapIterator, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - map(iteratee: (char: string) => any): (str: string) => string; - map(iteratee: (char: string) => any, str: string): string; - pluck( - iteratee: MapIterator | OMapIterator, - ): (collection: Array | {[id: any]: T}) => Array; - pluck( - iteratee: MapIterator | OMapIterator, - collection: Array | {[id: any]: T}, - ): Array; - pluck(iteratee: (char: string) => any): (str: string) => string; - pluck(iteratee: (char: string) => any, str: string): string; - orderBy( - iteratees: $ReadOnlyArray | OIteratee<*>> | string, - ): (( - orders: $ReadOnlyArray<'asc' | 'desc'> | string, - ) => (collection: $ReadOnlyArray | {[id: any]: T}) => Array) & - (( - orders: $ReadOnlyArray<'asc' | 'desc'> | string, - collection: $ReadOnlyArray | {[id: any]: T}, - ) => Array); - orderBy( - iteratees: $ReadOnlyArray | OIteratee<*>> | string, - orders: $ReadOnlyArray<'asc' | 'desc'> | string, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - orderBy( - iteratees: $ReadOnlyArray | OIteratee<*>> | string, - orders: $ReadOnlyArray<'asc' | 'desc'> | string, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - partition( - predicate: Predicate | OPredicate, - ): (collection: Array | {[id: any]: T}) => [Array, Array]; - partition( - predicate: Predicate | OPredicate, - collection: Array | {[id: any]: T}, - ): [Array, Array]; - reduce( - iteratee: (accumulator: U, value: T) => U, - ): ((accumulator: U) => (collection: Array | {[id: any]: T}) => U) & - ((accumulator: U, collection: Array | {[id: any]: T}) => U); - reduce( - iteratee: (accumulator: U, value: T) => U, - accumulator: U, - ): (collection: Array | {[id: any]: T}) => U; - reduce( - iteratee: (accumulator: U, value: T) => U, - accumulator: U, - collection: Array | {[id: any]: T}, - ): U; - reduceRight( - iteratee: (value: T, accumulator: U) => U, - ): ((accumulator: U) => (collection: Array | {[id: any]: T}) => U) & - ((accumulator: U, collection: Array | {[id: any]: T}) => U); - reduceRight( - iteratee: (value: T, accumulator: U) => U, - accumulator: U, - ): (collection: Array | {[id: any]: T}) => U; - reduceRight( - iteratee: (value: T, accumulator: U) => U, - accumulator: U, - collection: Array | {[id: any]: T}, - ): U; - reject( - predicate: Predicate | OPredicate, - ): (collection: Array | {[id: any]: T}) => Array; - reject( - predicate: Predicate | OPredicate, - collection: Array | {[id: any]: T}, - ): Array; - sample(collection: Array | {[id: any]: T}): T; - sampleSize( - n: number, - ): (collection: Array | {[id: any]: T}) => Array; - sampleSize(n: number, collection: Array | {[id: any]: T}): Array; - shuffle(collection: Array | {[id: any]: T}): Array; - size(collection: $ReadOnlyArray | Object | string): number; - some( - predicate: Predicate | OPredicate, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => boolean; - some( - predicate: Predicate | OPredicate, - collection: $ReadOnlyArray | {[id: any]: T}, - ): boolean; - any( - predicate: Predicate | OPredicate, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => boolean; - any( - predicate: Predicate | OPredicate, - collection: $ReadOnlyArray | {[id: any]: T}, - ): boolean; - sortBy( - iteratees: - | $ReadOnlyArray | OIteratee> - | Iteratee - | OIteratee, - ): (collection: $ReadOnlyArray | {[id: any]: T}) => Array; - sortBy( - iteratees: - | $ReadOnlyArray | OIteratee> - | Iteratee - | OIteratee, - collection: $ReadOnlyArray | {[id: any]: T}, - ): Array; - - // Date - now(): number; - - // Function - after(fn: Function): (n: number) => Function; - after(fn: Function, n: number): Function; - ary(func: Function): Function; - nAry(n: number): (func: Function) => Function; - nAry(n: number, func: Function): Function; - before(fn: Function): (n: number) => Function; - before(fn: Function, n: number): Function; - bind(func: Function): (thisArg: any) => Function; - bind(func: Function, thisArg: any): Function; - bindKey(obj: Object): (key: string) => Function; - bindKey(obj: Object, key: string): Function; - curry: Curry; - curryN(arity: number): (func: Function) => Function; - curryN(arity: number, func: Function): Function; - curryRight(func: Function): Function; - curryRightN(arity: number): (func: Function) => Function; - curryRightN(arity: number, func: Function): Function; - debounce(wait: number): (func: (...A) => R) => (...A) => R; - debounce(wait: number, func: (...A) => R): (...A) => R; - defer(func: (...any[]) => any): TimeoutID; - delay(wait: number): (func: Function) => TimeoutID; - delay(wait: number, func: Function): TimeoutID; - flip(func: Function): Function; - memoize(func: F): F; - negate(predicate: (...A) => R): (...A) => boolean; - complement(predicate: Function): Function; - once(func: Function): Function; - overArgs(func: Function): (transforms: Array) => Function; - overArgs(func: Function, transforms: Array): Function; - useWith(func: Function): (transforms: Array) => Function; - useWith(func: Function, transforms: Array): Function; - partial(func: Function): (partials: any[]) => Function; - partial(func: Function, partials: any[]): Function; - partialRight(func: Function): (partials: Array) => Function; - partialRight(func: Function, partials: Array): Function; - rearg(indexes: Array): (func: Function) => Function; - rearg(indexes: Array, func: Function): Function; - rest(func: Function): Function; - unapply(func: Function): Function; - restFrom(start: number): (func: Function) => Function; - restFrom(start: number, func: Function): Function; - spread(func: Function): Function; - apply(func: Function): Function; - spreadFrom(start: number): (func: Function) => Function; - spreadFrom(start: number, func: Function): Function; - throttle(wait: number): (func: (...A) => R) => (...A) => R; - throttle(wait: number, func: (...A) => R): (...A) => R; - unary(func: (T, ...any[]) => R): T => R; - wrap(wrapper: Function): (value: any) => Function; - wrap(wrapper: Function, value: any): Function; - - // Lang - castArray(value: *): any[]; - clone(value: T): T; - cloneDeep(value: T): T; - cloneDeepWith( - customizer: (value: T, key: number | string, object: T, stack: any) => U, - ): (value: T) => U; - cloneDeepWith( - customizer: (value: T, key: number | string, object: T, stack: any) => U, - value: T, - ): U; - cloneWith( - customizer: (value: T, key: number | string, object: T, stack: any) => U, - ): (value: T) => U; - cloneWith( - customizer: (value: T, key: number | string, object: T, stack: any) => U, - value: T, - ): U; - conformsTo( - predicates: T & {[key: string]: (x: any) => boolean}, - ): (source: T) => boolean; - conformsTo( - predicates: T & {[key: string]: (x: any) => boolean}, - source: T, - ): boolean; - where( - predicates: T & {[key: string]: (x: any) => boolean}, - ): (source: T) => boolean; - where( - predicates: T & {[key: string]: (x: any) => boolean}, - source: T, - ): boolean; - conforms( - predicates: T & {[key: string]: (x: any) => boolean}, - ): (source: T) => boolean; - conforms( - predicates: T & {[key: string]: (x: any) => boolean}, - source: T, - ): boolean; - eq(value: any): (other: any) => boolean; - eq(value: any, other: any): boolean; - identical(value: any): (other: any) => boolean; - identical(value: any, other: any): boolean; - gt(value: any): (other: any) => boolean; - gt(value: any, other: any): boolean; - gte(value: any): (other: any) => boolean; - gte(value: any, other: any): boolean; - isArguments(value: any): boolean; - isArray(value: any): boolean; - isArrayBuffer(value: any): boolean; - isArrayLike(value: any): boolean; - isArrayLikeObject(value: any): boolean; - isBoolean(value: any): boolean; - isBuffer(value: any): boolean; - isDate(value: any): boolean; - isElement(value: any): boolean; - isEmpty(value: any): boolean; - isEqual(value: any): (other: any) => boolean; - isEqual(value: any, other: any): boolean; - equals(value: any): (other: any) => boolean; - equals(value: any, other: any): boolean; - isEqualWith( - customizer: ( - objValue: any, - otherValue: any, - key: number | string, - object: T, - other: U, - stack: any, - ) => boolean | void, - ): ((value: T) => (other: U) => boolean) & - ((value: T, other: U) => boolean); - isEqualWith( - customizer: ( - objValue: any, - otherValue: any, - key: number | string, - object: T, - other: U, - stack: any, - ) => boolean | void, - value: T, - ): (other: U) => boolean; - isEqualWith( - customizer: ( - objValue: any, - otherValue: any, - key: number | string, - object: T, - other: U, - stack: any, - ) => boolean | void, - value: T, - other: U, - ): boolean; - isError(value: any): boolean; - isFinite(value: any): boolean; - isFunction(value: any): boolean; - isInteger(value: any): boolean; - isLength(value: any): boolean; - isMap(value: any): boolean; - isMatch(source: Object): (object: Object) => boolean; - isMatch(source: Object, object: Object): boolean; - whereEq(source: Object): (object: Object) => boolean; - whereEq(source: Object, object: Object): boolean; - isMatchWith( - customizer: ( - objValue: any, - srcValue: any, - key: number | string, - object: T, - source: U, - ) => boolean | void, - ): ((source: U) => (object: T) => boolean) & - ((source: U, object: T) => boolean); - isMatchWith( - customizer: ( - objValue: any, - srcValue: any, - key: number | string, - object: T, - source: U, - ) => boolean | void, - source: U, - ): (object: T) => boolean; - isMatchWith( - customizer: ( - objValue: any, - srcValue: any, - key: number | string, - object: T, - source: U, - ) => boolean | void, - source: U, - object: T, - ): boolean; - isNaN(value: any): boolean; - isNative(value: any): boolean; - isNil(value: any): boolean; - isNull(value: any): boolean; - isNumber(value: any): boolean; - isObject(value: any): boolean; - isObjectLike(value: any): boolean; - isPlainObject(value: any): boolean; - isRegExp(value: any): boolean; - isSafeInteger(value: any): boolean; - isSet(value: any): boolean; - isString(value: string): true; - isString(value: any): false; - isSymbol(value: any): boolean; - isTypedArray(value: any): boolean; - isUndefined(value: any): boolean; - isWeakMap(value: any): boolean; - isWeakSet(value: any): boolean; - lt(value: any): (other: any) => boolean; - lt(value: any, other: any): boolean; - lte(value: any): (other: any) => boolean; - lte(value: any, other: any): boolean; - toArray(value: any): Array; - toFinite(value: any): number; - toInteger(value: any): number; - toLength(value: any): number; - toNumber(value: any): number; - toPlainObject(value: any): Object; - toSafeInteger(value: any): number; - toString(value: any): string; - - // Math - add(augend: number): (addend: number) => number; - add(augend: number, addend: number): number; - ceil(number: number): number; - divide(dividend: number): (divisor: number) => number; - divide(dividend: number, divisor: number): number; - floor(number: number): number; - max(array: Array): T; - maxBy(iteratee: Iteratee): (array: Array) => T; - maxBy(iteratee: Iteratee, array: Array): T; - mean(array: Array<*>): number; - meanBy(iteratee: Iteratee): (array: Array) => number; - meanBy(iteratee: Iteratee, array: Array): number; - min(array: Array): T; - minBy(iteratee: Iteratee): (array: Array) => T; - minBy(iteratee: Iteratee, array: Array): T; - multiply(multiplier: number): (multiplicand: number) => number; - multiply(multiplier: number, multiplicand: number): number; - round(number: number): number; - subtract(minuend: number): (subtrahend: number) => number; - subtract(minuend: number, subtrahend: number): number; - sum(array: Array<*>): number; - sumBy(iteratee: Iteratee): (array: Array) => number; - sumBy(iteratee: Iteratee, array: Array): number; - - // number - clamp( - lower: number, - ): ((upper: number) => (number: number) => number) & - ((upper: number, number: number) => number); - clamp(lower: number, upper: number): (number: number) => number; - clamp(lower: number, upper: number, number: number): number; - inRange( - start: number, - ): ((end: number) => (number: number) => boolean) & - ((end: number, number: number) => boolean); - inRange(start: number, end: number): (number: number) => boolean; - inRange(start: number, end: number, number: number): boolean; - random(lower: number): (upper: number) => number; - random(lower: number, upper: number): number; - - // Object - assign(object: Object): (source: Object) => Object; - assign(object: Object, source: Object): Object; - assignAll(objects: Array): Object; - assignInAll(objects: Array): Object; - extendAll(objects: Array): Object; - assignIn(a: A): (b: B) => A & B; - assignIn(a: A, b: B): A & B; - assignInWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); - assignInWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - object: T, - ): (s1: A) => Object; - assignInWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - object: T, - s1: A, - ): Object; - assignWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); - assignWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - object: T, - ): (s1: A) => Object; - assignWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - object: T, - s1: A, - ): Object; - assignInAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - ): (objects: Array) => Object; - assignInAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - objects: Array, - ): Object; - extendAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - ): (objects: Array) => Object; - extendAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - objects: Array, - ): Object; - assignAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - ): (objects: Array) => Object; - assignAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - objects: Array, - ): Object; - at(paths: Array): (object: Object) => Array; - at(paths: Array, object: Object): Array; - props(paths: Array): (object: Object) => Array; - props(paths: Array, object: Object): Array; - paths(paths: Array): (object: Object) => Array; - paths(paths: Array, object: Object): Array; - create(prototype: T): T; - defaults(source: Object): (object: Object) => Object; - defaults(source: Object, object: Object): Object; - defaultsAll(objects: Array): Object; - defaultsDeep(source: Object): (object: Object) => Object; - defaultsDeep(source: Object, object: Object): Object; - defaultsDeepAll(objects: Array): Object; - // alias for _.toPairs - entries(object: Object): Array<[string, any]>; - // alias for _.toPairsIn - entriesIn(object: Object): Array<[string, any]>; - // alias for _.assignIn - extend(a: A): (b: B) => A & B; - extend(a: A, b: B): A & B; - // alias for _.assignInWith - extendWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); - extendWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - object: T, - ): (s1: A) => Object; - extendWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A, - ) => any | void, - object: T, - s1: A, - ): Object; - findKey( - predicate: OPredicate, - ): (object: T) => string | void; - findKey( - predicate: OPredicate, - object: T, - ): string | void; - findLastKey( - predicate: OPredicate, - ): (object: T) => string | void; - findLastKey( - predicate: OPredicate, - object: T, - ): string | void; - forIn(iteratee: OIteratee<*>): (object: Object) => Object; - forIn(iteratee: OIteratee<*>, object: Object): Object; - forInRight(iteratee: OIteratee<*>): (object: Object) => Object; - forInRight(iteratee: OIteratee<*>, object: Object): Object; - forOwn(iteratee: OIteratee<*>): (object: Object) => Object; - forOwn(iteratee: OIteratee<*>, object: Object): Object; - forOwnRight(iteratee: OIteratee<*>): (object: Object) => Object; - forOwnRight(iteratee: OIteratee<*>, object: Object): Object; - functions(object: Object): Array; - functionsIn(object: Object): Array; - get( - path: Path, - ): (object: Object | $ReadOnlyArray | void | null) => any; - get(path: Path, object: Object | $ReadOnlyArray | void | null): any; - prop(path: Path): (object: Object | Array) => any; - prop(path: Path, object: Object | Array): any; - path(path: Path): (object: Object | Array) => any; - path(path: Path, object: Object | Array): any; - getOr( - defaultValue: any, - ): ((path: Path) => (object: Object | Array) => any) & - ((path: Path, object: Object | $ReadOnlyArray | void | null) => any); - getOr( - defaultValue: any, - path: Path, - ): (object: Object | $ReadOnlyArray | void | null) => any; - getOr( - defaultValue: any, - path: Path, - object: Object | $ReadOnlyArray | void | null, - ): any; - propOr( - defaultValue: any, - ): ((path: Path) => (object: Object | Array) => any) & - ((path: Path, object: Object | Array) => any); - propOr(defaultValue: any, path: Path): (object: Object | Array) => any; - propOr(defaultValue: any, path: Path, object: Object | Array): any; - pathOr( - defaultValue: any, - ): ((path: Path) => (object: Object | Array) => any) & - ((path: Path, object: Object | Array) => any); - pathOr(defaultValue: any, path: Path): (object: Object | Array) => any; - pathOr(defaultValue: any, path: Path, object: Object | Array): any; - has(path: Path): (object: Object) => boolean; - has(path: Path, object: Object): boolean; - hasIn(path: Path): (object: Object) => boolean; - hasIn(path: Path, object: Object): boolean; - invert(object: Object): Object; - invertObj(object: Object): Object; - invertBy(iteratee: Function): (object: Object) => Object; - invertBy(iteratee: Function, object: Object): Object; - invoke(path: Path): (object: Object) => any; - invoke(path: Path, object: Object): any; - invokeArgs( - path: Path, - ): ((object: Object) => (args: Array) => any) & - ((object: Object, args: Array) => any); - invokeArgs(path: Path, object: Object): (args: Array) => any; - invokeArgs(path: Path, object: Object, args: Array): any; - keys(object: {[key: K]: any}): Array; - keys(object: Object): Array; - keysIn(object: Object): Array; - mapKeys(iteratee: OIteratee<*>): (object: Object) => Object; - mapKeys(iteratee: OIteratee<*>, object: Object): Object; - mapValues(iteratee: OIteratee<*>): (object: Object) => Object; - mapValues(iteratee: OIteratee<*>, object: Object): Object; - merge(object: Object): (source: Object) => Object; - merge(object: Object, source: Object): Object; - mergeAll(objects: Array): Object; - mergeWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); - mergeWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - object: T, - ): (s1: A) => Object; - mergeWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: T, - source: A | B, - ) => any | void, - object: T, - s1: A, - ): Object; - mergeAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - ): (objects: Array) => Object; - mergeAllWith( - customizer: ( - objValue: any, - srcValue: any, - key: string, - object: Object, - source: Object, - ) => any | void, - objects: Array, - ): Object; - omit(props: Array): (object: Object) => Object; - omit(props: Array, object: Object): Object; - omitAll(props: Array): (object: Object) => Object; - omitAll(props: Array, object: Object): Object; - omitBy( - predicate: OPredicate, - ): (object: T) => Object; - omitBy(predicate: OPredicate, object: T): Object; - pick(props: Array): (object: Object) => Object; - pick(props: Array, object: Object): Object; - pickAll(props: Array): (object: Object) => Object; - pickAll(props: Array, object: Object): Object; - pickBy( - predicate: OPredicate, - ): (object: T) => Object; - pickBy(predicate: OPredicate, object: T): Object; - result(path: Path): (object: Object) => any; - result(path: Path, object: Object): any; - set( - path: Path, - ): ((value: any) => (object: Object) => Object) & - ((value: any, object: Object) => Object); - set(path: Path, value: any): (object: Object) => Object; - set(path: Path, value: any, object: Object): Object; - assoc( - path: Path, - ): ((value: any) => (object: Object) => Object) & - ((value: any, object: Object) => Object); - assoc(path: Path, value: any): (object: Object) => Object; - assoc(path: Path, value: any, object: Object): Object; - assocPath( - path: Path, - ): ((value: any) => (object: Object) => Object) & - ((value: any, object: Object) => Object); - assocPath(path: Path, value: any): (object: Object) => Object; - assocPath(path: Path, value: any, object: Object): Object; - setWith( - customizer: (nsValue: any, key: string, nsObject: T) => any, - ): (( - path: Path, - ) => ((value: any) => (object: T) => Object) & - ((value: any, object: T) => Object)) & - ((path: Path, value: any) => (object: T) => Object) & - ((path: Path, value: any, object: T) => Object); - setWith( - customizer: (nsValue: any, key: string, nsObject: T) => any, - path: Path, - ): ((value: any) => (object: T) => Object) & - ((value: any, object: T) => Object); - setWith( - customizer: (nsValue: any, key: string, nsObject: T) => any, - path: Path, - value: any, - ): (object: T) => Object; - setWith( - customizer: (nsValue: any, key: string, nsObject: T) => any, - path: Path, - value: any, - object: T, - ): Object; - toPairs(object: Object | Array<*>): Array<[string, any]>; - toPairsIn(object: Object): Array<[string, any]>; - transform( - iteratee: OIteratee<*>, - ): (( - accumulator: any, - ) => (collection: Object | $ReadOnlyArray) => any) & - ((accumulator: any, collection: Object | $ReadOnlyArray) => any); - transform( - iteratee: OIteratee<*>, - accumulator: any, - ): (collection: Object | $ReadOnlyArray) => any; - transform( - iteratee: OIteratee<*>, - accumulator: any, - collection: Object | $ReadOnlyArray, - ): any; - unset(path: Path): (object: Object) => Object; - unset(path: Path, object: Object): Object; - dissoc(path: Path): (object: Object) => Object; - dissoc(path: Path, object: Object): Object; - dissocPath(path: Path): (object: Object) => Object; - dissocPath(path: Path, object: Object): Object; - update( - path: Path, - ): ((updater: Function) => (object: Object) => Object) & - ((updater: Function, object: Object) => Object); - update(path: Path, updater: Function): (object: Object) => Object; - update(path: Path, updater: Function, object: Object): Object; - updateWith( - customizer: Function, - ): (( - path: Path, - ) => ((updater: Function) => (object: Object) => Object) & - ((updater: Function, object: Object) => Object)) & - ((path: Path, updater: Function) => (object: Object) => Object) & - ((path: Path, updater: Function, object: Object) => Object); - updateWith( - customizer: Function, - path: Path, - ): ((updater: Function) => (object: Object) => Object) & - ((updater: Function, object: Object) => Object); - updateWith( - customizer: Function, - path: Path, - updater: Function, - ): (object: Object) => Object; - updateWith( - customizer: Function, - path: Path, - updater: Function, - object: Object, - ): Object; - values(object: Object): Array; - valuesIn(object: Object): Array; - - tap(interceptor: (value: T) => any): (value: T) => T; - tap(interceptor: (value: T) => any, value: T): T; - thru(interceptor: (value: T1) => T2): (value: T1) => T2; - thru(interceptor: (value: T1) => T2, value: T1): T2; - - // String - camelCase(string: string): string; - capitalize(string: string): string; - deburr(string: string): string; - endsWith(target: string): (string: string) => boolean; - endsWith(target: string, string: string): boolean; - escape(string: string): string; - escapeRegExp(string: string): string; - kebabCase(string: string): string; - lowerCase(string: string): string; - lowerFirst(string: string): string; - pad(length: number): (string: string) => string; - pad(length: number, string: string): string; - padChars( - chars: string, - ): ((length: number) => (string: string) => string) & - ((length: number, string: string) => string); - padChars(chars: string, length: number): (string: string) => string; - padChars(chars: string, length: number, string: string): string; - padEnd(length: number): (string: string) => string; - padEnd(length: number, string: string): string; - padCharsEnd( - chars: string, - ): ((length: number) => (string: string) => string) & - ((length: number, string: string) => string); - padCharsEnd(chars: string, length: number): (string: string) => string; - padCharsEnd(chars: string, length: number, string: string): string; - padStart(length: number): (string: string) => string; - padStart(length: number, string: string): string; - padCharsStart( - chars: string, - ): ((length: number) => (string: string) => string) & - ((length: number, string: string) => string); - padCharsStart(chars: string, length: number): (string: string) => string; - padCharsStart(chars: string, length: number, string: string): string; - parseInt(radix: number): (string: string) => number; - parseInt(radix: number, string: string): number; - repeat(n: number): (string: string) => string; - repeat(n: number, string: string): string; - replace( - pattern: RegExp | string, - ): (( - replacement: ((string: string) => string) | string, - ) => (string: string) => string) & - (( - replacement: ((string: string) => string) | string, - string: string, - ) => string); - replace( - pattern: RegExp | string, - replacement: ((string: string) => string) | string, - ): (string: string) => string; - replace( - pattern: RegExp | string, - replacement: ((string: string) => string) | string, - string: string, - ): string; - snakeCase(string: string): string; - split(separator: RegExp | string): (string: string) => Array; - split(separator: RegExp | string, string: string): Array; - startCase(string: string): string; - startsWith(target: string): (string: string) => boolean; - startsWith(target: string, string: string): boolean; - template(string: string): Function; - toLower(string: string): string; - toUpper(string: string): string; - trim(string: string): string; - trimChars(chars: string): (string: string) => string; - trimChars(chars: string, string: string): string; - trimEnd(string: string): string; - trimCharsEnd(chars: string): (string: string) => string; - trimCharsEnd(chars: string, string: string): string; - trimStart(string: string): string; - trimCharsStart(chars: string): (string: string) => string; - trimCharsStart(chars: string, string: string): string; - truncate(options: TruncateOptions): (string: string) => string; - truncate(options: TruncateOptions, string: string): string; - unescape(string: string): string; - upperCase(string: string): string; - upperFirst(string: string): string; - words(string: string): Array; - - // Util - attempt(func: Function): any; - bindAll(methodNames: Array): (object: Object) => Object; - bindAll(methodNames: Array, object: Object): Object; - cond(pairs: NestedArray): Function; - constant(value: T): () => T; - always(value: T): () => T; - defaultTo(defaultValue: T2): (value: T1) => T2; - defaultTo(defaultValue: T2, value: T1): T2; - defaultTo(defaultValue: T2): (value: T1) => T1; - defaultTo(defaultValue: T2, value: T1): T1; - // NaN is a number instead of its own type, otherwise it would behave like null/void - defaultTo(defaultValue: T2): (value: T1) => T1 | T2; - defaultTo(defaultValue: T2, value: T1): T1 | T2; - flow: $ComposeReverse & ((funcs: Array) => Function); - pipe: $ComposeReverse & ((funcs: Array) => Function); - flowRight: $Compose & ((funcs: Array) => Function); - compose: $Compose & ((funcs: Array) => Function); - compose(funcs: Array): Function; - identity(value: T): T; - iteratee(func: any): Function; - matches(source: Object): (object: Object) => boolean; - matches(source: Object, object: Object): boolean; - matchesProperty(path: Path): (srcValue: any) => Function; - matchesProperty(path: Path, srcValue: any): Function; - propEq(path: Path): (srcValue: any) => Function; - propEq(path: Path, srcValue: any): Function; - pathEq(path: Path): (srcValue: any) => Function; - pathEq(path: Path, srcValue: any): Function; - method(path: Path): Function; - methodOf(object: Object): Function; - mixin( - object: T, - ): ((source: Object) => (options: {chain: boolean}) => T) & - ((source: Object, options: {chain: boolean}) => T); - mixin( - object: T, - source: Object, - ): (options: {chain: boolean}) => T; - mixin( - object: T, - source: Object, - options: {chain: boolean}, - ): T; - noConflict(): Lodash; - noop(...args: Array): void; - nthArg(n: number): Function; - over(iteratees: Array): Function; - juxt(iteratees: Array): Function; - overEvery(predicates: Array): Function; - allPass(predicates: Array): Function; - overSome(predicates: Array): Function; - anyPass(predicates: Array): Function; - property(path: Path): (object: Object | Array) => any; - property(path: Path, object: Object | Array): any; - propertyOf(object: Object): (path: Path) => Function; - propertyOf(object: Object, path: Path): Function; - range(start: number): (end: number) => Array; - range(start: number, end: number): Array; - rangeStep( - step: number, - ): ((start: number) => (end: number) => Array) & - ((start: number, end: number) => Array); - rangeStep(step: number, start: number): (end: number) => Array; - rangeStep(step: number, start: number, end: number): Array; - rangeRight(start: number): (end: number) => Array; - rangeRight(start: number, end: number): Array; - rangeStepRight( - step: number, - ): ((start: number) => (end: number) => Array) & - ((start: number, end: number) => Array); - rangeStepRight(step: number, start: number): (end: number) => Array; - rangeStepRight(step: number, start: number, end: number): Array; - runInContext(context: Object): Function; - - stubArray(): Array<*>; - stubFalse(): false; - F(): false; - stubObject(): {}; - stubString(): ''; - stubTrue(): true; - T(): true; - times(iteratee: (i: number) => T): (n: number) => Array; - times(iteratee: (i: number) => T, n: number): Array; - toPath(value: any): Array; - uniqueId(prefix: string): string; - - __: any; - placeholder: any; - - convert(options: { - cap?: boolean, - curry?: boolean, - fixed?: boolean, - immutable?: boolean, - rearg?: boolean, - }): void; - - // Properties - VERSION: string; - templateSettings: TemplateSettings; - } - - declare module.exports: Lodash; -} - -declare module 'lodash/chunk' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'chunk'>; -} - -declare module 'lodash/compact' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'compact'>; -} - -declare module 'lodash/concat' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'concat'>; -} - -declare module 'lodash/difference' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'difference'>; -} - -declare module 'lodash/differenceBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'differenceBy'>; -} - -declare module 'lodash/differenceWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'differenceWith'>; -} - -declare module 'lodash/drop' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'drop'>; -} - -declare module 'lodash/dropRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropRight'>; -} - -declare module 'lodash/dropRightWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropRightWhile'>; -} - -declare module 'lodash/dropWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'dropWhile'>; -} - -declare module 'lodash/fill' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'fill'>; -} - -declare module 'lodash/findIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findIndex'>; -} - -declare module 'lodash/findLastIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLastIndex'>; -} - -declare module 'lodash/first' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'first'>; -} - -declare module 'lodash/flatten' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatten'>; -} - -declare module 'lodash/flattenDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flattenDeep'>; -} - -declare module 'lodash/flattenDepth' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flattenDepth'>; -} - -declare module 'lodash/fromPairs' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'fromPairs'>; -} - -declare module 'lodash/head' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'head'>; -} - -declare module 'lodash/indexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'indexOf'>; -} - -declare module 'lodash/initial' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'initial'>; -} - -declare module 'lodash/intersection' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersection'>; -} - -declare module 'lodash/intersectionBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersectionBy'>; -} - -declare module 'lodash/intersectionWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'intersectionWith'>; -} - -declare module 'lodash/join' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'join'>; -} - -declare module 'lodash/last' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'last'>; -} - -declare module 'lodash/lastIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lastIndexOf'>; -} - -declare module 'lodash/nth' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'nth'>; -} - -declare module 'lodash/pull' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pull'>; -} - -declare module 'lodash/pullAll' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAll'>; -} - -declare module 'lodash/pullAllBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAllBy'>; -} - -declare module 'lodash/pullAllWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAllWith'>; -} - -declare module 'lodash/pullAt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pullAt'>; -} - -declare module 'lodash/remove' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'remove'>; -} - -declare module 'lodash/reverse' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reverse'>; -} - -declare module 'lodash/slice' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'slice'>; -} - -declare module 'lodash/sortedIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndex'>; -} - -declare module 'lodash/sortedIndexBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndexBy'>; -} - -declare module 'lodash/sortedIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedIndexOf'>; -} - -declare module 'lodash/sortedLastIndex' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedLastIndex'>; -} - -declare module 'lodash/sortedLastIndexBy' { - declare module.exports: $PropertyType< - $Exports<'lodash'>, - 'sortedLastIndexBy', - >; -} - -declare module 'lodash/sortedLastIndexOf' { - declare module.exports: $PropertyType< - $Exports<'lodash'>, - 'sortedLastIndexOf', - >; -} - -declare module 'lodash/sortedUniq' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedUniq'>; -} - -declare module 'lodash/sortedUniqBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortedUniqBy'>; -} - -declare module 'lodash/tail' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'tail'>; -} - -declare module 'lodash/take' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'take'>; -} - -declare module 'lodash/takeRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeRight'>; -} - -declare module 'lodash/takeRightWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeRightWhile'>; -} - -declare module 'lodash/takeWhile' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'takeWhile'>; -} - -declare module 'lodash/union' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'union'>; -} - -declare module 'lodash/unionBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unionBy'>; -} - -declare module 'lodash/unionWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unionWith'>; -} - -declare module 'lodash/uniq' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniq'>; -} - -declare module 'lodash/uniqBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqBy'>; -} - -declare module 'lodash/uniqWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqWith'>; -} - -declare module 'lodash/unzip' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unzip'>; -} - -declare module 'lodash/unzipWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unzipWith'>; -} - -declare module 'lodash/without' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'without'>; -} - -declare module 'lodash/xor' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'xor'>; -} - -declare module 'lodash/xorBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'xorBy'>; -} - -declare module 'lodash/xorWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'xorWith'>; -} - -declare module 'lodash/zip' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zip'>; -} - -declare module 'lodash/zipObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipObject'>; -} - -declare module 'lodash/zipObjectDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipObjectDeep'>; -} - -declare module 'lodash/zipWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'zipWith'>; -} - -declare module 'lodash/countBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'countBy'>; -} - -declare module 'lodash/each' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'each'>; -} - -declare module 'lodash/eachRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'eachRight'>; -} - -declare module 'lodash/every' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'every'>; -} - -declare module 'lodash/filter' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'filter'>; -} - -declare module 'lodash/find' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'find'>; -} - -declare module 'lodash/findLast' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLast'>; -} - -declare module 'lodash/flatMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMap'>; -} - -declare module 'lodash/flatMapDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMapDeep'>; -} - -declare module 'lodash/flatMapDepth' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flatMapDepth'>; -} - -declare module 'lodash/forEach' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forEach'>; -} - -declare module 'lodash/forEachRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forEachRight'>; -} - -declare module 'lodash/groupBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'groupBy'>; -} - -declare module 'lodash/includes' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'includes'>; -} - -declare module 'lodash/invokeMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invokeMap'>; -} - -declare module 'lodash/keyBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'keyBy'>; -} - -declare module 'lodash/map' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'map'>; -} - -declare module 'lodash/orderBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'orderBy'>; -} - -declare module 'lodash/partition' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'partition'>; -} - -declare module 'lodash/reduce' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reduce'>; -} - -declare module 'lodash/reduceRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reduceRight'>; -} - -declare module 'lodash/reject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'reject'>; -} - -declare module 'lodash/sample' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sample'>; -} - -declare module 'lodash/sampleSize' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sampleSize'>; -} - -declare module 'lodash/shuffle' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'shuffle'>; -} - -declare module 'lodash/size' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'size'>; -} - -declare module 'lodash/some' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'some'>; -} - -declare module 'lodash/sortBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sortBy'>; -} - -declare module 'lodash/now' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'now'>; -} - -declare module 'lodash/after' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'after'>; -} - -declare module 'lodash/ary' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'ary'>; -} - -declare module 'lodash/before' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'before'>; -} - -declare module 'lodash/bind' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'bind'>; -} - -declare module 'lodash/bindKey' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'bindKey'>; -} - -declare module 'lodash/curry' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'curry'>; -} - -declare module 'lodash/curryRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'curryRight'>; -} - -declare module 'lodash/debounce' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'debounce'>; -} - -declare module 'lodash/defer' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defer'>; -} - -declare module 'lodash/delay' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'delay'>; -} - -declare module 'lodash/flip' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flip'>; -} - -declare module 'lodash/memoize' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'memoize'>; -} - -declare module 'lodash/negate' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'negate'>; -} - -declare module 'lodash/once' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'once'>; -} - -declare module 'lodash/overArgs' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'overArgs'>; -} - -declare module 'lodash/partial' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'partial'>; -} - -declare module 'lodash/partialRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'partialRight'>; -} - -declare module 'lodash/rearg' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'rearg'>; -} - -declare module 'lodash/rest' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'rest'>; -} - -declare module 'lodash/spread' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'spread'>; -} - -declare module 'lodash/throttle' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'throttle'>; -} - -declare module 'lodash/unary' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unary'>; -} - -declare module 'lodash/wrap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'wrap'>; -} - -declare module 'lodash/castArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'castArray'>; -} - -declare module 'lodash/clone' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'clone'>; -} - -declare module 'lodash/cloneDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneDeep'>; -} - -declare module 'lodash/cloneDeepWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneDeepWith'>; -} - -declare module 'lodash/cloneWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cloneWith'>; -} - -declare module 'lodash/conformsTo' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'conformsTo'>; -} - -declare module 'lodash/eq' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'eq'>; -} - -declare module 'lodash/gt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'gt'>; -} - -declare module 'lodash/gte' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'gte'>; -} - -declare module 'lodash/isArguments' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArguments'>; -} - -declare module 'lodash/isArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArray'>; -} - -declare module 'lodash/isArrayBuffer' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayBuffer'>; -} - -declare module 'lodash/isArrayLike' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isArrayLike'>; -} - -declare module 'lodash/isArrayLikeObject' { - declare module.exports: $PropertyType< - $Exports<'lodash'>, - 'isArrayLikeObject', - >; -} - -declare module 'lodash/isBoolean' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isBoolean'>; -} - -declare module 'lodash/isBuffer' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isBuffer'>; -} - -declare module 'lodash/isDate' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isDate'>; -} - -declare module 'lodash/isElement' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isElement'>; -} - -declare module 'lodash/isEmpty' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEmpty'>; -} - -declare module 'lodash/isEqual' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEqual'>; -} - -declare module 'lodash/isEqualWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isEqualWith'>; -} - -declare module 'lodash/isError' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isError'>; -} - -declare module 'lodash/isFinite' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isFinite'>; -} - -declare module 'lodash/isFunction' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isFunction'>; -} - -declare module 'lodash/isInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isInteger'>; -} - -declare module 'lodash/isLength' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isLength'>; -} - -declare module 'lodash/isMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMap'>; -} - -declare module 'lodash/isMatch' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMatch'>; -} - -declare module 'lodash/isMatchWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isMatchWith'>; -} - -declare module 'lodash/isNaN' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNaN'>; -} - -declare module 'lodash/isNative' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNative'>; -} - -declare module 'lodash/isNil' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNil'>; -} - -declare module 'lodash/isNull' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNull'>; -} - -declare module 'lodash/isNumber' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isNumber'>; -} - -declare module 'lodash/isObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isObject'>; -} - -declare module 'lodash/isObjectLike' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isObjectLike'>; -} - -declare module 'lodash/isPlainObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isPlainObject'>; -} - -declare module 'lodash/isRegExp' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isRegExp'>; -} - -declare module 'lodash/isSafeInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSafeInteger'>; -} - -declare module 'lodash/isSet' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSet'>; -} - -declare module 'lodash/isString' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isString'>; -} - -declare module 'lodash/isSymbol' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isSymbol'>; -} - -declare module 'lodash/isTypedArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isTypedArray'>; -} - -declare module 'lodash/isUndefined' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isUndefined'>; -} - -declare module 'lodash/isWeakMap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isWeakMap'>; -} - -declare module 'lodash/isWeakSet' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'isWeakSet'>; -} - -declare module 'lodash/lt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lt'>; -} - -declare module 'lodash/lte' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lte'>; -} - -declare module 'lodash/toArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toArray'>; -} - -declare module 'lodash/toFinite' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toFinite'>; -} - -declare module 'lodash/toInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toInteger'>; -} - -declare module 'lodash/toLength' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toLength'>; -} - -declare module 'lodash/toNumber' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toNumber'>; -} - -declare module 'lodash/toPlainObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPlainObject'>; -} - -declare module 'lodash/toSafeInteger' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toSafeInteger'>; -} - -declare module 'lodash/toString' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toString'>; -} - -declare module 'lodash/add' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'add'>; -} - -declare module 'lodash/ceil' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'ceil'>; -} - -declare module 'lodash/divide' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'divide'>; -} - -declare module 'lodash/floor' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'floor'>; -} - -declare module 'lodash/max' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'max'>; -} - -declare module 'lodash/maxBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'maxBy'>; -} - -declare module 'lodash/mean' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mean'>; -} - -declare module 'lodash/meanBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'meanBy'>; -} - -declare module 'lodash/min' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'min'>; -} - -declare module 'lodash/minBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'minBy'>; -} - -declare module 'lodash/multiply' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'multiply'>; -} - -declare module 'lodash/round' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'round'>; -} - -declare module 'lodash/subtract' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'subtract'>; -} - -declare module 'lodash/sum' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sum'>; -} - -declare module 'lodash/sumBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'sumBy'>; -} - -declare module 'lodash/clamp' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'clamp'>; -} - -declare module 'lodash/inRange' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'inRange'>; -} - -declare module 'lodash/random' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'random'>; -} - -declare module 'lodash/assign' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assign'>; -} - -declare module 'lodash/assignIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignIn'>; -} - -declare module 'lodash/assignInWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignInWith'>; -} - -declare module 'lodash/assignWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'assignWith'>; -} - -declare module 'lodash/at' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'at'>; -} - -declare module 'lodash/create' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'create'>; -} - -declare module 'lodash/defaults' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaults'>; -} - -declare module 'lodash/defaultsDeep' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaultsDeep'>; -} - -declare module 'lodash/entries' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'entries'>; -} - -declare module 'lodash/entriesIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'entriesIn'>; -} - -declare module 'lodash/extend' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'extend'>; -} - -declare module 'lodash/extendWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'extendWith'>; -} - -declare module 'lodash/findKey' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findKey'>; -} - -declare module 'lodash/findLastKey' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'findLastKey'>; -} - -declare module 'lodash/forIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forIn'>; -} - -declare module 'lodash/forInRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forInRight'>; -} - -declare module 'lodash/forOwn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forOwn'>; -} - -declare module 'lodash/forOwnRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'forOwnRight'>; -} - -declare module 'lodash/functions' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'functions'>; -} - -declare module 'lodash/functionsIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'functionsIn'>; -} - -declare module 'lodash/get' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'get'>; -} - -declare module 'lodash/has' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'has'>; -} - -declare module 'lodash/hasIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'hasIn'>; -} - -declare module 'lodash/invert' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invert'>; -} - -declare module 'lodash/invertBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invertBy'>; -} - -declare module 'lodash/invoke' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'invoke'>; -} - -declare module 'lodash/keys' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'keys'>; -} - -declare module 'lodash/keysIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'keysIn'>; -} - -declare module 'lodash/mapKeys' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mapKeys'>; -} - -declare module 'lodash/mapValues' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mapValues'>; -} - -declare module 'lodash/merge' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'merge'>; -} - -declare module 'lodash/mergeWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mergeWith'>; -} - -declare module 'lodash/omit' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'omit'>; -} - -declare module 'lodash/omitBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'omitBy'>; -} - -declare module 'lodash/pick' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pick'>; -} - -declare module 'lodash/pickBy' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pickBy'>; -} - -declare module 'lodash/result' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'result'>; -} - -declare module 'lodash/set' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'set'>; -} - -declare module 'lodash/setWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'setWith'>; -} - -declare module 'lodash/toPairs' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPairs'>; -} - -declare module 'lodash/toPairsIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPairsIn'>; -} - -declare module 'lodash/transform' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'transform'>; -} - -declare module 'lodash/unset' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unset'>; -} - -declare module 'lodash/update' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'update'>; -} - -declare module 'lodash/updateWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'updateWith'>; -} - -declare module 'lodash/values' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'values'>; -} - -declare module 'lodash/valuesIn' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'valuesIn'>; -} - -declare module 'lodash/chain' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'chain'>; -} - -declare module 'lodash/tap' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'tap'>; -} - -declare module 'lodash/thru' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'thru'>; -} - -declare module 'lodash/camelCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'camelCase'>; -} - -declare module 'lodash/capitalize' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'capitalize'>; -} - -declare module 'lodash/deburr' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'deburr'>; -} - -declare module 'lodash/endsWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'endsWith'>; -} - -declare module 'lodash/escape' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'escape'>; -} - -declare module 'lodash/escapeRegExp' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'escapeRegExp'>; -} - -declare module 'lodash/kebabCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'kebabCase'>; -} - -declare module 'lodash/lowerCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lowerCase'>; -} - -declare module 'lodash/lowerFirst' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'lowerFirst'>; -} - -declare module 'lodash/pad' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'pad'>; -} - -declare module 'lodash/padEnd' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'padEnd'>; -} - -declare module 'lodash/padStart' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'padStart'>; -} - -declare module 'lodash/parseInt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'parseInt'>; -} - -declare module 'lodash/repeat' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'repeat'>; -} - -declare module 'lodash/replace' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'replace'>; -} - -declare module 'lodash/snakeCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'snakeCase'>; -} - -declare module 'lodash/split' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'split'>; -} - -declare module 'lodash/startCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'startCase'>; -} - -declare module 'lodash/startsWith' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'startsWith'>; -} - -declare module 'lodash/template' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'template'>; -} - -declare module 'lodash/toLower' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toLower'>; -} - -declare module 'lodash/toUpper' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toUpper'>; -} - -declare module 'lodash/trim' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'trim'>; -} - -declare module 'lodash/trimEnd' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'trimEnd'>; -} - -declare module 'lodash/trimStart' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'trimStart'>; -} - -declare module 'lodash/truncate' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'truncate'>; -} - -declare module 'lodash/unescape' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'unescape'>; -} - -declare module 'lodash/upperCase' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'upperCase'>; -} - -declare module 'lodash/upperFirst' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'upperFirst'>; -} - -declare module 'lodash/words' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'words'>; -} - -declare module 'lodash/attempt' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'attempt'>; -} - -declare module 'lodash/bindAll' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'bindAll'>; -} - -declare module 'lodash/cond' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'cond'>; -} - -declare module 'lodash/conforms' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'conforms'>; -} - -declare module 'lodash/constant' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'constant'>; -} - -declare module 'lodash/defaultTo' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'defaultTo'>; -} - -declare module 'lodash/flow' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flow'>; -} - -declare module 'lodash/flowRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'flowRight'>; -} - -declare module 'lodash/identity' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'identity'>; -} - -declare module 'lodash/iteratee' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'iteratee'>; -} - -declare module 'lodash/matches' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'matches'>; -} - -declare module 'lodash/matchesProperty' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'matchesProperty'>; -} - -declare module 'lodash/method' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'method'>; -} - -declare module 'lodash/methodOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'methodOf'>; -} - -declare module 'lodash/mixin' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'mixin'>; -} - -declare module 'lodash/noConflict' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'noConflict'>; -} - -declare module 'lodash/noop' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'noop'>; -} - -declare module 'lodash/nthArg' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'nthArg'>; -} - -declare module 'lodash/over' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'over'>; -} - -declare module 'lodash/overEvery' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'overEvery'>; -} - -declare module 'lodash/overSome' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'overSome'>; -} - -declare module 'lodash/property' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'property'>; -} - -declare module 'lodash/propertyOf' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'propertyOf'>; -} - -declare module 'lodash/range' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'range'>; -} - -declare module 'lodash/rangeRight' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'rangeRight'>; -} - -declare module 'lodash/runInContext' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'runInContext'>; -} - -declare module 'lodash/stubArray' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubArray'>; -} - -declare module 'lodash/stubFalse' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubFalse'>; -} - -declare module 'lodash/stubObject' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubObject'>; -} - -declare module 'lodash/stubString' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubString'>; -} - -declare module 'lodash/stubTrue' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'stubTrue'>; -} - -declare module 'lodash/times' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'times'>; -} - -declare module 'lodash/toPath' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'toPath'>; -} - -declare module 'lodash/uniqueId' { - declare module.exports: $PropertyType<$Exports<'lodash'>, 'uniqueId'>; -} - -declare module 'lodash/fp/chunk' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'chunk'>; -} - -declare module 'lodash/fp/compact' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'compact'>; -} - -declare module 'lodash/fp/concat' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'concat'>; -} - -declare module 'lodash/fp/difference' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'difference'>; -} - -declare module 'lodash/fp/differenceBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'differenceBy'>; -} - -declare module 'lodash/fp/differenceWith' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'differenceWith', - >; -} - -declare module 'lodash/fp/drop' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'drop'>; -} - -declare module 'lodash/fp/dropLast' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropLast'>; -} - -declare module 'lodash/fp/dropRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropRight'>; -} - -declare module 'lodash/fp/dropRightWhile' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'dropRightWhile', - >; -} - -declare module 'lodash/fp/dropWhile' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropWhile'>; -} - -declare module 'lodash/fp/dropLastWhile' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dropLastWhile'>; -} - -declare module 'lodash/fp/fill' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'fill'>; -} - -declare module 'lodash/fp/findIndex' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findIndex'>; -} - -declare module 'lodash/fp/findIndexFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findIndexFrom'>; -} - -declare module 'lodash/fp/findLastIndex' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLastIndex'>; -} - -declare module 'lodash/fp/findLastIndexFrom' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'findLastIndexFrom', - >; -} - -declare module 'lodash/fp/first' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'first'>; -} - -declare module 'lodash/fp/flatten' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatten'>; -} - -declare module 'lodash/fp/unnest' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unnest'>; -} - -declare module 'lodash/fp/flattenDeep' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flattenDeep'>; -} - -declare module 'lodash/fp/flattenDepth' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flattenDepth'>; -} - -declare module 'lodash/fp/fromPairs' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'fromPairs'>; -} - -declare module 'lodash/fp/head' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'head'>; -} - -declare module 'lodash/fp/indexOf' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'indexOf'>; -} - -declare module 'lodash/fp/indexOfFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'indexOfFrom'>; -} - -declare module 'lodash/fp/initial' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'initial'>; -} - -declare module 'lodash/fp/init' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'init'>; -} - -declare module 'lodash/fp/intersection' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'intersection'>; -} - -declare module 'lodash/fp/intersectionBy' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'intersectionBy', - >; -} - -declare module 'lodash/fp/intersectionWith' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'intersectionWith', - >; -} - -declare module 'lodash/fp/join' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'join'>; -} - -declare module 'lodash/fp/last' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'last'>; -} - -declare module 'lodash/fp/lastIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lastIndexOf'>; -} - -declare module 'lodash/fp/lastIndexOfFrom' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'lastIndexOfFrom', - >; -} - -declare module 'lodash/fp/nth' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'nth'>; -} - -declare module 'lodash/fp/pull' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pull'>; -} - -declare module 'lodash/fp/pullAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAll'>; -} - -declare module 'lodash/fp/pullAllBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAllBy'>; -} - -declare module 'lodash/fp/pullAllWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAllWith'>; -} - -declare module 'lodash/fp/pullAt' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pullAt'>; -} - -declare module 'lodash/fp/remove' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'remove'>; -} - -declare module 'lodash/fp/reverse' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reverse'>; -} - -declare module 'lodash/fp/slice' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'slice'>; -} - -declare module 'lodash/fp/sortedIndex' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedIndex'>; -} - -declare module 'lodash/fp/sortedIndexBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedIndexBy'>; -} - -declare module 'lodash/fp/sortedIndexOf' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedIndexOf'>; -} - -declare module 'lodash/fp/sortedLastIndex' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'sortedLastIndex', - >; -} - -declare module 'lodash/fp/sortedLastIndexBy' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'sortedLastIndexBy', - >; -} - -declare module 'lodash/fp/sortedLastIndexOf' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'sortedLastIndexOf', - >; -} - -declare module 'lodash/fp/sortedUniq' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedUniq'>; -} - -declare module 'lodash/fp/sortedUniqBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortedUniqBy'>; -} - -declare module 'lodash/fp/tail' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'tail'>; -} - -declare module 'lodash/fp/take' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'take'>; -} - -declare module 'lodash/fp/takeRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeRight'>; -} - -declare module 'lodash/fp/takeLast' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeLast'>; -} - -declare module 'lodash/fp/takeRightWhile' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'takeRightWhile', - >; -} - -declare module 'lodash/fp/takeLastWhile' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeLastWhile'>; -} - -declare module 'lodash/fp/takeWhile' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'takeWhile'>; -} - -declare module 'lodash/fp/union' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'union'>; -} - -declare module 'lodash/fp/unionBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unionBy'>; -} - -declare module 'lodash/fp/unionWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unionWith'>; -} - -declare module 'lodash/fp/uniq' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniq'>; -} - -declare module 'lodash/fp/uniqBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniqBy'>; -} - -declare module 'lodash/fp/uniqWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniqWith'>; -} - -declare module 'lodash/fp/unzip' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unzip'>; -} - -declare module 'lodash/fp/unzipWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unzipWith'>; -} - -declare module 'lodash/fp/without' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'without'>; -} - -declare module 'lodash/fp/xor' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'xor'>; -} - -declare module 'lodash/fp/symmetricDifference' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'symmetricDifference', - >; -} - -declare module 'lodash/fp/xorBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'xorBy'>; -} - -declare module 'lodash/fp/symmetricDifferenceBy' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'symmetricDifferenceBy', - >; -} - -declare module 'lodash/fp/xorWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'xorWith'>; -} - -declare module 'lodash/fp/symmetricDifferenceWith' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'symmetricDifferenceWith', - >; -} - -declare module 'lodash/fp/zip' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zip'>; -} - -declare module 'lodash/fp/zipAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipAll'>; -} - -declare module 'lodash/fp/zipObject' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipObject'>; -} - -declare module 'lodash/fp/zipObj' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipObj'>; -} - -declare module 'lodash/fp/zipObjectDeep' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipObjectDeep'>; -} - -declare module 'lodash/fp/zipWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'zipWith'>; -} - -declare module 'lodash/fp/countBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'countBy'>; -} - -declare module 'lodash/fp/each' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'each'>; -} - -declare module 'lodash/fp/eachRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'eachRight'>; -} - -declare module 'lodash/fp/every' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'every'>; -} - -declare module 'lodash/fp/all' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'all'>; -} - -declare module 'lodash/fp/filter' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'filter'>; -} - -declare module 'lodash/fp/find' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'find'>; -} - -declare module 'lodash/fp/findFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findFrom'>; -} - -declare module 'lodash/fp/findLast' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLast'>; -} - -declare module 'lodash/fp/findLastFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLastFrom'>; -} - -declare module 'lodash/fp/flatMap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatMap'>; -} - -declare module 'lodash/fp/flatMapDeep' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatMapDeep'>; -} - -declare module 'lodash/fp/flatMapDepth' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flatMapDepth'>; -} - -declare module 'lodash/fp/forEach' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forEach'>; -} - -declare module 'lodash/fp/forEachRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forEachRight'>; -} - -declare module 'lodash/fp/groupBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'groupBy'>; -} - -declare module 'lodash/fp/includes' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'includes'>; -} - -declare module 'lodash/fp/contains' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'contains'>; -} - -declare module 'lodash/fp/includesFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'includesFrom'>; -} - -declare module 'lodash/fp/invokeMap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invokeMap'>; -} - -declare module 'lodash/fp/invokeArgsMap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invokeArgsMap'>; -} - -declare module 'lodash/fp/keyBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'keyBy'>; -} - -declare module 'lodash/fp/indexBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'indexBy'>; -} - -declare module 'lodash/fp/map' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'map'>; -} - -declare module 'lodash/fp/pluck' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pluck'>; -} - -declare module 'lodash/fp/orderBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'orderBy'>; -} - -declare module 'lodash/fp/partition' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'partition'>; -} - -declare module 'lodash/fp/reduce' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reduce'>; -} - -declare module 'lodash/fp/reduceRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reduceRight'>; -} - -declare module 'lodash/fp/reject' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'reject'>; -} - -declare module 'lodash/fp/sample' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sample'>; -} - -declare module 'lodash/fp/sampleSize' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sampleSize'>; -} - -declare module 'lodash/fp/shuffle' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'shuffle'>; -} - -declare module 'lodash/fp/size' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'size'>; -} - -declare module 'lodash/fp/some' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'some'>; -} - -declare module 'lodash/fp/any' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'any'>; -} - -declare module 'lodash/fp/sortBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sortBy'>; -} - -declare module 'lodash/fp/now' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'now'>; -} - -declare module 'lodash/fp/after' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'after'>; -} - -declare module 'lodash/fp/ary' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'ary'>; -} - -declare module 'lodash/fp/nAry' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'nAry'>; -} - -declare module 'lodash/fp/before' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'before'>; -} - -declare module 'lodash/fp/bind' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'bind'>; -} - -declare module 'lodash/fp/bindKey' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'bindKey'>; -} - -declare module 'lodash/fp/curry' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curry'>; -} - -declare module 'lodash/fp/curryN' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curryN'>; -} - -declare module 'lodash/fp/curryRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curryRight'>; -} - -declare module 'lodash/fp/curryRightN' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'curryRightN'>; -} - -declare module 'lodash/fp/debounce' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'debounce'>; -} - -declare module 'lodash/fp/defer' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defer'>; -} - -declare module 'lodash/fp/delay' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'delay'>; -} - -declare module 'lodash/fp/flip' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flip'>; -} - -declare module 'lodash/fp/memoize' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'memoize'>; -} - -declare module 'lodash/fp/negate' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'negate'>; -} - -declare module 'lodash/fp/complement' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'complement'>; -} - -declare module 'lodash/fp/once' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'once'>; -} - -declare module 'lodash/fp/overArgs' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'overArgs'>; -} - -declare module 'lodash/fp/useWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'useWith'>; -} - -declare module 'lodash/fp/partial' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'partial'>; -} - -declare module 'lodash/fp/partialRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'partialRight'>; -} - -declare module 'lodash/fp/rearg' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rearg'>; -} - -declare module 'lodash/fp/rest' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rest'>; -} - -declare module 'lodash/fp/unapply' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unapply'>; -} - -declare module 'lodash/fp/restFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'restFrom'>; -} - -declare module 'lodash/fp/spread' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'spread'>; -} - -declare module 'lodash/fp/apply' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'apply'>; -} - -declare module 'lodash/fp/spreadFrom' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'spreadFrom'>; -} - -declare module 'lodash/fp/throttle' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'throttle'>; -} - -declare module 'lodash/fp/unary' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unary'>; -} - -declare module 'lodash/fp/wrap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'wrap'>; -} - -declare module 'lodash/fp/castArray' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'castArray'>; -} - -declare module 'lodash/fp/clone' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'clone'>; -} - -declare module 'lodash/fp/cloneDeep' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cloneDeep'>; -} - -declare module 'lodash/fp/cloneDeepWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cloneDeepWith'>; -} - -declare module 'lodash/fp/cloneWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cloneWith'>; -} - -declare module 'lodash/fp/conformsTo' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'conformsTo'>; -} - -declare module 'lodash/fp/where' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'where'>; -} - -declare module 'lodash/fp/conforms' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'conforms'>; -} - -declare module 'lodash/fp/eq' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'eq'>; -} - -declare module 'lodash/fp/identical' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'identical'>; -} - -declare module 'lodash/fp/gt' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'gt'>; -} - -declare module 'lodash/fp/gte' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'gte'>; -} - -declare module 'lodash/fp/isArguments' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArguments'>; -} - -declare module 'lodash/fp/isArray' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArray'>; -} - -declare module 'lodash/fp/isArrayBuffer' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArrayBuffer'>; -} - -declare module 'lodash/fp/isArrayLike' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isArrayLike'>; -} - -declare module 'lodash/fp/isArrayLikeObject' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'isArrayLikeObject', - >; -} - -declare module 'lodash/fp/isBoolean' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isBoolean'>; -} - -declare module 'lodash/fp/isBuffer' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isBuffer'>; -} - -declare module 'lodash/fp/isDate' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isDate'>; -} - -declare module 'lodash/fp/isElement' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isElement'>; -} - -declare module 'lodash/fp/isEmpty' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isEmpty'>; -} - -declare module 'lodash/fp/isEqual' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isEqual'>; -} - -declare module 'lodash/fp/equals' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'equals'>; -} - -declare module 'lodash/fp/isEqualWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isEqualWith'>; -} - -declare module 'lodash/fp/isError' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isError'>; -} - -declare module 'lodash/fp/isFinite' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isFinite'>; -} - -declare module 'lodash/fp/isFunction' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isFunction'>; -} - -declare module 'lodash/fp/isInteger' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isInteger'>; -} - -declare module 'lodash/fp/isLength' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isLength'>; -} - -declare module 'lodash/fp/isMap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isMap'>; -} - -declare module 'lodash/fp/isMatch' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isMatch'>; -} - -declare module 'lodash/fp/whereEq' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'whereEq'>; -} - -declare module 'lodash/fp/isMatchWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isMatchWith'>; -} - -declare module 'lodash/fp/isNaN' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNaN'>; -} - -declare module 'lodash/fp/isNative' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNative'>; -} - -declare module 'lodash/fp/isNil' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNil'>; -} - -declare module 'lodash/fp/isNull' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNull'>; -} - -declare module 'lodash/fp/isNumber' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isNumber'>; -} - -declare module 'lodash/fp/isObject' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isObject'>; -} - -declare module 'lodash/fp/isObjectLike' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isObjectLike'>; -} - -declare module 'lodash/fp/isPlainObject' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isPlainObject'>; -} - -declare module 'lodash/fp/isRegExp' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isRegExp'>; -} - -declare module 'lodash/fp/isSafeInteger' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isSafeInteger'>; -} - -declare module 'lodash/fp/isSet' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isSet'>; -} - -declare module 'lodash/fp/isString' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isString'>; -} - -declare module 'lodash/fp/isSymbol' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isSymbol'>; -} - -declare module 'lodash/fp/isTypedArray' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isTypedArray'>; -} - -declare module 'lodash/fp/isUndefined' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isUndefined'>; -} - -declare module 'lodash/fp/isWeakMap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isWeakMap'>; -} - -declare module 'lodash/fp/isWeakSet' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'isWeakSet'>; -} - -declare module 'lodash/fp/lt' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lt'>; -} - -declare module 'lodash/fp/lte' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lte'>; -} - -declare module 'lodash/fp/toArray' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toArray'>; -} - -declare module 'lodash/fp/toFinite' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toFinite'>; -} - -declare module 'lodash/fp/toInteger' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toInteger'>; -} - -declare module 'lodash/fp/toLength' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toLength'>; -} - -declare module 'lodash/fp/toNumber' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toNumber'>; -} - -declare module 'lodash/fp/toPlainObject' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPlainObject'>; -} - -declare module 'lodash/fp/toSafeInteger' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toSafeInteger'>; -} - -declare module 'lodash/fp/toString' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toString'>; -} - -declare module 'lodash/fp/add' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'add'>; -} - -declare module 'lodash/fp/ceil' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'ceil'>; -} - -declare module 'lodash/fp/divide' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'divide'>; -} - -declare module 'lodash/fp/floor' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'floor'>; -} - -declare module 'lodash/fp/max' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'max'>; -} - -declare module 'lodash/fp/maxBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'maxBy'>; -} - -declare module 'lodash/fp/mean' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mean'>; -} - -declare module 'lodash/fp/meanBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'meanBy'>; -} - -declare module 'lodash/fp/min' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'min'>; -} - -declare module 'lodash/fp/minBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'minBy'>; -} - -declare module 'lodash/fp/multiply' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'multiply'>; -} - -declare module 'lodash/fp/round' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'round'>; -} - -declare module 'lodash/fp/subtract' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'subtract'>; -} - -declare module 'lodash/fp/sum' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sum'>; -} - -declare module 'lodash/fp/sumBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'sumBy'>; -} - -declare module 'lodash/fp/clamp' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'clamp'>; -} - -declare module 'lodash/fp/inRange' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'inRange'>; -} - -declare module 'lodash/fp/random' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'random'>; -} - -declare module 'lodash/fp/assign' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assign'>; -} - -declare module 'lodash/fp/assignAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignAll'>; -} - -declare module 'lodash/fp/assignInAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignInAll'>; -} - -declare module 'lodash/fp/extendAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extendAll'>; -} - -declare module 'lodash/fp/assignIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignIn'>; -} - -declare module 'lodash/fp/assignInWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignInWith'>; -} - -declare module 'lodash/fp/assignWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignWith'>; -} - -declare module 'lodash/fp/assignInAllWith' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'assignInAllWith', - >; -} - -declare module 'lodash/fp/extendAllWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extendAllWith'>; -} - -declare module 'lodash/fp/assignAllWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assignAllWith'>; -} - -declare module 'lodash/fp/at' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'at'>; -} - -declare module 'lodash/fp/props' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'props'>; -} - -declare module 'lodash/fp/paths' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'paths'>; -} - -declare module 'lodash/fp/create' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'create'>; -} - -declare module 'lodash/fp/defaults' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaults'>; -} - -declare module 'lodash/fp/defaultsAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaultsAll'>; -} - -declare module 'lodash/fp/defaultsDeep' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaultsDeep'>; -} - -declare module 'lodash/fp/defaultsDeepAll' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'defaultsDeepAll', - >; -} - -declare module 'lodash/fp/entries' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'entries'>; -} - -declare module 'lodash/fp/entriesIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'entriesIn'>; -} - -declare module 'lodash/fp/extend' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extend'>; -} - -declare module 'lodash/fp/extendWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'extendWith'>; -} - -declare module 'lodash/fp/findKey' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findKey'>; -} - -declare module 'lodash/fp/findLastKey' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'findLastKey'>; -} - -declare module 'lodash/fp/forIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forIn'>; -} - -declare module 'lodash/fp/forInRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forInRight'>; -} - -declare module 'lodash/fp/forOwn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forOwn'>; -} - -declare module 'lodash/fp/forOwnRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'forOwnRight'>; -} - -declare module 'lodash/fp/functions' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'functions'>; -} - -declare module 'lodash/fp/functionsIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'functionsIn'>; -} - -declare module 'lodash/fp/get' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'get'>; -} - -declare module 'lodash/fp/prop' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'prop'>; -} - -declare module 'lodash/fp/path' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'path'>; -} - -declare module 'lodash/fp/getOr' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'getOr'>; -} - -declare module 'lodash/fp/propOr' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'propOr'>; -} - -declare module 'lodash/fp/pathOr' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pathOr'>; -} - -declare module 'lodash/fp/has' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'has'>; -} - -declare module 'lodash/fp/hasIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'hasIn'>; -} - -declare module 'lodash/fp/invert' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invert'>; -} - -declare module 'lodash/fp/invertObj' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invertObj'>; -} - -declare module 'lodash/fp/invertBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invertBy'>; -} - -declare module 'lodash/fp/invoke' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invoke'>; -} - -declare module 'lodash/fp/invokeArgs' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'invokeArgs'>; -} - -declare module 'lodash/fp/keys' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'keys'>; -} - -declare module 'lodash/fp/keysIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'keysIn'>; -} - -declare module 'lodash/fp/mapKeys' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mapKeys'>; -} - -declare module 'lodash/fp/mapValues' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mapValues'>; -} - -declare module 'lodash/fp/merge' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'merge'>; -} - -declare module 'lodash/fp/mergeAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mergeAll'>; -} - -declare module 'lodash/fp/mergeWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mergeWith'>; -} - -declare module 'lodash/fp/mergeAllWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mergeAllWith'>; -} - -declare module 'lodash/fp/omit' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'omit'>; -} - -declare module 'lodash/fp/omitAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'omitAll'>; -} - -declare module 'lodash/fp/omitBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'omitBy'>; -} - -declare module 'lodash/fp/pick' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pick'>; -} - -declare module 'lodash/fp/pickAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pickAll'>; -} - -declare module 'lodash/fp/pickBy' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pickBy'>; -} - -declare module 'lodash/fp/result' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'result'>; -} - -declare module 'lodash/fp/set' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'set'>; -} - -declare module 'lodash/fp/assoc' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assoc'>; -} - -declare module 'lodash/fp/assocPath' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'assocPath'>; -} - -declare module 'lodash/fp/setWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'setWith'>; -} - -declare module 'lodash/fp/toPairs' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPairs'>; -} - -declare module 'lodash/fp/toPairsIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPairsIn'>; -} - -declare module 'lodash/fp/transform' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'transform'>; -} - -declare module 'lodash/fp/unset' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unset'>; -} - -declare module 'lodash/fp/dissoc' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dissoc'>; -} - -declare module 'lodash/fp/dissocPath' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'dissocPath'>; -} - -declare module 'lodash/fp/update' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'update'>; -} - -declare module 'lodash/fp/updateWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'updateWith'>; -} - -declare module 'lodash/fp/values' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'values'>; -} - -declare module 'lodash/fp/valuesIn' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'valuesIn'>; -} - -declare module 'lodash/fp/tap' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'tap'>; -} - -declare module 'lodash/fp/thru' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'thru'>; -} - -declare module 'lodash/fp/camelCase' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'camelCase'>; -} - -declare module 'lodash/fp/capitalize' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'capitalize'>; -} - -declare module 'lodash/fp/deburr' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'deburr'>; -} - -declare module 'lodash/fp/endsWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'endsWith'>; -} - -declare module 'lodash/fp/escape' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'escape'>; -} - -declare module 'lodash/fp/escapeRegExp' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'escapeRegExp'>; -} - -declare module 'lodash/fp/kebabCase' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'kebabCase'>; -} - -declare module 'lodash/fp/lowerCase' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lowerCase'>; -} - -declare module 'lodash/fp/lowerFirst' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'lowerFirst'>; -} - -declare module 'lodash/fp/pad' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pad'>; -} - -declare module 'lodash/fp/padChars' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padChars'>; -} - -declare module 'lodash/fp/padEnd' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padEnd'>; -} - -declare module 'lodash/fp/padCharsEnd' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padCharsEnd'>; -} - -declare module 'lodash/fp/padStart' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padStart'>; -} - -declare module 'lodash/fp/padCharsStart' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'padCharsStart'>; -} - -declare module 'lodash/fp/parseInt' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'parseInt'>; -} - -declare module 'lodash/fp/repeat' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'repeat'>; -} - -declare module 'lodash/fp/replace' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'replace'>; -} - -declare module 'lodash/fp/snakeCase' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'snakeCase'>; -} - -declare module 'lodash/fp/split' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'split'>; -} - -declare module 'lodash/fp/startCase' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'startCase'>; -} - -declare module 'lodash/fp/startsWith' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'startsWith'>; -} - -declare module 'lodash/fp/template' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'template'>; -} - -declare module 'lodash/fp/toLower' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toLower'>; -} - -declare module 'lodash/fp/toUpper' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toUpper'>; -} - -declare module 'lodash/fp/trim' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trim'>; -} - -declare module 'lodash/fp/trimChars' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimChars'>; -} - -declare module 'lodash/fp/trimEnd' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimEnd'>; -} - -declare module 'lodash/fp/trimCharsEnd' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimCharsEnd'>; -} - -declare module 'lodash/fp/trimStart' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'trimStart'>; -} - -declare module 'lodash/fp/trimCharsStart' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'trimCharsStart', - >; -} - -declare module 'lodash/fp/truncate' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'truncate'>; -} - -declare module 'lodash/fp/unescape' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'unescape'>; -} - -declare module 'lodash/fp/upperCase' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'upperCase'>; -} - -declare module 'lodash/fp/upperFirst' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'upperFirst'>; -} - -declare module 'lodash/fp/words' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'words'>; -} - -declare module 'lodash/fp/attempt' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'attempt'>; -} - -declare module 'lodash/fp/bindAll' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'bindAll'>; -} - -declare module 'lodash/fp/cond' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'cond'>; -} - -declare module 'lodash/fp/constant' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'constant'>; -} - -declare module 'lodash/fp/always' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'always'>; -} - -declare module 'lodash/fp/defaultTo' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'defaultTo'>; -} - -declare module 'lodash/fp/flow' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flow'>; -} - -declare module 'lodash/fp/pipe' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pipe'>; -} - -declare module 'lodash/fp/flowRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'flowRight'>; -} - -declare module 'lodash/fp/compose' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'compose'>; -} - -declare module 'lodash/fp/identity' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'identity'>; -} - -declare module 'lodash/fp/iteratee' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'iteratee'>; -} - -declare module 'lodash/fp/matches' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'matches'>; -} - -declare module 'lodash/fp/matchesProperty' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'matchesProperty', - >; -} - -declare module 'lodash/fp/propEq' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'propEq'>; -} - -declare module 'lodash/fp/pathEq' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'pathEq'>; -} - -declare module 'lodash/fp/method' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'method'>; -} - -declare module 'lodash/fp/methodOf' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'methodOf'>; -} - -declare module 'lodash/fp/mixin' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'mixin'>; -} - -declare module 'lodash/fp/noConflict' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'noConflict'>; -} - -declare module 'lodash/fp/noop' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'noop'>; -} - -declare module 'lodash/fp/nthArg' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'nthArg'>; -} - -declare module 'lodash/fp/over' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'over'>; -} - -declare module 'lodash/fp/juxt' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'juxt'>; -} - -declare module 'lodash/fp/overEvery' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'overEvery'>; -} - -declare module 'lodash/fp/allPass' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'allPass'>; -} - -declare module 'lodash/fp/overSome' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'overSome'>; -} - -declare module 'lodash/fp/anyPass' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'anyPass'>; -} - -declare module 'lodash/fp/property' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'property'>; -} - -declare module 'lodash/fp/propertyOf' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'propertyOf'>; -} - -declare module 'lodash/fp/range' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'range'>; -} - -declare module 'lodash/fp/rangeStep' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rangeStep'>; -} - -declare module 'lodash/fp/rangeRight' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'rangeRight'>; -} - -declare module 'lodash/fp/rangeStepRight' { - declare module.exports: $PropertyType< - $Exports<'lodash/fp'>, - 'rangeStepRight', - >; -} - -declare module 'lodash/fp/runInContext' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'runInContext'>; -} - -declare module 'lodash/fp/stubArray' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubArray'>; -} - -declare module 'lodash/fp/stubFalse' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubFalse'>; -} - -declare module 'lodash/fp/F' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'F'>; -} - -declare module 'lodash/fp/stubObject' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubObject'>; -} - -declare module 'lodash/fp/stubString' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubString'>; -} - -declare module 'lodash/fp/stubTrue' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'stubTrue'>; -} - -declare module 'lodash/fp/T' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'T'>; -} - -declare module 'lodash/fp/times' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'times'>; -} - -declare module 'lodash/fp/toPath' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'toPath'>; -} - -declare module 'lodash/fp/uniqueId' { - declare module.exports: $PropertyType<$Exports<'lodash/fp'>, 'uniqueId'>; -} diff --git a/package.json b/package.json index cedc04f1414a..145f7c474ba6 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,6 @@ "website-1.x" ], "scripts": { - "build": "lerna run --parallel build --no-private", - "build:clean": "lerna run --parallel build:clean --no-private", - "build:watch": "lerna run --parallel build:watch --no-private", - "flow": "flow", - "flow-typed": "flow-typed", - "install": "yarn run build", "prettier": "prettier --config .prettierrc --write \"**/*.js\"", "prettier:diff": "prettier --config .prettierrc --list-different \"**/*.js\"", "lint": "eslint --cache \"**/*.js\"", @@ -20,7 +14,6 @@ }, "devDependencies": { "@babel/core": "^7.4.4", - "@babel/preset-flow": "^7.0.0", "babel-eslint": "8", "enzyme": "^3.9.0", "enzyme-adapter-react-16": "^1.12.1", @@ -33,9 +26,6 @@ "eslint-plugin-react": "^7.11.1", "eslint-plugin-react-hooks": "^0.0.0", "filepath": "^1.1.0", - "flow-bin": "^0.98.1", - "flow-remove-types": "^1.2.3", - "flow-typed": "^2.5.1", "front-matter": "^2.3.0", "glob-promise": "^3.3.0", "husky": "^1.3.1", diff --git a/packages/docusaurus-utils/.npmignore b/packages/docusaurus-utils/.npmignore deleted file mode 100644 index 85de9cf93344..000000000000 --- a/packages/docusaurus-utils/.npmignore +++ /dev/null @@ -1 +0,0 @@ -src diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index 9413fae05381..feebe1f42de9 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -2,17 +2,10 @@ "name": "@docusaurus/utils", "version": "2.0.0-alpha.13", "description": "Node utility functions for Docusaurus packages", - "main": "lib/index.js", + "main": "src/index.js", "publishConfig": { "access": "public" }, - "scripts": { - "prepublish": "yarn run build", - "build": "yarn run build:clean && yarn run build:lib", - "build:clean": "rimraf lib", - "build:lib": "flow-remove-types -q -x '.js,.css,.ejs' src --out-dir lib --ignore '/__tests__/'", - "build:watch": "watch \"yarn build\" src" - }, "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5", diff --git a/packages/docusaurus-utils/src/index.js b/packages/docusaurus-utils/src/index.js index d0e80eab4327..e512cd668b45 100644 --- a/packages/docusaurus-utils/src/index.js +++ b/packages/docusaurus-utils/src/index.js @@ -5,8 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -/* @flow */ - const path = require('path'); const fm = require('front-matter'); const {createHash} = require('crypto'); @@ -16,11 +14,13 @@ const escapeStringRegexp = require('escape-string-regexp'); const fs = require('fs-extra'); const fileHash = new Map(); -async function generate( - generatedFilesDir: string, - file: string, - content: any, -): Promise { +/** + * @param {string} generatedFilesDir + * @param {string} file + * @param {*} content + * @returns {Promise} + */ +async function generate(generatedFilesDir, file, content) { const filepath = path.join(generatedFilesDir, file); const lastHash = fileHash.get(filepath); const currentHash = createHash('md5') @@ -37,14 +37,22 @@ async function generate( const indexRE = /(^|.*\/)index\.(md|js)$/i; const extRE = /\.(md|js)$/; -function fileToPath(file: string): string { +/** + * @param {string} file + * @returns {string} + */ +function fileToPath(file) { if (indexRE.test(file)) { return file.replace(indexRE, '/$1'); } return `/${file.replace(extRE, '').replace(/\\/g, '/')}`; } -function encodePath(userpath: string): string { +/** + * @param {string} userpath + * @returns {string} + */ +function encodePath(userpath) { return userpath .split('/') .map(item => encodeURIComponent(item)) @@ -56,7 +64,7 @@ function encodePath(userpath: string): string { * @param {string} str input string * @returns {string} */ -function docuHash(str: string): string { +function docuHash(str) { if (str === '/') { return 'index'; } @@ -72,7 +80,7 @@ function docuHash(str: string): string { * @param {string} pagePath * @returns {string} unique react component name */ -function genComponentName(pagePath: string): string { +function genComponentName(pagePath) { if (pagePath === '/') { return 'index'; } @@ -89,7 +97,7 @@ function genComponentName(pagePath: string): string { * @param {string} str windows backslash paths * @returns {string} posix-style path */ -function posixPath(str: string): string { +function posixPath(str) { const isExtendedLengthPath = /^\\\\\?\\/.test(str); const hasNonAscii = /[^\u0000-\u0080]+/.test(str); // eslint-disable-line @@ -100,11 +108,14 @@ function posixPath(str: string): string { } const chunkNameCache = new Map(); -function genChunkName( - modulePath: string, - prefix?: string, - preferredName?: string, -): string { +/** + * Generate unique chunk name given a module path + * @param {string} modulePath + * @param {string=} prefix + * @param {string=} preferredName + * @returns {string} + */ +function genChunkName(modulePath, prefix, preferredName) { let chunkName = chunkNameCache.get(modulePath); if (!chunkName) { let str = modulePath; @@ -121,8 +132,12 @@ function genChunkName( } return chunkName; } - -function idx(target?: {}, keyPaths: string | string[]): any { +/** + * @param {*} target + * @param {string|string[]} keyPaths + * @returns {*} + */ +function idx(target, keyPaths) { return ( target && (Array.isArray(keyPaths) @@ -131,7 +146,12 @@ function idx(target?: {}, keyPaths: string | string[]): any { ); } -function getSubFolder(file: string, refDir: string): ?string { +/** + * @param {string} file + * @param {string} refDir + * @returns {string} + */ +function getSubFolder(file, refDir) { const separator = escapeStringRegexp(path.sep); const baseDir = escapeStringRegexp(path.basename(refDir)); const regexSubFolder = new RegExp( @@ -141,7 +161,11 @@ function getSubFolder(file: string, refDir: string): ?string { return match && match[1]; } -function parse(fileString: string): {} { +/** + * @param {string} fileString + * @returns {*} + */ +function parse(fileString) { if (!fm.test(fileString)) { return {metadata: null, content: fileString}; } @@ -150,7 +174,11 @@ function parse(fileString: string): {} { return {metadata, content}; } -function normalizeUrl(rawUrls: string[]): string { +/** + * @param {string[]} rawUrls + * @returns {string} + */ +function normalizeUrl(rawUrls) { const urls = rawUrls; const resultArray = []; diff --git a/packages/docusaurus/.npmignore b/packages/docusaurus/.npmignore deleted file mode 100644 index 85de9cf93344..000000000000 --- a/packages/docusaurus/.npmignore +++ /dev/null @@ -1 +0,0 @@ -src diff --git a/packages/docusaurus/bin/docusaurus.js b/packages/docusaurus/bin/docusaurus.js index 7bf8ea37a940..a8159fa5db6b 100755 --- a/packages/docusaurus/bin/docusaurus.js +++ b/packages/docusaurus/bin/docusaurus.js @@ -12,7 +12,7 @@ const envinfo = require('envinfo'); const semver = require('semver'); const path = require('path'); const program = require('commander'); -const {build, swizzle, init, deploy, start} = require('../lib'); +const {build, swizzle, init, deploy, start} = require('../src'); const requiredVersion = require('../package.json').engines.node; if (!semver.satisfies(process.version, requiredVersion)) { diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index fbddfcdf93b2..756d22ab6dbc 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -23,12 +23,7 @@ "docusaurus": "bin/docusaurus.js" }, "scripts": { - "docusaurus": "node bin/docusaurus", - "prepublish": "yarn run build", - "build": "yarn run build:clean && yarn run build:lib", - "build:clean": "rimraf lib", - "build:lib": "flow-remove-types -q -x '.js,.css,.ejs' src --out-dir lib --ignore '/__tests__/'", - "build:watch": "watch \"yarn build\" src" + "docusaurus": "node bin/docusaurus" }, "bugs": { "url": "https://github.com/facebook/Docusaurus/issues" diff --git a/packages/docusaurus/src/server/load/theme.js b/packages/docusaurus/src/server/load/theme.js index 569504c215e7..5c2408373f3d 100644 --- a/packages/docusaurus/src/server/load/theme.js +++ b/packages/docusaurus/src/server/load/theme.js @@ -5,14 +5,12 @@ * LICENSE file in the root directory of this source tree. */ -/* @flow */ - const globby = require('globby'); const fs = require('fs-extra'); const path = require('path'); const {fileToPath, posixPath, normalizeUrl} = require('@docusaurus/utils'); -module.exports = async function loadTheme(themePath: string) { +module.exports = async function loadTheme(themePath) { if (!fs.pathExistsSync(themePath)) { return null; } diff --git a/yarn.lock b/yarn.lock index f79a12a38410..100263355a92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -352,13 +352,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-flow@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" - integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" @@ -470,14 +463,6 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" - integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" - "@babel/plugin-transform-for-of@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" @@ -732,14 +717,6 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-flow@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" - integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/preset-react@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" @@ -1688,21 +1665,6 @@ once "^1.4.0" universal-user-agent "^2.0.1" -"@octokit/rest@^15.2.6": - version "15.18.1" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.18.1.tgz#ec7fb0f8775ef64dc095fae6635411d3fbff9b62" - integrity sha512-g2tecjp2TEtYV8bKAFvfQtu+W29HM7ektmWmw8zrMy9/XCKDEYRErR2YvvhN9+IxkLC4O3lDqYP4b6WgsL6Utw== - dependencies: - before-after-hook "^1.1.0" - btoa-lite "^1.0.0" - debug "^3.1.0" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.0" - lodash "^4.17.4" - node-fetch "^2.1.1" - universal-user-agent "^2.0.0" - url-template "^2.0.8" - "@octokit/rest@^16.16.0": version "16.25.3" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.3.tgz#ce9e7a6230d20d58574ec929f622f2778ead7eb4" @@ -2632,15 +2594,6 @@ babel-plugin-jest-hoist@^24.6.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - babel-preset-jest@^24.6.0: version "24.6.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" @@ -2649,20 +2602,12 @@ babel-preset-jest@^24.6.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.6.0" -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - babylon@7.0.0-beta.44: version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== -babylon@^6.15.0, babylon@^6.17.4: +babylon@^6.17.4: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== @@ -2712,7 +2657,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^1.1.0, before-after-hook@^1.4.0: +before-after-hook@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg== @@ -2727,11 +2672,6 @@ bfj@^6.1.1: hoopy "^0.1.2" tryer "^1.0.0" -big-integer@^1.6.17: - version "1.6.43" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.43.tgz#8ac15bf13e93e509500859061233e19d8d0d99d1" - integrity sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg== - big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -2795,14 +2735,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - bl@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" @@ -2828,11 +2760,6 @@ bluebird@^3.0.5, bluebird@^3.5.1, bluebird@^3.5.3: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= - bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -3054,21 +2981,11 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-indexof-polyfill@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz#a9fb806ce8145d5428510ce72f278bb363a638bf" - integrity sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8= - buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -3091,11 +3008,6 @@ buffer@^5.2.1: base64-js "^1.0.2" ieee754 "^1.1.4" -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -3256,11 +3168,6 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -3318,13 +3225,6 @@ ccount@^1.0.0, ccount@^1.0.3: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= - dependencies: - traverse ">=0.3.0 <0.4" - chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3399,11 +3299,6 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - check-types@^7.3.0: version "7.4.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" @@ -3578,15 +3473,6 @@ clipboard@^2.0.0: select "^1.1.2" tiny-emitter "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -3718,11 +3604,6 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" -colors@^1.1.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -4055,7 +3936,7 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= -core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7, core-js@^2.6.5: +core-js@^2.5.7, core-js@^2.6.5: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== @@ -4143,11 +4024,6 @@ crowdin-cli@^0.3.0: yamljs "^0.2.1" yargs "^2.3.0" -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -4429,7 +4305,7 @@ decamelize-keys@^1.0.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -4934,13 +4810,6 @@ download@^7.1.0: p-event "^2.1.0" pify "^3.0.0" -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -5964,40 +5833,6 @@ flatten@^1.0.2: resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= -flow-bin@^0.98.1: - version "0.98.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.98.1.tgz#a8d781621c91703df69928acc83c9777e2fcbb49" - integrity sha512-y1YzQgbFUX4EG6h2EO8PhyJeS0VxNgER8XsTwU8IXw4KozfneSmGVgw8y3TwAOza7rVhTlHEoli1xNuNW1rhPw== - -flow-remove-types@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/flow-remove-types/-/flow-remove-types-1.2.3.tgz#6131aefc7da43364bb8b479758c9dec7735d1a18" - integrity sha512-ypq/U3V+t9atYiOuSJd40tekCra03EHKoRsiK/wXGrsZimuum0kdwVY7Yv0HTaoXgHW1WiayomYd+Q3kkvPl9Q== - dependencies: - babylon "^6.15.0" - vlq "^0.2.1" - -flow-typed@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-2.5.1.tgz#0ff565cc94d2af8c557744ba364b6f14726a6b9f" - integrity sha1-D/VlzJTSr4xVd0S6NktvFHJqa58= - dependencies: - "@octokit/rest" "^15.2.6" - babel-polyfill "^6.26.0" - colors "^1.1.2" - fs-extra "^5.0.0" - glob "^7.1.2" - got "^7.1.0" - md5 "^2.1.0" - mkdirp "^0.5.1" - rimraf "^2.6.2" - semver "^5.5.0" - table "^4.0.2" - through "^2.3.8" - unzipper "^0.8.11" - which "^1.3.0" - yargs "^4.2.0" - flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -6147,7 +5982,7 @@ fsevents@^2.0.6: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.6.tgz#87b19df0bfb4a1a51d7ddb51b01b5f3bedb40c33" integrity sha512-vfmKZp3XPM36DNF0qhW+Cdxk7xm7gTEHY1clv1Xq1arwRQuKZgAhw+NZNWbJBtuaNxzNXwhfdPYRrvIbjfS33A== -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: +fstream@^1.0.0, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= @@ -6490,7 +6325,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -got@^7.0.0, got@^7.1.0: +got@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== @@ -7010,7 +6845,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1: +https-proxy-agent@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== @@ -7338,11 +7173,6 @@ invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -7429,7 +7259,7 @@ is-boolean-object@^1.0.0: resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= -is-buffer@^1.1.5, is-buffer@~1.1.1: +is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -8523,13 +8353,6 @@ lazy-cache@^2.0.2: dependencies: set-getter "^0.1.0" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -8641,11 +8464,6 @@ list-item@^1.1.1: is-number "^2.1.0" repeat-string "^1.5.2" -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= - listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -8766,11 +8584,6 @@ lodash._reinterpolate@~3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.assign@^4.0.3, lodash.assign@^4.0.6: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= - lodash.assignin@^4.0.9: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" @@ -9144,15 +8957,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -md5@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - mdast-squeeze-paragraphs@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.4.tgz#e27affcc8cc854842ff504ebb8f380e3c8e131f8" @@ -9617,7 +9421,7 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.1.1, node-fetch@^2.3.0: +node-fetch@^2.3.0: version "2.5.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" integrity sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw== @@ -10136,13 +9940,6 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - os-locale@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -11025,11 +10822,6 @@ private@^0.1.6: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" @@ -11634,19 +11426,6 @@ read@1, read@~1.0.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - integrity sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA= - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" @@ -11766,16 +11545,6 @@ regenerate@^1.2.1, regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regenerator-runtime@^0.13.2: version "0.13.2" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" @@ -12424,7 +12193,7 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5, setimmediate@~1.0.4: +setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -12961,7 +12730,7 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string_decoder@0.10, string_decoder@~0.10.x: +string_decoder@0.10: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= @@ -13193,7 +12962,7 @@ table@4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" -table@^4.0.2, table@^4.0.3: +table@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== @@ -13511,11 +13280,6 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= - tree-node-cli@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/tree-node-cli/-/tree-node-cli-1.2.5.tgz#afd75437976bbf2cc0c52b9949798e7530e8fd8c" @@ -13843,21 +13607,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzipper@^0.8.11: - version "0.8.14" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.8.14.tgz#ade0524cd2fc14d11b8de258be22f9d247d3f79b" - integrity sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "~1.0.10" - listenercount "~1.0.1" - readable-stream "~2.1.5" - setimmediate "~1.0.4" - upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" @@ -14045,11 +13794,6 @@ vfile@^3.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" -vlq@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== - vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -14324,11 +14068,6 @@ whet.extend@~0.9.9: resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -14348,11 +14087,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -window-size@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= - windows-release@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" @@ -14487,11 +14221,6 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -14523,14 +14252,6 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" - integrity sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ= - dependencies: - camelcase "^3.0.0" - lodash.assign "^4.0.6" - yargs@12.0.5, yargs@^12.0.1, yargs@^12.0.2: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -14556,26 +14277,6 @@ yargs@^2.3.0: dependencies: wordwrap "0.0.2" -yargs@^4.2.0: - version "4.8.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" - integrity sha1-wMQpJMpKqmsObaFznfshZDn53cA= - dependencies: - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - lodash.assign "^4.0.3" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.1" - which-module "^1.0.0" - window-size "^0.2.0" - y18n "^3.2.1" - yargs-parser "^2.4.1" - yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 4eae2874329ec3b61dd938ca0c5704ee1a6a3b98 Mon Sep 17 00:00:00 2001 From: Endi Date: Thu, 9 May 2019 20:01:48 +0700 Subject: [PATCH 15/60] chore(v2): tweak eslint config (#1445) --- .eslintrc.js | 10 +++++++--- packages/docusaurus/src/client/App.js | 8 ++++---- packages/docusaurus/src/client/clientEntry.js | 2 +- packages/docusaurus/src/client/docusaurus.js | 2 +- packages/docusaurus/src/client/serverEntry.js | 2 +- .../src/client/theme-fallback/Layout/index.js | 4 ++-- website/pages/index.js | 5 +++++ 7 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 9b5f97010824..251595e0b768 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -25,7 +25,11 @@ module.exports = { rules: { 'class-methods-use-this': OFF, // It's a way of allowing private variables. 'func-names': OFF, - 'import/no-unresolved': WARNING, // Because it couldn't resolve webpack alias. + // Ignore certain webpack alias because it can't be resolved + 'import/no-unresolved': [ + ERROR, + {ignore: ['^@theme', '^@docusaurus', '^@generated']}, + ], 'header/header': [ ERROR, 'block', @@ -42,8 +46,8 @@ module.exports = { ' ', ], ], - 'jsx-a11y/click-events-have-key-events': OFF, // Revisit in future™ - 'jsx-a11y/no-noninteractive-element-interactions': OFF, // Revisit in future™ + 'jsx-a11y/click-events-have-key-events': WARNING, + 'jsx-a11y/no-noninteractive-element-interactions': WARNING, 'no-console': OFF, 'no-underscore-dangle': OFF, 'react/jsx-closing-bracket-location': OFF, // Conflicts with Prettier. diff --git a/packages/docusaurus/src/client/App.js b/packages/docusaurus/src/client/App.js index 7d41a2c33874..f16ccb474bf1 100644 --- a/packages/docusaurus/src/client/App.js +++ b/packages/docusaurus/src/client/App.js @@ -8,10 +8,10 @@ import React from 'react'; import {renderRoutes} from 'react-router-config'; -import Head from '@docusaurus/Head'; // eslint-disable-line -import routes from '@generated/routes'; // eslint-disable-line -import siteConfig from '@generated/docusaurus.config'; //eslint-disable-line -import DocusaurusContext from '@docusaurus/context'; // eslint-disable-line +import Head from '@docusaurus/Head'; +import routes from '@generated/routes'; +import siteConfig from '@generated/docusaurus.config'; +import DocusaurusContext from '@docusaurus/context'; import PendingNavigation from './PendingNavigation'; function App() { diff --git a/packages/docusaurus/src/client/clientEntry.js b/packages/docusaurus/src/client/clientEntry.js index 967aec9e650e..28fc5408c6a2 100644 --- a/packages/docusaurus/src/client/clientEntry.js +++ b/packages/docusaurus/src/client/clientEntry.js @@ -9,10 +9,10 @@ import React from 'react'; import {hydrate, render} from 'react-dom'; import {BrowserRouter} from 'react-router-dom'; +import routes from '@generated/routes'; import App from './App'; import preload from './preload'; import docusaurus from './docusaurus'; -import routes from '@generated/routes'; // eslint-disable-line // Client-side render (e.g: running in browser) to become single-page application (SPA). if (typeof window !== 'undefined' && typeof document !== 'undefined') { diff --git a/packages/docusaurus/src/client/docusaurus.js b/packages/docusaurus/src/client/docusaurus.js index cc4a91712896..5497872d639b 100644 --- a/packages/docusaurus/src/client/docusaurus.js +++ b/packages/docusaurus/src/client/docusaurus.js @@ -6,7 +6,7 @@ */ import {matchRoutes} from 'react-router-config'; import routesChunkNames from '@generated/routesChunkNames'; -import routes from '@generated/routes'; // eslint-disable-line +import routes from '@generated/routes'; import prefetchHelper from './prefetch'; import preloadHelper from './preload'; import flat from './flat'; diff --git a/packages/docusaurus/src/client/serverEntry.js b/packages/docusaurus/src/client/serverEntry.js index a60c6cd38fb2..ae5304a7cabe 100644 --- a/packages/docusaurus/src/client/serverEntry.js +++ b/packages/docusaurus/src/client/serverEntry.js @@ -15,7 +15,7 @@ import Loadable from 'react-loadable'; import path from 'path'; import fs from 'fs'; -import routes from '@generated/routes'; // eslint-disable-line +import routes from '@generated/routes'; import preload from './preload'; import App from './App'; import ssrTemplate from './templates/ssr.html.template'; diff --git a/packages/docusaurus/src/client/theme-fallback/Layout/index.js b/packages/docusaurus/src/client/theme-fallback/Layout/index.js index fdcb856e1b0f..a9a9639aeb59 100644 --- a/packages/docusaurus/src/client/theme-fallback/Layout/index.js +++ b/packages/docusaurus/src/client/theme-fallback/Layout/index.js @@ -6,8 +6,8 @@ */ import React from 'react'; -import Head from '@docusaurus/Head'; // eslint-disable-line -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; // eslint-disable-line +import Head from '@docusaurus/Head'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; function Layout(props) { const context = useDocusaurusContext(); diff --git a/website/pages/index.js b/website/pages/index.js index 63659df4fe24..b9a6e6032730 100644 --- a/website/pages/index.js +++ b/website/pages/index.js @@ -125,6 +125,7 @@ function Home() {
{'Powered

Powered by Markdown

@@ -136,6 +137,7 @@ function Home() {
{'Built @@ -148,6 +150,7 @@ function Home() {
{'Ready @@ -163,6 +166,7 @@ function Home() {
{'Document @@ -175,6 +179,7 @@ function Home() {
{'Document From 84a8e23ebba51d788ef1a680c34adaef862305ae Mon Sep 17 00:00:00 2001 From: endiliey Date: Fri, 10 May 2019 17:59:06 +0800 Subject: [PATCH 16/60] chore: point website-1.x to correct version so that it can pick latest code --- website-1.x/package.json | 2 +- yarn.lock | 59 ---------------------------------------- 2 files changed, 1 insertion(+), 60 deletions(-) diff --git a/website-1.x/package.json b/website-1.x/package.json index 2b99f96b1420..7d2227a7cf69 100644 --- a/website-1.x/package.json +++ b/website-1.x/package.json @@ -15,6 +15,6 @@ }, "dependencies": { "async": "^2.5.0", - "docusaurus": "^2.0.0-alpha.10" + "docusaurus": "^1.9.0" } } diff --git a/yarn.lock b/yarn.lock index 100263355a92..9b8c1c852f04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4405,11 +4405,6 @@ deepmerge@3.2.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" integrity sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow== -deepmerge@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -4640,60 +4635,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -docusaurus@^2.0.0-alpha.10: - version "2.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/docusaurus/-/docusaurus-2.0.0-alpha.11.tgz#08d880c2f7c5899c34a92b4b13fe955a7dc6d8c2" - integrity sha512-5HKFIXu40rMzkUOViVm8QTQEFJMs33KPJvr7GpR1Gkbi/ZCkRJeLu2RjuEaL5uIodK2M+cbQkN2BAy+fRfC25g== - dependencies: - "@babel/core" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/polyfill" "^7.0.0" - "@babel/preset-env" "^7.0.0" - "@babel/preset-react" "^7.0.0" - "@babel/register" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.1.2" - autoprefixer "^9.1.5" - babylon "^6.17.4" - chalk "^2.1.0" - classnames "^2.2.6" - color "^2.0.1" - commander "^2.18.0" - cross-spawn "^6.0.5" - crowdin-cli "^0.3.0" - cssnano "^3.10.0" - deepmerge "^2.1.1" - escape-string-regexp "^1.0.5" - express "^4.15.3" - feed "^1.1.0" - fs-extra "^5.0.0" - gaze "^1.1.2" - glob "^7.1.3" - highlight.js "^9.12.0" - imagemin "^6.0.0" - imagemin-gifsicle "^6.0.1" - imagemin-jpegtran "^6.0.0" - imagemin-optipng "^6.0.0" - imagemin-svgo "^7.0.0" - lodash "^4.17.11" - markdown-toc "^1.2.0" - mkdirp "^0.5.1" - portfinder "^1.0.17" - postcss "^7.0.1" - prismjs "^1.15.0" - react "^16.5.0" - react-dev-utils "^5.0.2" - react-dom "^16.5.0" - remarkable "^1.7.1" - request "^2.87.0" - shelljs "^0.7.8" - sitemap "^1.13.0" - tcp-port-used "^0.1.2" - tiny-lr "^1.1.1" - tree-node-cli "^1.2.5" - truncate-html "^1.0.1" - dom-converter@^0.2: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" From c49b5e52970ad943dc5f0af271d41200287c86eb Mon Sep 17 00:00:00 2001 From: Endi Date: Fri, 10 May 2019 22:37:56 +0700 Subject: [PATCH 17/60] feat(v2): meta description (#1447) * feat(v2): meta description * add description for blog as well * fix non-descriptive text link * remove font awesome * switch front-matter -> gray-matter --- .../package.json | 2 +- .../src/index.js | 3 +- .../src/markdownLoader.js | 4 +-- .../src/theme/BlogListPage/index.js | 2 +- .../src/theme/BlogPostPage/index.js | 2 +- .../package.json | 2 +- .../__fixtures__/website/docs/foo/bar.md | 1 + .../src/__tests__/index.test.js | 2 ++ .../src/__tests__/metadata.test.js | 3 ++ .../src/markdown/index.js | 7 ++-- .../src/metadata.js | 6 +++- .../src/theme/DocPage/index.js | 10 ++++-- .../src/theme/DocSidebar/index.js | 8 +---- .../src/theme/Layout/index.js | 6 +++- packages/docusaurus-utils/package.json | 2 +- packages/docusaurus-utils/src/index.js | 20 +++++++----- packages/docusaurus/package.json | 1 - packages/docusaurus/src/client/App.js | 7 ---- .../src/client/theme-fallback/Layout/index.js | 6 +++- website/pages/index.js | 14 +++----- yarn.lock | 32 ++++++++++++++----- 21 files changed, 82 insertions(+), 58 deletions(-) diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index 3ad5c940ecbc..60e03eea889c 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -10,9 +10,9 @@ "dependencies": { "@docusaurus/mdx-loader": "^2.0.0-alpha.13", "@docusaurus/utils": "^2.0.0-alpha.13", - "front-matter": "^3.0.1", "fs-extra": "^7.0.1", "globby": "^9.1.0", + "gray-matter": "^4.0.2", "loader-utils": "^1.2.3" }, "peerDependencies": { diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index dceb8cd73c9a..202303dacb47 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -75,7 +75,7 @@ class DocusaurusPluginContentBlog { ); const fileString = await fs.readFile(source, 'utf-8'); - const {metadata: rawMetadata} = parse(fileString); + const {metadata: rawMetadata, excerpt: description} = parse(fileString); const metadata = { permalink: normalizeUrl([ @@ -84,6 +84,7 @@ class DocusaurusPluginContentBlog { fileToUrl(blogFileName), ]), source, + description, ...rawMetadata, date, }; diff --git a/packages/docusaurus-plugin-content-blog/src/markdownLoader.js b/packages/docusaurus-plugin-content-blog/src/markdownLoader.js index 6770189eec2a..a9385ed43062 100644 --- a/packages/docusaurus-plugin-content-blog/src/markdownLoader.js +++ b/packages/docusaurus-plugin-content-blog/src/markdownLoader.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -const fm = require('front-matter'); +const matter = require('gray-matter'); const {parseQuery} = require('loader-utils'); const TRUNCATE_MARKER = //; @@ -14,7 +14,7 @@ module.exports = async function(fileString) { const callback = this.async(); // Extract content of markdown (without frontmatter). - let {body: content} = fm(fileString); + let {content} = matter(fileString); // Truncate content if requested (e.g: file.md?truncated=true) const {truncated} = this.resourceQuery && parseQuery(this.resourceQuery); diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js index 813c6d1f1530..f046e53ad27b 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js @@ -17,7 +17,7 @@ function BlogListPage(props) { } = props; return ( - +
diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js index 1659927d92dc..ef0e00d0e43e 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js @@ -14,7 +14,7 @@ function BlogPostPage(props) { const {content: BlogPostContents, metadata} = props; return ( - + {BlogPostContents && (
diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index 2b5523e7f726..336a80bc2914 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -11,9 +11,9 @@ "@babel/polyfill": "^7.4.0", "@docusaurus/mdx-loader": "^2.0.0-alpha.13", "@docusaurus/utils": "^2.0.0-alpha.13", - "front-matter": "^3.0.1", "fs-extra": "^7.0.1", "globby": "^9.1.0", + "gray-matter": "^4.0.2", "import-fresh": "^3.0.0", "loader-utils": "^1.2.3" }, diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/bar.md b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/bar.md index ac25e4969a31..f378f1380cd5 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/bar.md +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/docs/foo/bar.md @@ -1,6 +1,7 @@ --- id: bar title: Bar +description: This is custom description --- # Remarkable diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js index dcfb73673f24..0640f77bd0b2 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.js @@ -39,6 +39,7 @@ describe('loadDocs', () => { sidebar: 'docs', source: path.join(docsDir, 'hello.md'), title: 'Hello, World !', + description: `Hi, Endilie here :)`, }); expect(docsMetadata['foo/bar']).toEqual({ category: 'Test', @@ -49,6 +50,7 @@ describe('loadDocs', () => { sidebar: 'docs', source: path.join(docsDir, 'foo', 'bar.md'), title: 'Bar', + description: 'This is custom description', }); }); }); diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js index c18bd07cc21a..3469a04ffa95 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js @@ -40,12 +40,14 @@ describe('processMetadata', () => { permalink: '/docs/foo/bar', source: path.join(docsDir, sourceA), title: 'Bar', + description: 'This is custom description', }); expect(dataB).toEqual({ id: 'hello', permalink: '/docs/hello', source: path.join(docsDir, sourceB), title: 'Hello, World !', + description: `Hi, Endilie here :)`, }); }); @@ -57,6 +59,7 @@ describe('processMetadata', () => { permalink: '/docs/endiliey/permalink', source: path.join(docsDir, source), title: 'Permalink', + description: 'This has a different permalink', }); }); }); diff --git a/packages/docusaurus-plugin-content-docs/src/markdown/index.js b/packages/docusaurus-plugin-content-docs/src/markdown/index.js index 5572e2fca4aa..30b55aab616e 100644 --- a/packages/docusaurus-plugin-content-docs/src/markdown/index.js +++ b/packages/docusaurus-plugin-content-docs/src/markdown/index.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -const fm = require('front-matter'); +const matter = require('gray-matter'); const {getOptions} = require('loader-utils'); const {resolve} = require('url'); @@ -17,7 +17,7 @@ module.exports = async function(fileString) { const {docsDir, sourceToPermalink} = options; // Extract content of markdown (without frontmatter). - const {body} = fm(fileString); + let {content} = matter(fileString); // Determine the source dir. e.g: /docs, /website/versioned_docs/version-1.0.0 let sourceDir; @@ -27,10 +27,9 @@ module.exports = async function(fileString) { } // Replace internal markdown linking (except in fenced blocks). - let content = body; if (sourceDir) { let fencedBlock = false; - const lines = body.split('\n').map(line => { + const lines = content.split('\n').map(line => { if (line.trim().startsWith('```')) { fencedBlock = !fencedBlock; } diff --git a/packages/docusaurus-plugin-content-docs/src/metadata.js b/packages/docusaurus-plugin-content-docs/src/metadata.js index 7b9438febddc..b1557ed90f2f 100644 --- a/packages/docusaurus-plugin-content-docs/src/metadata.js +++ b/packages/docusaurus-plugin-content-docs/src/metadata.js @@ -18,7 +18,7 @@ module.exports = async function processMetadata( ) { const filepath = path.resolve(refDir, source); const fileString = await fs.readFile(filepath, 'utf-8'); - const {metadata} = parse(fileString); + const {metadata = {}, excerpt} = parse(fileString); // Default id is the file name. if (!metadata.id) { @@ -33,6 +33,10 @@ module.exports = async function processMetadata( metadata.title = metadata.id; } + if (!metadata.description) { + metadata.description = excerpt; + } + const dirName = path.dirname(source); if (dirName !== '.') { const prefix = dirName; diff --git a/packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js b/packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js index b205455b13b0..a026bb28df98 100644 --- a/packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js +++ b/packages/docusaurus-plugin-content-docs/src/theme/DocPage/index.js @@ -14,13 +14,19 @@ import DocSidebar from '@theme/DocSidebar'; function DocPage(props) { const {route, docsMetadata, location} = props; + const {permalinkToId} = docsMetadata; + const id = + permalinkToId[location.pathname] || + permalinkToId[location.pathname.replace(/\/$/, '')]; + const metadata = docsMetadata.docs[id] || {}; + const {sidebar, description} = metadata; return ( - +
- +
{renderRoutes(route.routes, {docsMetadata})} diff --git a/packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/index.js b/packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/index.js index a8da8462b746..cf2ba1dc242e 100644 --- a/packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/index.js +++ b/packages/docusaurus-plugin-content-docs/src/theme/DocSidebar/index.js @@ -12,13 +12,7 @@ import Link from '@docusaurus/Link'; // eslint-disable-line import './styles.css'; function DocSidebar(props) { - const {docsMetadata, location} = props; - - const id = - docsMetadata.permalinkToId[location.pathname] || - docsMetadata.permalinkToId[location.pathname.replace(/\/$/, '')]; - const metadata = docsMetadata.docs[id] || {}; - const {sidebar} = metadata; + const {docsMetadata, sidebar} = props; if (!sidebar) { return null; diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.js b/packages/docusaurus-theme-classic/src/theme/Layout/index.js index 04b5e2023d75..d67b691f5fbe 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.js @@ -17,12 +17,16 @@ function Layout(props) { const context = useDocusaurusContext(); const {siteConfig = {}} = context; const {baseUrl, favicon, tagline, title: defaultTitle} = siteConfig; - const {children, title, noFooter} = props; + const {children, title, noFooter, description} = props; return ( {title && {`${title} · ${tagline}`}} {favicon && } + {description && } + {description && ( + + )} {children} diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index feebe1f42de9..7cc41b7b9fb5 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -9,8 +9,8 @@ "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5", - "front-matter": "^3.0.1", "fs-extra": "^7.0.0", + "gray-matter": "^4.0.2", "lodash": "^4.17.11" } } diff --git a/packages/docusaurus-utils/src/index.js b/packages/docusaurus-utils/src/index.js index e512cd668b45..0f251e23d815 100644 --- a/packages/docusaurus-utils/src/index.js +++ b/packages/docusaurus-utils/src/index.js @@ -6,7 +6,7 @@ */ const path = require('path'); -const fm = require('front-matter'); +const matter = require('gray-matter'); const {createHash} = require('crypto'); const _ = require(`lodash`); @@ -163,15 +163,19 @@ function getSubFolder(file, refDir) { /** * @param {string} fileString - * @returns {*} + * @returns {Object} */ function parse(fileString) { - if (!fm.test(fileString)) { - return {metadata: null, content: fileString}; - } - const {attributes: metadata, body: content} = fm(fileString); - - return {metadata, content}; + const {data: metadata, content, excerpt} = matter(fileString, { + excerpt(file) { + // eslint-disable-next-line no-param-reassign + file.excerpt = file.content + .trim() + .split('\n', 1) + .shift(); + }, + }); + return {metadata, content, excerpt}; } /** diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index 756d22ab6dbc..a37dea12d83d 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -47,7 +47,6 @@ "ejs": "^2.6.1", "envinfo": "^7.2.0", "express": "^4.16.4", - "front-matter": "^3.0.1", "fs-extra": "^7.0.0", "globby": "^9.1.0", "html-webpack-plugin": "^4.0.0-beta.5", diff --git a/packages/docusaurus/src/client/App.js b/packages/docusaurus/src/client/App.js index f16ccb474bf1..07e9e54e5fe4 100644 --- a/packages/docusaurus/src/client/App.js +++ b/packages/docusaurus/src/client/App.js @@ -19,13 +19,6 @@ function App() { {/* TODO: this link stylesheet to infima is temporary */} - {title && {`${title} · ${tagline}`}} {favicon && } + {description && } + {description && ( + + )} {children} diff --git a/website/pages/index.js b/website/pages/index.js index b9a6e6032730..a6adf65dac20 100644 --- a/website/pages/index.js +++ b/website/pages/index.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import React, {useContext, useEffect} from 'react'; +import React, {useContext} from 'react'; import Head from '@docusaurus/Head'; import DocusaurusContext from '@docusaurus/context'; import Link from '@docusaurus/Link'; @@ -68,14 +68,8 @@ function Home() { const feedbackUrl = `${siteConfig.baseUrl}feedback/`; const gettingStartedUrl = `${siteConfig.baseUrl}docs/introduction`; - useEffect(() => { - // Prefetch feedback pages & getting started pages - window.docusaurus.prefetch(feedbackUrl); - window.docusaurus.prefetch(gettingStartedUrl); - }, []); - return ( - +

@@ -115,8 +109,8 @@ function Home() { Docusaurus 2 - , contribute to its roadmap by suggesting features or giving feedback{' '} - here! + , contribute to its roadmap by suggesting features or giving{' '} + feedback here!

diff --git a/yarn.lock b/yarn.lock index 9b8c1c852f04..1f82c4be97b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5858,13 +5858,6 @@ front-matter@^2.3.0: dependencies: js-yaml "^3.10.0" -front-matter@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-3.0.2.tgz#2401cd05fcf22bd0de48a104ffb4efb1ff5c8465" - integrity sha512-iBGZaWyzqgsrPGsqrXZP6N4hp5FzSKDi18nfAoYpgz3qK5sAwFv/ojmn3VS60SOgLvq6CtojNqy0y6ZNz05IzQ== - dependencies: - js-yaml "^3.13.1" - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -6330,6 +6323,16 @@ gray-matter@^2.1.0: js-yaml "^3.8.1" toml "^2.3.2" +gray-matter@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454" + integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw== + dependencies: + js-yaml "^3.11.0" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -8095,7 +8098,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.8.1, js-yaml@^3.9.1: +js-yaml@^3.10.0, js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.8.1, js-yaml@^3.9.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -11991,6 +11994,14 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + seek-bzip@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" @@ -12737,6 +12748,11 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" From 9060e0b1ecaf226505c69c2889a719f25a2a60c6 Mon Sep 17 00:00:00 2001 From: Endi Date: Sat, 11 May 2019 22:47:22 +0700 Subject: [PATCH 18/60] fix(v2): docsearch a11y issue (#1449) --- packages/docusaurus-mdx-loader/package.json | 4 ++-- packages/docusaurus-theme-search-algolia/package.json | 2 +- .../src/theme/SearchBar/index.js | 6 ++++++ yarn.lock | 6 +++--- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index 0099069681dc..ac38ec259396 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -11,8 +11,8 @@ "@babel/parser": "^7.4.3", "@babel/traverse": "^7.4.3", "@mapbox/rehype-prism": "^0.3.1", - "@mdx-js/mdx": "^1.0.14", - "@mdx-js/react": "^1.0.6", + "@mdx-js/mdx": "^1.0.18", + "@mdx-js/react": "^1.0.16", "github-slugger": "^1.2.1", "loader-utils": "^1.2.3", "mdast-util-to-string": "^1.0.5", diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index 868570e1d40d..6e50c9f71cc4 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -8,7 +8,7 @@ }, "license": "MIT", "dependencies": { - "docsearch.js": "^2.5.2" + "docsearch.js": "^2.6.x" }, "peerDependencies": { "@docusaurus/core": "^2.0.0", diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js index 9db2b5c482d4..a1fa4b71c842 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js @@ -28,6 +28,11 @@ class Search extends React.Component { // https://github.com/algolia/docsearch/issues/352 const isClient = typeof window !== 'undefined'; if (isClient) { + // Temporary workaround for a11y issue + // https://github.com/algolia/docsearch/issues/418# + const docsearchInput = document.querySelector('#search_input_react'); + const ariaLabel = docsearchInput.getAttribute('aria-label'); + import('docsearch.js').then(({default: docsearch}) => { docsearch({ appId: algolia.appId, @@ -36,6 +41,7 @@ class Search extends React.Component { inputSelector: '#search_input_react', algoliaOptions: algolia.algoliaOptions, }); + docsearchInput.setAttribute('aria-label', ariaLabel); }); } else { console.warn('Search has failed to load and now is being disabled'); diff --git a/yarn.lock b/yarn.lock index 1f82c4be97b2..b058249c0a01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1599,7 +1599,7 @@ refractor "^2.3.0" unist-util-visit "^1.1.3" -"@mdx-js/mdx@^1.0.14": +"@mdx-js/mdx@^1.0.18": version "1.0.18" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.0.18.tgz#42bb35e36b7566aed88c5c11a381705f974bc03b" integrity sha512-KO2odMrZC77Yf9bhL0Qu0GtvVivVV6dL5DWJeuMeSkc9wkL9fBT06re67TfgeJ37R+lyslkG+uPUahIj4/SOoQ== @@ -1620,7 +1620,7 @@ unist-builder "^1.0.1" unist-util-visit "^1.3.0" -"@mdx-js/react@^1.0.6": +"@mdx-js/react@^1.0.16": version "1.0.16" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.0.16.tgz#414c3fce49493a4c60e5590cfc0a2a07efc19f38" integrity sha512-HJJO8LYogt9UT4TP3+TVeokMj0lgwCONKlcOfr7VMb38Z6DDE3Ydvi+M3iScUea2DfifS4kGztgJ7zH6HXynTw== @@ -4607,7 +4607,7 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -docsearch.js@^2.5.2: +docsearch.js@^2.5.2, docsearch.js@^2.6.x: version "2.6.2" resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.2.tgz#cb36a97aeac8a8d31eed5915cdee808a2248b41c" integrity sha512-qyQ+raZlHSkfdpFg8wJNhjiz9WsjdQkRGe2LiiKS6vIIsouNNole2Kg/9UvGoUIK9PLLl31uL3I4YDwnrXt5yQ== From fb6c1fcb18a8c347381c3e20157a4529f9a27248 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Mon, 13 May 2019 00:16:15 -0700 Subject: [PATCH 19/60] refactor(v2): blog data revamp (#1450) * refactor(v2): blog data revamp * fix(v2): fix incorrect blog total count * misc: remove console.log * feat(v2): export frontMatter as an object within MDX file (#1451) * refactor. Don't confuse metadata & frontmatter * export frontMatter in content itself * nits * nits name * dont truncate first four lines in blog --- packages/docusaurus-mdx-loader/package.json | 1 + packages/docusaurus-mdx-loader/src/index.js | 6 +- .../package.json | 1 - .../src/index.js | 178 ++++++++++++------ .../src/markdownLoader.js | 20 +- .../src/theme/BlogListPage/index.js | 30 +-- .../src/theme/BlogListPaginator/index.js | 35 ++++ .../src/theme/BlogPostItem/index.js | 26 +-- .../src/theme/BlogPostPage/index.js | 12 +- .../src/theme/BlogPostPaginator/index.js | 34 ++++ .../package.json | 1 - .../src/markdown/index.js | 6 +- .../src/metadata.js | 2 +- packages/docusaurus-utils/src/index.js | 4 +- .../src/client/exports/ComponentCreator.js | 6 +- packages/docusaurus/src/server/load/routes.js | 14 ++ .../2018-12-14-Happy-First-Birthday-Slash.md | 2 + website/docusaurus.config.js | 1 + 18 files changed, 259 insertions(+), 120 deletions(-) create mode 100644 packages/docusaurus-plugin-content-blog/src/theme/BlogListPaginator/index.js create mode 100644 packages/docusaurus-plugin-content-blog/src/theme/BlogPostPaginator/index.js diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index ac38ec259396..5b79213573cb 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -14,6 +14,7 @@ "@mdx-js/mdx": "^1.0.18", "@mdx-js/react": "^1.0.16", "github-slugger": "^1.2.1", + "gray-matter": "^4.0.2", "loader-utils": "^1.2.3", "mdast-util-to-string": "^1.0.5", "prism-themes": "^1.1.0", diff --git a/packages/docusaurus-mdx-loader/src/index.js b/packages/docusaurus-mdx-loader/src/index.js index ca4cbaad9044..48ffa7305924 100644 --- a/packages/docusaurus-mdx-loader/src/index.js +++ b/packages/docusaurus-mdx-loader/src/index.js @@ -10,6 +10,8 @@ const mdx = require('@mdx-js/mdx'); const rehypePrism = require('@mapbox/rehype-prism'); const emoji = require('remark-emoji'); const slug = require('rehype-slug'); +const matter = require('gray-matter'); +const stringifyObject = require('stringify-object'); const linkHeadings = require('./linkHeadings'); const rightToc = require('./rightToc'); @@ -19,9 +21,10 @@ const DEFAULT_OPTIONS = { prismTheme: 'prism-themes/themes/prism-atom-dark.css', }; -module.exports = async function(content) { +module.exports = async function(fileString) { const callback = this.async(); + const {data, content} = matter(fileString); const options = Object.assign(DEFAULT_OPTIONS, getOptions(this), { filepath: this.resourcePath, }); @@ -43,6 +46,7 @@ module.exports = async function(content) { import React from 'react'; import { mdx } from '@mdx-js/react'; ${importStr} + export const frontMatter = ${stringifyObject(data)}; ${result} `; diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index 60e03eea889c..9811f2373ff1 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -12,7 +12,6 @@ "@docusaurus/utils": "^2.0.0-alpha.13", "fs-extra": "^7.0.1", "globby": "^9.1.0", - "gray-matter": "^4.0.2", "loader-utils": "^1.2.3" }, "peerDependencies": { diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 202303dacb47..25f377c5e9c6 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -23,7 +23,7 @@ const DEFAULT_OPTIONS = { path: 'blog', // Path to data on filesystem, relative to site dir. routeBasePath: 'blog', // URL Route. include: ['*.md', '*.mdx'], // Extensions to include. - pageCount: 10, // How many entries per page. + postsPerPage: 10, // How many posts per page. blogListComponent: '@theme/BlogListPage', blogPostComponent: '@theme/BlogPostPage', }; @@ -47,9 +47,9 @@ class DocusaurusPluginContentBlog { return [...globPattern]; } - // Fetches blog contents and returns metadata for the contents. + // Fetches blog contents and returns metadata for the necessary routes. async loadContent() { - const {pageCount, include, routeBasePath} = this.options; + const {postsPerPage, include, routeBasePath} = this.options; const {siteConfig} = this.context; const blogDir = this.contentPath; @@ -58,8 +58,7 @@ class DocusaurusPluginContentBlog { cwd: blogDir, }); - // Prepare metadata container. - const blogMetadata = []; + const blogPosts = []; await Promise.all( blogFiles.map(async relativeSource => { @@ -75,82 +74,141 @@ class DocusaurusPluginContentBlog { ); const fileString = await fs.readFile(source, 'utf-8'); - const {metadata: rawMetadata, excerpt: description} = parse(fileString); - - const metadata = { - permalink: normalizeUrl([ - baseUrl, - routeBasePath, - fileToUrl(blogFileName), - ]), - source, - description, - ...rawMetadata, - date, - }; - blogMetadata.push(metadata); + const {frontMatter, excerpt} = parse(fileString); + + blogPosts.push({ + id: blogFileName, + metadata: { + permalink: normalizeUrl([ + baseUrl, + routeBasePath, + fileToUrl(blogFileName), + ]), + source, + description: frontMatter.description || excerpt, + date, + title: frontMatter.title || blogFileName, + }, + }); }), ); - blogMetadata.sort((a, b) => b.date - a.date); + blogPosts.sort((a, b) => b.metadata.date - a.metadata.date); - // Blog page handling. Example: `/blog`, `/blog/page1`, `/blog/page2` - const numOfBlog = blogMetadata.length; - const numberOfPage = Math.ceil(numOfBlog / pageCount); + // Blog pagination routes. + // Example: `/blog`, `/blog/page/1`, `/blog/page/2` + const totalCount = blogPosts.length; + const numberOfPages = Math.ceil(totalCount / postsPerPage); const basePageUrl = normalizeUrl([baseUrl, routeBasePath]); - // eslint-disable-next-line - for (let page = 0; page < numberOfPage; page++) { - blogMetadata.push({ - permalink: - page > 0 - ? normalizeUrl([basePageUrl, `page/${page + 1}`]) - : basePageUrl, - isBlogPage: true, - posts: blogMetadata.slice(page * pageCount, (page + 1) * pageCount), + const blogListPaginated = []; + + function blogPaginationPermalink(page) { + return page > 0 + ? normalizeUrl([basePageUrl, `page/${page + 1}`]) + : basePageUrl; + } + + for (let page = 0; page < numberOfPages; page += 1) { + blogListPaginated.push({ + metadata: { + permalink: blogPaginationPermalink(page), + page: page + 1, + postsPerPage, + totalPages: numberOfPages, + totalCount, + previousPage: page !== 0 ? blogPaginationPermalink(page - 1) : null, + nextPage: + page < numberOfPages - 1 ? blogPaginationPermalink(page + 1) : null, + }, + items: blogPosts + .slice(page * postsPerPage, (page + 1) * postsPerPage) + .map(item => item.id), }); } - return blogMetadata; + return { + blogPosts, + blogListPaginated, + }; } - async contentLoaded({content, actions}) { + async contentLoaded({content: blogContents, actions}) { const {blogListComponent, blogPostComponent} = this.options; const {addRoute, createData} = actions; - await Promise.all( - content.map(async metadataItem => { - const {isBlogPage, permalink} = metadataItem; + const {blogPosts, blogListPaginated} = blogContents; + + const blogItemsToModules = {}; + // Create routes for blog entries. + const blogItems = await Promise.all( + blogPosts.map(async blogPost => { + const {id, metadata} = blogPost; + const {permalink} = metadata; const metadataPath = await createData( `${docuHash(permalink)}.json`, - JSON.stringify(metadataItem, null, 2), + JSON.stringify(metadata, null, 2), ); - if (isBlogPage) { - addRoute({ - path: permalink, - component: blogListComponent, - exact: true, - modules: { - entries: metadataItem.posts.map(post => ({ - // To tell routes.js this is an import and not a nested object to recurse. - __import: true, - path: post.source, - query: { - truncated: true, - }, - })), - metadata: metadataPath, - }, - }); + const temp = { + metadata, + metadataPath, + }; - return; - } + blogItemsToModules[id] = temp; + return temp; + }), + ); + + blogItems.forEach((blogItem, index) => { + const prevItem = index > 0 ? blogItems[index - 1] : null; + const nextItem = + index < blogItems.length - 1 ? blogItems[index + 1] : null; + const {metadata, metadataPath} = blogItem; + const {source, permalink} = metadata; + + addRoute({ + path: permalink, + component: blogPostComponent, + exact: true, + modules: { + content: source, + metadata: metadataPath, + prevItem: prevItem && prevItem.metadataPath, + nextItem: nextItem && nextItem.metadataPath, + }, + }); + }); + + // Create routes for blog's paginated list entries. + await Promise.all( + blogListPaginated.map(async listPage => { + const {metadata, items} = listPage; + const {permalink} = metadata; + const pageMetadataPath = await createData( + `${docuHash(permalink)}.json`, + JSON.stringify(metadata, null, 2), + ); addRoute({ path: permalink, - component: blogPostComponent, + component: blogListComponent, exact: true, modules: { - content: metadataItem.source, - metadata: metadataPath, + items: items.map(postID => { + const {metadata: postMetadata, metadataPath} = blogItemsToModules[ + postID + ]; + // To tell routes.js this is an import and not a nested object to recurse. + return { + content: { + __import: true, + path: postMetadata.source, + query: { + truncated: true, + }, + }, + metadata: metadataPath, + }; + }), + metadata: pageMetadataPath, }, }); }), diff --git a/packages/docusaurus-plugin-content-blog/src/markdownLoader.js b/packages/docusaurus-plugin-content-blog/src/markdownLoader.js index a9385ed43062..e7b7577d5f5b 100644 --- a/packages/docusaurus-plugin-content-blog/src/markdownLoader.js +++ b/packages/docusaurus-plugin-content-blog/src/markdownLoader.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -const matter = require('gray-matter'); const {parseQuery} = require('loader-utils'); const TRUNCATE_MARKER = //; @@ -13,22 +12,13 @@ const TRUNCATE_MARKER = //; module.exports = async function(fileString) { const callback = this.async(); - // Extract content of markdown (without frontmatter). - let {content} = matter(fileString); + let finalContent = fileString; // Truncate content if requested (e.g: file.md?truncated=true) const {truncated} = this.resourceQuery && parseQuery(this.resourceQuery); - if (truncated) { - if (TRUNCATE_MARKER.test(content)) { - // eslint-disable-next-line - content = content.split(TRUNCATE_MARKER)[0]; - } else { - // Return first 4 lines of the content as summary - content = content - .split('\n') - .slice(0, 4) - .join('\n'); - } + if (truncated && TRUNCATE_MARKER.test(fileString)) { + // eslint-disable-next-line + finalContent = fileString.split(TRUNCATE_MARKER)[0]; } - return callback(null, content); + return callback(null, finalContent); }; diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js index f046e53ad27b..9e114bd1cb46 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPage/index.js @@ -9,25 +9,31 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line import BlogPostItem from '@theme/BlogPostItem'; +import BlogListPaginator from '@theme/BlogListPaginator'; function BlogListPage(props) { - const { - metadata: {posts = []}, - entries: BlogPosts, - } = props; + const {metadata, items} = props; return (
-
- {BlogPosts.map((PostContent, index) => ( -
- - - -
- ))} +
+ {items.map( + ({content: BlogPostContent, metadata: blogPostMetadata}) => ( +
+ + + +
+ ), + )} +
diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogListPaginator/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPaginator/index.js new file mode 100644 index 000000000000..536f6a5025cc --- /dev/null +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogListPaginator/index.js @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import Link from '@docusaurus/Link'; + +function BlogListPaginator(props) { + const {metadata} = props; + const {previousPage, nextPage} = metadata; + + return ( +
+
+ {previousPage && ( + + Newer entries + + )} +
+
+ {nextPage && ( + + Older entries + + )} +
+
+ ); +} + +export default BlogListPaginator; diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js index f2cc756eb988..bd0fd0257393 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js @@ -9,20 +9,11 @@ import React from 'react'; import Link from '@docusaurus/Link'; function BlogPostItem(props) { - const {metadata, children, truncated} = props; + const {children, frontMatter, metadata, truncated} = props; + const renderPostHeader = () => { - if (!metadata) { - return null; - } - const { - date, - author, - authorURL, - authorTitle, - authorFBID, - permalink, - title, - } = metadata; + const {author, authorURL, authorTitle, authorFBID, title} = frontMatter; + const {date, permalink} = metadata; const blogPostDate = new Date(date); const month = [ @@ -39,9 +30,10 @@ function BlogPostItem(props) { 'November', 'December', ]; + const authorImageURL = authorFBID ? `https://graph.facebook.com/${authorFBID}/picture/?height=200&width=200` - : metadata.authorImageURL; + : frontMatter.authorImageURL; return (
@@ -88,10 +80,8 @@ function BlogPostItem(props) { {renderPostHeader()}
{children}
{truncated && ( -
- - Read More - +
+ Read More
)}
diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js index ef0e00d0e43e..ff2fc1868937 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js @@ -9,19 +9,23 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line import BlogPostItem from '@theme/BlogPostItem'; +import BlogPostPaginator from '../BlogPostPaginator'; function BlogPostPage(props) { - const {content: BlogPostContents, metadata} = props; - + const {content: BlogPostContents, metadata, nextItem, prevItem} = props; + const {frontMatter} = BlogPostContents; return ( {BlogPostContents && (
-
- +
+ +
+ +
diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPaginator/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPaginator/index.js new file mode 100644 index 000000000000..56643ab322b8 --- /dev/null +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPaginator/index.js @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import Link from '@docusaurus/Link'; + +function BlogPostPaginator(props) { + const {nextItem, prevItem} = props; + + return ( +
+
+ {prevItem && ( + + {prevItem.title} + + )} +
+
+ {nextItem && ( + + {nextItem.title} + + )} +
+
+ ); +} + +export default BlogPostPaginator; diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index 336a80bc2914..1a19a7b574cb 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -13,7 +13,6 @@ "@docusaurus/utils": "^2.0.0-alpha.13", "fs-extra": "^7.0.1", "globby": "^9.1.0", - "gray-matter": "^4.0.2", "import-fresh": "^3.0.0", "loader-utils": "^1.2.3" }, diff --git a/packages/docusaurus-plugin-content-docs/src/markdown/index.js b/packages/docusaurus-plugin-content-docs/src/markdown/index.js index 30b55aab616e..7f2d88c25698 100644 --- a/packages/docusaurus-plugin-content-docs/src/markdown/index.js +++ b/packages/docusaurus-plugin-content-docs/src/markdown/index.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -const matter = require('gray-matter'); const {getOptions} = require('loader-utils'); const {resolve} = require('url'); @@ -16,9 +15,6 @@ module.exports = async function(fileString) { }); const {docsDir, sourceToPermalink} = options; - // Extract content of markdown (without frontmatter). - let {content} = matter(fileString); - // Determine the source dir. e.g: /docs, /website/versioned_docs/version-1.0.0 let sourceDir; const thisSource = this.resourcePath; @@ -26,6 +22,8 @@ module.exports = async function(fileString) { sourceDir = docsDir; } + let content = fileString; + // Replace internal markdown linking (except in fenced blocks). if (sourceDir) { let fencedBlock = false; diff --git a/packages/docusaurus-plugin-content-docs/src/metadata.js b/packages/docusaurus-plugin-content-docs/src/metadata.js index b1557ed90f2f..cfc6c046f287 100644 --- a/packages/docusaurus-plugin-content-docs/src/metadata.js +++ b/packages/docusaurus-plugin-content-docs/src/metadata.js @@ -18,7 +18,7 @@ module.exports = async function processMetadata( ) { const filepath = path.resolve(refDir, source); const fileString = await fs.readFile(filepath, 'utf-8'); - const {metadata = {}, excerpt} = parse(fileString); + const {frontMatter: metadata = {}, excerpt} = parse(fileString); // Default id is the file name. if (!metadata.id) { diff --git a/packages/docusaurus-utils/src/index.js b/packages/docusaurus-utils/src/index.js index 0f251e23d815..0b85f4bcc315 100644 --- a/packages/docusaurus-utils/src/index.js +++ b/packages/docusaurus-utils/src/index.js @@ -166,7 +166,7 @@ function getSubFolder(file, refDir) { * @returns {Object} */ function parse(fileString) { - const {data: metadata, content, excerpt} = matter(fileString, { + const {data: frontMatter, content, excerpt} = matter(fileString, { excerpt(file) { // eslint-disable-next-line no-param-reassign file.excerpt = file.content @@ -175,7 +175,7 @@ function parse(fileString) { .shift(); }, }); - return {metadata, content, excerpt}; + return {frontMatter, content, excerpt}; } /** diff --git a/packages/docusaurus/src/client/exports/ComponentCreator.js b/packages/docusaurus/src/client/exports/ComponentCreator.js index 590e447f4b80..882f816de1f4 100644 --- a/packages/docusaurus/src/client/exports/ComponentCreator.js +++ b/packages/docusaurus/src/client/exports/ComponentCreator.js @@ -28,7 +28,7 @@ function ComponentCreator(path) { /* Prepare opts data that react-loadable needs https://github.com/jamiebuilds/react-loadable#declaring-which-modules-are-being-loaded Example: - - optsLoader: + - optsLoader: { component: () => import('./Pages.js'), content.foo: () => import('./doc1.md'), @@ -44,6 +44,10 @@ function ComponentCreator(path) { return; } + if (target == null) { + return; + } + if (typeof target === 'object') { Object.keys(target).forEach(key => { traverseChunk(target[key], [...keys, key]); diff --git a/packages/docusaurus/src/server/load/routes.js b/packages/docusaurus/src/server/load/routes.js index 9f8fa5fcd62e..b29b91d6b19f 100644 --- a/packages/docusaurus/src/server/load/routes.js +++ b/packages/docusaurus/src/server/load/routes.js @@ -49,6 +49,10 @@ async function loadRoutes(pluginsRouteConfigs) { // Given an input (object or string), get the import path str const getModulePath = target => { + if (!target) { + return null; + } + const importStr = _.isObject(target) ? target.path : target; const queryStr = target.query ? `?${stringify(target.query)}` : ''; return `${importStr}${queryStr}`; @@ -57,9 +61,14 @@ async function loadRoutes(pluginsRouteConfigs) { if (!component) { throw new Error(`path: ${routePath} need a component`); } + const componentPath = getModulePath(component); const genImportChunk = (modulePath, prefix, name) => { + if (!modulePath) { + return null; + } + const chunkName = genChunkName(modulePath, prefix, name); const finalStr = JSON.stringify(modulePath); return { @@ -90,6 +99,11 @@ async function loadRoutes(pluginsRouteConfigs) { prefix, routePath, ); + + if (!importChunk) { + return null; + } + registry[importChunk.chunkName] = { importStatement: importChunk.importStatement, modulePath: importChunk.modulePath, diff --git a/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md b/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md index e20732b9c103..06366432b788 100644 --- a/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md +++ b/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md @@ -11,6 +11,8 @@ authorTwitter: JoelMarcey Docusaurus [went live](https://docusaurus.io/blog/2017/12/14/introducing-docusaurus) on December 14, 2017. At the time, we had [8 early adopters](https://docusaurus.io/blog/2017/12/14/introducing-docusaurus#acknowledgements). + + We now have nearly [60 known users of Docusaurus](https://docusaurus.io/en/users), and probably more that we don't know about. We have [9K GitHub stars](https://github.com/facebook/docusaurus) and an active community, particularly [Yangshun Tay](https://twitter.com/yangshunz) and [Endilie Yacop Sucipto](https://twitter.com/endiliey), both of whom are the lead maintainers helping keep this project [moving forward](https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2). Thank you to everyone for your support and use of this project! I am super proud of how far this project has come in just a year. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 854beda76331..a198afe92e3d 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -36,6 +36,7 @@ module.exports = { }, blog: { path: '../website-1.x/blog', + postsPerPage: 3, }, }, ], From 8c2b94ec5e368ee83912f540aae163c61e47b3a2 Mon Sep 17 00:00:00 2001 From: Endi Date: Mon, 13 May 2019 15:07:47 +0700 Subject: [PATCH 20/60] fix(v2): transpiling, window scroll and console error (#1452) --- packages/docusaurus/src/client/PendingNavigation.js | 3 +-- packages/docusaurus/src/webpack/base.js | 11 ++++------- website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md | 3 +-- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/docusaurus/src/client/PendingNavigation.js b/packages/docusaurus/src/client/PendingNavigation.js index 3e7fd8634e62..c4e4327108f4 100644 --- a/packages/docusaurus/src/client/PendingNavigation.js +++ b/packages/docusaurus/src/client/PendingNavigation.js @@ -28,8 +28,6 @@ class PendingNavigation extends React.Component { const {routes, delay = 1000} = this.props; if (navigated) { - window.scrollTo(0, 0); - this.startProgressBar(delay); // save the location so we can render the old screen this.setState({ @@ -45,6 +43,7 @@ class PendingNavigation extends React.Component { }, this.stopProgressBar, ); + window.scrollTo(0, 0); }) .catch(e => console.warn(e)); } diff --git a/packages/docusaurus/src/webpack/base.js b/packages/docusaurus/src/webpack/base.js index 5f93ea994f9f..917281e20234 100644 --- a/packages/docusaurus/src/webpack/base.js +++ b/packages/docusaurus/src/webpack/base.js @@ -100,13 +100,10 @@ module.exports = function createBaseConfig(props, isServer) { { test: /\.jsx?$/, exclude(modulePath) { - // always transpile our own library - if (modulePath.startsWith(path.join(__dirname, '..'))) { - return false; - } - - // Don't transpile node_modules - return /node_modules/.test(modulePath); + // Don't transpile node_modules except any docusaurus package + return ( + /node_modules/.test(modulePath) && !/docusaurus/.test(modulePath) + ); }, use: [ cacheLoader && getCacheLoader(isServer), diff --git a/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md b/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md index d57d0ca7ed76..ac74ea3f40f0 100644 --- a/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md +++ b/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md @@ -17,7 +17,7 @@ There is a saying that the very best software is constantly evolving, and the ve It all started with this [RFC issue](https://github.com/facebook/Docusaurus/issues/789) opened by [Yangshun](https://github.com/yangshun) towards the end of June 2018. -

[RFC] Docusaurus v2 · Issue #789 · facebook/Docusaurus

These are some of the problems I'm seeing in Docusaurus now and also how we can address them in v2. A number of the ideas here were inspired by VuePress and other static site generators. In the current static site generators ecosystem, t...

+

[RFC] Docusaurus v2 · Issue #789 · facebook/Docusaurus

These are some of the problems I'm seeing in Docusaurus now and also how we can address them in v2. A number of the ideas here were inspired by VuePress and other static site generators. In the current static site generators ecosystem, t...

Most of the suggested improvements are mentioned in the issue; I will provide details on some of issues in Docusaurus 1 and how we are going to address them in Docusaurus 2. @@ -132,4 +132,3 @@ If you are using Docusaurus, you are part of our community; keep letting us know Lastly, if you haven't done so already, click the **star** and **watch** button on [GitHub](https://github.com/facebook/Docusaurus), and follow us on [Twitter](https://twitter.com/docusaurus). - From 5580a0272460ecbd909dd64d0de66eea2ce96bff Mon Sep 17 00:00:00 2001 From: Endi Date: Mon, 13 May 2019 18:47:57 +0700 Subject: [PATCH 21/60] chore(v2): better error message style (#1454) --- .../client/theme-fallback/Loading/index.js | 36 ++++++++++++++++--- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/packages/docusaurus/src/client/theme-fallback/Loading/index.js b/packages/docusaurus/src/client/theme-fallback/Loading/index.js index 2460dc1b4c25..d1f61182ff87 100644 --- a/packages/docusaurus/src/client/theme-fallback/Loading/index.js +++ b/packages/docusaurus/src/client/theme-fallback/Loading/index.js @@ -7,13 +7,39 @@ import React from 'react'; -export default props => { - if (props.error) { - console.warn(props.error); - return
Error
; +export default ({error, retry, pastDelay}) => { + if (error) { + return ( +
+

{error.message}

+
+ +
+
+ ); } - if (props.pastDelay) { + if (pastDelay) { return (
Date: Mon, 13 May 2019 22:19:31 +0800 Subject: [PATCH 22/60] chore(v2): remove docsearch a11y workaround --- .../package.json | 2 +- .../src/theme/SearchBar/index.js | 6 ----- yarn.lock | 22 ++++++++++++++++++- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index 6e50c9f71cc4..f56f91ff2338 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -8,7 +8,7 @@ }, "license": "MIT", "dependencies": { - "docsearch.js": "^2.6.x" + "docsearch.js": "^2.6.3" }, "peerDependencies": { "@docusaurus/core": "^2.0.0", diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js index a1fa4b71c842..9db2b5c482d4 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js @@ -28,11 +28,6 @@ class Search extends React.Component { // https://github.com/algolia/docsearch/issues/352 const isClient = typeof window !== 'undefined'; if (isClient) { - // Temporary workaround for a11y issue - // https://github.com/algolia/docsearch/issues/418# - const docsearchInput = document.querySelector('#search_input_react'); - const ariaLabel = docsearchInput.getAttribute('aria-label'); - import('docsearch.js').then(({default: docsearch}) => { docsearch({ appId: algolia.appId, @@ -41,7 +36,6 @@ class Search extends React.Component { inputSelector: '#search_input_react', algoliaOptions: algolia.algoliaOptions, }); - docsearchInput.setAttribute('aria-label', ariaLabel); }); } else { console.warn('Search has failed to load and now is being disabled'); diff --git a/yarn.lock b/yarn.lock index b058249c0a01..2b6127e6e47c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2481,6 +2481,13 @@ autocomplete.js@0.33.0: dependencies: immediate "^3.2.3" +autocomplete.js@0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.36.0.tgz#94fe775fe64b6cd42e622d076dc7fd26bedd837b" + integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q== + dependencies: + immediate "^3.2.3" + autolinker@~0.15.0: version "0.15.3" resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832" @@ -4607,7 +4614,7 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -docsearch.js@^2.5.2, docsearch.js@^2.6.x: +docsearch.js@^2.5.2: version "2.6.2" resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.2.tgz#cb36a97aeac8a8d31eed5915cdee808a2248b41c" integrity sha512-qyQ+raZlHSkfdpFg8wJNhjiz9WsjdQkRGe2LiiKS6vIIsouNNole2Kg/9UvGoUIK9PLLl31uL3I4YDwnrXt5yQ== @@ -4620,6 +4627,19 @@ docsearch.js@^2.5.2, docsearch.js@^2.6.x: to-factory "^1.0.0" zepto "^1.2.0" +docsearch.js@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d" + integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A== + dependencies: + algoliasearch "^3.24.5" + autocomplete.js "0.36.0" + hogan.js "^3.0.2" + request "^2.87.0" + stack-utils "^1.0.1" + to-factory "^1.0.0" + zepto "^1.2.0" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" From 12a9ba59d98856af74118d5f9b734fe1dd14b187 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Mon, 13 May 2019 10:14:44 -0700 Subject: [PATCH 23/60] feat(v2): blog tags (#1453) * feat(v2): blog tags * feat(v2): blog tags --- .../src/index.js | 100 +++++++++++++++++- .../src/theme/BlogTagsListPage/index.js | 69 ++++++++++++ .../src/theme/BlogTagsPostsPage/index.js | 46 ++++++++ .../blog/2017-12-14-introducing-docusaurus.md | 1 + ...0-How-I-Converted-Profilo-To-Docusaurus.md | 1 + .../blog/2018-09-11-Towards-Docusaurus-2.md | 3 +- .../2018-12-14-Happy-First-Birthday-Slash.md | 1 + 7 files changed, 218 insertions(+), 3 deletions(-) create mode 100644 packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js create mode 100644 packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 25f377c5e9c6..069d2b143d6c 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -26,6 +26,8 @@ const DEFAULT_OPTIONS = { postsPerPage: 10, // How many posts per page. blogListComponent: '@theme/BlogListPage', blogPostComponent: '@theme/BlogPostPage', + blogTagsListComponent: '@theme/BlogTagsListPage', + blogTagsPostsComponent: '@theme/BlogTagsPostsPage', }; class DocusaurusPluginContentBlog { @@ -87,6 +89,7 @@ class DocusaurusPluginContentBlog { source, description: frontMatter.description || excerpt, date, + tags: frontMatter.tags, title: frontMatter.title || blogFileName, }, }); @@ -126,16 +129,39 @@ class DocusaurusPluginContentBlog { }); } + const blogTags = {}; + blogPosts.forEach(blogPost => { + const {tags} = blogPost.metadata; + if (!tags || tags.length === 0) { + return; + } + + tags.forEach(tag => { + const normalizedTag = tag.toLowerCase(); + if (!blogTags[normalizedTag]) { + blogTags[normalizedTag] = []; + } + blogTags[normalizedTag].push(blogPost.id); + }); + }); + return { blogPosts, blogListPaginated, + blogTags, }; } async contentLoaded({content: blogContents, actions}) { - const {blogListComponent, blogPostComponent} = this.options; + const { + blogListComponent, + blogPostComponent, + blogTagsListComponent, + blogTagsPostsComponent, + } = this.options; + const {addRoute, createData} = actions; - const {blogPosts, blogListPaginated} = blogContents; + const {blogPosts, blogListPaginated, blogTags} = blogContents; const blogItemsToModules = {}; // Create routes for blog entries. @@ -213,6 +239,76 @@ class DocusaurusPluginContentBlog { }); }), ); + + // Tags. + const {routeBasePath} = this.options; + const { + siteConfig: {baseUrl}, + } = this.context; + + const basePageUrl = normalizeUrl([baseUrl, routeBasePath]); + const tagsPath = normalizeUrl([basePageUrl, 'tags']); + const tagsModule = {}; + + await Promise.all( + Object.keys(blogTags).map(async tag => { + const permalink = normalizeUrl([tagsPath, tag]); + const postIDs = blogTags[tag]; + tagsModule[tag] = { + count: postIDs.length, + permalink, + }; + + const tagsMetadataPath = await createData( + `${docuHash(permalink)}.json`, + JSON.stringify( + { + tag, + }, + null, + 2, + ), + ); + + addRoute({ + path: permalink, + component: blogTagsPostsComponent, + exact: true, + modules: { + items: postIDs.map(postID => { + const {metadata: postMetadata, metadataPath} = blogItemsToModules[ + postID + ]; + return { + content: { + __import: true, + path: postMetadata.source, + query: { + truncated: true, + }, + }, + metadata: metadataPath, + }; + }), + metadata: tagsMetadataPath, + }, + }); + }), + ); + + const tagsListPath = await createData( + `${docuHash(`${tagsPath}-tags`)}.json`, + JSON.stringify(tagsModule, null, 2), + ); + + addRoute({ + path: tagsPath, + component: blogTagsListComponent, + exact: true, + modules: { + tags: tagsListPath, + }, + }); } getThemePath() { diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js new file mode 100644 index 000000000000..a083e7b8d80b --- /dev/null +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; + +import Layout from '@theme/Layout'; // eslint-disable-line +import Link from '@docusaurus/Link'; + +const CHARS_IN_ALPHABET = 26; +const ASCII_LOWERCASE_A = 97; + +function BlogTagsListPage(props) { + const {tags} = props; + + const tagsList = Array(CHARS_IN_ALPHABET) + .fill(null) + .map(() => []); + const allTags = Object.keys(tags).sort(); + + allTags.forEach(tag => { + const firstLetter = tag.charCodeAt(0); + tagsList[firstLetter - ASCII_LOWERCASE_A].push(tag); + }); + + const tagsSection = tagsList + .map((tagsForLetter, index) => { + if (tagsForLetter.length === 0) { + return null; + } + const letter = String.fromCharCode( + ASCII_LOWERCASE_A + index, + ).toUpperCase(); + + return ( +
+

{letter}

+ {tagsForLetter.map(tag => ( + + {tag} ({tags[tag].count}) + + ))} +
+
+ ); + }) + .filter(item => item != null); + + return ( + +
+
+
+

Tags

+
{tagsSection}
+
+
+
+
+ ); +} + +export default BlogTagsListPage; diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js new file mode 100644 index 000000000000..5ab4f30f50b0 --- /dev/null +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; + +import Layout from '@theme/Layout'; // eslint-disable-line +import BlogPostItem from '@theme/BlogPostItem'; + +function BlogTagsPostPage(props) { + const {metadata, items} = props; + const {tag} = metadata; + + return ( + +
+
+
+

+ {items.length} post(s) tagged with "{tag}" +

+
+ {items.map( + ({content: BlogPostContent, metadata: blogPostMetadata}) => ( +
+ + + +
+ ), + )} +
+
+
+
+
+ ); +} + +export default BlogTagsPostPage; diff --git a/website-1.x/blog/2017-12-14-introducing-docusaurus.md b/website-1.x/blog/2017-12-14-introducing-docusaurus.md index d60b78be7a8f..d8231a159ec3 100644 --- a/website-1.x/blog/2017-12-14-introducing-docusaurus.md +++ b/website-1.x/blog/2017-12-14-introducing-docusaurus.md @@ -4,6 +4,7 @@ author: Joel Marcey authorURL: http://twitter.com/JoelMarcey authorFBID: 611217057 authorTwitter: JoelMarcey +tags: [birth] --- ![Introducing Slash](/img/slash-introducing.svg) diff --git a/website-1.x/blog/2018-04-30-How-I-Converted-Profilo-To-Docusaurus.md b/website-1.x/blog/2018-04-30-How-I-Converted-Profilo-To-Docusaurus.md index 52e4f7c869f8..fc92dd0088d2 100644 --- a/website-1.x/blog/2018-04-30-How-I-Converted-Profilo-To-Docusaurus.md +++ b/website-1.x/blog/2018-04-30-How-I-Converted-Profilo-To-Docusaurus.md @@ -4,6 +4,7 @@ author: Christine Abernathy authorURL: http://twitter.com/abernathyca authorFBID: 1424840234 authorTwitter: abernathyca +tags: [profilo, adoption] --- > *“Joel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I'm going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn't be much different from editing those markdown files.”* diff --git a/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md b/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md index ac74ea3f40f0..00893f3d9c69 100644 --- a/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md +++ b/website-1.x/blog/2018-09-11-Towards-Docusaurus-2.md @@ -5,6 +5,7 @@ authorTitle: Maintainer of Docusaurus authorURL: https://github.com/endiliey authorImageURL: https://avatars1.githubusercontent.com/u/17883920?s=460&v=4 authorTwitter: endiliey +tags: [new, adoption] --- Docusaurus was [officially announced](https://docusaurus.io/blog/2017/12/14/introducing-docusaurus) over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as [React Native](https://facebook.github.io/react-native/), [Babel](https://babeljs.io/), [Jest](https://jestjs.io/), [Reason](https://reasonml.github.io/) and [Prettier](https://prettier.io/). @@ -107,7 +108,7 @@ If you've read the post up until to this point, you should be able to notice tha The exact list of breaking changes is not totally known yet as development is not 100% finalized. However, one thing that I will highlight is that we will deprecate a lot of options in `siteConfig.js` and we plan to keep it as lean as possible. For example, the `cleanUrl` siteConfig will be deprecated as all the URL for Docusaurus 2 sites will be without the `.html` suffix. -Our goal is that most sites should be able to upgrade to Docusaurus 2 without a lot of pain. We will also include a migration guide when we release Docusaurus 2. When the times come, feel free to ping us on [Discord](https://discord.gg/docusaurus) or [Twitter](https://twitter.com/docusaurus) for questions and help. +Our goal is that most sites should be able to upgrade to Docusaurus 2 without a lot of pain. We will also include a migration guide when we release Docusaurus 2. When the times come, feel free to ping us on [Discord](https://discord.gg/docusaurus) or [Twitter](https://twitter.com/docusaurus) for questions and help. ### When is the release of Docusaurus 2? diff --git a/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md b/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md index 06366432b788..97b54fa7a12a 100644 --- a/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md +++ b/website-1.x/blog/2018-12-14-Happy-First-Birthday-Slash.md @@ -5,6 +5,7 @@ authorTitle: Co-creator of Docusaurus authorURL: https://github.com/JoelMarcey authorFBID: 611217057 authorTwitter: JoelMarcey +tags: [birth] --- ![First Birthday Slash](/img/docusaurus-slash-first-birthday.svg) From 36aacc8e52e32e5ef2735be0c186dd2f5b8c52e9 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Mon, 13 May 2019 10:08:18 -0700 Subject: [PATCH 24/60] fix(v2): slugify tags --- .../package.json | 3 +- .../src/index.js | 57 ++++++++++--------- .../src/theme/BlogTagsListPage/index.js | 2 +- .../src/theme/BlogTagsPostsPage/index.js | 8 ++- 4 files changed, 39 insertions(+), 31 deletions(-) diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index 9811f2373ff1..586c07f9bbf3 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -12,7 +12,8 @@ "@docusaurus/utils": "^2.0.0-alpha.13", "fs-extra": "^7.0.1", "globby": "^9.1.0", - "loader-utils": "^1.2.3" + "loader-utils": "^1.2.3", + "lodash": "^4.17.11" }, "peerDependencies": { "@docusaurus/core": "^2.0.0", diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 069d2b143d6c..0688199cca7b 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -5,9 +5,10 @@ * LICENSE file in the root directory of this source tree. */ +const fs = require('fs-extra'); const globby = require('globby'); +const _ = require('lodash'); const path = require('path'); -const fs = require('fs-extra'); const {parse, normalizeUrl, docuHash} = require('@docusaurus/utils'); // TODO: Use a better slugify function that doesn't rely on a specific file extension. @@ -137,11 +138,15 @@ class DocusaurusPluginContentBlog { } tags.forEach(tag => { - const normalizedTag = tag.toLowerCase(); + const normalizedTag = _.kebabCase(tag); if (!blogTags[normalizedTag]) { - blogTags[normalizedTag] = []; + blogTags[normalizedTag] = { + name: tag.toLowerCase(), // Will only use the name of the first occurrence of the tag. + items: [], + }; } - blogTags[normalizedTag].push(blogPost.id); + + blogTags[normalizedTag].items.push(blogPost.id); }); }); @@ -253,21 +258,18 @@ class DocusaurusPluginContentBlog { await Promise.all( Object.keys(blogTags).map(async tag => { const permalink = normalizeUrl([tagsPath, tag]); - const postIDs = blogTags[tag]; + const {name, items} = blogTags[tag]; + tagsModule[tag] = { - count: postIDs.length, + slug: tag, + name, + count: items.length, permalink, }; const tagsMetadataPath = await createData( `${docuHash(permalink)}.json`, - JSON.stringify( - { - tag, - }, - null, - 2, - ), + JSON.stringify(tagsModule[tag], null, 2), ); addRoute({ @@ -275,7 +277,7 @@ class DocusaurusPluginContentBlog { component: blogTagsPostsComponent, exact: true, modules: { - items: postIDs.map(postID => { + items: items.map(postID => { const {metadata: postMetadata, metadataPath} = blogItemsToModules[ postID ]; @@ -296,19 +298,22 @@ class DocusaurusPluginContentBlog { }), ); - const tagsListPath = await createData( - `${docuHash(`${tagsPath}-tags`)}.json`, - JSON.stringify(tagsModule, null, 2), - ); + // Only create /tags page if there are tags. + if (Object.keys(blogTags).length > 0) { + const tagsListPath = await createData( + `${docuHash(`${tagsPath}-tags`)}.json`, + JSON.stringify(tagsModule, null, 2), + ); - addRoute({ - path: tagsPath, - component: blogTagsListComponent, - exact: true, - modules: { - tags: tagsListPath, - }, - }); + addRoute({ + path: tagsPath, + component: blogTagsListComponent, + exact: true, + modules: { + tags: tagsListPath, + }, + }); + } } getThemePath() { diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js index a083e7b8d80b..2cbf87546c9b 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsListPage/index.js @@ -43,7 +43,7 @@ function BlogTagsListPage(props) { className="padding-right--md" href={tags[tag].permalink} key="tag"> - {tag} ({tags[tag].count}) + {tags[tag].name} ({tags[tag].count}) ))}
diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js index 5ab4f30f50b0..399ceaed1718 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js @@ -12,15 +12,17 @@ import BlogPostItem from '@theme/BlogPostItem'; function BlogTagsPostPage(props) { const {metadata, items} = props; - const {tag} = metadata; + const {name: tagName, count} = metadata; return ( - +

- {items.length} post(s) tagged with "{tag}" + {count} post(s) tagged with "{tagName}"

{items.map( From e1a7fc5d996ce80a14093d394622f1b7c4b56716 Mon Sep 17 00:00:00 2001 From: endiliey Date: Tue, 14 May 2019 16:04:52 +0800 Subject: [PATCH 25/60] chore(v2): use remark-slug so that rightToc can benefit from it --- packages/docusaurus-mdx-loader/package.json | 2 +- packages/docusaurus-mdx-loader/src/index.js | 6 ++-- yarn.lock | 34 +++++++-------------- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index 5b79213573cb..436a4ad6cc52 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -19,8 +19,8 @@ "mdast-util-to-string": "^1.0.5", "prism-themes": "^1.1.0", "prismjs": "^1.16.0", - "rehype-slug": "^2.0.2", "remark-emoji": "^2.0.2", + "remark-slug": "^5.1.1", "stringify-object": "^3.3.0", "unist-util-visit": "^1.4.0" }, diff --git a/packages/docusaurus-mdx-loader/src/index.js b/packages/docusaurus-mdx-loader/src/index.js index 48ffa7305924..663b76582567 100644 --- a/packages/docusaurus-mdx-loader/src/index.js +++ b/packages/docusaurus-mdx-loader/src/index.js @@ -9,15 +9,15 @@ const {getOptions} = require('loader-utils'); const mdx = require('@mdx-js/mdx'); const rehypePrism = require('@mapbox/rehype-prism'); const emoji = require('remark-emoji'); -const slug = require('rehype-slug'); +const slug = require('remark-slug'); const matter = require('gray-matter'); const stringifyObject = require('stringify-object'); const linkHeadings = require('./linkHeadings'); const rightToc = require('./rightToc'); const DEFAULT_OPTIONS = { - rehypePlugins: [[rehypePrism, {ignoreMissing: true}], slug, linkHeadings], - remarkPlugins: [emoji, rightToc], + rehypePlugins: [[rehypePrism, {ignoreMissing: true}], linkHeadings], + remarkPlugins: [emoji, slug, rightToc], prismTheme: 'prism-themes/themes/prism-atom-dark.css', }; diff --git a/yarn.lock b/yarn.lock index 2b6127e6e47c..de196c8fd5cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6130,7 +6130,7 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-slugger@^1.1.1, github-slugger@^1.2.1: +github-slugger@^1.0.0, github-slugger@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.2.1.tgz#47e904e70bf2dccd0014748142d31126cfd49508" integrity sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ== @@ -6531,16 +6531,6 @@ hast-util-from-parse5@^5.0.0: web-namespaces "^1.1.2" xtend "^4.0.1" -hast-util-has-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-1.0.2.tgz#4c9c3c6122fcc84a5b7c40a573940aaa4b8a8278" - integrity sha512-EBzRiKIIe9wouLSjqun5ti0oYcEe5U1eEpuOPtcihmP3KvFRovOmmXypf1B/QalQr9S4YoVgLOSg6gW98ihRbA== - -hast-util-is-element@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.2.tgz#c23c9428b6a5a4e323bf9e16f87417476314981b" - integrity sha512-4MEtyofNi3ZunPFrp9NpTQdNPN24xvLX3M+Lr/RGgPX6TLi+wR4/DqeoyQ7lwWcfUp4aevdt4RR0r7ZQPFbHxw== - hast-util-parse-selector@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.1.tgz#4ddbae1ae12c124e3eb91b581d2556441766f0ab" @@ -8959,7 +8949,7 @@ mdast-util-to-hast@^4.0.0: unist-util-visit "^1.1.0" xtend "^4.0.1" -mdast-util-to-string@^1.0.5: +mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.5.tgz#3552b05428af22ceda34f156afe62ec8e6d731ca" integrity sha512-2qLt/DEOo5F6nc2VFScQiHPzQ0XXcabquRJxKMhKte8nt42o08HUxNDPk7tt0YPxnWjAT11I1SYi0X0iPnfI5A== @@ -11584,17 +11574,6 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" -rehype-slug@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/rehype-slug/-/rehype-slug-2.0.2.tgz#a0d5a4118548ee6165b1f911a213a13e284d91ba" - integrity sha512-CDCRfqx4qgfOSDG6t9KoyvrLejrICqhDJu0kNY2r5RhZLr2QHp9gG533nLzp6HLTVT0fSbZbdx8YvqLGpCBjPA== - dependencies: - github-slugger "^1.1.1" - hast-util-has-property "^1.0.0" - hast-util-is-element "^1.0.0" - hast-util-to-string "^1.0.0" - unist-util-visit "^1.1.0" - relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -11642,6 +11621,15 @@ remark-parse@^6.0.0: vfile-location "^2.0.0" xtend "^4.0.1" +remark-slug@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-5.1.1.tgz#eb5dba0cf779487ef7ddf65c735ba4d4ca017542" + integrity sha512-r591rdoDPJkSSAVvEaTVUkqbMp7c7AyZfif14V0Dp66GQkOHzaPAS6wyhawSbqpS0ZdTnfJS+TltFoxzi6bdIA== + dependencies: + github-slugger "^1.0.0" + mdast-util-to-string "^1.0.0" + unist-util-visit "^1.0.0" + remark-squeeze-paragraphs@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.3.tgz#299d8db7d44008c9ae240dbf6d1f55b8b0f924ce" From 04c0ed0ade5dd9730f8cd3a96a1e98b26c10be6c Mon Sep 17 00:00:00 2001 From: Endi Date: Tue, 14 May 2019 23:55:35 +0700 Subject: [PATCH 26/60] fix: right TOC should not strip special chars (#1458) * fix: right TOC should not strip special chars * nits --- packages/docusaurus-1.x/lib/core/toc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docusaurus-1.x/lib/core/toc.js b/packages/docusaurus-1.x/lib/core/toc.js index 9ee9a704575a..d413367d5f99 100644 --- a/packages/docusaurus-1.x/lib/core/toc.js +++ b/packages/docusaurus-1.x/lib/core/toc.js @@ -38,7 +38,7 @@ function getTOC(content, headingTags = 'h2', subHeadingTags = 'h3') { if (!allowedHeadingLevels.includes(heading.lvl)) { return; } - const rawContent = mdToc.titleize(heading.content); + const rawContent = heading.content; const entry = { hashLink, rawContent, From 614966fc5a1db291e77f55166367cf0ea0ff2748 Mon Sep 17 00:00:00 2001 From: Endi Date: Wed, 15 May 2019 13:55:07 +0700 Subject: [PATCH 27/60] fix(v2): handle non existent blog, docs, pages (#1459) * fix(v2): handle non existent blog, docs, pages * nits --- .../docusaurus-plugin-content-blog/src/index.js | 8 ++++++++ .../src/__tests__/sidebars.test.js | 8 ++++---- .../docusaurus-plugin-content-docs/src/index.js | 17 +++++++++++------ .../src/sidebars.js | 11 +++++++++-- .../src/index.js | 9 +++++++++ 5 files changed, 41 insertions(+), 12 deletions(-) diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 0688199cca7b..425069ab9cc7 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -56,6 +56,10 @@ class DocusaurusPluginContentBlog { const {siteConfig} = this.context; const blogDir = this.contentPath; + if (!fs.existsSync(blogDir)) { + return null; + } + const {baseUrl} = siteConfig; const blogFiles = await globby(include, { cwd: blogDir, @@ -158,6 +162,10 @@ class DocusaurusPluginContentBlog { } async contentLoaded({content: blogContents, actions}) { + if (!blogContents) { + return; + } + const { blogListComponent, blogPostComponent, diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js index 379bcff4c6d2..2893284382b8 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js @@ -12,18 +12,18 @@ import loadSidebars from '../sidebars'; describe('loadSidebars', () => { test('normal site with sidebars', async () => { - const sidebar = require(path.join( + const sidebarPath = path.join( __dirname, '__fixtures__', 'website', 'sidebars.json', - )); - const result = loadSidebars({sidebar}); + ); + const result = loadSidebars(sidebarPath); expect(result).toMatchSnapshot(); }); test('site without sidebars', () => { - const result = loadSidebars({sidebar: {}}); + const result = loadSidebars(null); expect(result).toMatchSnapshot(); }); }); diff --git a/packages/docusaurus-plugin-content-docs/src/index.js b/packages/docusaurus-plugin-content-docs/src/index.js index ea2b4b482ef8..12c1e3c2b5bd 100644 --- a/packages/docusaurus-plugin-content-docs/src/index.js +++ b/packages/docusaurus-plugin-content-docs/src/index.js @@ -6,7 +6,7 @@ */ const globby = require('globby'); -const importFresh = require('import-fresh'); +const fs = require('fs'); const path = require('path'); const {idx, normalizeUrl, docuHash} = require('@docusaurus/utils'); @@ -48,14 +48,16 @@ class DocusaurusPluginContentDocs { // Fetches blog contents and returns metadata for the contents. async loadContent() { const {include, routeBasePath, sidebarPath} = this.options; - const {siteDir, siteConfig} = this.context; + const {siteConfig} = this.context; const docsDir = this.contentPath; - // We don't want sidebars to be cached because of hotreloading. - const sidebar = importFresh(sidebarPath); - const docsSidebars = loadSidebars({siteDir, sidebar}); + if (!fs.existsSync(docsDir)) { + return null; + } - // @tested - build the docs ordering such as next, previous, category and sidebar + const docsSidebars = loadSidebars(sidebarPath); + + // Build the docs ordering such as next, previous, category and sidebar const order = createOrder(docsSidebars); // Prepare metadata container. @@ -111,6 +113,9 @@ class DocusaurusPluginContentDocs { } async contentLoaded({content, actions}) { + if (!content) { + return; + } const {docLayoutComponent, docItemComponent, routeBasePath} = this.options; const {addRoute, createData} = actions; diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars.js b/packages/docusaurus-plugin-content-docs/src/sidebars.js index db26d603b7d6..5e878b012c1d 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars.js +++ b/packages/docusaurus-plugin-content-docs/src/sidebars.js @@ -5,6 +5,9 @@ * LICENSE file in the root directory of this source tree. */ +const fs = require('fs'); +const importFresh = require('import-fresh'); + /** * Check that item contains only allowed keys * @@ -109,7 +112,11 @@ function normalizeSidebar(sidebars) { }, {}); } -module.exports = function loadSidebars({sidebar}) { - const allSidebars = sidebar; +module.exports = function loadSidebars(sidebarPath) { + // We don't want sidebars to be cached because of hotreloading. + let allSidebars = {}; + if (sidebarPath && fs.existsSync(sidebarPath)) { + allSidebars = importFresh(sidebarPath); + } return normalizeSidebar(allSidebars); }; diff --git a/packages/docusaurus-plugin-content-pages/src/index.js b/packages/docusaurus-plugin-content-pages/src/index.js index fec3feb9908c..92a695e77075 100644 --- a/packages/docusaurus-plugin-content-pages/src/index.js +++ b/packages/docusaurus-plugin-content-pages/src/index.js @@ -7,6 +7,7 @@ const globby = require('globby'); const path = require('path'); +const fs = require('fs'); const {encodePath, fileToPath, docuHash} = require('@docusaurus/utils'); const DEFAULT_OPTIONS = { @@ -39,6 +40,10 @@ class DocusaurusPluginContentPages { const {siteConfig} = this.context; const pagesDir = this.contentPath; + if (!fs.existsSync(pagesDir)) { + return null; + } + const {baseUrl} = siteConfig; const pagesFiles = await globby(include, { cwd: pagesDir, @@ -64,6 +69,10 @@ class DocusaurusPluginContentPages { } async contentLoaded({content, actions}) { + if (!content) { + return; + } + const {addRoute, createData} = actions; await Promise.all( From f51a653a68518e7ab139b39141dbe0f620769513 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Wed, 15 May 2019 02:56:08 -0700 Subject: [PATCH 28/60] feat(v2): list blog tags on posts (#1456) * feat(v2): list blog tags on posts * fix date handling on blog header * fix console log error due to non unique key --- .../src/index.js | 39 ++++++++++------ .../src/theme/BlogPostItem/index.js | 45 ++++++++++++++----- .../src/theme/BlogPostPage/index.js | 2 +- .../src/theme/BlogTagsPostsPage/index.js | 6 ++- .../blog/2017-12-14-introducing-docusaurus.md | 1 - 5 files changed, 64 insertions(+), 29 deletions(-) diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index 425069ab9cc7..bd2d814aece6 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -135,29 +135,44 @@ class DocusaurusPluginContentBlog { } const blogTags = {}; + const tagsPath = normalizeUrl([basePageUrl, 'tags']); blogPosts.forEach(blogPost => { const {tags} = blogPost.metadata; if (!tags || tags.length === 0) { + // TODO: Extract tags out into a separate plugin. + // eslint-disable-next-line no-param-reassign + blogPost.metadata.tags = []; return; } - tags.forEach(tag => { + // eslint-disable-next-line no-param-reassign + blogPost.metadata.tags = tags.map(tag => { const normalizedTag = _.kebabCase(tag); + const permalink = normalizeUrl([tagsPath, normalizedTag]); if (!blogTags[normalizedTag]) { blogTags[normalizedTag] = { name: tag.toLowerCase(), // Will only use the name of the first occurrence of the tag. items: [], + permalink, }; } blogTags[normalizedTag].items.push(blogPost.id); + + return { + label: tag, + permalink, + }; }); }); + const blogTagsListPath = Object.keys(blogTags).length > 0 ? tagsPath : null; + return { blogPosts, blogListPaginated, blogTags, + blogTagsListPath, }; } @@ -174,7 +189,12 @@ class DocusaurusPluginContentBlog { } = this.options; const {addRoute, createData} = actions; - const {blogPosts, blogListPaginated, blogTags} = blogContents; + const { + blogPosts, + blogListPaginated, + blogTags, + blogTagsListPath, + } = blogContents; const blogItemsToModules = {}; // Create routes for blog entries. @@ -254,21 +274,14 @@ class DocusaurusPluginContentBlog { ); // Tags. - const {routeBasePath} = this.options; - const { - siteConfig: {baseUrl}, - } = this.context; - - const basePageUrl = normalizeUrl([baseUrl, routeBasePath]); - const tagsPath = normalizeUrl([basePageUrl, 'tags']); const tagsModule = {}; await Promise.all( Object.keys(blogTags).map(async tag => { - const permalink = normalizeUrl([tagsPath, tag]); - const {name, items} = blogTags[tag]; + const {name, items, permalink} = blogTags[tag]; tagsModule[tag] = { + allTagsPath: blogTagsListPath, slug: tag, name, count: items.length, @@ -309,12 +322,12 @@ class DocusaurusPluginContentBlog { // Only create /tags page if there are tags. if (Object.keys(blogTags).length > 0) { const tagsListPath = await createData( - `${docuHash(`${tagsPath}-tags`)}.json`, + `${docuHash(`${blogTagsListPath}-tags`)}.json`, JSON.stringify(tagsModule, null, 2), ); addRoute({ - path: tagsPath, + path: blogTagsListPath, component: blogTagsListComponent, exact: true, modules: { diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js index bd0fd0257393..6cc7b15d0429 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostItem/index.js @@ -10,12 +10,12 @@ import Link from '@docusaurus/Link'; function BlogPostItem(props) { const {children, frontMatter, metadata, truncated} = props; + const {date, permalink, tags} = metadata; + const {author, authorURL, authorTitle, authorFBID, title} = frontMatter; const renderPostHeader = () => { - const {author, authorURL, authorTitle, authorFBID, title} = frontMatter; - const {date, permalink} = metadata; - - const blogPostDate = new Date(date); + const match = date.substring(0, 10).split('-'); + const year = match[0]; const month = [ 'January', 'February', @@ -29,7 +29,8 @@ function BlogPostItem(props) { 'October', 'November', 'December', - ]; + ][parseInt(match[1], 10) - 1]; + const day = parseInt(match[2], 10); const authorImageURL = authorFBID ? `https://graph.facebook.com/${authorFBID}/picture/?height=200&width=200` @@ -37,12 +38,13 @@ function BlogPostItem(props) { return (
-

+

{title}

- {month[blogPostDate.getMonth()]} {blogPostDate.getDay()},{' '} - {blogPostDate.getFullYear()} + + {month} {day}, {year} +
{authorImageURL && ( @@ -79,11 +81,30 @@ function BlogPostItem(props) {
{renderPostHeader()}
{children}
- {truncated && ( -
- Read More +
+
+ {tags.length > 0 && ( + <> + Tags: + {tags.map(({label, permalink: tagPermalink}) => ( + + {label} + + ))} + + )} +
+
+ {truncated && ( + + Read More + + )}
- )} +
); } diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js index ff2fc1868937..84e8048dd043 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js @@ -23,7 +23,7 @@ function BlogPostPage(props) { -
+
diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js index 399ceaed1718..14fc41418b29 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogTagsPostsPage/index.js @@ -9,10 +9,11 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line import BlogPostItem from '@theme/BlogPostItem'; +import Link from '@docusaurus/Link'; function BlogTagsPostPage(props) { const {metadata, items} = props; - const {name: tagName, count} = metadata; + const {allTagsPath, name: tagName, count} = metadata; return ( {count} post(s) tagged with "{tagName}" -
+ View All Tags +
{items.map( ({content: BlogPostContent, metadata: blogPostMetadata}) => (
diff --git a/website-1.x/blog/2017-12-14-introducing-docusaurus.md b/website-1.x/blog/2017-12-14-introducing-docusaurus.md index d8231a159ec3..d60b78be7a8f 100644 --- a/website-1.x/blog/2017-12-14-introducing-docusaurus.md +++ b/website-1.x/blog/2017-12-14-introducing-docusaurus.md @@ -4,7 +4,6 @@ author: Joel Marcey authorURL: http://twitter.com/JoelMarcey authorFBID: 611217057 authorTwitter: JoelMarcey -tags: [birth] --- ![Introducing Slash](/img/slash-introducing.svg) From 0f358ad5b0752aeac70478eb72dd33b7652212ed Mon Sep 17 00:00:00 2001 From: endiliey Date: Wed, 15 May 2019 19:16:28 +0800 Subject: [PATCH 29/60] test(v2): test different type of sidebar item --- .../__fixtures__/website/bad-sidebars.json | 14 ++++++++++++++ .../__fixtures__/website/sidebars.json | 11 ++++++++++- .../__snapshots__/sidebars.test.js.snap | 13 ++++++++++--- .../src/__tests__/sidebars.test.js | 18 +++++++++++++++--- website/sidebars.js | 10 +++++++++- 5 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/bad-sidebars.json diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/bad-sidebars.json b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/bad-sidebars.json new file mode 100644 index 000000000000..618c52d81753 --- /dev/null +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/bad-sidebars.json @@ -0,0 +1,14 @@ +{ + "docs": { + "Test": [ + "foo/bar", + "foo/baz", + { + "type": "superman" + } + ], + "Guides": [ + "hello" + ] + } +} diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/sidebars.json b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/sidebars.json index 24d61b49c760..e355c9b3f02a 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/sidebars.json +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/website/sidebars.json @@ -2,7 +2,16 @@ "docs": { "Test": [ "foo/bar", - "foo/baz" + "foo/baz", + { + "type": "link", + "label": "Github", + "href": "https://github.com" + }, + { + "type": "ref", + "id": "hello" + } ], "Guides": [ "hello" diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/__snapshots__/sidebars.test.js.snap b/packages/docusaurus-plugin-content-docs/src/__tests__/__snapshots__/sidebars.test.js.snap index 60217ba1d2c2..7e05bac63a09 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/__snapshots__/sidebars.test.js.snap +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/__snapshots__/sidebars.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`loadSidebars normal site with sidebars 1`] = ` +exports[`loadSidebars sidebars with known sidebar item type 1`] = ` Object { "docs": Array [ Object { @@ -13,6 +13,15 @@ Object { "id": "foo/baz", "type": "doc", }, + Object { + "href": "https://github.com", + "label": "Github", + "type": "link", + }, + Object { + "id": "hello", + "type": "ref", + }, ], "label": "Test", "type": "category", @@ -30,5 +39,3 @@ Object { ], } `; - -exports[`loadSidebars site without sidebars 1`] = `Object {}`; diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js index 2893284382b8..da6b5ae56059 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/sidebars.test.js @@ -11,7 +11,7 @@ import loadSidebars from '../sidebars'; /* eslint-disable global-require, import/no-dynamic-require */ describe('loadSidebars', () => { - test('normal site with sidebars', async () => { + test('sidebars with known sidebar item type', async () => { const sidebarPath = path.join( __dirname, '__fixtures__', @@ -22,8 +22,20 @@ describe('loadSidebars', () => { expect(result).toMatchSnapshot(); }); - test('site without sidebars', () => { + test('sidebars with unknown sidebar item type', async () => { + const sidebarPath = path.join( + __dirname, + '__fixtures__', + 'website', + 'bad-sidebars.json', + ); + expect(() => loadSidebars(sidebarPath)).toThrowErrorMatchingInlineSnapshot( + `"Unknown sidebar item type: superman"`, + ); + }); + + test('no sidebars', () => { const result = loadSidebars(null); - expect(result).toMatchSnapshot(); + expect(result).toEqual({}); }); }); diff --git a/website/sidebars.js b/website/sidebars.js index de77ec0c41df..2f27e1f85e4c 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -14,7 +14,15 @@ module.exports = { 'deployment', ], Guides: [ - 'configuration', + { + type: 'link', + label: 'Github', + href: 'http://github.com', + }, + { + type: 'ref', + id: 'configuration', + }, 'creating-pages', 'writing-documentation', 'assets', From 6d7582a95f31df7c31e20c726fedd581da7f93b4 Mon Sep 17 00:00:00 2001 From: endiliey Date: Wed, 15 May 2019 19:35:14 +0800 Subject: [PATCH 30/60] chore(v2): fix typo --- CHANGELOG.md | 2 +- website/sidebars.js | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef8b3ee9033d..f8afdc9f731b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1070,7 +1070,7 @@ N/A - Blog - Documentation -[unreleased]: https://github.com/facebook/Docusaurus/compare/v1.8.0...HEAD +[unreleased]: https://github.com/facebook/Docusaurus/compare/v1.9.0...HEAD [1.9.0]: https://github.com/facebook/Docusaurus/compare/v1.8.1...v1.9.0 [1.8.1]: https://github.com/facebook/Docusaurus/compare/v1.8.0...v1.8.1 [1.8.0]: https://github.com/facebook/Docusaurus/compare/v1.7.3...v1.8.0 diff --git a/website/sidebars.js b/website/sidebars.js index 2f27e1f85e4c..de77ec0c41df 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -14,15 +14,7 @@ module.exports = { 'deployment', ], Guides: [ - { - type: 'link', - label: 'Github', - href: 'http://github.com', - }, - { - type: 'ref', - id: 'configuration', - }, + 'configuration', 'creating-pages', 'writing-documentation', 'assets', From f08ebb9b4ef15bc2609ad3cd69d6d4dfc58f107d Mon Sep 17 00:00:00 2001 From: endiliey Date: Wed, 15 May 2019 19:37:46 +0800 Subject: [PATCH 31/60] v2.0.0-alpha.14 --- lerna.json | 2 +- packages/docusaurus-1.x/package.json | 2 +- packages/docusaurus-mdx-loader/package.json | 2 +- packages/docusaurus-plugin-content-blog/package.json | 6 +++--- packages/docusaurus-plugin-content-docs/package.json | 6 +++--- packages/docusaurus-plugin-content-pages/package.json | 4 ++-- packages/docusaurus-plugin-sitemap/package.json | 2 +- packages/docusaurus-preset-classic/package.json | 10 +++++----- packages/docusaurus-theme-classic/package.json | 2 +- packages/docusaurus-theme-search-algolia/package.json | 2 +- packages/docusaurus-utils/package.json | 2 +- packages/docusaurus/package.json | 4 ++-- website-1.x/package.json | 4 ++-- website/package.json | 6 +++--- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/lerna.json b/lerna.json index 039bc2384e8c..da669fc91017 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "3.13.1", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "npmClient": "yarn", "useWorkspaces": true } diff --git a/packages/docusaurus-1.x/package.json b/packages/docusaurus-1.x/package.json index b70c65022d54..57854d9c7caf 100644 --- a/packages/docusaurus-1.x/package.json +++ b/packages/docusaurus-1.x/package.json @@ -1,7 +1,7 @@ { "name": "docusaurus", "description": "Easy to Maintain Open Source Documentation Websites", - "version": "1.9.0", + "version": "2.0.0-alpha.14", "license": "MIT", "keywords": [ "documentation", diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index 436a4ad6cc52..28af232370a9 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/mdx-loader", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Docusaurus Loader for MDX", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index 586c07f9bbf3..2bf60cd14681 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-content-blog", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Blog plugin for Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,8 +8,8 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "^2.0.0-alpha.13", - "@docusaurus/utils": "^2.0.0-alpha.13", + "@docusaurus/mdx-loader": "^2.0.0-alpha.14", + "@docusaurus/utils": "^2.0.0-alpha.14", "fs-extra": "^7.0.1", "globby": "^9.1.0", "loader-utils": "^1.2.3", diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index 1a19a7b574cb..3ddd62b549d4 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-content-docs", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Documentation plugin for Docusaurus", "main": "src/index.js", "publishConfig": { @@ -9,8 +9,8 @@ "license": "MIT", "dependencies": { "@babel/polyfill": "^7.4.0", - "@docusaurus/mdx-loader": "^2.0.0-alpha.13", - "@docusaurus/utils": "^2.0.0-alpha.13", + "@docusaurus/mdx-loader": "^2.0.0-alpha.14", + "@docusaurus/utils": "^2.0.0-alpha.14", "fs-extra": "^7.0.1", "globby": "^9.1.0", "import-fresh": "^3.0.0", diff --git a/packages/docusaurus-plugin-content-pages/package.json b/packages/docusaurus-plugin-content-pages/package.json index 88c1fca258e7..a18ff0e932a9 100644 --- a/packages/docusaurus-plugin-content-pages/package.json +++ b/packages/docusaurus-plugin-content-pages/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-content-pages", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Pages content plugin for Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,7 +8,7 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/utils": "^2.0.0-alpha.13", + "@docusaurus/utils": "^2.0.0-alpha.14", "globby": "^9.1.0" }, "peerDependencies": { diff --git a/packages/docusaurus-plugin-sitemap/package.json b/packages/docusaurus-plugin-sitemap/package.json index 4b8ae3611690..49f73f3c2b90 100644 --- a/packages/docusaurus-plugin-sitemap/package.json +++ b/packages/docusaurus-plugin-sitemap/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-sitemap", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Simple sitemap generation plugin for Docusaurus", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-preset-classic/package.json b/packages/docusaurus-preset-classic/package.json index 9607827e2635..dac481412262 100644 --- a/packages/docusaurus-preset-classic/package.json +++ b/packages/docusaurus-preset-classic/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/preset-classic", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Preset for classic Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,10 +8,10 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/plugin-content-blog": "^2.0.0-alpha.13", - "@docusaurus/plugin-content-docs": "^2.0.0-alpha.13", - "@docusaurus/plugin-content-pages": "^2.0.0-alpha.13", - "@docusaurus/plugin-sitemap": "^2.0.0-alpha.13" + "@docusaurus/plugin-content-blog": "^2.0.0-alpha.14", + "@docusaurus/plugin-content-docs": "^2.0.0-alpha.14", + "@docusaurus/plugin-content-pages": "^2.0.0-alpha.14", + "@docusaurus/plugin-sitemap": "^2.0.0-alpha.14" }, "peerDependencies": { "@docusaurus/core": "^2.0.0" diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index 12fef6df98fa..98ab4868d565 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/theme-classic", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Classic theme for Docusaurus", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index f56f91ff2338..4ae9945a69cf 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/theme-search-algolia", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Algolia search component for Docusaurus", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index 7cc41b7b9fb5..87430528408c 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/utils", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "description": "Node utility functions for Docusaurus packages", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index a37dea12d83d..aa8ff4cddaab 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -1,7 +1,7 @@ { "name": "@docusaurus/core", "description": "Easy to Maintain Open Source Documentation Websites", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "license": "MIT", "publishConfig": { "access": "public" @@ -34,7 +34,7 @@ "@babel/polyfill": "^7.4.0", "@babel/preset-env": "^7.4.2", "@babel/preset-react": "^7.0.0", - "@docusaurus/utils": "^2.0.0-alpha.13", + "@docusaurus/utils": "^2.0.0-alpha.14", "babel-loader": "^8.0.0", "babel-plugin-dynamic-import-node": "^2.2.0", "cache-loader": "^2.0.1", diff --git a/website-1.x/package.json b/website-1.x/package.json index 7d2227a7cf69..b2152acde3f0 100644 --- a/website-1.x/package.json +++ b/website-1.x/package.json @@ -1,6 +1,6 @@ { "name": "docusaurus-1-website", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "private": true, "scripts": { "start": "docusaurus-start", @@ -15,6 +15,6 @@ }, "dependencies": { "async": "^2.5.0", - "docusaurus": "^1.9.0" + "docusaurus": "^2.0.0-alpha.14" } } diff --git a/website/package.json b/website/package.json index f4d24477008f..4a624fb2312a 100644 --- a/website/package.json +++ b/website/package.json @@ -1,6 +1,6 @@ { "name": "docusaurus-2-website", - "version": "2.0.0-alpha.13", + "version": "2.0.0-alpha.14", "private": true, "scripts": { "start": "docusaurus start", @@ -9,8 +9,8 @@ "deploy": "docusaurus deploy" }, "dependencies": { - "@docusaurus/core": "^2.0.0-alpha.13", - "@docusaurus/preset-classic": "^2.0.0-alpha.13", + "@docusaurus/core": "^2.0.0-alpha.14", + "@docusaurus/preset-classic": "^2.0.0-alpha.14", "classnames": "^2.2.6", "react": "^16.8.4", "react-dom": "^16.8.4" From 22bf23965bfb4b16c3fb4241242acd7a283e0636 Mon Sep 17 00:00:00 2001 From: Endi Date: Wed, 15 May 2019 20:54:41 +0700 Subject: [PATCH 32/60] fix(v2): fix wrong dependency problem (#1460) --- packages/docusaurus-mdx-loader/package.json | 1 - .../src/rightToc/__tests__/index.test.js | 1 - packages/docusaurus-plugin-content-blog/package.json | 2 +- packages/docusaurus-plugin-content-docs/package.json | 3 +-- .../src/__tests__/metadata.test.js | 1 - packages/docusaurus-plugin-content-pages/package.json | 2 +- packages/docusaurus-plugin-sitemap/package.json | 2 +- packages/docusaurus-preset-classic/package.json | 6 ++++-- packages/docusaurus-theme-classic/package.json | 2 +- packages/docusaurus-theme-search-algolia/package.json | 2 +- packages/docusaurus/package.json | 1 - .../docusaurus/src/server/load/__tests__/presets.test.js | 1 - packages/docusaurus/src/server/load/loadSetup.js | 1 - packages/docusaurus/src/webpack/__tests__/utils.test.js | 1 - yarn.lock | 2 +- 15 files changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index 28af232370a9..2ab663463bb8 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -25,7 +25,6 @@ "unist-util-visit": "^1.4.0" }, "devDependencies": { - "@babel/polyfill": "^7.4.3", "remark": "^10.0.1", "remark-mdx": "^1.0.14", "to-vfile": "^5.0.2" diff --git a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/index.test.js b/packages/docusaurus-mdx-loader/src/rightToc/__tests__/index.test.js index 4caf3bbe44d6..2587c0602d78 100644 --- a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/index.test.js +++ b/packages/docusaurus-mdx-loader/src/rightToc/__tests__/index.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import '@babel/polyfill'; import {join} from 'path'; import remark from 'remark'; import mdx from 'remark-mdx'; diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index 2bf60cd14681..24e4c3e61189 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -16,7 +16,7 @@ "lodash": "^4.17.11" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0", + "@docusaurus/core": "^2.0.0-alpha.14", "react": "^16.8.4", "react-dom": "^16.8.4" }, diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index 3ddd62b549d4..8c6f4fbef78f 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -8,7 +8,6 @@ }, "license": "MIT", "dependencies": { - "@babel/polyfill": "^7.4.0", "@docusaurus/mdx-loader": "^2.0.0-alpha.14", "@docusaurus/utils": "^2.0.0-alpha.14", "fs-extra": "^7.0.1", @@ -17,7 +16,7 @@ "loader-utils": "^1.2.3" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0", + "@docusaurus/core": "^2.0.0-alpha.14", "react": "^16.8.4", "react-dom": "^16.8.4", "react-router-config": "^5.0.0" diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js b/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js index 3469a04ffa95..9de643d84cfa 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/metadata.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import '@babel/polyfill'; import path from 'path'; import processMetadata from '../metadata'; diff --git a/packages/docusaurus-plugin-content-pages/package.json b/packages/docusaurus-plugin-content-pages/package.json index a18ff0e932a9..af0d1f67b55f 100644 --- a/packages/docusaurus-plugin-content-pages/package.json +++ b/packages/docusaurus-plugin-content-pages/package.json @@ -12,7 +12,7 @@ "globby": "^9.1.0" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0", + "@docusaurus/core": "^2.0.0-alpha.14", "react": "^16.8.4", "react-dom": "^16.8.4" }, diff --git a/packages/docusaurus-plugin-sitemap/package.json b/packages/docusaurus-plugin-sitemap/package.json index 49f73f3c2b90..89ee31b26e63 100644 --- a/packages/docusaurus-plugin-sitemap/package.json +++ b/packages/docusaurus-plugin-sitemap/package.json @@ -11,6 +11,6 @@ "sitemap": "^2.1.0" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0" + "@docusaurus/core": "^2.0.0-alpha.14" } } diff --git a/packages/docusaurus-preset-classic/package.json b/packages/docusaurus-preset-classic/package.json index dac481412262..acdb908ad569 100644 --- a/packages/docusaurus-preset-classic/package.json +++ b/packages/docusaurus-preset-classic/package.json @@ -11,9 +11,11 @@ "@docusaurus/plugin-content-blog": "^2.0.0-alpha.14", "@docusaurus/plugin-content-docs": "^2.0.0-alpha.14", "@docusaurus/plugin-content-pages": "^2.0.0-alpha.14", - "@docusaurus/plugin-sitemap": "^2.0.0-alpha.14" + "@docusaurus/plugin-sitemap": "^2.0.0-alpha.14", + "@docusaurus/theme-classic": "^2.0.0-alpha.14", + "@docusaurus/theme-search-algolia": "^2.0.0-alpha.14" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0" + "@docusaurus/core": "^2.0.0-alpha.14" } } diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index 98ab4868d565..e641940a36e0 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -11,7 +11,7 @@ "docsearch.js": "^2.5.2" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0", + "@docusaurus/core": "^2.0.0-alpha.14", "react": "^16.8.4", "react-dom": "^16.8.4" }, diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index 4ae9945a69cf..53473d972b19 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -11,7 +11,7 @@ "docsearch.js": "^2.6.3" }, "peerDependencies": { - "@docusaurus/core": "^2.0.0", + "@docusaurus/core": "^2.0.0-alpha.14", "react": "^16.8.4", "react-dom": "^16.8.4" }, diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index aa8ff4cddaab..df4b8a0d3ec2 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -31,7 +31,6 @@ "dependencies": { "@babel/core": "^7.4.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/polyfill": "^7.4.0", "@babel/preset-env": "^7.4.2", "@babel/preset-react": "^7.0.0", "@docusaurus/utils": "^2.0.0-alpha.14", diff --git a/packages/docusaurus/src/server/load/__tests__/presets.test.js b/packages/docusaurus/src/server/load/__tests__/presets.test.js index 52eeb4536706..14fd9fddeb73 100644 --- a/packages/docusaurus/src/server/load/__tests__/presets.test.js +++ b/packages/docusaurus/src/server/load/__tests__/presets.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import '@babel/polyfill'; import path from 'path'; import loadPresets from '../presets'; diff --git a/packages/docusaurus/src/server/load/loadSetup.js b/packages/docusaurus/src/server/load/loadSetup.js index 98557130d67b..8a1f55617375 100644 --- a/packages/docusaurus/src/server/load/loadSetup.js +++ b/packages/docusaurus/src/server/load/loadSetup.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import '@babel/polyfill'; import path from 'path'; import load from '../index'; diff --git a/packages/docusaurus/src/webpack/__tests__/utils.test.js b/packages/docusaurus/src/webpack/__tests__/utils.test.js index 81af06ac55ce..4ccf6dceb56f 100644 --- a/packages/docusaurus/src/webpack/__tests__/utils.test.js +++ b/packages/docusaurus/src/webpack/__tests__/utils.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import '@babel/polyfill'; import {validate} from 'webpack'; import path from 'path'; diff --git a/yarn.lock b/yarn.lock index de196c8fd5cf..ebe5ed96035e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -655,7 +655,7 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/polyfill@^7.0.0", "@babel/polyfill@^7.4.0", "@babel/polyfill@^7.4.3": +"@babel/polyfill@^7.0.0": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.4.4.tgz#78801cf3dbe657844eeabf31c1cae3828051e893" integrity sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg== From b4a71e41f00f7f22703bc1e6cb402bba529f97e2 Mon Sep 17 00:00:00 2001 From: endiliey Date: Wed, 15 May 2019 21:56:12 +0800 Subject: [PATCH 33/60] v2.0.0-alpha.15 --- lerna.json | 2 +- packages/docusaurus-1.x/package.json | 2 +- packages/docusaurus-mdx-loader/package.json | 2 +- .../docusaurus-plugin-content-blog/package.json | 6 +++--- .../docusaurus-plugin-content-docs/package.json | 6 +++--- .../docusaurus-plugin-content-pages/package.json | 4 ++-- packages/docusaurus-plugin-sitemap/package.json | 2 +- packages/docusaurus-preset-classic/package.json | 14 +++++++------- packages/docusaurus-theme-classic/package.json | 2 +- .../docusaurus-theme-search-algolia/package.json | 2 +- packages/docusaurus-utils/package.json | 2 +- packages/docusaurus/package.json | 4 ++-- website-1.x/package.json | 4 ++-- website/package.json | 6 +++--- 14 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index da669fc91017..f2d2f5774799 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "3.13.1", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "npmClient": "yarn", "useWorkspaces": true } diff --git a/packages/docusaurus-1.x/package.json b/packages/docusaurus-1.x/package.json index 57854d9c7caf..e2f54a6446ca 100644 --- a/packages/docusaurus-1.x/package.json +++ b/packages/docusaurus-1.x/package.json @@ -1,7 +1,7 @@ { "name": "docusaurus", "description": "Easy to Maintain Open Source Documentation Websites", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "license": "MIT", "keywords": [ "documentation", diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index 2ab663463bb8..615e659bf105 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/mdx-loader", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Docusaurus Loader for MDX", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-plugin-content-blog/package.json b/packages/docusaurus-plugin-content-blog/package.json index 24e4c3e61189..2e3d87c4921d 100644 --- a/packages/docusaurus-plugin-content-blog/package.json +++ b/packages/docusaurus-plugin-content-blog/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-content-blog", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Blog plugin for Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,8 +8,8 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "^2.0.0-alpha.14", - "@docusaurus/utils": "^2.0.0-alpha.14", + "@docusaurus/mdx-loader": "^2.0.0-alpha.15", + "@docusaurus/utils": "^2.0.0-alpha.15", "fs-extra": "^7.0.1", "globby": "^9.1.0", "loader-utils": "^1.2.3", diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index 8c6f4fbef78f..3d366a6ebb37 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-content-docs", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Documentation plugin for Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,8 +8,8 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "^2.0.0-alpha.14", - "@docusaurus/utils": "^2.0.0-alpha.14", + "@docusaurus/mdx-loader": "^2.0.0-alpha.15", + "@docusaurus/utils": "^2.0.0-alpha.15", "fs-extra": "^7.0.1", "globby": "^9.1.0", "import-fresh": "^3.0.0", diff --git a/packages/docusaurus-plugin-content-pages/package.json b/packages/docusaurus-plugin-content-pages/package.json index af0d1f67b55f..8da5e688847c 100644 --- a/packages/docusaurus-plugin-content-pages/package.json +++ b/packages/docusaurus-plugin-content-pages/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-content-pages", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Pages content plugin for Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,7 +8,7 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/utils": "^2.0.0-alpha.14", + "@docusaurus/utils": "^2.0.0-alpha.15", "globby": "^9.1.0" }, "peerDependencies": { diff --git a/packages/docusaurus-plugin-sitemap/package.json b/packages/docusaurus-plugin-sitemap/package.json index 89ee31b26e63..480600ec06a1 100644 --- a/packages/docusaurus-plugin-sitemap/package.json +++ b/packages/docusaurus-plugin-sitemap/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/plugin-sitemap", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Simple sitemap generation plugin for Docusaurus", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-preset-classic/package.json b/packages/docusaurus-preset-classic/package.json index acdb908ad569..d63b1769f8c6 100644 --- a/packages/docusaurus-preset-classic/package.json +++ b/packages/docusaurus-preset-classic/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/preset-classic", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Preset for classic Docusaurus", "main": "src/index.js", "publishConfig": { @@ -8,12 +8,12 @@ }, "license": "MIT", "dependencies": { - "@docusaurus/plugin-content-blog": "^2.0.0-alpha.14", - "@docusaurus/plugin-content-docs": "^2.0.0-alpha.14", - "@docusaurus/plugin-content-pages": "^2.0.0-alpha.14", - "@docusaurus/plugin-sitemap": "^2.0.0-alpha.14", - "@docusaurus/theme-classic": "^2.0.0-alpha.14", - "@docusaurus/theme-search-algolia": "^2.0.0-alpha.14" + "@docusaurus/plugin-content-blog": "^2.0.0-alpha.15", + "@docusaurus/plugin-content-docs": "^2.0.0-alpha.15", + "@docusaurus/plugin-content-pages": "^2.0.0-alpha.15", + "@docusaurus/plugin-sitemap": "^2.0.0-alpha.15", + "@docusaurus/theme-classic": "^2.0.0-alpha.15", + "@docusaurus/theme-search-algolia": "^2.0.0-alpha.15" }, "peerDependencies": { "@docusaurus/core": "^2.0.0-alpha.14" diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index e641940a36e0..9d652525a68f 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/theme-classic", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Classic theme for Docusaurus", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-theme-search-algolia/package.json b/packages/docusaurus-theme-search-algolia/package.json index 53473d972b19..71d5b8bfccc1 100644 --- a/packages/docusaurus-theme-search-algolia/package.json +++ b/packages/docusaurus-theme-search-algolia/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/theme-search-algolia", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Algolia search component for Docusaurus", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index 87430528408c..1b93dd8542a6 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -1,6 +1,6 @@ { "name": "@docusaurus/utils", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "description": "Node utility functions for Docusaurus packages", "main": "src/index.js", "publishConfig": { diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index df4b8a0d3ec2..a9f8feb70ab1 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -1,7 +1,7 @@ { "name": "@docusaurus/core", "description": "Easy to Maintain Open Source Documentation Websites", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "license": "MIT", "publishConfig": { "access": "public" @@ -33,7 +33,7 @@ "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/preset-env": "^7.4.2", "@babel/preset-react": "^7.0.0", - "@docusaurus/utils": "^2.0.0-alpha.14", + "@docusaurus/utils": "^2.0.0-alpha.15", "babel-loader": "^8.0.0", "babel-plugin-dynamic-import-node": "^2.2.0", "cache-loader": "^2.0.1", diff --git a/website-1.x/package.json b/website-1.x/package.json index b2152acde3f0..dc19ba1805a6 100644 --- a/website-1.x/package.json +++ b/website-1.x/package.json @@ -1,6 +1,6 @@ { "name": "docusaurus-1-website", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "private": true, "scripts": { "start": "docusaurus-start", @@ -15,6 +15,6 @@ }, "dependencies": { "async": "^2.5.0", - "docusaurus": "^2.0.0-alpha.14" + "docusaurus": "^2.0.0-alpha.15" } } diff --git a/website/package.json b/website/package.json index 4a624fb2312a..ffd54c2616f3 100644 --- a/website/package.json +++ b/website/package.json @@ -1,6 +1,6 @@ { "name": "docusaurus-2-website", - "version": "2.0.0-alpha.14", + "version": "2.0.0-alpha.15", "private": true, "scripts": { "start": "docusaurus start", @@ -9,8 +9,8 @@ "deploy": "docusaurus deploy" }, "dependencies": { - "@docusaurus/core": "^2.0.0-alpha.14", - "@docusaurus/preset-classic": "^2.0.0-alpha.14", + "@docusaurus/core": "^2.0.0-alpha.15", + "@docusaurus/preset-classic": "^2.0.0-alpha.15", "classnames": "^2.2.6", "react": "^16.8.4", "react-dom": "^16.8.4" From 339ef8d363e807c27654c6700f0e9db279048c11 Mon Sep 17 00:00:00 2001 From: endiliey Date: Wed, 15 May 2019 23:22:25 +0800 Subject: [PATCH 34/60] Chore(v2): use alias instead of relative path for blogpost --- .../src/theme/BlogPostPage/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js index 84e8048dd043..442433f9b8f9 100644 --- a/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js +++ b/packages/docusaurus-plugin-content-blog/src/theme/BlogPostPage/index.js @@ -9,7 +9,7 @@ import React from 'react'; import Layout from '@theme/Layout'; // eslint-disable-line import BlogPostItem from '@theme/BlogPostItem'; -import BlogPostPaginator from '../BlogPostPaginator'; +import BlogPostPaginator from '@theme/BlogPostPaginator'; function BlogPostPage(props) { const {content: BlogPostContents, metadata, nextItem, prevItem} = props; From 7f1995b337b4231da8e122340248acbe1ff9a98d Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Wed, 15 May 2019 23:27:52 -0700 Subject: [PATCH 35/60] feat(v2): theme config for Footer (#1461) * feat(v2): theme config for Footer * fix: dont show footer if themeConfig.footer is undefined * Import fresh docusaurus.config.js for better hot reload --- .../docusaurus-theme-classic/package.json | 1 + .../src/theme/Footer/index.js | 151 ++++++++---------- packages/docusaurus/src/server/load/config.js | 8 +- website/docusaurus.config.js | 57 +++++++ 4 files changed, 126 insertions(+), 91 deletions(-) diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index 9d652525a68f..62271cdb3d1e 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -8,6 +8,7 @@ }, "license": "MIT", "dependencies": { + "classnames": "^2.2.6", "docsearch.js": "^2.5.2" }, "peerDependencies": { diff --git a/packages/docusaurus-theme-classic/src/theme/Footer/index.js b/packages/docusaurus-theme-classic/src/theme/Footer/index.js index 5898c80068d4..ea04c719ea96 100644 --- a/packages/docusaurus-theme-classic/src/theme/Footer/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Footer/index.js @@ -6,98 +6,77 @@ */ import React from 'react'; +import classnames from 'classnames'; + +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; function Footer() { + const context = useDocusaurusContext(); + const {siteConfig = {}} = context; + + const { + baseUrl, + themeConfig: {footer}, + } = siteConfig; + + if (!footer) { + return null; + } + + const {copyright, links = [], logo} = footer; + return ( -