diff --git a/.eslintrc.js b/.eslintrc.js
index a4a1ec153e3b2d..4f848acaf2bdfb 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -131,6 +131,7 @@ module.exports = {
],
rules: {
'import/no-extraneous-dependencies': 'error',
+ 'import/no-unresolved': 'error',
},
},
{
@@ -172,5 +173,11 @@ module.exports = {
'jest/expect-expect': 'off',
},
},
+ {
+ files: [ 'bin/**/*.js' ],
+ rules: {
+ 'no-console': 'off',
+ },
+ },
],
};
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 369eba93247349..a49bd40fce1b5b 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -8,6 +8,7 @@
/packages/core-data @youknowriad @nerrad
/packages/data @youknowriad @nerrad @coderkevin
/packages/redux-routine @youknowriad @nerrad
+/packages/data-controls @nerrad @aduth
# Blocks
/packages/block-library @Soean @ajitbohra @jorgefilipecosta @talldan
@@ -26,10 +27,20 @@
/packages/editor
/packages/list-reusable-blocks @youknowriad @noisysocks
/packages/shortcode
+/packages/block-directory
+/packages/interface
+/packages/media-utils
+/packages/server-side-render
# Widgets
/packages/edit-widgets @youknowriad
+# Navigation
+/packages/edit-navigation
+
+# Full Site Editing
+/packages/edit-site
+
# Tooling
/bin @ntwb @nerrad @ajitbohra
/bin/api-docs @ntwb @nerrad @ajitbohra @nosolosw
@@ -51,6 +62,8 @@
/packages/npm-package-json-lint-config @gziolo @ntwb @nerrad @ajitbohra
/packages/postcss-themes @youknowriad @ntwb @nerrad @ajitbohra
/packages/scripts @youknowriad @gziolo @ntwb @nerrad @ajitbohra
+/packages/dependency-extraction-webpack-plugin @gziolo
+/packages/prettier-config @ntwb @gziolo @aduth
# UI Components
/packages/components @youknowriad @ajitbohra @jaymanpandya @jorgefilipecosta @chrisvanpatten
@@ -59,6 +72,9 @@
/packages/notices @ajitbohra @jaymanpandya @jorgefilipecosta
/packages/nux @ajitbohra @jaymanpandya @jorgefilipecosta @noisysocks
/packages/viewport @youknowriad @ajitbohra @jaymanpandya @jorgefilipecosta
+/packages/base-styles
+/packages/icons
+/packages/primitives
# Utilities
/packages/a11y @youknowriad @aduth
@@ -76,6 +92,8 @@
/packages/token-list @aduth
/packages/url @talldan @aduth
/packages/wordcount @aduth
+/packages/warning
+/packages/keyboard-shortcuts
# Extensibility
/packages/hooks @gziolo @adamsilverstein
@@ -86,6 +104,10 @@
/packages/rich-text @ellatrix @jorgefilipecosta @daniloercoli @sergioestevao @etoledom
/packages/block-editor/src/components/rich-text @ellatrix @jorgefilipecosta @daniloercoli @sergioestevao @etoledom
+# Project Management
+/.github @youknowriad @mapk @karmatosed
+/packages/project-management-automation @aduth
+
# wp-env
/packages/env @epiqueras @noahtallen @noisysocks
@@ -99,6 +121,3 @@
*.native.scss @ghost
*.android.scss @ghost
*.ios.scss @ghost
-
-# Project Management
-/.github @youknowriad @mapk @karmatosed
diff --git a/.nvmrc b/.nvmrc
index b009dfb9d9f98f..48082f72f087ce 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-lts/*
+12
diff --git a/.travis.yml b/.travis.yml
index b39f8565c5683a..c322b283ab765a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,6 +21,7 @@ branches:
- rnmobile/master
- /rnmobile\/release.*/
- /wp\/.*/
+ - feat/import-gutenberg-mobile-no-squash
env:
global:
@@ -98,6 +99,12 @@ jobs:
- name: Lint
install:
- npm ci
+ # eslint-plugin-import/no-extraneous-dependencies relies on modules to
+ # be "installed", which in practice requires that packages be built,
+ # presumably so that pkg.main can be resolved.
+ #
+ # See: https://github.com/benmosher/eslint-plugin-import/blob/92caa35/resolvers/node/index.js
+ - node ./bin/packages/build.js
script:
- npm run lint
diff --git a/.wp-env.json b/.wp-env.json
index d67cd9642135da..943f4d0399eead 100644
--- a/.wp-env.json
+++ b/.wp-env.json
@@ -1,4 +1,8 @@
{
"core": "WordPress/WordPress",
- "plugins": [ "." ]
+ "plugins": [ "." ],
+ "mappings": {
+ "wp-content/mu-plugins": "./packages/e2e-tests/mu-plugins",
+ "wp-content/plugins/gutenberg-test-plugins": "./packages/e2e-tests/plugins"
+ }
}
diff --git a/bin/api-docs/update-api-docs.js b/bin/api-docs/update-api-docs.js
index 985ff462ba0c22..450f68cfdfa63f 100755
--- a/bin/api-docs/update-api-docs.js
+++ b/bin/api-docs/update-api-docs.js
@@ -223,9 +223,6 @@ glob.stream( [
{ shell: true }
);
} catch ( error ) {
- // Disable reason: Errors should log to console.
-
- // eslint-disable-next-line no-console
console.error( error );
process.exit( 1 );
}
diff --git a/bin/changelog.js b/bin/changelog.js
new file mode 100755
index 00000000000000..ea768825ad4d2e
--- /dev/null
+++ b/bin/changelog.js
@@ -0,0 +1,271 @@
+#!/usr/bin/env node
+'use strict';
+
+/*
+ * External dependencies
+ */
+const { groupBy } = require( 'lodash' );
+const chalk = require( 'chalk' );
+const Octokit = require( '@octokit/rest' );
+
+/*
+ * Internal dependencies
+ */
+// @ts-ignore
+const manifest = require( '../package.json' );
+
+/** @typedef {import('@octokit/rest')} GitHub */
+/** @typedef {import('@octokit/rest').IssuesListForRepoResponseItem} IssuesListForRepoResponseItem */
+/** @typedef {import('@octokit/rest').IssuesListMilestonesForRepoResponseItem} OktokitIssuesListMilestonesForRepoResponseItem */
+
+/**
+ * @typedef WPChangelogSettings
+ *
+ * @property {string} owner Repository owner.
+ * @property {string} repo Repository name.
+ * @property {string=} token Optional personal access token.
+ * @property {string} milestone Milestone title.
+ */
+
+/**
+ * Optional GitHub token used to authenticate requests.
+ *
+ * @type {string=}
+ */
+const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
+
+/**
+ * Optional explicit milestone title to use for generating changelog.
+ *
+ * @type {string=}
+ */
+const MILESTONE = process.env.MILESTONE;
+
+/**
+ * Given a SemVer-formatted version string, returns an assumed milestone title
+ * associated with that version.
+ *
+ * @see https://semver.org/
+ *
+ * @param {string} version Version string.
+ *
+ * @return {string} Milestone title.
+ */
+function getMilestone( version ) {
+ const [ major, minor ] = version.split( '.' );
+ return `Gutenberg ${ major }.${ minor }`;
+}
+
+/**
+ * Returns a type label for a given issue object, or a default if type cannot
+ * be determined.
+ *
+ * @param {IssuesListForRepoResponseItem} issue Issue object.
+ *
+ * @return {string} Type label.
+ */
+function getIssueType( issue ) {
+ const typeLabel = issue.labels.find( ( label ) =>
+ label.name.startsWith( '[Type] ' )
+ );
+
+ return typeLabel ? typeLabel.name.replace( /^\[Type\] /, '' ) : 'Various';
+}
+
+/**
+ * Given an issue title, returns the title with normalization transforms
+ * applied.
+ *
+ * @param {string} title Original title.
+ *
+ * @return {string} Normalized title.
+ */
+function getNormalizedTitle( title ) {
+ if ( ! title.endsWith( '.' ) ) {
+ title = title + '.';
+ }
+
+ return title;
+}
+
+/**
+ * Returns a formatted changelog entry for a given issue object.
+ *
+ * @param {IssuesListForRepoResponseItem} issue Issue object.
+ *
+ * @return {string} Formatted changelog entry.
+ */
+function getEntry( issue ) {
+ const title = getNormalizedTitle( issue.title );
+
+ return `- ${ title } ([${ issue.number }](${ issue.html_url }))`;
+}
+
+/**
+ * Returns a promise resolving to a milestone by a given title, if exists.
+ *
+ * @param {GitHub} octokit Initialized Octokit REST client.
+ * @param {string} owner Repository owner.
+ * @param {string} repo Repository name.
+ * @param {string} title Milestone title.
+ *
+ * @return {Promise} Promise resolving to milestone, if exists.
+ */
+async function getMilestoneByTitle( octokit, owner, repo, title ) {
+ const options = octokit.issues.listMilestonesForRepo.endpoint.merge( {
+ owner,
+ repo,
+ } );
+
+ /**
+ * @type {AsyncIterableIterator>}
+ */
+ const responses = octokit.paginate.iterator( options );
+
+ for await ( const response of responses ) {
+ const milestones = response.data;
+ for ( const milestone of milestones ) {
+ if ( milestone.title === title ) {
+ return milestone;
+ }
+ }
+ }
+}
+
+/**
+ * Returns a promise resolving to pull requests by a given milestone ID.
+ *
+ * @param {GitHub} octokit Initialized Octokit REST client.
+ * @param {string} owner Repository owner.
+ * @param {string} repo Repository name.
+ * @param {number} milestone Milestone ID.
+ *
+ * @return {Promise} Promise resolving to pull
+ * requests for the given
+ * milestone.
+ */
+async function getPullRequestsByMilestone( octokit, owner, repo, milestone ) {
+ const options = octokit.issues.listForRepo.endpoint.merge( {
+ owner,
+ repo,
+ milestone,
+ state: 'closed',
+ } );
+
+ /**
+ * @type {AsyncIterableIterator>}
+ */
+ const responses = octokit.paginate.iterator( options );
+
+ const pulls = [];
+
+ for await ( const response of responses ) {
+ const issues = response.data;
+ pulls.push( ...issues.filter( ( issue ) => issue.pull_request ) );
+ }
+
+ return pulls;
+}
+
+/**
+ * Returns a promise resolving to an array of pull requests associated with the
+ * changelog settings object.
+ *
+ * @param {GitHub} octokit GitHub REST client.
+ * @param {WPChangelogSettings} settings Changelog settings.
+ *
+ * @return {Promise} Promise resolving to array of
+ * pull requests.
+ */
+async function fetchAllPullRequests( octokit, settings ) {
+ const { owner, repo, milestone: milestoneTitle } = settings;
+ const milestone = await getMilestoneByTitle(
+ octokit,
+ owner,
+ repo,
+ milestoneTitle
+ );
+
+ if ( ! milestone ) {
+ throw new Error(
+ `Cannot find milestone by title: ${ settings.milestone }`
+ );
+ }
+
+ const { number } = milestone;
+ return getPullRequestsByMilestone( octokit, owner, repo, number );
+}
+
+/**
+ * Returns a promise resolving to the changelog string for given settings.
+ *
+ * @param {WPChangelogSettings} settings Changelog settings.
+ *
+ * @return {Promise} Promise resolving to changelog.
+ */
+async function getChangelog( settings ) {
+ const octokit = new Octokit( {
+ auth: settings.token,
+ } );
+
+ const pullRequests = await fetchAllPullRequests( octokit, settings );
+ if ( ! pullRequests.length ) {
+ throw new Error(
+ 'There are no pull requests associated with the milestone.'
+ );
+ }
+
+ let changelog = '';
+
+ const groupedPullRequests = groupBy( pullRequests, getIssueType );
+ for ( const group of Object.keys( groupedPullRequests ) ) {
+ changelog += '### ' + group + '\n\n';
+
+ const groupPullRequests = groupedPullRequests[ group ];
+ for ( const pullRequest of groupPullRequests ) {
+ changelog += getEntry( pullRequest ) + '\n';
+ }
+
+ changelog += '\n';
+ }
+
+ return changelog;
+}
+
+/**
+ * Generates and logs changelog for a milestone.
+ *
+ * @param {WPChangelogSettings} settings Changelog settings.
+ */
+async function createChangelog( settings ) {
+ console.log(
+ chalk.bold(
+ `💃Preparing changelog for milestone: "${ settings.milestone }"\n\n`
+ )
+ );
+
+ let changelog;
+ try {
+ changelog = await getChangelog( settings );
+ } catch ( error ) {
+ changelog = chalk.yellow( error.stack );
+ }
+
+ console.log( changelog );
+}
+
+if ( ! module.parent ) {
+ createChangelog( {
+ owner: 'WordPress',
+ repo: 'gutenberg',
+ token: GITHUB_TOKEN,
+ milestone:
+ MILESTONE === undefined
+ ? getMilestone( manifest.version )
+ : MILESTONE,
+ } );
+}
+
+/** @type {NodeJS.Module} */ ( module ).exports = {
+ getNormalizedTitle,
+};
diff --git a/bin/check-latest-npm.js b/bin/check-latest-npm.js
index 030cff774f0fd7..53e2b541c8fcc0 100644
--- a/bin/check-latest-npm.js
+++ b/bin/check-latest-npm.js
@@ -111,9 +111,6 @@ Run ${ yellow(
}
} )
.catch( ( error ) => {
- // Disable reason: A failure should log to the terminal.
-
- // eslint-disable-next-line no-console
console.error(
'Latest NPM check failed!\n\n' + error.toString() + '\n'
);
diff --git a/bin/commander.js b/bin/commander.js
index 54b31c7c360f80..3e0013a28d2bff 100755
--- a/bin/commander.js
+++ b/bin/commander.js
@@ -1,1140 +1,3 @@
#!/usr/bin/env node
-/* eslint-disable no-console */
-
-// Dependencies
-const path = require( 'path' );
-const program = require( 'commander' );
-const inquirer = require( 'inquirer' );
-const semver = require( 'semver' );
-const chalk = require( 'chalk' );
-const fs = require( 'fs' );
-const glob = require( 'fast-glob' );
-const readline = require( 'readline' );
-const rimraf = require( 'rimraf' );
-const SimpleGit = require( 'simple-git/promise' );
-const childProcess = require( 'child_process' );
-const Octokit = require( '@octokit/rest' );
-const os = require( 'os' );
-const { v4: uuid } = require( 'uuid' );
-
-// Config
-const gitRepoOwner = 'WordPress';
-const gitRepoURL = 'https://github.com/' + gitRepoOwner + '/gutenberg.git';
-const svnRepoURL = 'https://plugins.svn.wordpress.org/gutenberg';
-const releasePageURLPrefix =
- 'https://github.com/WordPress/gutenberg/releases/tag/';
-
-// Working Directories
-const gitWorkingDirectoryPath = path.join( os.tmpdir(), uuid() );
-const svnWorkingDirectoryPath = path.join( os.tmpdir(), uuid() );
-
-// UI
-const error = chalk.bold.red;
-const warning = chalk.bold.keyword( 'orange' );
-const success = chalk.bold.green;
-
-// Utils
-const STABLE_TAG_REGEX = /Stable tag: [0-9]+\.[0-9]+\.[0-9]+\s*\n/;
-const STABLE_TAG_PLACEHOLDER = 'Stable tag: V.V.V\n';
-
-/**
- * Small utility used to read an uncached version of a JSON file
- *
- * @param {string} fileName
- */
-function readJSONFile( fileName ) {
- const data = fs.readFileSync( fileName, 'utf8' );
- return JSON.parse( data );
-}
-
-/**
- * Asks the user for a confirmation to continue or abort otherwise
- *
- * @param {string} message Confirmation message.
- * @param {boolean} isDefault Default reply.
- * @param {string} abortMessage Abort message.
- */
-async function askForConfirmationToContinue(
- message,
- isDefault = true,
- abortMessage = 'Aborting.'
-) {
- const { isReady } = await inquirer.prompt( [
- {
- type: 'confirm',
- name: 'isReady',
- default: isDefault,
- message,
- },
- ] );
-
- if ( ! isReady ) {
- console.log( error( '\n' + abortMessage ) );
- process.exit( 1 );
- }
-}
-
-/**
- * Common logic wrapping a step in the process.
- *
- * @param {string} name Step name.
- * @param {string} abortMessage Abort message.
- * @param {Function} handler Step logic.
- */
-async function runStep( name, abortMessage, handler ) {
- try {
- await handler();
- } catch ( exception ) {
- console.log(
- error(
- 'The following error happened during the "' +
- warning( name ) +
- '" step:'
- ) + '\n\n',
- exception,
- error( '\n\n' + abortMessage )
- );
-
- process.exit( 1 );
- }
-}
-
-/**
- * Utility to run a child script
- *
- * @param {string} script Script to run.
- * @param {string} cwd Working directory.
- */
-function runShellScript( script, cwd ) {
- childProcess.execSync( script, {
- cwd,
- env: {
- NO_CHECKS: true,
- PATH: process.env.PATH,
- HOME: process.env.HOME,
- },
- stdio: [ 'inherit', 'ignore', 'inherit' ],
- } );
-}
-
-// Steps
-
-/**
- * Clone the Gutenberg repository to the working directory.
- *
- * @param {string} abortMessage Abort message.
- */
-async function runGitRepositoryCloneStep( abortMessage ) {
- // Cloning the repository
- await runStep( 'Cloning the Git repository', abortMessage, async () => {
- console.log( '>> Cloning the Git repository' );
- const simpleGit = SimpleGit();
- await simpleGit.clone( gitRepoURL, gitWorkingDirectoryPath );
- console.log(
- '>> The Gutenberg Git repository has been successfully cloned in the following temporary folder: ' +
- success( gitWorkingDirectoryPath )
- );
- } );
-}
-
-/**
- * Fetching the SVN Gutenberg repository to the working directory.
- *
- * @param {string} abortMessage Abort message.
- */
-async function runSvnRepositoryCloneStep( abortMessage ) {
- // Cloning the repository
- await runStep( 'Fetching the SVN repository', abortMessage, async () => {
- console.log( '>> Fetching the SVN repository' );
- runShellScript(
- 'svn checkout ' + svnRepoURL + '/trunk ' + svnWorkingDirectoryPath
- );
- console.log(
- '>> The Gutenberg SVN repository has been successfully fetched in the following temporary folder: ' +
- success( svnWorkingDirectoryPath )
- );
- } );
-}
-
-/**
- * Updates and commits the content of the SVN repo using the new plugin ZIP.
- *
- * @param {string} version Version.
- * @param {string} changelog Changelog.
- * @param {string} abortMessage Abort Message.
- */
-async function runUpdateTrunkContentStep( version, changelog, abortMessage ) {
- // Updating the content of the svn
- await runStep( 'Updating trunk content', abortMessage, async () => {
- console.log( '>> Replacing trunk content using the new plugin ZIP' );
-
- const readmePath = svnWorkingDirectoryPath + '/readme.txt';
-
- const previousReadmeFileContent = fs.readFileSync( readmePath, 'utf8' );
- const stableTag = previousReadmeFileContent.match(
- STABLE_TAG_REGEX
- )[ 0 ];
-
- // Delete everything
- runShellScript(
- 'find . -maxdepth 1 -not -name ".svn" -not -name "." -not -name ".." -exec rm -rf {} +',
- svnWorkingDirectoryPath
- );
-
- // Update the content using the plugin ZIP
- const gutenbergZipPath = gitWorkingDirectoryPath + '/gutenberg.zip';
- runShellScript(
- 'unzip ' + gutenbergZipPath + ' -d ' + svnWorkingDirectoryPath
- );
-
- // Replace the stable tag placeholder with the existing stable tag on the SVN repository.
- const newReadmeFileContent = fs.readFileSync( readmePath, 'utf8' );
- fs.writeFileSync(
- readmePath,
- newReadmeFileContent.replace( STABLE_TAG_PLACEHOLDER, stableTag )
- );
-
- // Commit the content changes
- runShellScript(
- "svn st | grep '^?' | awk '{print $2}' | xargs svn add",
- svnWorkingDirectoryPath
- );
- runShellScript(
- "svn st | grep '^!' | awk '{print $2}' | xargs svn rm",
- svnWorkingDirectoryPath
- );
- await askForConfirmationToContinue(
- 'Trunk content has been updated, please check the SVN diff. Commit the changes?',
- true,
- abortMessage
- );
-
- runShellScript(
- 'svn commit -m "Committing Gutenberg version ' + version + '"',
- svnWorkingDirectoryPath
- );
-
- console.log( '>> Trunk has been successfully updated' );
- } );
-}
-
-/**
- * Creates a new SVN Tag
- *
- * @param {string} version Version.
- * @param {string} abortMessage Abort Message.
- */
-async function runSvnTagStep( version, abortMessage ) {
- await runStep( 'Creating the SVN Tag', abortMessage, async () => {
- await askForConfirmationToContinue(
- 'Proceed with the creation of the SVN Tag?',
- true,
- abortMessage
- );
- runShellScript(
- 'svn cp ' +
- svnRepoURL +
- '/trunk ' +
- svnRepoURL +
- '/tags/' +
- version +
- ' -m "Tagging Gutenberg version ' +
- version +
- '"'
- );
-
- console.log(
- '>> The SVN ' +
- success( version ) +
- ' tag has been successfully created'
- );
- } );
-}
-
-/**
- * Updates the stable version of the plugin in the SVN repository.
- *
- * @param {string} version Version.
- * @param {string} abortMessage Abort Message.
- */
-async function updateThePluginStableVersion( version, abortMessage ) {
- // Updating the content of the svn
- await runStep(
- "Updating the plugin's stable version",
- abortMessage,
- async () => {
- const readmePath = svnWorkingDirectoryPath + '/readme.txt';
- const readmeFileContent = fs.readFileSync( readmePath, 'utf8' );
- const newReadmeContent = readmeFileContent.replace(
- STABLE_TAG_REGEX,
- 'Stable tag: ' + version + '\n'
- );
- fs.writeFileSync( readmePath, newReadmeContent );
-
- // Commit the content changes
- await askForConfirmationToContinue(
- 'The stable version is updated in the readme.txt file. Commit the changes?',
- true,
- abortMessage
- );
-
- runShellScript(
- 'svn commit -m "Releasing Gutenberg version ' + version + '"',
- svnWorkingDirectoryPath
- );
-
- console.log( '>> Stable version updated successfully' );
- }
- );
-}
-
-/**
- * Clean the working directory.
- *
- * @param {string} abortMessage Abort message.
- */
-async function runCleanLocalCloneStep( abortMessage ) {
- await runStep( 'Cleaning the temporary folder', abortMessage, async () => {
- await Promise.all(
- [ gitWorkingDirectoryPath, svnWorkingDirectoryPath ].map(
- async ( directoryPath ) => {
- if ( fs.existsSync( directoryPath ) ) {
- await rimraf( directoryPath, ( err ) => {
- if ( err ) {
- throw err;
- }
- } );
- }
- }
- )
- );
- } );
-}
-
-/**
- * Creates a new release branch based on the last package.json version
- * and chooses the next RC version number.
- *
- * @param {string} abortMessage Abort Message.
- *
- * @return {Object} chosen version and versionLabels.
- */
-async function runReleaseBranchCreationStep( abortMessage ) {
- let version, releaseBranch, versionLabel;
- await runStep( 'Creating the release branch', abortMessage, async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
- const packageJson = readJSONFile( packageJsonPath );
- const parsedVersion = semver.parse( packageJson.version );
-
- // Follow the WordPress version guidelines to compute the version to be used
- // By default, increase the "minor" number but if we reach 9, bump to the next major.
- if ( parsedVersion.minor === 9 ) {
- version = parsedVersion.major + 1 + '.0.0-rc.1';
- releaseBranch = 'release/' + ( parsedVersion.major + 1 ) + '.0';
- versionLabel = parsedVersion.major + 1 + '.0.0 RC1';
- } else {
- version =
- parsedVersion.major +
- '.' +
- ( parsedVersion.minor + 1 ) +
- '.0-rc.1';
- releaseBranch =
- 'release/' +
- parsedVersion.major +
- '.' +
- ( parsedVersion.minor + 1 );
- versionLabel =
- parsedVersion.major +
- '.' +
- ( parsedVersion.minor + 1 ) +
- '.0 RC1';
- }
- await askForConfirmationToContinue(
- 'The Plugin version to be used is ' +
- success( version ) +
- '. Proceed with the creation of the release branch?',
- true,
- abortMessage
- );
-
- // Creating the release branch
- await simpleGit.checkoutLocalBranch( releaseBranch );
- console.log(
- '>> The local release branch ' +
- success( releaseBranch ) +
- ' has been successfully created.'
- );
- } );
-
- return {
- version,
- versionLabel,
- releaseBranch,
- };
-}
-
-/**
- * Finds the name of the current release branch based on the version in
- * the package.json file.
- *
- * @param {string} packageJsonPath Path to the package.json file.
- *
- * @return {string} Name of the release branch.
- */
-const findReleaseBranchName = ( packageJsonPath ) => {
- const masterPackageJson = readJSONFile( packageJsonPath );
- const masterParsedVersion = semver.parse( masterPackageJson.version );
-
- return (
- 'release/' + masterParsedVersion.major + '.' + masterParsedVersion.minor
- );
-};
-
-/**
- * Checkouts out the release branch and chooses a stable version number.
- *
- * @param {string} abortMessage Abort Message.
- *
- * @return {Object} chosen version and versionLabels.
- */
-async function runReleaseBranchCheckoutStep( abortMessage ) {
- let releaseBranch, version;
- await runStep(
- 'Getting into the release branch',
- abortMessage,
- async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
- releaseBranch = findReleaseBranchName( packageJsonPath );
-
- // Creating the release branch
- await simpleGit.checkout( releaseBranch );
- console.log(
- '>> The local release branch ' +
- success( releaseBranch ) +
- ' has been successfully checked out.'
- );
-
- const releaseBranchPackageJson = readJSONFile( packageJsonPath );
- const releaseBranchParsedVersion = semver.parse(
- releaseBranchPackageJson.version
- );
-
- if (
- releaseBranchParsedVersion.prerelease &&
- releaseBranchParsedVersion.prerelease.length
- ) {
- version =
- releaseBranchParsedVersion.major +
- '.' +
- releaseBranchParsedVersion.minor +
- '.' +
- releaseBranchParsedVersion.patch;
- } else {
- version =
- releaseBranchParsedVersion.major +
- '.' +
- releaseBranchParsedVersion.minor +
- '.' +
- ( releaseBranchParsedVersion.patch + 1 );
- }
-
- await askForConfirmationToContinue(
- 'The Version to release is ' +
- success( version ) +
- '. Proceed?',
- true,
- abortMessage
- );
- }
- );
-
- return {
- version,
- versionLabel: version,
- releaseBranch,
- };
-}
-
-/**
- * Bump the version in the different files (package.json, package-lock.json, gutenberg.php)
- * and commit the changes.
- *
- * @param {string} version Version to use.
- * @param {string} changelog Changelog to use.
- * @param {string} abortMessage Abort message.
- *
- * @return {string} hash of the version bump commit.
- */
-async function runBumpPluginVersionAndCommitStep(
- version,
- changelog,
- abortMessage
-) {
- let commitHash;
- await runStep( 'Updating the plugin version', abortMessage, async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
- const packageLockPath = gitWorkingDirectoryPath + '/package-lock.json';
- const pluginFilePath = gitWorkingDirectoryPath + '/gutenberg.php';
- const packageJson = readJSONFile( packageJsonPath );
- const packageLock = readJSONFile( packageLockPath );
- const newPackageJson = {
- ...packageJson,
- version,
- };
- fs.writeFileSync(
- packageJsonPath,
- JSON.stringify( newPackageJson, null, '\t' ) + '\n'
- );
- const newPackageLock = {
- ...packageLock,
- version,
- };
- fs.writeFileSync(
- packageLockPath,
- JSON.stringify( newPackageLock, null, '\t' ) + '\n'
- );
- const content = fs.readFileSync( pluginFilePath, 'utf8' );
- fs.writeFileSync(
- pluginFilePath,
- content.replace(
- ' * Version: ' + packageJson.version,
- ' * Version: ' + version
- )
- );
- console.log( '>> The plugin version has been updated successfully.' );
-
- // Update the content of the readme.txt file
- const readmePath = gitWorkingDirectoryPath + '/readme.txt';
- const readmeFileContent = fs.readFileSync( readmePath, 'utf8' );
- const newReadmeContent =
- readmeFileContent.substr(
- 0,
- readmeFileContent.indexOf( '== Changelog ==' )
- ) +
- '== Changelog ==\n\n' +
- `To read the changelog for Gutenberg ${ version }, please navigate to the release page .` +
- '\n';
- fs.writeFileSync( readmePath, newReadmeContent );
-
- // Update the content of the changelog.txt file
- const stableVersion = version.match( /[0-9]+\.[0-9]+\.[0-9]+/ )[ 0 ];
- const changelogPath = gitWorkingDirectoryPath + '/changelog.txt';
- const changelogFileContent = fs.readFileSync( changelogPath, 'utf8' );
- const versionHeader = '= ' + version + ' =\n\n';
- const regexToSearch = /=\s([0-9]+\.[0-9]+\.[0-9]+)(-rc\.[0-9]+)?\s=\n\n/g;
- let lastDifferentVersionMatch = regexToSearch.exec(
- changelogFileContent
- );
- if ( lastDifferentVersionMatch[ 1 ] === stableVersion ) {
- lastDifferentVersionMatch = regexToSearch.exec(
- changelogFileContent
- );
- }
- const newChangelogContent =
- '== Changelog ==\n\n' +
- versionHeader +
- changelog +
- '\n\n' +
- changelogFileContent.substr( lastDifferentVersionMatch.index );
- fs.writeFileSync( changelogPath, newChangelogContent );
-
- // Commit the version bump
- await askForConfirmationToContinue(
- 'Please check the diff. Proceed with the version bump commit?',
- true,
- abortMessage
- );
- await simpleGit.add( [
- packageJsonPath,
- packageLockPath,
- pluginFilePath,
- readmePath,
- changelogPath,
- ] );
- const commitData = await simpleGit.commit(
- 'Bump plugin version to ' + version
- );
- commitHash = commitData.commit;
- console.log(
- '>> The plugin version bump has been committed successfully.'
- );
- } );
-
- return commitHash;
-}
-
-/**
- * Run the Plugin ZIP Creation step.
- *
- * @param {string} abortMessage Abort message.
- */
-async function runPluginZIPCreationStep( abortMessage ) {
- await runStep( 'Plugin ZIP creation', abortMessage, async () => {
- const gutenbergZipPath = gitWorkingDirectoryPath + '/gutenberg.zip';
- await askForConfirmationToContinue(
- 'Proceed and build the plugin ZIP? (It takes a few minutes)',
- true,
- abortMessage
- );
- runShellScript(
- '/bin/bash bin/build-plugin-zip.sh',
- gitWorkingDirectoryPath
- );
-
- console.log(
- '>> The plugin ZIP has been built successfully. Path: ' +
- success( gutenbergZipPath )
- );
- } );
-}
-
-/**
- * Create a local Git Tag.
- *
- * @param {string} version Version to use.
- * @param {string} abortMessage Abort message.
- */
-async function runCreateGitTagStep( version, abortMessage ) {
- await runStep( 'Creating the git tag', abortMessage, async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- await askForConfirmationToContinue(
- 'Proceed with the creation of the git tag?',
- true,
- abortMessage
- );
- await simpleGit.addTag( 'v' + version );
- console.log(
- '>> The ' +
- success( 'v' + version ) +
- ' tag has been created successfully.'
- );
- } );
-}
-
-/**
- * Push the local Git Changes and Tags to the remote repository.
- *
- * @param {string} releaseBranch Release branch name.
- * @param {string} abortMessage Abort message.
- */
-async function runPushGitChangesStep( releaseBranch, abortMessage ) {
- await runStep(
- 'Pushing the release branch and the tag',
- abortMessage,
- async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- await askForConfirmationToContinue(
- 'The release branch and the tag are going to be pushed to the remote repository. Continue?',
- true,
- abortMessage
- );
- await simpleGit.push( 'origin', releaseBranch );
- await simpleGit.pushTags( 'origin' );
- }
- );
-}
-
-/**
- * Creates the github release and uploads the Gutenberg ZIP file into it.
- *
- * @param {string} version Released version.
- * @param {string} versionLabel Label of the released Version.
- * @param {string} changelog Release changelog.
- * @param {boolean} isPrerelease is a pre-release.
- * @param {string} abortMessage Abort message.
- *
- * @return {Object} Github release object.
- */
-async function runGithubReleaseStep(
- version,
- versionLabel,
- changelog,
- isPrerelease,
- abortMessage
-) {
- let octokit;
- let release;
- await runStep( 'Creating the GitHub release', abortMessage, async () => {
- await askForConfirmationToContinue(
- 'Proceed with the creation of the GitHub release?',
- true,
- abortMessage
- );
-
- const { token } = await inquirer.prompt( [
- {
- type: 'input',
- name: 'token',
- message:
- 'Please provide a GitHub personal authentication token. Navigate to ' +
- success(
- 'https://github.com/settings/tokens/new?scopes=repo,admin:org,write:packages'
- ) +
- ' to create one.',
- },
- ] );
-
- octokit = new Octokit( {
- auth: token,
- } );
-
- const releaseData = await octokit.repos.createRelease( {
- owner: gitRepoOwner,
- repo: 'gutenberg',
- tag_name: 'v' + version,
- name: versionLabel,
- body: changelog,
- prerelease: isPrerelease,
- } );
- release = releaseData.data;
-
- console.log( '>> The GitHub release has been created.' );
- } );
- abortMessage =
- abortMessage + ' Make sure to remove the the GitHub release as well.';
-
- // Uploading the Gutenberg Zip to the release
- await runStep( 'Uploading the plugin ZIP', abortMessage, async () => {
- const gutenbergZipPath = gitWorkingDirectoryPath + '/gutenberg.zip';
- const filestats = fs.statSync( gutenbergZipPath );
- await octokit.repos.uploadReleaseAsset( {
- url: release.upload_url,
- headers: {
- 'content-length': filestats.size,
- 'content-type': 'application/zip',
- },
- name: 'gutenberg.zip',
- file: fs.createReadStream( gutenbergZipPath ),
- } );
- console.log( '>> The plugin ZIP has been successfully uploaded.' );
- } );
-
- console.log(
- '>> The GitHub release is available here: ' +
- success( release.html_url )
- );
-
- return release;
-}
-
-/**
- * Cherry-picks the version bump commit into master.
- *
- * @param {string} commitHash Commit to cherry-pick.
- * @param {string} abortMessage Abort message.
- */
-async function runCherrypickBumpCommitIntoMasterStep(
- commitHash,
- abortMessage
-) {
- await runStep(
- 'Cherry-picking the bump commit into master',
- abortMessage,
- async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- await askForConfirmationToContinue(
- 'The plugin is now released. Proceed with the version bump in the master branch?',
- true,
- abortMessage
- );
- await simpleGit.fetch();
- await simpleGit.reset( 'hard' );
- await simpleGit.checkout( 'master' );
- await simpleGit.pull( 'origin', 'master' );
- await simpleGit.raw( [ 'cherry-pick', commitHash ] );
- await simpleGit.push( 'origin', 'master' );
- }
- );
-}
-
-/**
- * Release a new Gutenberg version.
- *
- * @param {boolean} isRC Whether it's an RC release or not.
- *
- * @return {Object} Github release object.
- */
-async function releasePlugin( isRC = true ) {
- // This is a variable that contains the abort message shown when the script is aborted.
- let abortMessage = 'Aborting!';
- await askForConfirmationToContinue( 'Ready to go? ' );
-
- const { changelog } = await inquirer.prompt( [
- {
- type: 'editor',
- name: 'changelog',
- message: 'Please provide the CHANGELOG of the release (markdown)',
- },
- ] );
-
- // Cloning the Git repository
- await runGitRepositoryCloneStep( abortMessage );
-
- // Creating the release branch
- const { version, versionLabel, releaseBranch } = isRC
- ? await runReleaseBranchCreationStep( abortMessage )
- : await runReleaseBranchCheckoutStep( abortMessage );
-
- // Bumping the version and commit.
- const commitHash = await runBumpPluginVersionAndCommitStep(
- version,
- changelog,
- abortMessage
- );
-
- // Plugin ZIP creation
- await runPluginZIPCreationStep();
-
- // Creating the git tag
- await runCreateGitTagStep( version, abortMessage );
-
- // Push the local changes
- await runPushGitChangesStep( releaseBranch, abortMessage );
- abortMessage =
- 'Aborting! Make sure to ' + isRC
- ? 'remove'
- : 'reset' + ' the remote release branch and remove the git tag.';
-
- // Creating the GitHub Release
- const release = await runGithubReleaseStep(
- version,
- versionLabel,
- changelog,
- isRC,
- abortMessage
- );
- abortMessage =
- 'Aborting! Make sure to manually cherry-pick the ' +
- success( commitHash ) +
- ' commit to the master branch.';
- if ( ! isRC ) {
- abortMessage +=
- ' Make sure to perform the SVN release manually as well.';
- }
-
- // Cherry-picking the bump commit into master
- await runCherrypickBumpCommitIntoMasterStep( commitHash, abortMessage );
-
- if ( ! isRC ) {
- abortMessage =
- 'Aborting! The GitHub release is done. Make sure to perform the SVN release manually.';
-
- await askForConfirmationToContinue(
- 'The GitHub release is complete. Proceed with the SVN release? ',
- abortMessage
- );
-
- // Fetching the SVN repository
- await runSvnRepositoryCloneStep( abortMessage );
-
- // Updating the SVN trunk content
- await runUpdateTrunkContentStep( version, release.body, abortMessage );
-
- abortMessage =
- 'Aborting! The GitHub release is done, SVN trunk updated. Make sure to create the SVN tag and update the stable version manually.';
- await runSvnTagStep( version, abortMessage );
-
- abortMessage =
- 'Aborting! The GitHub release is done, SVN tagged. Make sure to update the stable version manually.';
- await updateThePluginStableVersion( version, abortMessage );
- }
-
- abortMessage = 'Aborting! The release is finished though.';
- await runCleanLocalCloneStep( abortMessage );
-
- return release;
-}
-
-program
- .command( 'release-plugin-rc' )
- .alias( 'rc' )
- .description(
- 'Release an RC version of the plugin (supports only rc.1 for now)'
- )
- .action( async () => {
- console.log(
- chalk.bold( '💃 Time to release Gutenberg 🕺\n\n' ),
- 'Welcome! This tool is going to help you release a new RC version of the Gutenberg Plugin.\n',
- 'It goes through different steps : creating the release branch, bumping the plugin version, tagging and creating the GitHub release, building the ZIP...\n',
- "To perform a release you'll have to be a member of the Gutenberg Core Team.\n"
- );
-
- const release = await releasePlugin( true );
-
- console.log(
- '\n>> 🎉 The Gutenberg version ' +
- success( release.name ) +
- ' has been successfully released.\n',
- 'You can access the GitHub release here: ' +
- success( release.html_url ) +
- '\n',
- 'Thanks for performing the release!'
- );
- } );
-
-program
- .command( 'release-plugin-stable' )
- .alias( 'stable' )
- .description( 'Release a stable version of the plugin' )
- .action( async () => {
- console.log(
- chalk.bold( '💃 Time to release Gutenberg 🕺\n\n' ),
- 'Welcome! This tool is going to help you release a new stable version of the Gutenberg Plugin.\n',
- 'It goes through different steps : bumping the plugin version, tagging and creating the GitHub release, building the ZIP, pushing the release to the SVN repository...\n',
- "To perform a release you'll have to be a member of the Gutenberg Core Team.\n"
- );
-
- const release = await releasePlugin( false );
-
- console.log(
- '\n>> 🎉 The Gutenberg ' +
- success( release.name ) +
- ' has been successfully released.\n',
- 'You can access the GitHub release here: ' +
- success( release.html_url ) +
- '\n',
- "In a few minutes, you'll be able to update the plugin from the WordPress repository.\n",
- "Thanks for performing the release! and don't forget to publish the release post."
- );
- } );
-
-/**
- * Checks out the WordPress release branch and syncs it with the changes from
- * the last plugin release.
- *
- * @param {string} abortMessage Abort Message.
- */
-async function runWordPressReleaseBranchSyncStep( abortMessage ) {
- const wordpressReleaseBranch = 'wp/trunk';
- await runStep(
- 'Getting into the WordPress release branch',
- abortMessage,
- async () => {
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
- const pluginReleaseBranch = findReleaseBranchName(
- packageJsonPath
- );
-
- // Creating the release branch
- await simpleGit.checkout( wordpressReleaseBranch );
- console.log(
- '>> The local release branch ' +
- success( wordpressReleaseBranch ) +
- ' has been successfully checked out.'
- );
-
- await askForConfirmationToContinue(
- `The branch is ready for sync with the latest plugin release changes applied to "${ pluginReleaseBranch }". Proceed?`,
- true,
- abortMessage
- );
-
- await simpleGit.raw( [ 'rm', '-r', '.' ] );
- await simpleGit.raw( [
- 'checkout',
- `origin/${ pluginReleaseBranch }`,
- '--',
- '.',
- ] );
- await simpleGit.commit(
- `Merge changes published in the Gutenberg plugin "${ pluginReleaseBranch }" branch`
- );
- console.log(
- '>> The local WordPress release branch ' +
- success( wordpressReleaseBranch ) +
- ' has been successfully synced.'
- );
- }
- );
-
- return {
- releaseBranch: wordpressReleaseBranch,
- };
-}
-
-/**
- * Update CHANGELOG files with the new version number for those packages that
- * contain new entries.
- *
- * @param {string} minimumVersionBump Minimum version bump for the packages.
- * @param {string} abortMessage Abort Message.
- */
-async function updatePackageChangelogs( minimumVersionBump, abortMessage ) {
- const changelogFiles = await glob(
- path.resolve( gitWorkingDirectoryPath, 'packages/*/CHANGELOG.md' )
- );
- const processedPackages = await Promise.all(
- changelogFiles.map( async ( changelogFile ) => {
- const fileStream = fs.createReadStream( changelogFile );
-
- const lines = readline.createInterface( {
- input: fileStream,
- } );
-
- let changesDetected = false;
- let versionBump = null;
- for await ( const line of lines ) {
- // Detect unpublished changes first.
- if ( line.startsWith( '## Master' ) ) {
- changesDetected = true;
- continue;
- }
-
- // Skip all lines until unpublished changes found.
- if ( ! changesDetected ) {
- continue;
- }
-
- // A previous published version detected. Stop processing.
- if ( line.startsWith( '## ' ) ) {
- break;
- }
-
- // A major version bump required. Stop processing.
- if ( line.startsWith( '### Breaking Change' ) ) {
- versionBump = 'major';
- break;
- }
-
- // A minor version bump required. Proceed to the next line.
- if (
- line.startsWith( '### New Feature' ) ||
- line.startsWith( '### Deprecation' )
- ) {
- versionBump = 'minor';
- continue;
- }
-
- // A version bump required. Found new changelog section.
- if ( versionBump !== 'minor' && line.startsWith( '### ' ) ) {
- versionBump = minimumVersionBump;
- }
- }
- const packageName = `@wordpress/${
- changelogFile.split( '/' ).reverse()[ 1 ]
- }`;
- const { version } = readJSONFile(
- changelogFile.replace( 'CHANGELOG.md', 'package.json' )
- );
- const nextVersion =
- versionBump !== null
- ? semver.inc( version, versionBump )
- : null;
-
- return {
- changelogFile,
- packageName,
- version,
- nextVersion,
- };
- } )
- );
-
- const changelogsToUpdate = processedPackages.filter(
- ( { nextVersion } ) => nextVersion
- );
-
- if ( changelogsToUpdate.length === 0 ) {
- console.log( '>> No changes in CHANGELOG files detected.' );
- return;
- }
-
- console.log(
- '>> Recommended version bumps based on the changes detected in CHANGELOG files:'
- );
-
- const publishDate = new Date().toISOString().split( 'T' )[ 0 ];
- await Promise.all(
- changelogsToUpdate.map(
- async ( { changelogFile, packageName, nextVersion, version } ) => {
- const content = await fs.promises.readFile(
- changelogFile,
- 'utf8'
- );
- await fs.promises.writeFile(
- changelogFile,
- content.replace(
- '## Master',
- `## Master\n\n## ${ nextVersion } (${ publishDate })`
- )
- );
- console.log(
- ` - ${ packageName }: ${ version } -> ${ nextVersion }`
- );
- }
- )
- );
-
- await askForConfirmationToContinue(
- `All corresponding files were updated. Commit the changes?`,
- true,
- abortMessage
- );
- const simpleGit = SimpleGit( gitWorkingDirectoryPath );
- await simpleGit.add( './*' );
- await simpleGit.commit( 'Update changelog files' );
- console.log(
- '>> Changelog files changes have been committed successfully.'
- );
-}
-
-/**
- * Prepublish to npm steps for WordPress packages.
- *
- * @param {string} minimumVersionBump Minimum version bump for the packages.
- *
- * @return {Object} Github release object.
- */
-async function prepublishPackages( minimumVersionBump ) {
- // This is a variable that contains the abort message shown when the script is aborted.
- let abortMessage = 'Aborting!';
- await askForConfirmationToContinue( 'Ready to go? ' );
-
- // Cloning the Git repository.
- await runGitRepositoryCloneStep( abortMessage );
-
- // Checking out the WordPress release branch and doing sync with the last plugin release.
- const { releaseBranch } = await runWordPressReleaseBranchSyncStep(
- abortMessage
- );
-
- await updatePackageChangelogs( minimumVersionBump, abortMessage );
-
- // Push the local changes
- abortMessage = `Aborting! Make sure to push changes applied to WordPress release branch "${ releaseBranch }" manually.`;
- await runPushGitChangesStep( releaseBranch, abortMessage );
-
- abortMessage = 'Aborting! The release is finished though.';
- await runCleanLocalCloneStep( abortMessage );
-}
-
-program
- .command( 'prepublish-packages-stable' )
- .alias( 'npm-stable' )
- .description(
- 'Prepublish to npm steps for the next stable version of WordPress packages'
- )
- .action( async () => {
- console.log(
- chalk.bold( '💃 Time to publish WordPress packages to npm 🕺\n\n' ),
- 'Welcome! This tool is going to help you with prepublish to npm steps for the next stable version of WordPress packages.\n',
- "To perform a release you'll have to be a member of the WordPress Team on npm.\n"
- );
-
- await prepublishPackages( 'minor' );
-
- console.log(
- '\n>> 🎉 WordPress packages are ready to publish.\n',
- 'Thanks for performing the prepublish process! You still need to run "npm run publish:prod" to perform the actual release.\n',
- 'Let also people know on WordPress Slack when everything is finished.'
- );
- } );
-
-program.parse( process.argv );
-
-/* eslint-enable no-console */
+require( './plugin/cli' );
diff --git a/bin/packages/build.js b/bin/packages/build.js
index 8d1a0c9cc17875..fa837de240ea8b 100755
--- a/bin/packages/build.js
+++ b/bin/packages/build.js
@@ -1,5 +1,3 @@
-/* eslint-disable no-console */
-
/**
* External dependencies
*/
@@ -180,5 +178,3 @@ stream
)
.on( 'end', () => ( ended = true ) )
.resume();
-
-/* eslint-enable no-console */
diff --git a/bin/packages/lint-staged-typecheck.js b/bin/packages/lint-staged-typecheck.js
index 47116c6e99f920..21d56bbe7354ef 100644
--- a/bin/packages/lint-staged-typecheck.js
+++ b/bin/packages/lint-staged-typecheck.js
@@ -11,8 +11,6 @@ const execa = require( 'execa' );
*/
require( './validate-typescript-version' );
-/* eslint-disable no-console */
-
const repoRoot = path.join( __dirname, '..', '..' );
const tscPath = path.join( repoRoot, 'node_modules', '.bin', 'tsc' );
@@ -35,5 +33,3 @@ try {
console.error( err.stdout );
process.exitCode = 1;
}
-
-/* eslint-enable no-console */
diff --git a/bin/packages/validate-typescript-version.js b/bin/packages/validate-typescript-version.js
index 1c8af56b14bca7..fa0c1edc922388 100644
--- a/bin/packages/validate-typescript-version.js
+++ b/bin/packages/validate-typescript-version.js
@@ -9,8 +9,6 @@ const tscDetectedVersion = require( 'typescript' ).version;
const tscDependencyVersion = require( '../../package.json' ).devDependencies
.typescript;
-/* eslint-disable no-console */
-
if ( tscDependencyVersion !== tscDetectedVersion ) {
console.error(
[
@@ -24,5 +22,3 @@ if ( tscDependencyVersion !== tscDetectedVersion ) {
);
process.exit( 1 );
}
-
-/* eslint-enable no-console */
diff --git a/bin/packages/watch.js b/bin/packages/watch.js
index 8d5e650f6bac3c..c74fe095f06d8d 100644
--- a/bin/packages/watch.js
+++ b/bin/packages/watch.js
@@ -52,7 +52,6 @@ getPackages().forEach( ( p ) => {
const filePath = path.resolve( srcDir, filename );
if ( event === 'update' && exists( filePath ) ) {
- // eslint-disable-next-line no-console
console.log(
chalk.green( '->' ),
`${ event }: ${ filename }`
@@ -95,5 +94,4 @@ setInterval( () => {
}
}, 100 );
-// eslint-disable-next-line no-console
console.log( chalk.red( '->' ), chalk.cyan( 'Watching for changes...' ) );
diff --git a/bin/plugin/cli.js b/bin/plugin/cli.js
new file mode 100755
index 00000000000000..251f23f18890c5
--- /dev/null
+++ b/bin/plugin/cli.js
@@ -0,0 +1,36 @@
+#!/usr/bin/env node
+
+/**
+ * External dependencies
+ */
+const program = require( 'commander' );
+
+/**
+ * Internal dependencies
+ */
+const { releaseRC, releaseStable } = require( './commands/release' );
+const { prepublishNpmStablePackages } = require( './commands/packages' );
+
+program
+ .command( 'release-plugin-rc' )
+ .alias( 'rc' )
+ .description(
+ 'Release an RC version of the plugin (supports only rc.1 for now)'
+ )
+ .action( releaseRC );
+
+program
+ .command( 'release-plugin-stable' )
+ .alias( 'stable' )
+ .description( 'Release a stable version of the plugin' )
+ .action( releaseStable );
+
+program
+ .command( 'prepublish-packages-stable' )
+ .alias( 'npm-stable' )
+ .description(
+ 'Prepublish to npm steps for the next stable version of WordPress packages'
+ )
+ .action( prepublishNpmStablePackages );
+
+program.parse( process.argv );
diff --git a/bin/plugin/commands/common.js b/bin/plugin/commands/common.js
new file mode 100644
index 00000000000000..5d7e77f838ad15
--- /dev/null
+++ b/bin/plugin/commands/common.js
@@ -0,0 +1,81 @@
+/**
+ * External dependencies
+ */
+const fs = require( 'fs' );
+const rimraf = require( 'rimraf' );
+const semver = require( 'semver' );
+
+/*
+ * Internal dependencies
+ */
+const { log, formats } = require( '../lib/logger' );
+const { runStep, readJSONFile } = require( '../lib/utils' );
+const git = require( '../lib/git' );
+const config = require( '../config' );
+
+/**
+ * Clone the repository and returns the working directory.
+ *
+ * @param {string} abortMessage Abort message.
+ *
+ * @return {Promise} Repository local path.
+ */
+async function runGitRepositoryCloneStep( abortMessage ) {
+ // Cloning the repository
+ let gitWorkingDirectoryPath;
+ await runStep( 'Cloning the Git repository', abortMessage, async () => {
+ log( '>> Cloning the Git repository' );
+ gitWorkingDirectoryPath = await git.clone( config.gitRepositoryURL );
+ log(
+ '>> The Git repository has been successfully cloned in the following temporary folder: ' +
+ formats.success( gitWorkingDirectoryPath )
+ );
+ } );
+
+ return gitWorkingDirectoryPath;
+}
+
+/**
+ * Clean the working directories.
+ *
+ * @param {string[]} folders Folders to clean.
+ * @param {string} abortMessage Abort message.
+ */
+async function runCleanLocalFoldersStep( folders, abortMessage ) {
+ await runStep( 'Cleaning the temporary folders', abortMessage, async () => {
+ await Promise.all(
+ folders.map( async ( directoryPath ) => {
+ if ( fs.existsSync( directoryPath ) ) {
+ await rimraf( directoryPath, ( err ) => {
+ if ( err ) {
+ throw err;
+ }
+ } );
+ }
+ } )
+ );
+ } );
+}
+
+/**
+ * Finds the name of the current release branch based on the version in
+ * the package.json file.
+ *
+ * @param {string} packageJsonPath Path to the package.json file.
+ *
+ * @return {string} Name of the release branch.
+ */
+function findReleaseBranchName( packageJsonPath ) {
+ const masterPackageJson = readJSONFile( packageJsonPath );
+ const masterParsedVersion = semver.parse( masterPackageJson.version );
+
+ return (
+ 'release/' + masterParsedVersion.major + '.' + masterParsedVersion.minor
+ );
+}
+
+module.exports = {
+ runGitRepositoryCloneStep,
+ runCleanLocalFoldersStep,
+ findReleaseBranchName,
+};
diff --git a/bin/plugin/commands/packages.js b/bin/plugin/commands/packages.js
new file mode 100644
index 00000000000000..d7a7fe989eb08e
--- /dev/null
+++ b/bin/plugin/commands/packages.js
@@ -0,0 +1,308 @@
+/**
+ * External dependencies
+ */
+const path = require( 'path' );
+const glob = require( 'fast-glob' );
+const fs = require( 'fs' );
+const semver = require( 'semver' );
+const readline = require( 'readline' );
+
+/**
+ * Internal dependencies
+ */
+const { log, formats } = require( '../lib/logger' );
+const { askForConfirmation, runStep, readJSONFile } = require( '../lib/utils' );
+const {
+ runGitRepositoryCloneStep,
+ runCleanLocalFoldersStep,
+ findReleaseBranchName,
+} = require( './common' );
+const git = require( '../lib/git' );
+
+/**
+ * Checks out the WordPress release branch and syncs it with the changes from
+ * the last plugin release.
+ *
+ * @param {string} gitWorkingDirectoryPath Git working directory path.
+ * @param {string} abortMessage Abort Message.
+ *
+ * @return {Promise} WordPress release branch.
+ */
+async function runWordPressReleaseBranchSyncStep(
+ gitWorkingDirectoryPath,
+ abortMessage
+) {
+ const wordpressReleaseBranch = 'wp/trunk';
+ await runStep(
+ 'Getting into the WordPress release branch',
+ abortMessage,
+ async () => {
+ const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
+ const pluginReleaseBranch = findReleaseBranchName(
+ packageJsonPath
+ );
+
+ // Creating the release branch
+ await git.checkoutRemoteBranch(
+ gitWorkingDirectoryPath,
+ wordpressReleaseBranch
+ );
+ log(
+ '>> The local release branch ' +
+ formats.success( wordpressReleaseBranch ) +
+ ' has been successfully checked out.'
+ );
+
+ await askForConfirmation(
+ `The branch is ready for sync with the latest plugin release changes applied to "${ pluginReleaseBranch }". Proceed?`,
+ true,
+ abortMessage
+ );
+
+ await git.replaceContentFromRemoteBranch(
+ gitWorkingDirectoryPath,
+ pluginReleaseBranch
+ );
+
+ await git.commit(
+ gitWorkingDirectoryPath,
+ `Merge changes published in the Gutenberg plugin "${ pluginReleaseBranch }" branch`
+ );
+
+ log(
+ '>> The local WordPress release branch ' +
+ formats.success( wordpressReleaseBranch ) +
+ ' has been successfully synced.'
+ );
+ }
+ );
+
+ return {
+ releaseBranch: wordpressReleaseBranch,
+ };
+}
+
+/**
+ * Update CHANGELOG files with the new version number for those packages that
+ * contain new entries.
+ *
+ * @param {string} gitWorkingDirectoryPath Git working directory path.
+ * @param {string} minimumVersionBump Minimum version bump for the packages.
+ * @param {string} abortMessage Abort Message.
+ */
+async function updatePackageChangelogs(
+ gitWorkingDirectoryPath,
+ minimumVersionBump,
+ abortMessage
+) {
+ const changelogFiles = await glob(
+ path.resolve( gitWorkingDirectoryPath, 'packages/*/CHANGELOG.md' )
+ );
+ const processedPackages = await Promise.all(
+ changelogFiles.map( async ( changelogFile ) => {
+ const fileStream = fs.createReadStream( changelogFile );
+
+ const lines = readline.createInterface( {
+ input: fileStream,
+ } );
+
+ let changesDetected = false;
+ let versionBump = null;
+ for await ( const line of lines ) {
+ const lineNormalized = line.toLowerCase();
+ // Detect unpublished changes first.
+ if ( lineNormalized.startsWith( '## unreleased' ) ) {
+ changesDetected = true;
+ continue;
+ }
+
+ // Skip all lines until unpublished changes found.
+ if ( ! changesDetected ) {
+ continue;
+ }
+
+ // A previous published version detected. Stop processing.
+ if ( lineNormalized.startsWith( '## ' ) ) {
+ break;
+ }
+
+ // A major version bump required. Stop processing.
+ if ( lineNormalized.startsWith( '### breaking change' ) ) {
+ versionBump = 'major';
+ break;
+ }
+
+ // A minor version bump required. Proceed to the next line.
+ if (
+ lineNormalized.startsWith( '### deprecation' ) ||
+ lineNormalized.startsWith( '### enhancement' ) ||
+ lineNormalized.startsWith( '### new feature' )
+ ) {
+ versionBump = 'minor';
+ continue;
+ }
+
+ // A version bump required. Found new changelog section.
+ if (
+ versionBump !== 'minor' &&
+ lineNormalized.startsWith( '### ' )
+ ) {
+ versionBump = minimumVersionBump;
+ }
+ }
+ const packageName = `@wordpress/${
+ changelogFile.split( '/' ).reverse()[ 1 ]
+ }`;
+ const { version } = readJSONFile(
+ changelogFile.replace( 'CHANGELOG.md', 'package.json' )
+ );
+ const nextVersion =
+ versionBump !== null
+ ? semver.inc( version, versionBump )
+ : null;
+
+ return {
+ changelogFile,
+ packageName,
+ version,
+ nextVersion,
+ };
+ } )
+ );
+
+ const changelogsToUpdate = processedPackages.filter(
+ ( { nextVersion } ) => nextVersion
+ );
+
+ if ( changelogsToUpdate.length === 0 ) {
+ log( '>> No changes in CHANGELOG files detected.' );
+ return;
+ }
+
+ log(
+ '>> Recommended version bumps based on the changes detected in CHANGELOG files:'
+ );
+
+ const publishDate = new Date().toISOString().split( 'T' )[ 0 ];
+ await Promise.all(
+ changelogsToUpdate.map(
+ async ( { changelogFile, packageName, nextVersion, version } ) => {
+ const content = await fs.promises.readFile(
+ changelogFile,
+ 'utf8'
+ );
+ await fs.promises.writeFile(
+ changelogFile,
+ content.replace(
+ '## Unreleased',
+ `## Unreleased\n\n## ${ nextVersion } (${ publishDate })`
+ )
+ );
+ log(
+ ` - ${ packageName }: ${ version } -> ${ nextVersion }`
+ );
+ }
+ )
+ );
+
+ await askForConfirmation(
+ `All corresponding files were updated. Commit the changes?`,
+ true,
+ abortMessage
+ );
+ git.commit( gitWorkingDirectoryPath, 'Update changelog files', [ './*' ] );
+ log( '>> Changelog files changes have been committed successfully.' );
+}
+
+/**
+ * Push the local Git Changes and Tags to the remote repository.
+ *
+ * @param {string} gitWorkingDirectoryPath Git working directory path.
+ * @param {string} releaseBranch Release branch name.
+ * @param {string} abortMessage Abort message.
+ */
+async function runPushGitChangesStep(
+ gitWorkingDirectoryPath,
+ releaseBranch,
+ abortMessage
+) {
+ await runStep(
+ 'Pushing the release branch and the tag',
+ abortMessage,
+ async () => {
+ await askForConfirmation(
+ 'The release branch and the tag are going to be pushed to the remote repository. Continue?',
+ true,
+ abortMessage
+ );
+ await git.pushBranchToOrigin(
+ gitWorkingDirectoryPath,
+ releaseBranch
+ );
+ await git.pushTagsToOrigin();
+ }
+ );
+}
+
+/**
+ * Prepublish to npm steps for WordPress packages.
+ *
+ * @param {string} minimumVersionBump Minimum version bump for the packages.
+ *
+ * @return {Promise} Github release object.
+ */
+async function prepublishPackages( minimumVersionBump ) {
+ // This is a variable that contains the abort message shown when the script is aborted.
+ let abortMessage = 'Aborting!';
+ const temporaryFolders = [];
+ await askForConfirmation( 'Ready to go? ' );
+
+ // Cloning the Git repository.
+ const gitWorkingDirectoryPath = await runGitRepositoryCloneStep(
+ abortMessage
+ );
+ temporaryFolders.push( gitWorkingDirectoryPath );
+
+ // Checking out the WordPress release branch and doing sync with the last plugin release.
+ const { releaseBranch } = await runWordPressReleaseBranchSyncStep(
+ gitWorkingDirectoryPath,
+ abortMessage
+ );
+
+ await updatePackageChangelogs(
+ gitWorkingDirectoryPath,
+ minimumVersionBump,
+ abortMessage
+ );
+
+ // Push the local changes
+ abortMessage = `Aborting! Make sure to push changes applied to WordPress release branch "${ releaseBranch }" manually.`;
+ await runPushGitChangesStep(
+ gitWorkingDirectoryPath,
+ releaseBranch,
+ abortMessage
+ );
+
+ abortMessage = 'Aborting! The release is finished though.';
+ await runCleanLocalFoldersStep( temporaryFolders, abortMessage );
+}
+
+async function prepublishNpmStablePackages() {
+ log(
+ formats.title(
+ '\n💃 Time to publish WordPress packages to npm 🕺\n\n'
+ ),
+ 'Welcome! This tool is going to help you with prepublish to npm steps for the next stable version of WordPress packages.\n',
+ "To perform a release you'll have to be a member of the WordPress Team on npm.\n"
+ );
+
+ await prepublishPackages( 'minor' );
+
+ log(
+ '\n>> 🎉 WordPress packages are ready to publish.\n',
+ 'Thanks for performing the prepublish process! You still need to run "npm run publish:prod" to perform the actual release.\n',
+ 'Let also people know on WordPress Slack when everything is finished.\n'
+ );
+}
+
+module.exports = { prepublishNpmStablePackages };
diff --git a/bin/plugin/commands/release.js b/bin/plugin/commands/release.js
new file mode 100644
index 00000000000000..9bf14ef537e47e
--- /dev/null
+++ b/bin/plugin/commands/release.js
@@ -0,0 +1,830 @@
+/**
+ * External dependencies
+ */
+const inquirer = require( 'inquirer' );
+const fs = require( 'fs' );
+const semver = require( 'semver' );
+const Octokit = require( '@octokit/rest' );
+
+/**
+ * Internal dependencies
+ */
+const { log, formats } = require( '../lib/logger' );
+const {
+ askForConfirmation,
+ runStep,
+ readJSONFile,
+ runShellScript,
+} = require( '../lib/utils' );
+const git = require( '../lib/git' );
+const svn = require( '../lib/svn' );
+const config = require( '../config' );
+const {
+ runGitRepositoryCloneStep,
+ runCleanLocalFoldersStep,
+ findReleaseBranchName,
+} = require( './common' );
+
+const STABLE_TAG_REGEX = /Stable tag: [0-9]+\.[0-9]+\.[0-9]+\s*\n/;
+const STABLE_TAG_PLACEHOLDER = 'Stable tag: V.V.V\n';
+
+/**
+ * Fetching the SVN repository to the working directory.
+ *
+ * @param {string} abortMessage Abort message.
+ *
+ * @return {Promise} Repository local path.
+ */
+async function runSvnRepositoryCheckoutStep( abortMessage ) {
+ // Cloning the repository
+ let svnWorkingDirectoryPath;
+ await runStep( 'Fetching the SVN repository', abortMessage, async () => {
+ log( '>> Fetching the SVN repository' );
+ svnWorkingDirectoryPath = svn.checkout( config.svnRepositoryURL );
+ log(
+ '>> The SVN repository has been successfully fetched in the following temporary folder: ' +
+ formats.success( svnWorkingDirectoryPath )
+ );
+ } );
+
+ return svnWorkingDirectoryPath;
+}
+
+/**
+ * Creates a new release branch based on the last package.json version
+ * and chooses the next RC version number.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} abortMessage Abort Message.
+ *
+ * @return {Promise} chosen version and versionLabels.
+ */
+async function runReleaseBranchCreationStep(
+ gitWorkingDirectoryPath,
+ abortMessage
+) {
+ let version, releaseBranch, versionLabel;
+ await runStep( 'Creating the release branch', abortMessage, async () => {
+ const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
+ const packageJson = readJSONFile( packageJsonPath );
+ const parsedVersion = semver.parse( packageJson.version );
+
+ // Follow the WordPress version guidelines to compute the version to be used
+ // By default, increase the "minor" number but if we reach 9, bump to the next major.
+ if ( parsedVersion.minor === 9 ) {
+ version = parsedVersion.major + 1 + '.0.0-rc.1';
+ releaseBranch = 'release/' + ( parsedVersion.major + 1 ) + '.0';
+ versionLabel = parsedVersion.major + 1 + '.0.0 RC1';
+ } else {
+ version =
+ parsedVersion.major +
+ '.' +
+ ( parsedVersion.minor + 1 ) +
+ '.0-rc.1';
+ releaseBranch =
+ 'release/' +
+ parsedVersion.major +
+ '.' +
+ ( parsedVersion.minor + 1 );
+ versionLabel =
+ parsedVersion.major +
+ '.' +
+ ( parsedVersion.minor + 1 ) +
+ '.0 RC1';
+ }
+
+ await askForConfirmation(
+ 'The Plugin version to be used is ' +
+ formats.success( version ) +
+ '. Proceed with the creation of the release branch?',
+ true,
+ abortMessage
+ );
+
+ // Creating the release branch
+ await git.createLocalBranch( gitWorkingDirectoryPath, releaseBranch );
+ log(
+ '>> The local release branch ' +
+ formats.success( releaseBranch ) +
+ ' has been successfully created.'
+ );
+ } );
+
+ return {
+ version,
+ versionLabel,
+ releaseBranch,
+ };
+}
+
+/**
+ * Checkouts out the release branch and chooses a stable version number.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} abortMessage Abort Message.
+ *
+ * @return {Promise} chosen version and versionLabels.
+ */
+async function runReleaseBranchCheckoutStep(
+ gitWorkingDirectoryPath,
+ abortMessage
+) {
+ let releaseBranch, version;
+ await runStep(
+ 'Getting into the release branch',
+ abortMessage,
+ async () => {
+ const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
+ releaseBranch = findReleaseBranchName( packageJsonPath );
+ await git.checkoutRemoteBranch(
+ gitWorkingDirectoryPath,
+ releaseBranch
+ );
+ log(
+ '>> The local release branch ' +
+ formats.success( releaseBranch ) +
+ ' has been successfully checked out.'
+ );
+
+ const releaseBranchPackageJson = readJSONFile( packageJsonPath );
+ const releaseBranchParsedVersion = semver.parse(
+ releaseBranchPackageJson.version
+ );
+
+ if (
+ releaseBranchParsedVersion.prerelease &&
+ releaseBranchParsedVersion.prerelease.length
+ ) {
+ version =
+ releaseBranchParsedVersion.major +
+ '.' +
+ releaseBranchParsedVersion.minor +
+ '.' +
+ releaseBranchParsedVersion.patch;
+ } else {
+ version =
+ releaseBranchParsedVersion.major +
+ '.' +
+ releaseBranchParsedVersion.minor +
+ '.' +
+ ( releaseBranchParsedVersion.patch + 1 );
+ }
+
+ await askForConfirmation(
+ 'The Version to release is ' +
+ formats.success( version ) +
+ '. Proceed?',
+ true,
+ abortMessage
+ );
+ }
+ );
+
+ return {
+ version,
+ versionLabel: version,
+ releaseBranch,
+ };
+}
+
+/**
+ * Bump the version in the different files (package.json, package-lock.json...)
+ * and commit the changes.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} version Version to use.
+ * @param {string} changelog Changelog to use.
+ * @param {string} abortMessage Abort message.
+ *
+ * @return {Promise} hash of the version bump commit.
+ */
+async function runBumpPluginVersionUpdateChangelogAndCommitStep(
+ gitWorkingDirectoryPath,
+ version,
+ changelog,
+ abortMessage
+) {
+ let commitHash;
+ await runStep( 'Updating the plugin version', abortMessage, async () => {
+ const packageJsonPath = gitWorkingDirectoryPath + '/package.json';
+ const packageLockPath = gitWorkingDirectoryPath + '/package-lock.json';
+ const pluginFilePath =
+ gitWorkingDirectoryPath + '/' + config.pluginEntryPoint;
+ const packageJson = readJSONFile( packageJsonPath );
+ const packageLock = readJSONFile( packageLockPath );
+ const newPackageJson = {
+ ...packageJson,
+ version,
+ };
+ fs.writeFileSync(
+ packageJsonPath,
+ JSON.stringify( newPackageJson, null, '\t' ) + '\n'
+ );
+ const newPackageLock = {
+ ...packageLock,
+ version,
+ };
+ fs.writeFileSync(
+ packageLockPath,
+ JSON.stringify( newPackageLock, null, '\t' ) + '\n'
+ );
+ const content = fs.readFileSync( pluginFilePath, 'utf8' );
+ fs.writeFileSync(
+ pluginFilePath,
+ content.replace(
+ ' * Version: ' + packageJson.version,
+ ' * Version: ' + version
+ )
+ );
+
+ // Update the content of the readme.txt file
+ const readmePath = gitWorkingDirectoryPath + '/readme.txt';
+ const readmeFileContent = fs.readFileSync( readmePath, 'utf8' );
+ const newReadmeContent =
+ readmeFileContent.substr(
+ 0,
+ readmeFileContent.indexOf( '== Changelog ==' )
+ ) +
+ '== Changelog ==\n\n' +
+ `To read the changelog for ${ config.name } ${ version }, please navigate to the release page .` +
+ '\n';
+ fs.writeFileSync( readmePath, newReadmeContent );
+
+ // Update the content of the changelog.txt file
+ const stableVersion = version.match( /[0-9]+\.[0-9]+\.[0-9]+/ )[ 0 ];
+ const changelogPath = gitWorkingDirectoryPath + '/changelog.txt';
+ const changelogFileContent = fs.readFileSync( changelogPath, 'utf8' );
+ const versionHeader = '= ' + version + ' =\n\n';
+ const regexToSearch = /=\s([0-9]+\.[0-9]+\.[0-9]+)(-rc\.[0-9]+)?\s=\n\n/g;
+ let lastDifferentVersionMatch = regexToSearch.exec(
+ changelogFileContent
+ );
+ if ( lastDifferentVersionMatch[ 1 ] === stableVersion ) {
+ lastDifferentVersionMatch = regexToSearch.exec(
+ changelogFileContent
+ );
+ }
+ const newChangelogContent =
+ '== Changelog ==\n\n' +
+ versionHeader +
+ changelog +
+ '\n\n' +
+ changelogFileContent.substr( lastDifferentVersionMatch.index );
+ fs.writeFileSync( changelogPath, newChangelogContent );
+
+ log(
+ '>> The plugin version and changelog have been updated successfully.'
+ );
+
+ // Commit the version bump
+ await askForConfirmation(
+ 'Please check the diff. Proceed with the version bump commit?',
+ true,
+ abortMessage
+ );
+ commitHash = await git.commit(
+ gitWorkingDirectoryPath,
+ 'Bump plugin version to ' + version,
+ [
+ packageJsonPath,
+ packageLockPath,
+ pluginFilePath,
+ readmePath,
+ changelogPath,
+ ]
+ );
+ log(
+ '>> The plugin version bump and changelog update have been committed successfully.'
+ );
+ } );
+
+ return commitHash;
+}
+
+/**
+ * Run the Plugin ZIP Creation step.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} abortMessage Abort message.
+ *
+ * @return {Promise} Plugin ZIP Path
+ */
+async function runPluginZIPCreationStep(
+ gitWorkingDirectoryPath,
+ abortMessage
+) {
+ const zipPath = gitWorkingDirectoryPath + '/' + config.slug + '.zip';
+ await runStep( 'Plugin ZIP creation', abortMessage, async () => {
+ await askForConfirmation(
+ 'Proceed and build the plugin ZIP? (It takes a few minutes)',
+ true,
+ abortMessage
+ );
+ runShellScript( config.buildZipCommand, gitWorkingDirectoryPath );
+ log(
+ '>> The plugin ZIP has been built successfully. Path: ' +
+ formats.success( zipPath )
+ );
+ } );
+
+ return zipPath;
+}
+
+/**
+ * Create a local Git Tag.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} version Version to use.
+ * @param {string} abortMessage Abort message.
+ */
+async function runCreateGitTagStep(
+ gitWorkingDirectoryPath,
+ version,
+ abortMessage
+) {
+ await runStep( 'Creating the git tag', abortMessage, async () => {
+ await askForConfirmation(
+ 'Proceed with the creation of the git tag?',
+ true,
+ abortMessage
+ );
+
+ await git.createLocalTag( gitWorkingDirectoryPath, 'v' + version );
+
+ log(
+ '>> The ' +
+ formats.success( 'v' + version ) +
+ ' tag has been created successfully.'
+ );
+ } );
+}
+
+/**
+ * Push the local Git Changes and Tags to the remote repository.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} releaseBranch Release branch name.
+ * @param {string} abortMessage Abort message.
+ */
+async function runPushGitChangesStep(
+ gitWorkingDirectoryPath,
+ releaseBranch,
+ abortMessage
+) {
+ await runStep(
+ 'Pushing the release branch and the tag',
+ abortMessage,
+ async () => {
+ await askForConfirmation(
+ 'The release branch and the tag are going to be pushed to the remote repository. Continue?',
+ true,
+ abortMessage
+ );
+ await git.pushBranchToOrigin(
+ gitWorkingDirectoryPath,
+ releaseBranch
+ );
+ await git.pushTagsToOrigin( gitWorkingDirectoryPath );
+ }
+ );
+}
+
+/**
+ * Cherry-picks the version bump commit into master.
+ *
+ * @param {string} gitWorkingDirectoryPath Git Working Directory Path.
+ * @param {string} commitHash Commit to cherry-pick.
+ * @param {string} abortMessage Abort message.
+ */
+async function runCherrypickBumpCommitIntoMasterStep(
+ gitWorkingDirectoryPath,
+ commitHash,
+ abortMessage
+) {
+ await runStep(
+ 'Cherry-picking the bump commit into master',
+ abortMessage,
+ async () => {
+ await askForConfirmation(
+ 'The plugin is now released. Proceed with the version bump in the master branch?',
+ true,
+ abortMessage
+ );
+ await git.discardLocalChanges( gitWorkingDirectoryPath );
+ await git.resetLocalBranchAgainstOrigin(
+ gitWorkingDirectoryPath,
+ 'master'
+ );
+ await git.cherrypickCommitIntoBranch(
+ gitWorkingDirectoryPath,
+ commitHash,
+ 'master'
+ );
+ await git.pushBranchToOrigin( gitWorkingDirectoryPath, 'master' );
+ }
+ );
+}
+
+/**
+ * Creates the github release and uploads the ZIP file into it.
+ *
+ * @param {string} zipPath Plugin zip path.
+ * @param {string} version Released version.
+ * @param {string} versionLabel Label of the released Version.
+ * @param {string} changelog Release changelog.
+ * @param {boolean} isPrerelease is a pre-release.
+ * @param {string} abortMessage Abort message.
+ *
+ * @return {Promise} Github release object.
+ */
+async function runGithubReleaseStep(
+ zipPath,
+ version,
+ versionLabel,
+ changelog,
+ isPrerelease,
+ abortMessage
+) {
+ let octokit;
+ let release;
+ await runStep( 'Creating the GitHub release', abortMessage, async () => {
+ await askForConfirmation(
+ 'Proceed with the creation of the GitHub release?',
+ true,
+ abortMessage
+ );
+
+ const { token } = await inquirer.prompt( [
+ {
+ type: 'input',
+ name: 'token',
+ message:
+ 'Please provide a GitHub personal authentication token. Navigate to ' +
+ formats.success(
+ 'https://github.com/settings/tokens/new?scopes=repo,admin:org,write:packages'
+ ) +
+ ' to create one.',
+ },
+ ] );
+
+ octokit = new Octokit( {
+ auth: token,
+ } );
+
+ const releaseData = await octokit.repos.createRelease( {
+ owner: config.githubRepositoryOwner,
+ repo: config.githubRepositoryName,
+ tag_name: 'v' + version,
+ name: versionLabel,
+ body: changelog,
+ prerelease: isPrerelease,
+ } );
+ release = releaseData.data;
+
+ log( '>> The GitHub release has been created.' );
+ } );
+ abortMessage =
+ abortMessage + ' Make sure to remove the the GitHub release as well.';
+
+ // Uploading the Zip to the Github release
+ await runStep( 'Uploading the plugin ZIP', abortMessage, async () => {
+ const filestats = fs.statSync( zipPath );
+ await octokit.repos.uploadReleaseAsset( {
+ url: release.upload_url,
+ headers: {
+ 'content-length': filestats.size,
+ 'content-type': 'application/zip',
+ },
+ name: config.slug + '.zip',
+ file: fs.createReadStream( zipPath ),
+ } );
+ log( '>> The plugin ZIP has been successfully uploaded.' );
+ } );
+
+ log(
+ '>> The GitHub release is available here: ' +
+ formats.success( release.html_url )
+ );
+
+ return release;
+}
+
+/**
+ * Updates and commits the content of the SVN repo using the new plugin ZIP.
+ *
+ * @param {string} svnWorkingDirectoryPath SVN Working Directory Path.
+ * @param {string} zipPath Plugin zip path.
+ * @param {string} version Version.
+ * @param {string} abortMessage Abort Message.
+ */
+async function runUpdateTrunkContentStep(
+ svnWorkingDirectoryPath,
+ zipPath,
+ version,
+ abortMessage
+) {
+ // Updating the content of the svn
+ await runStep( 'Updating trunk content', abortMessage, async () => {
+ log( '>> Replacing trunk content using the new plugin ZIP' );
+
+ const readmePath = svnWorkingDirectoryPath + '/readme.txt';
+
+ const previousReadmeFileContent = fs.readFileSync( readmePath, 'utf8' );
+ const stableTag = previousReadmeFileContent.match(
+ STABLE_TAG_REGEX
+ )[ 0 ];
+
+ // Delete everything
+ runShellScript(
+ 'find . -maxdepth 1 -not -name ".svn" -not -name "." -not -name ".." -exec rm -rf {} +',
+ svnWorkingDirectoryPath
+ );
+
+ // Update the content using the plugin ZIP
+ runShellScript( 'unzip ' + zipPath + ' -d ' + svnWorkingDirectoryPath );
+
+ // Replace the stable tag placeholder with the existing stable tag on the SVN repository.
+ const newReadmeFileContent = fs.readFileSync( readmePath, 'utf8' );
+ fs.writeFileSync(
+ readmePath,
+ newReadmeFileContent.replace( STABLE_TAG_PLACEHOLDER, stableTag )
+ );
+
+ // Commit the content changes
+ runShellScript(
+ "svn st | grep '^?' | awk '{print $2}' | xargs svn add",
+ svnWorkingDirectoryPath
+ );
+ runShellScript(
+ "svn st | grep '^!' | awk '{print $2}' | xargs svn rm",
+ svnWorkingDirectoryPath
+ );
+ await askForConfirmation(
+ 'Trunk content has been updated, please check the SVN diff. Commit the changes?',
+ true,
+ abortMessage
+ );
+
+ svn.commit( svnWorkingDirectoryPath, 'Committing version ' + version );
+ log( '>> Trunk has been successfully updated' );
+ } );
+}
+
+/**
+ * Creates a new SVN Tag
+ *
+ * @param {string} version Version.
+ * @param {string} abortMessage Abort Message.
+ */
+async function runSvnTagStep( version, abortMessage ) {
+ await runStep( 'Creating the SVN Tag', abortMessage, async () => {
+ await askForConfirmation(
+ 'Proceed with the creation of the SVN Tag?',
+ true,
+ abortMessage
+ );
+ svn.tagTrunk(
+ config.svnRepositoryURL,
+ version,
+ 'Tagging version ' + version
+ );
+ log(
+ '>> The SVN ' +
+ formats.success( version ) +
+ ' tag has been successfully created'
+ );
+ } );
+}
+
+/**
+ * Updates the stable version of the plugin in the SVN repository.
+ *
+ * @param {string} svnWorkingDirectoryPath SVN working directory.
+ * @param {string} version Version.
+ * @param {string} abortMessage Abort Message.
+ */
+async function updateThePluginStableVersion(
+ svnWorkingDirectoryPath,
+ version,
+ abortMessage
+) {
+ // Updating the content of the svn
+ await runStep(
+ "Updating the plugin's stable version",
+ abortMessage,
+ async () => {
+ const readmePath = svnWorkingDirectoryPath + '/readme.txt';
+ const readmeFileContent = fs.readFileSync( readmePath, 'utf8' );
+ const newReadmeContent = readmeFileContent.replace(
+ STABLE_TAG_REGEX,
+ 'Stable tag: ' + version + '\n'
+ );
+ fs.writeFileSync( readmePath, newReadmeContent );
+
+ // Commit the content changes
+ await askForConfirmation(
+ 'The stable version is updated in the readme.txt file. Commit the changes?',
+ true,
+ abortMessage
+ );
+
+ svn.commit(
+ svnWorkingDirectoryPath,
+ 'Releasing version ' + version
+ );
+
+ log( '>> Stable version updated successfully' );
+ }
+ );
+}
+
+/**
+ * Release a new version.
+ *
+ * @param {boolean} isRC Whether it's an RC release or not.
+ *
+ * @return {Promise} Github release object.
+ */
+async function releasePlugin( isRC = true ) {
+ // This is a variable that contains the abort message shown when the script is aborted.
+ let abortMessage = 'Aborting!';
+ const temporaryFolders = [];
+
+ await askForConfirmation( 'Ready to go? ' );
+
+ const { changelog } = await inquirer.prompt( [
+ {
+ type: 'editor',
+ name: 'changelog',
+ message: 'Please provide the CHANGELOG of the release (markdown)',
+ },
+ ] );
+
+ // Cloning the Git repository
+ const gitWorkingDirectory = await runGitRepositoryCloneStep( abortMessage );
+ temporaryFolders.push( gitWorkingDirectory );
+
+ // Creating the release branch
+ const { version, versionLabel, releaseBranch } = isRC
+ ? await runReleaseBranchCreationStep(
+ gitWorkingDirectory,
+ abortMessage
+ )
+ : await runReleaseBranchCheckoutStep(
+ gitWorkingDirectory,
+ abortMessage
+ );
+
+ // Bumping the version and commit.
+ const commitHash = await runBumpPluginVersionUpdateChangelogAndCommitStep(
+ gitWorkingDirectory,
+ version,
+ changelog,
+ abortMessage
+ );
+
+ // Plugin ZIP creation
+ const zipPath = await runPluginZIPCreationStep(
+ gitWorkingDirectory,
+ abortMessage
+ );
+
+ // Creating the git tag
+ await runCreateGitTagStep( gitWorkingDirectory, version, abortMessage );
+
+ // Push the local changes
+ await runPushGitChangesStep(
+ gitWorkingDirectory,
+ releaseBranch,
+ abortMessage
+ );
+
+ abortMessage =
+ 'Aborting! Make sure to ' + isRC
+ ? 'remove'
+ : 'reset' + ' the remote release branch and remove the git tag.';
+
+ // Creating the GitHub Release
+ const release = await runGithubReleaseStep(
+ zipPath,
+ version,
+ versionLabel,
+ changelog,
+ isRC,
+ abortMessage
+ );
+
+ abortMessage =
+ 'Aborting! Make sure to manually cherry-pick the ' +
+ formats.success( commitHash ) +
+ ' commit to the master branch.';
+ if ( ! isRC ) {
+ abortMessage +=
+ ' Make sure to perform the SVN release manually as well.';
+ }
+
+ // Cherry-picking the bump commit into master
+ await runCherrypickBumpCommitIntoMasterStep(
+ gitWorkingDirectory,
+ commitHash,
+ abortMessage
+ );
+
+ if ( ! isRC ) {
+ abortMessage =
+ 'Aborting! The GitHub release is done. Make sure to perform the SVN release manually.';
+
+ await askForConfirmation(
+ 'The GitHub release is complete. Proceed with the SVN release? ',
+ true,
+ abortMessage
+ );
+
+ // Fetching the SVN repository
+ const svnWorkingDirectory = await runSvnRepositoryCheckoutStep(
+ abortMessage
+ );
+ temporaryFolders.push( svnWorkingDirectory );
+
+ // Updating the SVN trunk content
+ await runUpdateTrunkContentStep(
+ svnWorkingDirectory,
+ zipPath,
+ version,
+ abortMessage
+ );
+
+ abortMessage =
+ 'Aborting! The GitHub release is done, SVN trunk updated. Make sure to create the SVN tag and update the stable version manually.';
+ await runSvnTagStep( version, abortMessage );
+
+ abortMessage =
+ 'Aborting! The GitHub release is done, SVN tagged. Make sure to update the stable version manually.';
+ await updateThePluginStableVersion(
+ svnWorkingDirectory,
+ version,
+ abortMessage
+ );
+ }
+
+ abortMessage = 'Aborting! The release is finished though.';
+ await runCleanLocalFoldersStep( temporaryFolders, abortMessage );
+
+ return release;
+}
+
+async function releaseRC() {
+ log(
+ formats.title( '\n💃 Time to release ' + config.name + ' 🕺\n\n' ),
+ 'Welcome! This tool is going to help you release a new RC version of the Plugin.\n',
+ 'It goes through different steps: creating the release branch, bumping the plugin version, tagging and creating the GitHub release, building the ZIP...\n',
+ "To perform a release you'll have to be a member of the " +
+ config.team +
+ ' Team.\n'
+ );
+
+ const release = await releasePlugin( true );
+
+ log(
+ '\n>> 🎉 The ' +
+ config.name +
+ ' version ' +
+ formats.success( release.name ) +
+ ' has been successfully released.\n',
+ 'You can access the GitHub release here: ' +
+ formats.success( release.html_url ) +
+ '\n',
+ 'Thanks for performing the release!\n'
+ );
+}
+
+async function releaseStable() {
+ log(
+ formats.title( '\n💃 Time to release ' + config.name + ' 🕺\n\n' ),
+ 'Welcome! This tool is going to help you release a new stable version of the Plugin.\n',
+ 'It goes through different steps: bumping the plugin version, tagging and creating the GitHub release, building the ZIP, pushing the release to the SVN repository...\n',
+ "To perform a release you'll have to be a member of the " +
+ config.team +
+ ' Team.\n'
+ );
+
+ const release = await releasePlugin( false );
+
+ log(
+ '\n>> 🎉 ' +
+ config.name +
+ ' ' +
+ formats.success( release.name ) +
+ ' has been successfully released.\n',
+ 'You can access the GitHub release here: ' +
+ formats.success( release.html_url ) +
+ '\n',
+ "In a few minutes, you'll be able to update the plugin from the WordPress repository.\n",
+ "Thanks for performing the release! and don't forget to publish the release post.\n"
+ );
+}
+
+module.exports = {
+ releaseRC,
+ releaseStable,
+};
diff --git a/bin/plugin/config.js b/bin/plugin/config.js
new file mode 100644
index 00000000000000..ae16ab86925b93
--- /dev/null
+++ b/bin/plugin/config.js
@@ -0,0 +1,17 @@
+const gitRepoOwner = 'WordPress';
+
+const config = {
+ slug: 'gutenberg',
+ name: 'Gutenberg',
+ team: 'Gutenberg Core',
+ githubRepositoryOwner: gitRepoOwner,
+ githubRepositoryName: 'gutenberg',
+ pluginEntryPoint: 'gutenberg.php',
+ buildZipCommand: '/bin/bash bin/build-plugin-zip.sh',
+ wpRepositoryReleasesURL:
+ 'https://github.com/WordPress/gutenberg/releases/tag/',
+ gitRepositoryURL: 'https://github.com/' + gitRepoOwner + '/gutenberg.git',
+ svnRepositoryURL: 'https://plugins.svn.wordpress.org/gutenberg',
+};
+
+module.exports = config;
diff --git a/bin/plugin/lib/git.js b/bin/plugin/lib/git.js
new file mode 100644
index 00000000000000..f0052ba8cae9a2
--- /dev/null
+++ b/bin/plugin/lib/git.js
@@ -0,0 +1,100 @@
+/**
+ * External dependencies
+ */
+const path = require( 'path' );
+const SimpleGit = require( 'simple-git/promise' );
+const os = require( 'os' );
+const { v4: uuid } = require( 'uuid' );
+
+async function clone( repositoryUrl ) {
+ const gitWorkingDirectoryPath = path.join( os.tmpdir(), uuid() );
+ const simpleGit = SimpleGit();
+ await simpleGit.clone( repositoryUrl, gitWorkingDirectoryPath );
+ return gitWorkingDirectoryPath;
+}
+
+async function commit( gitWorkingDirectoryPath, message, filesToAdd = [] ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.add( filesToAdd );
+ const commitData = await simpleGit.commit( message );
+ const commitHash = commitData.commit;
+
+ return commitHash;
+}
+
+async function createLocalBranch( gitWorkingDirectoryPath, branchName ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.checkoutLocalBranch( branchName );
+}
+
+async function checkoutRemoteBranch( gitWorkingDirectoryPath, branchName ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.checkout( branchName );
+}
+
+async function createLocalTag( gitWorkingDirectoryPath, tagName ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.addTag( tagName );
+}
+
+async function pushBranchToOrigin( gitWorkingDirectoryPath, branchName ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.push( 'origin', branchName );
+}
+
+async function pushTagsToOrigin( gitWorkingDirectoryPath ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.pushTags( 'origin' );
+}
+
+async function discardLocalChanges( gitWorkingDirectoryPath ) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.reset( 'hard' );
+}
+
+async function resetLocalBranchAgainstOrigin(
+ gitWorkingDirectoryPath,
+ branchName
+) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.fetch();
+ await simpleGit.checkout( branchName );
+ await simpleGit.pull( 'origin', branchName );
+}
+
+async function cherrypickCommitIntoBranch(
+ gitWorkingDirectoryPath,
+ commitHash
+) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.checkout( 'master' );
+ await simpleGit.raw( [ 'cherry-pick', commitHash ] );
+}
+
+async function replaceContentFromRemoteBranch(
+ gitWorkingDirectoryPath,
+ sourceBranchName
+) {
+ const simpleGit = SimpleGit( gitWorkingDirectoryPath );
+ await simpleGit.raw( [ 'rm', '-r', '.' ] );
+ await simpleGit.raw( [
+ 'checkout',
+ `origin/${ sourceBranchName }`,
+ '--',
+ '.',
+ ] );
+}
+
+module.exports = {
+ clone,
+ commit,
+ checkoutRemoteBranch,
+ createLocalBranch,
+ createLocalTag,
+ pushBranchToOrigin,
+ pushTagsToOrigin,
+ discardLocalChanges,
+ resetLocalBranchAgainstOrigin,
+ cherrypickCommitIntoBranch,
+ replaceContentFromRemoteBranch,
+};
diff --git a/bin/plugin/lib/logger.js b/bin/plugin/lib/logger.js
new file mode 100644
index 00000000000000..6ade44f74e2f2f
--- /dev/null
+++ b/bin/plugin/lib/logger.js
@@ -0,0 +1,22 @@
+/**
+ * External dependencies
+ */
+const chalk = require( 'chalk' );
+
+// Formats
+const title = chalk.bold;
+const error = chalk.bold.red;
+const warning = chalk.bold.keyword( 'orange' );
+const success = chalk.bold.green;
+
+const log = console.log;
+
+module.exports = {
+ log,
+ formats: {
+ title,
+ error,
+ warning,
+ success,
+ },
+};
diff --git a/bin/plugin/lib/svn.js b/bin/plugin/lib/svn.js
new file mode 100644
index 00000000000000..9187fd473e6645
--- /dev/null
+++ b/bin/plugin/lib/svn.js
@@ -0,0 +1,43 @@
+/**
+ * External dependencies
+ */
+const path = require( 'path' );
+const os = require( 'os' );
+const { v4: uuid } = require( 'uuid' );
+const { runShellScript } = require( './utils' );
+
+function checkout( repositoryUrl ) {
+ const svnWorkingDirectoryPath = path.join( os.tmpdir(), uuid() );
+ runShellScript(
+ 'svn checkout ' + repositoryUrl + '/trunk ' + svnWorkingDirectoryPath
+ );
+
+ return svnWorkingDirectoryPath;
+}
+
+function commit( svnWorkingDirectoryPath, message ) {
+ runShellScript(
+ 'svn commit -m "' + message + '"',
+ svnWorkingDirectoryPath
+ );
+}
+
+function tagTrunk( repositoryUrl, tagName, message ) {
+ runShellScript(
+ 'svn cp ' +
+ repositoryUrl +
+ '/trunk ' +
+ repositoryUrl +
+ '/tags/' +
+ tagName +
+ ' -m "' +
+ message +
+ '"'
+ );
+}
+
+module.exports = {
+ checkout,
+ commit,
+ tagTrunk,
+};
diff --git a/bin/plugin/lib/utils.js b/bin/plugin/lib/utils.js
new file mode 100644
index 00000000000000..96267ccb8ea0a2
--- /dev/null
+++ b/bin/plugin/lib/utils.js
@@ -0,0 +1,98 @@
+/**
+ * External dependencies
+ */
+const inquirer = require( 'inquirer' );
+const fs = require( 'fs' );
+const childProcess = require( 'child_process' );
+
+/*
+ * Internal dependencies
+ */
+const { log, formats } = require( './logger' );
+
+/**
+ * Utility to run a child script
+ *
+ * @param {string} script Script to run.
+ * @param {string?} cwd Working directory.
+ */
+function runShellScript( script, cwd ) {
+ childProcess.execSync( script, {
+ cwd,
+ env: {
+ NO_CHECKS: true,
+ PATH: process.env.PATH,
+ HOME: process.env.HOME,
+ },
+ stdio: [ 'inherit', 'ignore', 'inherit' ],
+ } );
+}
+
+/**
+ * Small utility used to read an uncached version of a JSON file
+ *
+ * @param {string} fileName
+ */
+function readJSONFile( fileName ) {
+ const data = fs.readFileSync( fileName, 'utf8' );
+ return JSON.parse( data );
+}
+
+/**
+ * Common logic wrapping a step in the process.
+ *
+ * @param {string} name Step name.
+ * @param {string} abortMessage Abort message.
+ * @param {Function} handler Step logic.
+ */
+async function runStep( name, abortMessage, handler ) {
+ try {
+ await handler();
+ } catch ( exception ) {
+ log(
+ formats.error(
+ 'The following error happened during the "' +
+ formats.warning( name ) +
+ '" step:'
+ ) + '\n\n',
+ exception,
+ formats.error( '\n\n' + abortMessage )
+ );
+
+ process.exit( 1 );
+ }
+}
+
+/**
+ * Asks the user for a confirmation to continue or abort otherwise.
+ *
+ * @param {string} message Confirmation message.
+ * @param {boolean} isDefault Default reply.
+ * @param {string} abortMessage Abort message.
+ */
+async function askForConfirmation(
+ message,
+ isDefault = true,
+ abortMessage = 'Aborting.'
+) {
+ const { isReady } = await inquirer.prompt( [
+ {
+ type: 'confirm',
+ name: 'isReady',
+ default: isDefault,
+ message,
+ },
+ ] );
+
+ if ( ! isReady ) {
+ log( formats.error( '\n' + abortMessage ) );
+ process.exit( 1 );
+ }
+}
+
+module.exports = {
+ askForConfirmation,
+ runStep,
+ readJSONFile,
+ runShellScript,
+};
diff --git a/bin/test/changelog.js b/bin/test/changelog.js
new file mode 100644
index 00000000000000..5fbed812b9f709
--- /dev/null
+++ b/bin/test/changelog.js
@@ -0,0 +1,20 @@
+/**
+ * Internal dependencies
+ */
+import { getNormalizedTitle } from '../changelog';
+
+describe( 'getNormalizedTitle', () => {
+ describe( 'ends in period', () => {
+ it( 'adds a period if missing', () => {
+ const result = getNormalizedTitle( 'Fixes a bug' );
+
+ expect( result ).toBe( 'Fixes a bug.' );
+ } );
+
+ it( 'does not add a period if already present', () => {
+ const result = getNormalizedTitle( 'Fixes a bug.' );
+
+ expect( result ).toBe( 'Fixes a bug.' );
+ } );
+ } );
+} );
diff --git a/bin/tsconfig.json b/bin/tsconfig.json
index b65a74eeb1bfc1..ba5d6350a3b295 100644
--- a/bin/tsconfig.json
+++ b/bin/tsconfig.json
@@ -15,6 +15,8 @@
},
"files": [
"./api-docs/update-api-docs.js",
- "./check-latest-npm.js"
+ "./check-latest-npm.js",
+ "./changelog.js",
+ "./validate-package-lock.js",
]
}
diff --git a/bin/validate-package-lock.js b/bin/validate-package-lock.js
new file mode 100755
index 00000000000000..63ffbd70c0b095
--- /dev/null
+++ b/bin/validate-package-lock.js
@@ -0,0 +1,43 @@
+#!/usr/bin/env node
+'use strict';
+
+// This script validates `package-lock.json` to avoid the introduction of an
+// erroneous `"resolved": false` value. It appears to be related to an upstream
+// unresolved issue with NPM. If the upstream issue is resolved, this script
+// should no longer be necessary.
+//
+// See: https://github.com/npm/cli/issues/1138
+
+/**
+ * External dependencies
+ */
+const { red, yellow } = require( 'chalk' );
+
+/**
+ * Internal dependencies
+ */
+// Ignore reason: `package-lock.json` exists outside `bin` `rootDir`.
+// @ts-ignore
+const packageLock = require( '../package-lock' );
+
+const dependencies = Object.entries( packageLock.dependencies );
+for ( const [ name, dependency ] of dependencies ) {
+ if ( dependency.resolved === false ) {
+ console.log(
+ `Invalid resolved dependency in package-lock.json.
+
+${ red( JSON.stringify( { [ name ]: dependency }, null, '\t' ) ) }
+
+To fix, try removing the node_modules directory, then run ${ yellow(
+ 'npm install'
+ ) }.
+`
+ );
+
+ process.exit( 1 );
+ }
+
+ if ( dependency.dependencies ) {
+ dependencies.push( ...Object.entries( dependency.dependencies ) );
+ }
+}
diff --git a/changelog.txt b/changelog.txt
index dcc7411387f7d0..a6186c71503e8e 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,329 @@
== Changelog ==
+= 8.1.0-rc.1 =
+
+### New features
+
+- Testimonials block pattern. ([20894](https://github.com/WordPress/gutenberg/pull/20894))
+- Ability to transform Embed blocks into Paragraph blocks. ([17413](https://github.com/WordPress/gutenberg/pull/17413))
+- Ability to transform code into HTML block and the opposite. ([21779](https://github.com/WordPress/gutenberg/pull/21779))
+- Add copy action to the blocks. ([22214](https://github.com/WordPress/gutenberg/pull/22214))
+- Pattern search ([21944](https://github.com/WordPress/gutenberg/pull/21944))
+- Add undo-redo UI to edit-site and edit-widgets. ([21955](https://github.com/WordPress/gutenberg/pull/21955))
+
+### Enhancements
+
+- Implement Block Navigator selection on Nav Menus page. ([22017](https://github.com/WordPress/gutenberg/pull/22017))
+- Write block patterns in PHP to allow i18n. ([21946](https://github.com/WordPress/gutenberg/pull/21946))
+- Post title: handle paste as blocks. ([21758](https://github.com/WordPress/gutenberg/pull/21758))
+- Clear Publish Date Button. ([20914](https://github.com/WordPress/gutenberg/pull/20914))
+- Update the Patterns API to avoid ambiguity. ([21970](https://github.com/WordPress/gutenberg/pull/21970))
+- Edit Site: Add home icon to template switcher. ([22004](https://github.com/WordPress/gutenberg/pull/22004))
+- Add gap between nested submenus. ([22227](https://github.com/WordPress/gutenberg/pull/22227))
+- Block Library: enhance the author's block. ([19894](https://github.com/WordPress/gutenberg/pull/19894))
+- Add "black" and "white" color options to default color palette. ([22082](https://github.com/WordPress/gutenberg/pull/22082))
+- Light blocks: social links. ([22078](https://github.com/WordPress/gutenberg/pull/22078))
+- CustomSelectControl: set aria-hidden to empty option list. ([21298](https://github.com/WordPress/gutenberg/pull/21298))
+- Add some more g2 icons. ([21825](https://github.com/WordPress/gutenberg/pull/21825))
+- Allow the column block in the inserter. ([20502](https://github.com/WordPress/gutenberg/pull/20502))
+- Delete menus in nav menus experimental screen. ([21486](https://github.com/WordPress/gutenberg/pull/21486))
+- Visual and experience improvements to existing sub-navigation flow. ([22107](https://github.com/WordPress/gutenberg/pull/22107))
+- Reduce font-size and line-height of "it's time". ([21627](https://github.com/WordPress/gutenberg/pull/21627))
+- Template Loader: Introduce get_template_hierarchy(), drop gutenberg_template_include_filter(). ([21980](https://github.com/WordPress/gutenberg/pull/21980))
+- Make parts of the BlockNavigationList overridable using slots. ([21948](https://github.com/WordPress/gutenberg/pull/21948))
+- Change the color alpha input step to match the slider step. ([21953](https://github.com/WordPress/gutenberg/pull/21953))
+- Navigation: fallback for undefined orientation. ([22057](https://github.com/WordPress/gutenberg/pull/22057))
+- Remove subscription button from blog template. ([22129](https://github.com/WordPress/gutenberg/pull/22129))
+- Site editor: Updated template content. ([22044](https://github.com/WordPress/gutenberg/pull/22044))
+- Block API: Block Context: Filter content, prepare attributes at render, pass a block to render. ([21925](https://github.com/WordPress/gutenberg/pull/21925))
+- Move the Entities Saved States from Modal to Sidebar. ([21522](https://github.com/WordPress/gutenberg/pull/21522))
+
+### Performance
+
+- Reduce re-renders from block nodes context. ([22134](https://github.com/WordPress/gutenberg/pull/22134))
+- [Optimize] Move memo() from BlockStyles to BlockPreview. ([21993](https://github.com/WordPress/gutenberg/pull/21993))
+- Avoid rerenders of the entire BlockInspector when block attributes change. ([21990](https://github.com/WordPress/gutenberg/pull/21990))
+- Optimize BlockStyles by using hooks and React.memo (instead of HOCs). ([21973](https://github.com/WordPress/gutenberg/pull/21973))
+
+### Bug Fixes
+
+- Popover: Fix closest().parentNode null error. ([22264](https://github.com/WordPress/gutenberg/pull/22264))
+- Correct color palette in color settings. ([22138](https://github.com/WordPress/gutenberg/pull/22138))
+- Remove import of inexistant component. ([22130](https://github.com/WordPress/gutenberg/pull/22130))
+- Fix API doc-building pre-commit hook issue. ([22116](https://github.com/WordPress/gutenberg/pull/22116))
+- Build Tooling: Run packages build before lint. ([22088](https://github.com/WordPress/gutenberg/pull/22088))
+- RangeControl: Fix number input change interaction. ([22084](https://github.com/WordPress/gutenberg/pull/22084))
+- Fix entity selection through save panel. ([22011](https://github.com/WordPress/gutenberg/pull/22011))
+- ESLint Plugin: Relax check for i18n-text-domain rule. ([21928](https://github.com/WordPress/gutenberg/pull/21928))
+- Block Library: Fix React does not recognize isSelected prop in Spacer block. ([21924](https://github.com/WordPress/gutenberg/pull/21924))
+- Reinitialize the iframe after the parent block is moved around. ([21916](https://github.com/WordPress/gutenberg/pull/21916))
+- Configure the navigation editor with correct __experimentalFetchLinkSuggestions. ([21873](https://github.com/WordPress/gutenberg/pull/21873))
+- Create the proper shortcode on paste. ([21864](https://github.com/WordPress/gutenberg/pull/21864))
+- Refactor FontSizePicker component. Fix bug on undo. ([21757](https://github.com/WordPress/gutenberg/pull/21757))
+- Move caret to the end of pasted content. ([21755](https://github.com/WordPress/gutenberg/pull/21755))
+- Embed: use the same SmugMug URL regex as the core. ([21744](https://github.com/WordPress/gutenberg/pull/21744))
+- Navigation block: use new icon in placeholder. ([21713](https://github.com/WordPress/gutenberg/pull/21713))
+- Fix Template Part placeholder preview. ([21623](https://github.com/WordPress/gutenberg/pull/21623))
+- Fix(block-patterns): expose the registered pattern slugs in get_all_registered. ([21619](https://github.com/WordPress/gutenberg/pull/21619))
+- Restore the missing background color on the nested submenus. ([22228](https://github.com/WordPress/gutenberg/pull/22228))
+- fix: [#21777] Prevent focusing of FireFox address bar. ([22215](https://github.com/WordPress/gutenberg/pull/22215))
+- Fix flaky test in rich text. ([22202](https://github.com/WordPress/gutenberg/pull/22202))
+- Fix flaky test: tag "target" attribute. ([22200](https://github.com/WordPress/gutenberg/pull/22200))
+- Fix extra tab stop on Modal component. ([22063](https://github.com/WordPress/gutenberg/pull/22063))
+- Fix spelling mistake in lib/edit-site-page.php. ([21991](https://github.com/WordPress/gutenberg/pull/21991))
+- Site Editor: fix default editor background. ([22182](https://github.com/WordPress/gutenberg/pull/22182))
+- Writing flow: fix vertical arrow nav in table (and generally grid). ([22105](https://github.com/WordPress/gutenberg/pull/22105))
+- Gallery block / media-placeholder - Preserve changes made while upload in progress. ([19134](https://github.com/WordPress/gutenberg/pull/19134))
+- REST API: Block directory - Typecast author_block_count as integer. ([17594](https://github.com/WordPress/gutenberg/pull/17594))
+- Add missing dependency. ([22086](https://github.com/WordPress/gutenberg/pull/22086))
+
+
+### Tooling
+
+- Build Tools: Validate package-lock.json for "resolved" errors. ([22237](https://github.com/WordPress/gutenberg/pull/22237))
+- Build Tools: Disable ESLint `no-console` for bin directory. ([22033](https://github.com/WordPress/gutenberg/pull/22033))
+- Build Tools: Changelog: Normalize entry to end with period. ([22010](https://github.com/WordPress/gutenberg/pull/22010))
+- Add `analyze-bundles` script. ([21827](https://github.com/WordPress/gutenberg/pull/21827))
+- Add changelog generator script. ([19866](https://github.com/WordPress/gutenberg/pull/19866))
+- Add a method for publishing patches to the lerna scripts. ([21844](https://github.com/WordPress/gutenberg/pull/21844))
+- Add additional e2e debugging option. ([21845](https://github.com/WordPress/gutenberg/pull/21845))
+- Replace espree with babel. ([21853](https://github.com/WordPress/gutenberg/pull/21853))
+- Update diff to 4.0.2 and work around tree-shaking issues. ([21994](https://github.com/WordPress/gutenberg/pull/21994))
+- Increase the severity of `jsdoc/no-undefined-types`. . ([21942](https://github.com/WordPress/gutenberg/pull/21942))
+
+
+### Code Quality
+
+- Block: move new props to hook. ([22212](https://github.com/WordPress/gutenberg/pull/22212))
+- Block: avoid useLayoutEffect. ([22108](https://github.com/WordPress/gutenberg/pull/22108))
+- Try: Reduced specificity base block margins. ([22051](https://github.com/WordPress/gutenberg/pull/22051))
+- Update the audio and video blocks to use a light wrapper in the editor. ([22028](https://github.com/WordPress/gutenberg/pull/22028))
+- Remove unused animation lingering in paragraph file. ([22020](https://github.com/WordPress/gutenberg/pull/22020))
+- Columns. Remove top and bottom margin from individual column blocks. ([22018](https://github.com/WordPress/gutenberg/pull/22018))
+- Try better inserter toggle styling. ([22016](https://github.com/WordPress/gutenberg/pull/22016))
+- Block Editor: Rename block context in BlockListBlock. ([21922](https://github.com/WordPress/gutenberg/pull/21922))
+- Remove duplicate CopyHanddler. ([21817](https://github.com/WordPress/gutenberg/pull/21817))
+- Types: Restore element, icons, primitives types. ([21781](https://github.com/WordPress/gutenberg/pull/21781))
+- Convert core toolbar buttons into ToolbarButton. ([20008](https://github.com/WordPress/gutenberg/pull/20008))
+- Block Directory: Add end 2 end tests. ([20023](https://github.com/WordPress/gutenberg/pull/20023))
+- ClipboardButton: use hooks. ([22220](https://github.com/WordPress/gutenberg/pull/22220))
+- ClipboardButton: remove wrapper span. ([22218](https://github.com/WordPress/gutenberg/pull/22218))
+- Block Library: Update FSE blocks to use block context. ([21696](https://github.com/WordPress/gutenberg/pull/21696))
+- Group: Zero out the intrinsic margin set to every block in the editor. ([22209](https://github.com/WordPress/gutenberg/pull/22209))
+- Site Editor: refactor close button slot. ([22179](https://github.com/WordPress/gutenberg/pull/22179))
+- Unset the inherit for links. ([22160](https://github.com/WordPress/gutenberg/pull/22160))
+- Template Loader: Get rid of _wp_current_template_part_ids globals. ([22143](https://github.com/WordPress/gutenberg/pull/22143))
+- Block Library: Post Author: Reference attributes by argument. ([22114](https://github.com/WordPress/gutenberg/pull/22114))
+- Light blocks: site title. ([22069](https://github.com/WordPress/gutenberg/pull/22069))
+- Update: Use EntityProvider on the widget area. ([22008](https://github.com/WordPress/gutenberg/pull/22008))
+- Site Editor: make close button replaceable. ([22001](https://github.com/WordPress/gutenberg/pull/22001))
+- Remove pass by reference of the `$scripts` and `$styles` attributes in client-assets.php. ([21987](https://github.com/WordPress/gutenberg/pull/21987))
+- Use optional chaining, optional catch binding. ([21967](https://github.com/WordPress/gutenberg/pull/21967))
+- Edit Site: Extract gutenberg_find_template_post helper, use in edit-site-page. ([21959](https://github.com/WordPress/gutenberg/pull/21959))
+- Extract block mover buttons so that they can be individually imported. ([22122](https://github.com/WordPress/gutenberg/pull/22122))sss
+
+### Documentation
+
+- Scripts: Mark `env` script as deprecated. ([22158](https://github.com/WordPress/gutenberg/pull/22158))
+- Docs: Use InspectorControls from @wordpress/block-editor. ([22153](https://github.com/WordPress/gutenberg/pull/22153))
+- Fix bundle analysis change location in changelog. ([22136](https://github.com/WordPress/gutenberg/pull/22136))
+- Documentation: Improve the way CHANGELOG files are maintained. ([22126](https://github.com/WordPress/gutenberg/pull/22126))
+- ESLint Plugin: Add missing rules to root README. ([22042](https://github.com/WordPress/gutenberg/pull/22042))
+- Fix props, in example code for Edit Post module. ([21976](https://github.com/WordPress/gutenberg/pull/21976))
+- Document e2e test command options. ([21962](https://github.com/WordPress/gutenberg/pull/21962))
+- Add an example for how to choose a style variation for a block variation. ([21927](https://github.com/WordPress/gutenberg/pull/21927))
+- Add documentation for onSelectURL property. ([20799](https://github.com/WordPress/gutenberg/pull/20799))
+- Document the old patterns API deprecation. ([22177](https://github.com/WordPress/gutenberg/pull/22177))
+- Coding Guidelines:
+ - Document JavaScript language support commitment. ([22030](https://github.com/WordPress/gutenberg/pull/22030))
+ - Add "gotchas" section about ES2020 optional chaining. ([22029](https://github.com/WordPress/gutenberg/pull/22029))
+ - Recommend function components. ([22090](https://github.com/WordPress/gutenberg/pull/22090))
+
+### Various
+
+- Expose presets declared via add_theme_support in global styles. ([22076](https://github.com/WordPress/gutenberg/pull/22076))
+- Update is-promise package to the latest version. ([21940](https://github.com/WordPress/gutenberg/pull/21940))
+- Blocks: Register FSE blocks if experiment is enabled. ([21536](https://github.com/WordPress/gutenberg/pull/21536))
+
+### Mobile App
+- Add missing RTL support for some mobile components. ([21502](https://github.com/WordPress/gutenberg/pull/21502))
+- Remove separatorType prop from TextControl, RangeControl... ([21365](https://github.com/WordPress/gutenberg/pull/21365))
+- Color settings. ([21326](https://github.com/WordPress/gutenberg/pull/21326))
+- Global styles provider. ([21637](https://github.com/WordPress/gutenberg/pull/21637))
+- Update existing templates to use new blocks. ([21857](https://github.com/WordPress/gutenberg/pull/21857))
+- Enable Pullquote block. ([21930](https://github.com/WordPress/gutenberg/pull/21930))
+- Merge release branch back to master for v1.27.1. ([22234](https://github.com/WordPress/gutenberg/pull/22234))
+- Wrap button blocks with buttons blocks in page templates. ([21939](https://github.com/WordPress/gutenberg/pull/21939))
+- Components: Create a separate .native entry for ToolbarItem. ([22229](https://github.com/WordPress/gutenberg/pull/22229))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+= 8.0.0 =
+
+### Features
+
+- Add subscript and superscript formatting options. ([21819](https://github.com/WordPress/gutenberg/pull/21819))
+- Move the Block Patterns UI to the inserter. ([20951](https://github.com/WordPress/gutenberg/pull/20951))
+- Improve layout and usability of code editor. ([21643](https://github.com/WordPress/gutenberg/pull/21643))
+
+### Enhancements
+
+- Add inserter previews to more blocks. ([21740](https://github.com/WordPress/gutenberg/pull/21740))
+- Performance improvements:
+ - Import from individual react-dates component. ([21914](https://github.com/WordPress/gutenberg/pull/21914))
+ - Upgrade showdown Markdown processor library. ([21862](https://github.com/WordPress/gutenberg/pull/21862))
+- Allow title and button-based appender to inherit styles. ([21749](https://github.com/WordPress/gutenberg/pull/21749))
+- Output float clearing for all centered blocks. ([21608](https://github.com/WordPress/gutenberg/pull/21608))
+- Update 'Welcome Guide' illustrations. ([21515](https://github.com/WordPress/gutenberg/pull/21515))
+
+### New APIs
+
+- A new [Block Context API](https://github.com/WordPress/gutenberg/blob/master/docs/designers-developers/developers/block-api/block-context.md) has been partially implemented, currently limited to block settings and editor APIs. PHP APIs will be implemented in the next plugin releases. ([21467](https://github.com/WordPress/gutenberg/pull/21467), [21868](https://github.com/WordPress/gutenberg/pull/21868), [21921](https://github.com/WordPress/gutenberg/pull/21921))
+- Add new "G2"-styled icons to the Icons package. ([21209](https://github.com/WordPress/gutenberg/pull/21209))
+
+### Bug Fixes
+
+- Change `wp_make_content_images_responsive` to `wp_filter_content_tags` to resolve warnings in WordPress 5.5-alpha. ([21514](https://github.com/WordPress/gutenberg/pull/21514))
+- Collapse selection to end after link insertion. ([17126](https://github.com/WordPress/gutenberg/pull/17126))
+- Fix selected category on existing Latest Posts blocks. ([21359](https://github.com/WordPress/gutenberg/pull/21359))
+- Fix overlapping column contents for embeds. ([21570](https://github.com/WordPress/gutenberg/pull/21570))
+- Fix focus styling for date picker calendar days. ([21600](https://github.com/WordPress/gutenberg/pull/21600))
+- NPM Packages
+ - Fix "Cannot find module '../utils'" error. ([21609](https://github.com/WordPress/gutenberg/pull/21609))
+ - Types: Hide element, primitives, icons declarations. ([21613](https://github.com/WordPress/gutenberg/pull/21613), [21784](https://github.com/WordPress/gutenberg/pull/21784))
+- Inherit font styles in block appender placeholder. ([21725](https://github.com/WordPress/gutenberg/pull/21725))
+- Allow default pasting behavior in FontSizePicker. ([21812](https://github.com/WordPress/gutenberg/pull/21812))
+- Prevent negative custom text sizes. ([21815](https://github.com/WordPress/gutenberg/pull/21815))
+- Fix image center alignment behavior. ([21911](https://github.com/WordPress/gutenberg/pull/21911))
+- Fix centered buttons margins. ([21947](https://github.com/WordPress/gutenberg/pull/21947))
+- Revert the button block to the previous markup. ([21923](https://github.com/WordPress/gutenberg/pull/21923))
+- Avoid using inline RichText element for navigation link. ([21856](https://github.com/WordPress/gutenberg/pull/21856))
+- Ensure `resetEditorBlocks` is synchronous. ([21839](https://github.com/WordPress/gutenberg/pull/21839))
+- Fix the button outline style for the old button markup. ([21816](https://github.com/WordPress/gutenberg/pull/21816))
+- Fix default attribute on audio preload. ([21735](https://github.com/WordPress/gutenberg/pull/21735))
+- Fix gradient picker double-click bug. ([21732](https://github.com/WordPress/gutenberg/pull/21732))
+- Fix broken links in handbook. ([21686](https://github.com/WordPress/gutenberg/pull/21686))
+- Make `useMediaQuery` return the correct value on the first render. ([21682](https://github.com/WordPress/gutenberg/pull/21682))
+- Fix visual issue on windows with 782px. ([21661](https://github.com/WordPress/gutenberg/pull/21661))
+- Allow wrapping for Navigation block links. ([21632](https://github.com/WordPress/gutenberg/pull/21632))
+- Remove redundant margins from the columns block. ([21615](https://github.com/WordPress/gutenberg/pull/21615))
+- Fix media Text padding on inner blocks. ([21612](https://github.com/WordPress/gutenberg/pull/21612))
+- Restore floated image margins. ([21500](https://github.com/WordPress/gutenberg/pull/21500))
+- Fix URL display for scheduled posts. ([21410](https://github.com/WordPress/gutenberg/pull/21410))
+- Test keycode modifiers for keyboard event as exclusive set. ([20733](https://github.com/WordPress/gutenberg/pull/20733))
+- Fix focus loss for Guide "Finish" button in Internet Explorer. ([20599](https://github.com/WordPress/gutenberg/pull/20599))
+- Replace incorrect Snackbar `label` attribute with `aria-label`. ([20540](https://github.com/WordPress/gutenberg/pull/20540))
+
+### Experiments
+
+- Add experimental `useEditorFeature` hook to simplify access to editor features. ([21646](https://github.com/WordPress/gutenberg/pull/21646))
+- Navigation menu page:
+ - Try a fixed toolbar in the navigation page. ([21340](https://github.com/WordPress/gutenberg/pull/21340))
+ - Fix panel collapsing in navigation page. ([21633](https://github.com/WordPress/gutenberg/pull/21633))
+ - Fix mobile layout for navigation menu page. ([21638](https://github.com/WordPress/gutenberg/pull/21638))
+ - Delete empty spaces in menu REST API endpoint strings. ([21453](https://github.com/WordPress/gutenberg/pull/21453))
+- Edit site:
+ - Add current theme to template switcher. ([21578](https://github.com/WordPress/gutenberg/pull/21578), [21768](https://github.com/WordPress/gutenberg/pull/21768))
+ - Declare attributes for Template Part block in `block.json`. ([21796](https://github.com/WordPress/gutenberg/pull/21796))
+ - Update end-to-end test for multi-entity saving in site editor. ([21363](https://github.com/WordPress/gutenberg/pull/21363))
+ - Add preview options component. ([21309](https://github.com/WordPress/gutenberg/pull/21309))
+ - Improve template parts resolution and saving behavior. ([21766](https://github.com/WordPress/gutenberg/pull/21766))
+ - Support REST API meta queries. ([21851](https://github.com/WordPress/gutenberg/pull/21851))
+ - Add extra validation when loading template parts. ([21636](https://github.com/WordPress/gutenberg/pull/21636))
+- Block directory:
+ - Add InserterPanel around block directory results. ([21748](https://github.com/WordPress/gutenberg/pull/21748))
+- Widgets:
+ - Fix legacy widgets z-index issue. ([21586](https://github.com/WordPress/gutenberg/pull/21586))
+ - Fix legacy widgets visual issues. ([21585](https://github.com/WordPress/gutenberg/pull/21585))
+
+### Deprecations
+
+- Add deprecation notice to `useApiFetch` hook. ([21723](https://github.com/WordPress/gutenberg/pull/21723))
+
+### Code Quality
+
+- Remove nested breakpoint in fullscreen mode CSS. ([21496](https://github.com/WordPress/gutenberg/pull/21496))
+- Update npm-package-json-lint from 4.0.3 to 5.0.0. ([21597](https://github.com/WordPress/gutenberg/pull/21597))
+- Update npm dependencies that warn. ([21596](https://github.com/WordPress/gutenberg/pull/21596))
+- Fix license check script to ignore sub-dependencies of ignored packages. ([21606](https://github.com/WordPress/gutenberg/pull/21606))
+- Package TypeScript types improvements:
+ - Mark addQueryArgs arguments parameter as optional. ([21926](https://github.com/WordPress/gutenberg/pull/21926))
+ - Relax i18n sprintf arguments type. ([21919](https://github.com/WordPress/gutenberg/pull/21919))
+- Update PHPCS to latest version. ([21680](https://github.com/WordPress/gutenberg/pull/21680))
+- Unify how editor alignments are applied across blocks. ([21822](https://github.com/WordPress/gutenberg/pull/21822))
+- Remove obsolete editor alignment classes. ([21906](https://github.com/WordPress/gutenberg/pull/21906))
+- Remove old icons. ([21821](https://github.com/WordPress/gutenberg/pull/21821))
+- Implement `block.json` for blocks. ([21794](https://github.com/WordPress/gutenberg/pull/21794), [21783](https://github.com/WordPress/gutenberg/pull/21783), [21782](https://github.com/WordPress/gutenberg/pull/21782), [21775](https://github.com/WordPress/gutenberg/pull/21775), [21787](https://github.com/WordPress/gutenberg/pull/21787), [21774](https://github.com/WordPress/gutenberg/pull/21774), [21792](https://github.com/WordPress/gutenberg/pull/21792))
+- Use `register_block_type_from_metadata` in Latest Posts block. ([21788](https://github.com/WordPress/gutenberg/pull/21788))
+- Polish RSS block code. ([21773](https://github.com/WordPress/gutenberg/pull/21773))
+- Move `camelCaseDash` to the package where it is consumed. ([21736](https://github.com/WordPress/gutenberg/pull/21736))
+- Improve URLPopover code from review comments. ([21621](https://github.com/WordPress/gutenberg/pull/21621))
+
+### Documentation
+
+- Remove duplicate sentence in glossary documentation. ([21565](https://github.com/WordPress/gutenberg/pull/21565))
+- Update `wp-env` docs to reflect current functionality of package. ([21809](https://github.com/WordPress/gutenberg/pull/21809))
+- Extract Block Transforms into its own handbook page. ([21734](https://github.com/WordPress/gutenberg/pull/21734))
+- Update the index of Block API to reflect current contents. ([21726](https://github.com/WordPress/gutenberg/pull/21726))
+- Clarify attribute type documentation. ([21694](https://github.com/WordPress/gutenberg/pull/21694))
+- Add location for components `style.css`. ([21654](https://github.com/WordPress/gutenberg/pull/21654))
+- Fix the JSDoc return type for `getEntityRecords`. ([21630](https://github.com/WordPress/gutenberg/pull/21630))
+- Update triage links to new document. ([21629](https://github.com/WordPress/gutenberg/pull/21629))
+- Update Getting Started instructions for remote server. ([21625](https://github.com/WordPress/gutenberg/pull/21625))
+- Update the "patterns" to reflect "user interface" instead. ([21562](https://github.com/WordPress/gutenberg/pull/21562))
+- Create document for contributing with triage. ([21350](https://github.com/WordPress/gutenberg/pull/21350))
+- Update triage.md to add more clarity and relevant links. ([21802](https://github.com/WordPress/gutenberg/pull/21802))
+
+### Project Management
+
+- Update bug report template to help identify the editor version. ([21564](https://github.com/WordPress/gutenberg/pull/21564))
+
+### Various
+
+- End-to-end tests:
+ - Add test for template part block creation and insertion. ([21849](https://github.com/WordPress/gutenberg/pull/21849))
+ - Add test that template part block customizations are loaded from slug and theme attributes. ([21852](https://github.com/WordPress/gutenberg/pull/21852))
+ - Fix tests by removing unnecessary assertions and properly install dependencies in `@wordpress/api-fetch`. ([21780](https://github.com/WordPress/gutenberg/pull/21780))
+ - Add end-to-end test for pinned sidebar items. ([21652](https://github.com/WordPress/gutenberg/pull/21652))
+ - Add test which verifies reusable block after refresh. ([20605](https://github.com/WordPress/gutenberg/pull/20605))
+- Update cleanForSlug() to remove additional non-word characters. ([21007](https://github.com/WordPress/gutenberg/pull/21007))
+- `@wordpress/scripts`:
+ - Support debugging with `test-unit-js`. ([21631](https://github.com/WordPress/gutenberg/pull/21631), [21861](https://github.com/WordPress/gutenberg/pull/21861))
+ - Install Chromium on demand together with `test-e2e` script. ([20215](https://github.com/WordPress/gutenberg/pull/20215))
+- `@wordpress/create-block` block scaffold tool:
+ - Make it easier to provide most popular CLI options. ([21751](https://github.com/WordPress/gutenberg/pull/21751))
+ - Split JavaScript source files into parts for ESNext template. ([21750](https://github.com/WordPress/gutenberg/pull/21750))
+- `@wordpress/env` development environment:
+ - Expose port 3306 of MySQL container. ([21545](https://github.com/WordPress/gutenberg/pull/21545))
+- `@wordpress/eslint-plugin`:
+ - Add the recommended Prettier config to enforce WP coding styles. ([21602](https://github.com/WordPress/gutenberg/pull/21602))
+ - Fix `no-unused-vars-before-return` JSX identifier reference. ([21358](https://github.com/WordPress/gutenberg/pull/21358))
+- Navigation block:
+ - Revert changes to data fetching mechanics. ([21721](https://github.com/WordPress/gutenberg/pull/21721))
+- Bundle the block autocompleter in the block-editor package. ([21534](https://github.com/WordPress/gutenberg/pull/21534))
+- Storybook:
+ - Add FormToggle component. ([18085](https://github.com/WordPress/gutenberg/pull/18085))
+- Simplify Reusable Block description. ([21470](https://github.com/WordPress/gutenberg/pull/21470))
+- Build tooling:
+ - Install Composer dependencies as pre-lint step. ([21537](https://github.com/WordPress/gutenberg/pull/21537))
+ - Configure Webpack to watch only build files. ([21489](https://github.com/WordPress/gutenberg/pull/21489))
+ - Exit with non-zero status on docgen failed parse. ([21690](https://github.com/WordPress/gutenberg/pull/21690))
+
+
= 7.9.1 =
### Bug Fixes
@@ -33,8 +357,8 @@
- Update all block previews to use the auto-height behavior. [21014](https://github.com/WordPress/gutenberg/pull/21014)
- Disable autocomplete for custom class name inputs. [21110](https://github.com/WordPress/gutenberg/pull/21110)
- Several small tweaks to the new Block UI. [21476](https://github.com/WordPress/gutenberg/pull/21476)
-- Unify the focus styles across the UI. [21141](https://github.com/WordPress/gutenberg/pull/21141)
-- Improve block focus style. [21498](https://github.com/WordPress/gutenberg/pull/21498)
+- Unify the focus styles across the UI. [21141](https://github.com/WordPress/gutenberg/pull/21141)
+- Improve block focus style. [21498](https://github.com/WordPress/gutenberg/pull/21498)
- Remove the post permalink UI from the post title. [21099](https://github.com/WordPress/gutenberg/pull/21099)
- Style the default toolbar buttons. [21252](https://github.com/WordPress/gutenberg/pull/21252)
- Style tweaks to the patterns library sidebar. [21263](https://github.com/WordPress/gutenberg/pull/21263)
@@ -174,7 +498,7 @@
- Exclude native files from type checking. [21491](https://github.com/WordPress/gutenberg/pull/21491)
- docgen: Optimize README update script. [18840](https://github.com/WordPress/gutenberg/pull/18840)
- Check Latest NPM on npm install. [21521](https://github.com/WordPress/gutenberg/pull/21521)
-- E2E Tests:
+- E2E Tests:
- Improve stability of image block test [21174](https://github.com/WordPress/gutenberg/pull/21174)
- Improve Allowed Inner Blocks test stability [21175](https://github.com/WordPress/gutenberg/pull/21175)
- Use waitForSelector to wait for sidebar presence [21180](https://github.com/WordPress/gutenberg/pull/21180)
@@ -366,60 +690,60 @@
### Enhancements
-- Update the Block and editor UI. [19344](https://github.com/WordPress/gutenberg/pull/19344)
- - New icons. [20464](https://github.com/WordPress/gutenberg/pull/20464)
+- Update the Block and editor UI. [19344](https://github.com/WordPress/gutenberg/pull/19344)
+ - New icons. [20464](https://github.com/WordPress/gutenberg/pull/20464)
- Avoid empty menu groups. [20495](https://github.com/WordPress/gutenberg/pull/20495)
- Block Placeholders. [20441](https://github.com/WordPress/gutenberg/pull/20441), [20676](https://github.com/WordPress/gutenberg/pull/20676).
- Various tweaks [20679](https://github.com/WordPress/gutenberg/pull/20679), [20578](https://github.com/WordPress/gutenberg/pull/20578).
-- Improve the Back to WP Admin button in Fullscreen Mode. [20603](https://github.com/WordPress/gutenberg/pull/20603)
-- Make the editor Fullscreen by default. [20611](https://github.com/WordPress/gutenberg/pull/20611)
-- Remove template locking from the columns block [20465](https://github.com/WordPress/gutenberg/pull/20465)
-- Make the inserter full height. [20526](https://github.com/WordPress/gutenberg/pull/20526)
+- Improve the Back to WP Admin button in Fullscreen Mode. [20603](https://github.com/WordPress/gutenberg/pull/20603)
+- Make the editor Fullscreen by default. [20611](https://github.com/WordPress/gutenberg/pull/20611)
+- Remove template locking from the columns block [20465](https://github.com/WordPress/gutenberg/pull/20465)
+- Make the inserter full height. [20526](https://github.com/WordPress/gutenberg/pull/20526)
### Bug Fixes
-- A11y:
- - Deselect first/last gallery images on blur. [14930](https://github.com/WordPress/gutenberg/pull/14930)
- - Revert top toolbar tab order [20571](https://github.com/WordPress/gutenberg/pull/20571)
-- Add an overlay to the html block preview to fix block selection in Firefox. [20425](https://github.com/WordPress/gutenberg/pull/20425)
+- A11y:
+ - Deselect first/last gallery images on blur. [14930](https://github.com/WordPress/gutenberg/pull/14930)
+ - Revert top toolbar tab order [20571](https://github.com/WordPress/gutenberg/pull/20571)
+- Add an overlay to the html block preview to fix block selection in Firefox. [20425](https://github.com/WordPress/gutenberg/pull/20425)
- Add missing accessibility attributes in the SVG icons. [20538](https://github.com/WordPress/gutenberg/pull/20538)
- Fix invalid syntax error on Safari 12. [20507](https://github.com/WordPress/gutenberg/pull/20507)
-- Use a consistent width for the link suggetions. [20448](https://github.com/WordPress/gutenberg/pull/20448)
-- Use full labels for directional block movers. [20664](https://github.com/WordPress/gutenberg/pull/20664)
+- Use a consistent width for the link suggetions. [20448](https://github.com/WordPress/gutenberg/pull/20448)
+- Use full labels for directional block movers. [20664](https://github.com/WordPress/gutenberg/pull/20664)
- Columns block: Force 50% column width at mid-range viewport. [20597](https://github.com/WordPress/gutenberg/pull/20597)
- Media & Text block: Fix frontend styles when "Crop image to fill" is selected [20539](https://github.com/WordPress/gutenberg/pull/20539)
-- Latest Post block:
+- Latest Post block:
- Fix the excerpt length. [20313](https://github.com/WordPress/gutenberg/pull/20313)
- Don't trim manual exerptts [20432](https://github.com/WordPress/gutenberg/pull/20432)
-- Fix sidebar scroll issue on small viewports. [20491](https://github.com/WordPress/gutenberg/pull/20491)
-- Social Link block:
- - Escape generated class name. [20479](https://github.com/WordPress/gutenberg/pull/20479)
- - Fix label attribute type as string. [20468](https://github.com/WordPress/gutenberg/pull/20468)
- - i18n: Use placeholder for the default label [20475](https://github.com/WordPress/gutenberg/pull/20475)
+- Fix sidebar scroll issue on small viewports. [20491](https://github.com/WordPress/gutenberg/pull/20491)
+- Social Link block:
+ - Escape generated class name. [20479](https://github.com/WordPress/gutenberg/pull/20479)
+ - Fix label attribute type as string. [20468](https://github.com/WordPress/gutenberg/pull/20468)
+ - i18n: Use placeholder for the default label [20475](https://github.com/WordPress/gutenberg/pull/20475)
- Simulated Queries (Device previews):
- - Check for match in stylesheet host and protocol to prevent Chrome breakage. [20673](https://github.com/WordPress/gutenberg/pull/20673)
- - Fix IE11 editor breakage. [20226](https://github.com/WordPress/gutenberg/pull/20226)
- - Fix incorrectly displayed preview option for private post types. [20604](https://github.com/WordPress/gutenberg/pull/20604)
+ - Check for match in stylesheet host and protocol to prevent Chrome breakage. [20673](https://github.com/WordPress/gutenberg/pull/20673)
+ - Fix IE11 editor breakage. [20226](https://github.com/WordPress/gutenberg/pull/20226)
+ - Fix incorrectly displayed preview option for private post types. [20604](https://github.com/WordPress/gutenberg/pull/20604)
- Focus preview button after opening preview. [20570](https://github.com/WordPress/gutenberg/pull/20570)
- Fix isURL regex to take account file urls. [20435](https://github.com/WordPress/gutenberg/pull/20435)
-- Fix error when deleting empty paragraphs in IE11. [20594](https://github.com/WordPress/gutenberg/pull/20594)
-- Fix hidden inserter toggle behind the popover. [20663](https://github.com/WordPress/gutenberg/pull/20663)
+- Fix error when deleting empty paragraphs in IE11. [20594](https://github.com/WordPress/gutenberg/pull/20594)
+- Fix hidden inserter toggle behind the popover. [20663](https://github.com/WordPress/gutenberg/pull/20663)
- Fix block registration shared defaults reuse across blocks. [20565](https://github.com/WordPress/gutenberg/pull/20565)
- Shim meta attributes for early block registrations. [20544](https://github.com/WordPress/gutenberg/pull/20544)
-- Fix bouncing Custom color formatter. [20612](https://github.com/WordPress/gutenberg/pull/20612)
+- Fix bouncing Custom color formatter. [20612](https://github.com/WordPress/gutenberg/pull/20612)
- Fix Gallery block styles in Edge causing editor breakage. [20690](https://github.com/WordPress/gutenberg/pull/20690)
### New APIs:
-- @wordpress/env: Add support for ZIP URL sources. [20426](https://github.com/WordPress/gutenberg/pull/20426)
+- @wordpress/env: Add support for ZIP URL sources. [20426](https://github.com/WordPress/gutenberg/pull/20426)
### Experiments
-- Lighter Block DOM: allow block types to render their own wrapper [19701](https://github.com/WordPress/gutenberg/pull/19701)
- - Lighter InnerBlocks. [19910](https://github.com/WordPress/gutenberg/pull/19910)
- - Automatically add block class. [20658](https://github.com/WordPress/gutenberg/pull/20658)
-- BlockPreview: Add __experimentalOnReady prop. [17242](https://github.com/WordPress/gutenberg/pull/17242)
-- Edit Site:
+- Lighter Block DOM: allow block types to render their own wrapper [19701](https://github.com/WordPress/gutenberg/pull/19701)
+ - Lighter InnerBlocks. [19910](https://github.com/WordPress/gutenberg/pull/19910)
+ - Automatically add block class. [20658](https://github.com/WordPress/gutenberg/pull/20658)
+- BlockPreview: Add __experimentalOnReady prop. [17242](https://github.com/WordPress/gutenberg/pull/17242)
+- Edit Site:
- Update template navigation to use new link control. [20366](https://github.com/WordPress/gutenberg/pull/20366)
- Update the edit site save modal UI. [20608](https://github.com/WordPress/gutenberg/pull/20608)
- Fix the block toolbar in the Widgets and Site Edit screens. [20458](https://github.com/WordPress/gutenberg/pull/20458)
@@ -427,55 +751,55 @@
### Documentation
-- Add tutorial for creating a custom block editor instance. [20410](https://github.com/WordPress/gutenberg/pull/20410)
-- Create a new "Gutenberg as a Platform" page. [20666](https://github.com/WordPress/gutenberg/pull/20666)
+- Add tutorial for creating a custom block editor instance. [20410](https://github.com/WordPress/gutenberg/pull/20410)
+- Create a new "Gutenberg as a Platform" page. [20666](https://github.com/WordPress/gutenberg/pull/20666)
- Typos and tweaks: [20382](https://github.com/WordPress/gutenberg/pull/20382), [20386](https://github.com/WordPress/gutenberg/pull/20386), [20517](https://github.com/WordPress/gutenberg/pull/20517), [20662](https://github.com/WordPress/gutenberg/pull/20662), [20454](https://github.com/WordPress/gutenberg/pull/20454), [20659](https://github.com/WordPress/gutenberg/pull/20659).
### Code Quality
- Refactoring to existing blocks to use a lighter DOM:
- - List block. [20498](https://github.com/WordPress/gutenberg/pull/20498)
- - Image block. [20576](https://github.com/WordPress/gutenberg/pull/20576)
- - Heading. [20493](https://github.com/WordPress/gutenberg/pull/20493)
+ - List block. [20498](https://github.com/WordPress/gutenberg/pull/20498)
+ - Image block. [20576](https://github.com/WordPress/gutenberg/pull/20576)
+ - Heading. [20493](https://github.com/WordPress/gutenberg/pull/20493)
- Consistent block focus behaviour on mount. [20577](https://github.com/WordPress/gutenberg/pull/20577)
-- Cleanup CSS variables. [20529](https://github.com/WordPress/gutenberg/pull/20529)
+- Cleanup CSS variables. [20529](https://github.com/WordPress/gutenberg/pull/20529)
- Use the EditorSkeleton component in the widgets and Edit Site pages. [20440](https://github.com/WordPress/gutenberg/pull/20440), [20431](https://github.com/WordPress/gutenberg/pull/20431).
- Refactor SlotFill components. [19242](https://github.com/WordPress/gutenberg/pull/19242)
- Remove useless style override for floats. [20501](https://github.com/WordPress/gutenberg/pull/20501)
-- Block popover: remove data-type. [20531](https://github.com/WordPress/gutenberg/pull/20531)
+- Block popover: remove data-type. [20531](https://github.com/WordPress/gutenberg/pull/20531)
- Resizable editor improvements. [20259](https://github.com/WordPress/gutenberg/pull/20259)
### Various
- @wordpress/env:
- Save the database as a volume. [20648](https://github.com/WordPress/gutenberg/pull/20648)
- - Fix accidental quotes in Site Title. [20520](https://github.com/WordPress/gutenberg/pull/20520)
- - Set owner of wp-content to www-data. [20406](https://github.com/WordPress/gutenberg/pull/20406)
-- @wordpress/create-block:
+ - Fix accidental quotes in Site Title. [20520](https://github.com/WordPress/gutenberg/pull/20520)
+ - Set owner of wp-content to www-data. [20406](https://github.com/WordPress/gutenberg/pull/20406)
+- @wordpress/create-block:
- Fix system requirements checks. [20461](https://github.com/WordPress/gutenberg/pull/20461) [20456](https://github.com/WordPress/gutenberg/pull/20456)
-- Fix React warning triggered by the BlockToolbar component. [20546](https://github.com/WordPress/gutenberg/pull/20546)
+- Fix React warning triggered by the BlockToolbar component. [20546](https://github.com/WordPress/gutenberg/pull/20546)
- Skip the Type Writer effect component in IE 11. [20485](https://github.com/WordPress/gutenberg/pull/20485)
-- Update browserslist to fix out-of-date caniuse-lite messages [20709](https://github.com/WordPress/gutenberg/pull/20709)
+- Update browserslist to fix out-of-date caniuse-lite messages [20709](https://github.com/WordPress/gutenberg/pull/20709)
- Add storybook stories:
- TextControl [20467](https://github.com/WordPress/gutenberg/pull/20467)
- - TextAreaControl [20472](https://github.com/WordPress/gutenberg/pull/20472)
- - SelectControl [20482](https://github.com/WordPress/gutenberg/pull/20482)
+ - TextAreaControl [20472](https://github.com/WordPress/gutenberg/pull/20472)
+ - SelectControl [20482](https://github.com/WordPress/gutenberg/pull/20482)
- Tooltip [20322](https://github.com/WordPress/gutenberg/pull/20322)
- E2E Tests:
- Add test for the Image block. [20622](https://github.com/WordPress/gutenberg/pull/20622)
- - More stable embed test. [20668](https://github.com/WordPress/gutenberg/pull/20668)
- - Fix intermittent RichText e2e test failure. [20457](https://github.com/WordPress/gutenberg/pull/20457)
-- Travis: Avoid skipping Puppeteer download. [20547](https://github.com/WordPress/gutenberg/pull/20547)
-- Plugin: Bump minimum WordPress version to 5.3 [20628](https://github.com/WordPress/gutenberg/pull/20628)
-- @wordrpess/priority-queue: Fix for environments that don't have `window` defined. [20486](https://github.com/WordPress/gutenberg/pull/20486)
-- Update jest configuration to only ignore tests from /wordpress/ as a subdirectory [20420](https://github.com/WordPress/gutenberg/pull/20420)
+ - More stable embed test. [20668](https://github.com/WordPress/gutenberg/pull/20668)
+ - Fix intermittent RichText e2e test failure. [20457](https://github.com/WordPress/gutenberg/pull/20457)
+- Travis: Avoid skipping Puppeteer download. [20547](https://github.com/WordPress/gutenberg/pull/20547)
+- Plugin: Bump minimum WordPress version to 5.3 [20628](https://github.com/WordPress/gutenberg/pull/20628)
+- @wordrpess/priority-queue: Fix for environments that don't have `window` defined. [20486](https://github.com/WordPress/gutenberg/pull/20486)
+- Update jest configuration to only ignore tests from /wordpress/ as a subdirectory [20420](https://github.com/WordPress/gutenberg/pull/20420)
= 7.6.0 =
## Features
-- Add a rotating list of tips to the inserter help panel [20163](https://github.com/WordPress/gutenberg/pull/20163)
+- Add a rotating list of tips to the inserter help panel [20163](https://github.com/WordPress/gutenberg/pull/20163)
## Enhancements
- Improve find-ability for social/video embeds [20224](https://github.com/WordPress/gutenberg/pull/20224)
@@ -484,7 +808,7 @@
- Ensure packages-update wp-scripts command works with missing dependencies [20408](https://github.com/WordPress/gutenberg/pull/20408)
- Add new option in dependencies webpack plugin to combine assets files into one file [20330](https://github.com/WordPress/gutenberg/pull/20330)
- Environment:
- - Add custom port numbers to .wp-env.json [20158](https://github.com/WordPress/gutenberg/pull/20158)
+ - Add custom port numbers to .wp-env.json [20158](https://github.com/WordPress/gutenberg/pull/20158)
- Add support for local override files. [20341](https://github.com/WordPress/gutenberg/pull/20341)
- Add debug mode. [20348](https://github.com/WordPress/gutenberg/pull/20348)
@@ -502,42 +826,42 @@
- Show error when resolved block template is empty [20239](https://github.com/WordPress/gutenberg/pull/20239)
## Bug Fixes
-- Overflowing `LinkControl` block editor component. [20154](https://github.com/WordPress/gutenberg/pull/20154)
-- Broken gallery to image transform and inconsistent types used in the gallery block [20084](https://github.com/WordPress/gutenberg/pull/20084)
-- Missing label on heading toolbar. [20248](https://github.com/WordPress/gutenberg/pull/20248)
-- Sidebar jumpiness. [20355](https://github.com/WordPress/gutenberg/pull/20355)
-- Fix wrong imports in PluginBlockSettingsMenuItem [20356](https://github.com/WordPress/gutenberg/pull/20356)
-- Color formatter appears when color choosing is not possible [20222](https://github.com/WordPress/gutenberg/pull/20222)
-- Crash when updating a post with the latest post block [20289](https://github.com/WordPress/gutenberg/pull/20289)
-- Inconsistency on Import from JSON button look [20416](https://github.com/WordPress/gutenberg/pull/20416)
-- Inline image width pop-up 'wanders' down page [20232](https://github.com/WordPress/gutenberg/pull/20232)
-- Styling problem on vertically aligned blocks [20368](https://github.com/WordPress/gutenberg/pull/20368)
-- Remove unnecessary aria-label from link formatter [18742](https://github.com/WordPress/gutenberg/pull/18742)
-- Make navigation button expand to fit longer nav link text [20230](https://github.com/WordPress/gutenberg/pull/20230)
+- Overflowing `LinkControl` block editor component. [20154](https://github.com/WordPress/gutenberg/pull/20154)
+- Broken gallery to image transform and inconsistent types used in the gallery block [20084](https://github.com/WordPress/gutenberg/pull/20084)
+- Missing label on heading toolbar. [20248](https://github.com/WordPress/gutenberg/pull/20248)
+- Sidebar jumpiness. [20355](https://github.com/WordPress/gutenberg/pull/20355)
+- Fix wrong imports in PluginBlockSettingsMenuItem [20356](https://github.com/WordPress/gutenberg/pull/20356)
+- Color formatter appears when color choosing is not possible [20222](https://github.com/WordPress/gutenberg/pull/20222)
+- Crash when updating a post with the latest post block [20289](https://github.com/WordPress/gutenberg/pull/20289)
+- Inconsistency on Import from JSON button look [20416](https://github.com/WordPress/gutenberg/pull/20416)
+- Inline image width pop-up 'wanders' down page [20232](https://github.com/WordPress/gutenberg/pull/20232)
+- Styling problem on vertically aligned blocks [20368](https://github.com/WordPress/gutenberg/pull/20368)
+- Remove unnecessary aria-label from link formatter [18742](https://github.com/WordPress/gutenberg/pull/18742)
+- Make navigation button expand to fit longer nav link text [20230](https://github.com/WordPress/gutenberg/pull/20230)
- Flow for gallery creation and editing [20287](https://github.com/WordPress/gutenberg/pull/20287)
-- Fix background color for dark themes on the spacer block [20296](https://github.com/WordPress/gutenberg/pull/20296)
-- Show metaboxes peeking in even on tiny screens. [20262](https://github.com/WordPress/gutenberg/pull/20262)
+- Fix background color for dark themes on the spacer block [20296](https://github.com/WordPress/gutenberg/pull/20296)
+- Show metaboxes peeking in even on tiny screens. [20262](https://github.com/WordPress/gutenberg/pull/20262)
- Add an edit state to media frames to fix an issue when opening a new tab. [17642](https://github.com/WordPress/gutenberg/pull/17642)
## Documentation
-- Add a basic storybook story listing all the @wordpress/icons [20266](https://github.com/WordPress/gutenberg/pull/20266)
-- Add docs for variations in the block registration section [20145](https://github.com/WordPress/gutenberg/pull/20145)
-- Improve README for ` ` component. [19677](https://github.com/WordPress/gutenberg/pull/19677)
-- Remove the devhub manifest file [20175](https://github.com/WordPress/gutenberg/pull/20175)
+- Add a basic storybook story listing all the @wordpress/icons [20266](https://github.com/WordPress/gutenberg/pull/20266)
+- Add docs for variations in the block registration section [20145](https://github.com/WordPress/gutenberg/pull/20145)
+- Improve README for ` ` component. [19677](https://github.com/WordPress/gutenberg/pull/19677)
+- Remove the devhub manifest file [20175](https://github.com/WordPress/gutenberg/pull/20175)
- Several documentation improvements and typo fixes: [20385](https://github.com/WordPress/gutenberg/pull/20385), [20378](https://github.com/WordPress/gutenberg/pull/20378), [20392](https://github.com/WordPress/gutenberg/pull/20392), [20381](https://github.com/WordPress/gutenberg/pull/20381), [20388](https://github.com/WordPress/gutenberg/pull/20388), [20371](https://github.com/WordPress/gutenberg/pull/20371), [20380](https://github.com/WordPress/gutenberg/pull/20380), [20384](https://github.com/WordPress/gutenberg/pull/20384), [20379](https://github.com/WordPress/gutenberg/pull/20379), [20391](https://github.com/WordPress/gutenberg/pull/20391), [20251](https://github.com/WordPress/gutenberg/pull/20251)
## Various
- Create block: Add support for `format:js` to ESNext template [20335](https://github.com/WordPress/gutenberg/pull/20335)
- Add check for minimum system requirements on create block [20398](https://github.com/WordPress/gutenberg/pull/20398)
-- Conditionally apply Editor Skeleton html element styles [20245](https://github.com/WordPress/gutenberg/pull/20245)
+- Conditionally apply Editor Skeleton html element styles [20245](https://github.com/WordPress/gutenberg/pull/20245)
- Environment:
- Check for legacy installs and provide the option to delete them. [20340](https://github.com/WordPress/gutenberg/pull/20340)
- Fix testsPath on local sources [20353](https://github.com/WordPress/gutenberg/pull/20353)
- Use user with UID=33 to run WP CLI commands [20403](https://github.com/WordPress/gutenberg/pull/20403)
- - Fix issue where docker & wp had different URLs [20228](https://github.com/WordPress/gutenberg/pull/20228)
+ - Fix issue where docker & wp had different URLs [20228](https://github.com/WordPress/gutenberg/pull/20228)
- No longer show error message twice [20157](https://github.com/WordPress/gutenberg/pull/20157)
- - Support wp-config.php overrides. [20352](https://github.com/WordPress/gutenberg/pull/20352)
- - Support overwriting generated file directory with an environment variable [20253](https://github.com/WordPress/gutenberg/pull/20253)
+ - Support wp-config.php overrides. [20352](https://github.com/WordPress/gutenberg/pull/20352)
+ - Support overwriting generated file directory with an environment variable [20253](https://github.com/WordPress/gutenberg/pull/20253)
= 7.5.0 =
@@ -561,7 +885,7 @@
- Improve colors handling [20022](https://github.com/WordPress/gutenberg/pull/20022)
- Rename background color CSS class [20018](https://github.com/WordPress/gutenberg/pull/20018)
- Block Library: Avoid column width auto-adjustment when sibling width changes [19515](https://github.com/WordPress/gutenberg/pull/19515) [20169](https://github.com/WordPress/gutenberg/pull/20169)
-- A11y:
+- A11y:
- Incorporate settings in the edit state of the LinkControl component [20052](https://github.com/WordPress/gutenberg/pull/20052)
- Announce all Notice components messages [15745](https://github.com/WordPress/gutenberg/pull/15745)
- Button block: Remove title attribute [19735](https://github.com/WordPress/gutenberg/pull/19735)
@@ -927,7 +1251,7 @@
- Use tabs for gradient and color. [#19133](https://github.com/wordpress/gutenberg/pull/19133)
- Add "download" keyword to the File block. [#18995](https://github.com/wordpress/gutenberg/pull/18995)
- Add "poem" keyword to the Verse block. [#19355](https://github.com/wordpress/gutenberg/pull/19355)
-- Convert to blocks:
+- Convert to blocks:
- preserve text alignment. [#19097](https://github.com/wordpress/gutenberg/pull/19097)
- Skip shortcode if not on its own line. [#19059](https://github.com/wordpress/gutenberg/pull/19059)
- Writing flow: Improve tabbing for Edit mode. [#19235](https://github.com/wordpress/gutenberg/pull/19235)
@@ -937,7 +1261,7 @@
- Use the default cursor for Select Tool [#19157](https://github.com/wordpress/gutenberg/pull/19157)
- Round position attributes on cover focal point save. [#19183](https://github.com/wordpress/gutenberg/pull/19183)
- Remove block inserter shortcuts. [#19045](https://github.com/wordpress/gutenberg/pull/19045)
-- Navigation block:
+- Navigation block:
- Clarify the placeholder label. [#19105](https://github.com/wordpress/gutenberg/pull/19105)
- Removes the reusable block option from the items. [#19250](https://github.com/wordpress/gutenberg/pull/19250)
- Sub-items white background adjustment. [#18976](https://github.com/wordpress/gutenberg/pull/18976)
@@ -947,7 +1271,7 @@
- Block examples: concatenate strings and add translators notes. [#19048](https://github.com/wordpress/gutenberg/pull/19048)
- Show the trash button as a link. [#19131](https://github.com/wordpress/gutenberg/pull/19131)
- Removed the bottom-margin for the RadioControl component. [#19340](https://github.com/wordpress/gutenberg/pull/19340)
-- Copy:
+- Copy:
- Capitalize "Manager" in Block Manager. [#19375](https://github.com/wordpress/gutenberg/pull/19375)
- Expand on sentence case usage. [#18758](https://github.com/wordpress/gutenberg/pull/18758) [#19377](https://github.com/wordpress/gutenberg/pull/19377)
- Update the copy of the Experiments page [#18233](https://github.com/wordpress/gutenberg/pull/18233)
@@ -961,7 +1285,7 @@
### Bugs:
-- A11y:
+- A11y:
- Make text alignment items radio menu items. [#19233](https://github.com/wordpress/gutenberg/pull/19233)
- Add group role to the block wrapper element. [#19213](https://github.com/wordpress/gutenberg/pull/19213)
- Prevent tabbing to the block drag handle. [#19211](https://github.com/wordpress/gutenberg/pull/19211)
@@ -974,7 +1298,7 @@
- Remove windows paste markers. [#19040](https://github.com/wordpress/gutenberg/pull/19040)
- Strip HTML formatting space for inline text. [#19043](https://github.com/wordpress/gutenberg/pull/19043)
- Apply active formats when pasting inline. [#14815](https://github.com/wordpress/gutenberg/pull/14815)
-- Rich Text:
+- Rich Text:
- Fix applying a format across 2 other formats. [#19053](https://github.com/wordpress/gutenberg/pull/19053)
- Fix using composed characters on Safari. [#19171](https://github.com/wordpress/gutenberg/pull/19171)
- Fix block navigation using the up arrow key. [#19135](https://github.com/wordpress/gutenberg/pull/19135)
@@ -1001,7 +1325,7 @@
- Translate block example strings. [#18162](https://github.com/wordpress/gutenberg/pull/18162)
- Writing flow: simplify & fix tabbing out of block. [#19312](https://github.com/wordpress/gutenberg/pull/19312)
-### New APIs:
+### New APIs:
- Button component:
- Support the icon prop and use a consistent button height. [#19193](https://github.com/wordpress/gutenberg/pull/19193) [#19366](https://github.com/wordpress/gutenberg/pull/19366) [#19123](https://github.com/wordpress/gutenberg/pull/19123) [#19058](https://github.com/wordpress/gutenberg/pull/19058)
@@ -1027,7 +1351,7 @@
- Fix Drag & Drop not working on the widgets screen. [#19029](https://github.com/wordpress/gutenberg/pull/19029)
- Allow parent Block to consume child Block's toolbar. [#18440](https://github.com/wordpress/gutenberg/pull/18440)
- Allow disabling the Block UI. [#18173](https://github.com/wordpress/gutenberg/pull/18173)
-- Block Directory:
+- Block Directory:
- Update the regular expression that determines whether the plugin is using an img URL or an icon slug. [#19316](https://github.com/wordpress/gutenberg/pull/19316)
- Use the block's title for alt text on block directory plugin items. [#19263](https://github.com/wordpress/gutenberg/pull/19263)
@@ -1063,7 +1387,7 @@
- Popover: remove buffer options [#19283](https://github.com/wordpress/gutenberg/pull/19283)
- Refactor the MediaReplaceFlow component to use Dropdown. [#19126](https://github.com/wordpress/gutenberg/pull/19126)
- Remove unused is-hovered class from the block wrapper. [#19390](https://github.com/wordpress/gutenberg/pull/19390)
-- RichText:
+- RichText:
- Rewrite withFilters with hooks. [#19117](https://github.com/wordpress/gutenberg/pull/19117)
- split out boundary style calculation. [#19319](https://github.com/wordpress/gutenberg/pull/19319)
- WritingFlow: rewrite with hooks. [#19393](https://github.com/wordpress/gutenberg/pull/19393)
@@ -1685,14 +2009,14 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
* Update the [Post Schedule label](https://github.com/WordPress/gutenberg/pull/15757) to correctly reflect the date and time display settings.
* Clean up the [block toolbar position](https://github.com/WordPress/gutenberg/pull/17197) for wide full blocks.
* Fix the [cropped focus indicator](https://github.com/WordPress/gutenberg/pull/17215) in the block inserter.
-* Browser incompatibilities:
+* Browser incompatibilities:
* [Fallback to setTimeout in RichText](https://github.com/WordPress/gutenberg/pull/17213) if no requestIdleCallback is not supported.
* [Block toolbar fixes](https://github.com/WordPress/gutenberg/pull/17214) for IE11.
* Fix [Backspace usage in RichText](https://github.com/WordPress/gutenberg/pull/17256) for IE11.
* Prevent clicking the [next/previous month in the Post Schedule](https://github.com/WordPress/gutenberg/pull/17201) popover from closing it.
* Prevent the [private posts from triggering the unsaved changes](https://github.com/WordPress/gutenberg/pull/17210) [warnings](https://github.com/WordPress/gutenberg/pull/17257) after saving.
* Fix the usage of the [useReducedMotion hook in Node.js](https://github.com/WordPress/gutenberg/pull/17165) context.
-* A11y:
+* A11y:
* Use [darker form field borders](https://github.com/WordPress/gutenberg/pull/17218).
* Fix the [modal escape key propagation](https://github.com/WordPress/gutenberg/pull/17297).
* [Move focus back from the Modal to the More Menu](https://github.com/WordPress/gutenberg/pull/16964) when it was used to open the Modal.
@@ -1757,20 +2081,20 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
- Add the option to [resize Cover Block ](https://github.com/WordPress/gutenberg/pull/17143).
- Allow directly setting a [solid background color on Cover](https://github.com/WordPress/gutenberg/pull/17041) block.
- Add [list start, reversed settings](https://github.com/WordPress/gutenberg/pull/15113).
-- Add a [help panel to the inserter available in all blocks](https://github.com/WordPress/gutenberg/pull/16813).
-- [Typewriter experience](https://github.com/WordPress/gutenberg/pull/16460).
+- Add a [help panel to the inserter available in all blocks](https://github.com/WordPress/gutenberg/pull/16813).
+- [Typewriter experience](https://github.com/WordPress/gutenberg/pull/16460).
- Add [circle-crop variation](https://github.com/WordPress/gutenberg/pull/16475) to Image block.
### Enhancements
-- Add [overflow support inside block switcher](https://github.com/WordPress/gutenberg/pull/16984).
-- Update [GitHub action exit codes.](https://github.com/WordPress/gutenberg/pull/17002)
-- Core Data: [return updated record in saveEntityRecord](https://github.com/WordPress/gutenberg/pull/17030).
-- Latest Posts Block: [(no title) instead of (Untitled) for a post without a title](https://github.com/WordPress/gutenberg/pull/17074).
-- [Remove borders around inserter items for blocks with children blocks](https://github.com/WordPress/gutenberg/pull/17083).
-- Add [disabled block count](https://github.com/WordPress/gutenberg/pull/17103) in the block manager.
-- Writing Flow:
- - Add [splitting in the quote block](https://github.com/WordPress/gutenberg/pull/17121).
- - Allow [undoing of patterns with BACKSPACE and ESC.](https://github.com/WordPress/gutenberg/pull/14776)
+- Add [overflow support inside block switcher](https://github.com/WordPress/gutenberg/pull/16984).
+- Update [GitHub action exit codes.](https://github.com/WordPress/gutenberg/pull/17002)
+- Core Data: [return updated record in saveEntityRecord](https://github.com/WordPress/gutenberg/pull/17030).
+- Latest Posts Block: [(no title) instead of (Untitled) for a post without a title](https://github.com/WordPress/gutenberg/pull/17074).
+- [Remove borders around inserter items for blocks with children blocks](https://github.com/WordPress/gutenberg/pull/17083).
+- Add [disabled block count](https://github.com/WordPress/gutenberg/pull/17103) in the block manager.
+- Writing Flow:
+ - Add [splitting in the quote block](https://github.com/WordPress/gutenberg/pull/17121).
+ - Allow [undoing of patterns with BACKSPACE and ESC.](https://github.com/WordPress/gutenberg/pull/14776)
### Experiments
- Widgets Screen:
@@ -1778,10 +2102,10 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
- Add [Button block appender](https://github.com/WordPress/gutenberg/pull/16971).
### New APIs
-- Add [callbacks to ServerSideRenderer](https://github.com/WordPress/gutenberg/pull/16512) to handle failures with custom renderers.
+- Add [callbacks to ServerSideRenderer](https://github.com/WordPress/gutenberg/pull/16512) to handle failures with custom renderers.
- Add the [block example API](https://github.com/WordPress/gutenberg/pull/17124) and use it for inserter and switcher previews.
- Enable an [optional namespace parameter for hasAction & hasFilter ](https://github.com/WordPress/gutenberg/pull/15362).
-
+
### Bug Fixes
- The [duplicate button appears even if the block is not allowed](https://github.com/WordPress/gutenberg/pull/17007).
@@ -1803,14 +2127,14 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
### Various
-- Update [re-resizable dependency](https://github.com/WordPress/gutenberg/pull/17011)
-- Use [mixins in button styles instead of media queries.](https://github.com/WordPress/gutenberg/pull/17012)
-- [Fix performance tests with the introduction of the navigation mode](https://github.com/WordPress/gutenberg/pull/17034)
+- Update [re-resizable dependency](https://github.com/WordPress/gutenberg/pull/17011)
+- Use [mixins in button styles instead of media queries.](https://github.com/WordPress/gutenberg/pull/17012)
+- [Fix performance tests with the introduction of the navigation mode](https://github.com/WordPress/gutenberg/pull/17034)
- RichText code improvements: [#16905](https://github.com/WordPress/gutenberg/pull/16905), [#16962](https://github.com/WordPress/gutenberg/pull/16962).
- Scripts:
- Improve the way [test files are discovered](https://github.com/WordPress/gutenberg/pull/17033).
- Improve [recommended settings](https://github.com/WordPress/gutenberg/pull/17027) included in the package.
- - Use [the SCSS shared stylelint-config-wordpress config](https://github.com/WordPress/gutenberg/pull/17060).
+ - Use [the SCSS shared stylelint-config-wordpress config](https://github.com/WordPress/gutenberg/pull/17060).
- [Ignore the WordPress directory](https://github.com/WordPress/gutenberg/pull/16243) in stylelint.
- Fix: [edit post sets some default block appender styles](https://github.com/WordPress/gutenberg/pull/16943).
- Build: [remove global install of latest npm](https://github.com/WordPress/gutenberg/pull/17134).
@@ -1819,7 +2143,7 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
- Fix: [Add first-time contributor label](https://github.com/WordPress/gutenberg/pull/17156).
- Fix: [Add milestone](https://github.com/WordPress/gutenberg/pull/17157).
- Remove [unused CSS from ColorPalette](https://github.com/WordPress/gutenberg/pull/17152) component.
-
+
### Documentation
- Add [examples for the lockPostSaving and unlockPostSaving](https://github.com/WordPress/gutenberg/pull/16713)actions.
@@ -1827,7 +2151,7 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
- Add section about [updating package after new releases](https://github.com/WordPress/gutenberg/pull/17026).
- Add [ESNext examples to format API](https://github.com/WordPress/gutenberg/pull/16804) tutorial.
- Document [server-side functions that allow registering block styles](https://github.com/WordPress/gutenberg/pull/16997).
-
+
### Mobile
- [Reset toolbar scroll on content change](https://github.com/WordPress/gutenberg/pull/16945).
@@ -1951,13 +2275,13 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
### Mobile
-- Refactor [BlockToolbar out of](https://github.com/WordPress/gutenberg/pull/16677) [BlockList](https://github.com/WordPress/gutenberg/pull/16906).
+- Refactor [BlockToolbar out of](https://github.com/WordPress/gutenberg/pull/16677) [BlockList](https://github.com/WordPress/gutenberg/pull/16906).
- Fix [toolbar bottom inset for iPhone X](https://github.com/WordPress/gutenberg/pull/16961) devices.
= 6.2.0 =
### Enhancements
-- Introduce [Link Target](https://github.com/WordPress/gutenberg/pull/10128) [support](https://github.com/WordPress/gutenberg/pull/16497) in Button block.
+- Introduce [Link Target](https://github.com/WordPress/gutenberg/pull/10128) [support](https://github.com/WordPress/gutenberg/pull/16497) in Button block.
- Limit the [maximum height of the HTML block](https://github.com/WordPress/gutenberg/pull/16187).
- Show the [preview button on mobile viewports](http://update/show-post-preview-button-on-mobile).
- [Remove nested block restrictions](https://github.com/WordPress/gutenberg/pull/16751) from the Cover and Media & Text blocks.
@@ -2356,7 +2680,7 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
- Support the all hook in non-production environments.
- Expose hasResolver property on the data module selectors.
- Support multiple pattern replacement for the custom-templated-path-webpack-plugin package.
-- Update node-sass dependency to support the latest Node.js version.
+- Update node-sass dependency to support the latest Node.js version.
- Fix React warning showing when loading the editor (Fill component).
- Fix React warning message when using the Image block.
- Refactor the popover component using React Hooks.
@@ -2366,8 +2690,8 @@ Add knobs to the [ColorIndicator Story](https://github.com/WordPress/gutenberg/p
- Rewrite Node.js packages to use CommonJS exports.
- Speed up Docker and e2e tests setup Travis.
- Extracted the deprecated block version declarations to their own files.
-- Add missing file from the published @wordpress/dependency-extraction-webpack-plugin-files package.
-- Upgrade package dependencies: Lerna and Webpack Bundle Analyzer.
+- Add missing file from the published @wordpress/dependency-extraction-webpack-plugin-files package.
+- Upgrade package dependencies: Lerna and Webpack Bundle Analyzer.
# Mobile
diff --git a/docs/contributors/coding-guidelines.md b/docs/contributors/coding-guidelines.md
index ba904db9cc9226..c69b7d6e419098 100644
--- a/docs/contributors/coding-guidelines.md
+++ b/docs/contributors/coding-guidelines.md
@@ -65,6 +65,10 @@ Examples of styles that appear in both the theme and the editor include gallery
## JavaScript
+JavaScript in Gutenberg uses modern language features of the [ECMAScript language specification](https://www.ecma-international.org/ecma-262/) as well as the [JSX language syntax extension](https://reactjs.org/docs/introducing-jsx.html). These are enabled through a combination of preset configurations, notably [`@wordpress/babel-preset-default`](https://github.com/WordPress/gutenberg/tree/master/packages/babel-preset-default) which is used as a preset in the project's [Babel](https://babeljs.io/) configuration.
+
+While the [staged process](https://tc39.es/process-document/) for introducing a new JavaScript language feature offers an opportunity to use new features before they are considered complete, **the Gutenberg project and the `@wordpress/babel-preset-default` configuration will only target support for proposals which have reached Stage 4 ("Finished")**.
+
### Imports
In the Gutenberg project, we use [the ES2015 import syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) to enable us to create modular code with clear separations between code of a specific feature, code shared across distinct WordPress features, and third-party dependencies.
@@ -195,6 +199,22 @@ alert( 'My name is ' + name + '.' );
alert( `My name is ${ name }.` );
```
+### Optional Chaining
+
+[Optional chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining) is a new language feature introduced in version 2020 of the ECMAScript specification. While the feature can be very convenient for property access on objects which are potentially null-ish (`null` or `undefined`), there are a number of common pitfalls to be aware of when using optional chaining. These may be issues that linting and/or type-checking can help protect against at some point in the future. In the meantime, you will want to be cautious of the following items:
+
+- When negating (`!`) the result of a value which is evaluated with optional chaining, you should be observant that in the case that optional chaining reaches a point where it cannot proceed, it will produce a [falsy value](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) that will be transformed to `true` when negated. In many cases, this is not an expected result.
+ - Example: `const hasFocus = ! nodeRef.current?.contains( document.activeElement );` will yield `true` if `nodeRef.current` is not assigned.
+ - See related issue: [#21984](https://github.com/WordPress/gutenberg/issues/21984)
+ - See similar ESLint rule: [`no-unsafe-negation`](https://eslint.org/docs/rules/no-unsafe-negation)
+- When assigning a boolean value, observe that optional chaining may produce values which are [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) (`undefined`, `null`), but not strictly `false`. This can become an issue when the value is passed around in a way where it is expected to be a boolean (`true` or `false`). While it's a common occurrence for booleans—since booleans are often used in ways where the logic considers truthiness and falsyness broadly—these issues can also occur for other optional chaining when eagerly assuming a type resulting from the end of the property access chain. [Type-checking](https://github.com/WordPress/gutenberg/blob/master/packages/README.md#typescript) may help in preventing these sorts of errors.
+ - Example: `document.body.classList.toggle( 'has-focus', nodeRef.current?.contains( document.activeElement ) );` may wrongly _add_ the class, since [the second argument is optional](https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList/toggle). If `undefined` is passed, it would not unset the class as it would when `false` is passed.
+ - Example: ` ` may inadvertently cause warnings in React by toggling between [controlled and uncontrolled inputs](https://reactjs.org/docs/uncontrolled-components.html). This is an easy trap to fall into when eagerly assuming that a result of `trim()` will always return a string value, overlooking the fact the optional chaining may have caused evaluation to abort earlier with a value of `undefined`.
+
+### `@wordpress/element` (React) Components
+
+It is preferred to implement all components as [function components](https://reactjs.org/docs/components-and-props.html), using [hooks](https://reactjs.org/docs/hooks-reference.html) to manage component state and lifecycle. With the exception of [error boundaries](https://reactjs.org/docs/error-boundaries.html), you should never encounter a situation where you must use a class component. Note that the [WordPress guidance on Code Refactoring](https://make.wordpress.org/core/handbook/contribute/code-refactoring/) applies here: There needn't be a concentrated effort to update class components in bulk. Instead, consider it as a good refactoring opportunity in combination with some other change.
+
## JavaScript Documentation using JSDoc
Gutenberg follows the [WordPress JavaScript Documentation Standards](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/javascript/), with additional guidelines relevant for its distinct use of [import semantics](https://github.com/WordPress/gutenberg/blob/master/docs/contributors/coding-guidelines.md#imports) in organizing files, the [use of TypeScript tooling](https://github.com/WordPress/gutenberg/blob/master/docs/contributors/testing-overview.md#javascript-testing) for types validation, and automated documentation generation using [`@wordpress/docgen`](https://github.com/WordPress/gutenberg/tree/master/packages/docgen).
diff --git a/docs/contributors/getting-started.md b/docs/contributors/getting-started.md
index a4414814ed3491..3516e4951a84d4 100644
--- a/docs/contributors/getting-started.md
+++ b/docs/contributors/getting-started.md
@@ -1,8 +1,11 @@
# Getting Started
-Gutenberg is a Node.js-based project, built primarily in JavaScript.
-The first step is to install the [latest active LTS release](https://github.com/nodejs/Release#release-schedule) of Node, along with the latest version of [NPM](https://www.npmjs.com/). The easiest way (on macOS, Linux, or Windows 10 with the Linux Subsystem) is by installing and running [nvm]. Once `nvm` is installed, you can install the correct version of Node by running `nvm install --latest-npm` in the Gutenberg directory.
+Gutenberg is built using the [latest active LTS release](https://github.com/nodejs/Release#release-schedule) of [Node.js](https://nodejs.org/en/), along with the latest version of [NPM](http://npmjs.com/).
+
+The easiest way to install and manage node and NPM (on macOS, Linux, or Windows 10 with the Linux Subsystem) is by using [nvm](https://github.com/creationix/nvm). Once nvm is installed, you can install the correct version of Node by running nvm install --latest-npm in the Gutenberg directory.
+
+>**Note:** If you find yourself needing to build older versions of Gutenberg, nvm makes that process easier too. Because Gutenberg's `.nvmrc` file is regularly updated to the current available LTS release, running `nvm install` on an older branch will install whichever LTS version was active at that time.
Once you have Node installed, run these scripts from within your local Gutenberg repository:
@@ -64,9 +67,6 @@ After building the cloned gutenberg directory contains the complete plugin, you
Another way to upload after building is to run `npm run package-plugin` to create a plugin zip file — this requires `bash` and `php` to run. The script creates `gutenberg.zip` that you can use to install Gutenberg through the WordPress admin.
-[npm]: https://www.npmjs.com/
-[nvm]: https://github.com/creationix/nvm
-
## Storybook
> Storybook is an open source tool for developing UI components in isolation for React, React Native and more. It makes building stunning UIs organized and efficient.
diff --git a/docs/contributors/release.md b/docs/contributors/release.md
index 88eeaa9252bb8d..b0c38330a5094a 100644
--- a/docs/contributors/release.md
+++ b/docs/contributors/release.md
@@ -27,13 +27,13 @@ If critical bugs are discovered on stable versions of the plugin, patch versions
The plugin release process is entirely automated. To release the RC version of the plugin, run the following command and follow the instructions: (Note that at the time of writing, the tool doesn't support releasing multiple consecutive RC releases)
```bash
-./bin/commander.js rc
+./bin/plugin/cli.js rc
```
To release a stable version, run:
```bash
-./bin/commander.js stable
+./bin/plugin/cli.js stable
```
It is possible to run the "stable" release CLI in a consecutive way to release patch releases following the first stable release.
@@ -53,10 +53,34 @@ Releasing the first release candidate for this milestone (`x.x`) involves:
##### Writing the Release Post and Changelog
-1. Open the [list of closed pull requests](https://github.com/WordPress/gutenberg/pulls?utf8=✓&q=is%3Apr+is%3Aclosed+sort%3Acreated-desc+) and filter by the current milestone.
-2. Read through each PR to determine if it needs to be included in the blog post and/or changelog.
-3. Choose a few features to highlight in the release post; record an animation of them in use.
-4. Save the draft post on [make.wordpress.org/core](https://make.wordpress.org/core/); this post should be published after the actual release.
+To generate a changelog for a release, use the changelog generator tool:
+
+```
+node bin/changelog.js
+```
+
+By default, this will search for and organize all pull requests associated with the milestone for the current version of the project. Notably, this assumes a release candidate version has already been tagged and published.
+
+To override the default behavior, you can pass one or both of the following values as environment variables:
+
+- `MILESTONE`: Provide the title of the milestone for which the changelog should be generated. This should exactly match the title as shown on [the milestones page](https://github.com/WordPress/gutenberg/milestones).
+ - Example: `MILESTONE="Gutenberg 8.1" npm run changelog`
+- `GITHUB_TOKEN`: Provide a [GitHub personal access token](https://github.com/settings/tokens) for authenticating requests. This should only be necessary if you run the script frequently enough to been blocked by [rate limiting](https://developer.github.com/v3/#rate-limiting).
+ - Example: `GITHUB_TOKEN=... npm run changelog`
+
+The script will output a generated changelog, grouped by pull request label. _Note that this is intended to be a starting point for release notes_. You will still want to manually review and curate the changelog entries.
+
+Guidelines for proof-reading include:
+
+- Fix spelling errors or clarify wording. Phrasing should be easy to understand where the intended audience are those who use the plugin or are keeping up with ongoing development.
+- Create new groupings as applicable, and move pull requests between.
+- When multiple pull requests relate to the same task (such as a follow-up pull request), try to combine them to a single entry.
+- If subtasks of a related set of pull requests are substantial, consider organizing as entries in a nested list.
+- Remove mobile app pull request entries.
+
+Once you have cleaned up the changelog, choose a few features to highlight in the release post and record an animation of them in use.
+
+Compile this to a draft post on [make.wordpress.org/core](https://make.wordpress.org/core/); this post should be published after the actual release.
##### Creating the Release Branch
@@ -209,7 +233,7 @@ The Gutenberg repository mirrors the [WordPress SVN repository](https://make.wor
### Synchronizing WordPress Trunk
-For each Gutenberg plugin release, WordPress trunk should be synchronized with this release. This involves the following steps that are automated with `./bin/commander npm-stable` command:
+For each Gutenberg plugin release, WordPress trunk should be synchronized with this release. This involves the following steps that are automated with `./bin/plugin/cli npm-stable` command:
**Note:** The WordPress `trunk` branch can be closed or in "feature-freeze" mode. Usually, this happens between the first `beta` and the first `RC` of the WordPress release cycle. During this period, the Gutenberg plugin releases should not be synchronized with WordPress Core.
diff --git a/docs/contributors/testing-overview.md b/docs/contributors/testing-overview.md
index 390664c8b9da8e..f6ecdf760eaa16 100644
--- a/docs/contributors/testing-overview.md
+++ b/docs/contributors/testing-overview.md
@@ -351,6 +351,11 @@ Sometimes we need to mock refs for some stories which use them. Check the follow
- [Using createNodeMock to mock refs](https://github.com/storybookjs/storybook/tree/master/addons/storyshots/storyshots-core#using-createnodemock-to-mock-refs) with StoryShots.
In that case, you might see test failures and `TypeError` reported by Jest in the lines which try to access a property from `ref.current`. If this happens, search for `initStoryshots` method call, which contains all necessary configurations to adjust.
+
+### Debugging Jest unit tests
+
+Running `npm run test-unit:debug` will start the tests in debug mode so a [node inspector client](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients) can connect to the process and inspect the execution. Instructions for using Google Chrome or Visual Studio Code as an inspector client can be found in the [wp-scripts documentation](/packages/scripts/README.md#debugging-jest-unit-tests).
+
## Native mobile testing
Part of the unit-tests suite is a set of Jest tests run exercise native-mobile codepaths, developed in React Native. Since those tests run on Node, they can be launched locally on your development machine without the need for specific native Android or iOS dev tools or SDKs. It also means that they can be debugged using typical dev tools. Read on for instructions how to debug.
@@ -382,16 +387,28 @@ or interactively
npm run test-e2e:watch
```
-Sometimes it's useful to observe the browser while running tests. To do so you can use these environment variables:
+Sometimes it's useful to observe the browser while running tests. Then, use this command:
+
+```bash
+npm run test-e2e:watch -- --puppeteer-interactive
+```
+
+You can control the speed of execution with `--puppeteer-slowmo`:
+
+```bash
+npm run test-e2e:watch -- --puppeteer-interactive --puppeteer-slowmo=200
+```
+
+You can additionally have the devtools automatically open for interactive debugging in the browser:
```bash
-PUPPETEER_HEADLESS=false PUPPETEER_SLOWMO=80 npm run test-e2e:watch
+npm run test-e2e:watch -- --puppeteer-devtools
```
If you're using a different setup, you can provide the base URL, username and password like this:
```bash
-WP_BASE_URL=http://localhost:8888 WP_USERNAME=admin WP_PASSWORD=password npm run test-e2e
+npm run test-e2e -- --wordpress-base-url=http://localhost:8888 --wordpress-username=admin --wordpress-password=password
```
If you find that end-to-end tests pass when run locally, but fail in Travis, you may be able to isolate a CPU- or netowrk-bound race condition by simulating a slow CPU or network:
diff --git a/docs/contributors/triage.md b/docs/contributors/triage.md
index 45e564ebf322d0..c1155bdfd8086c 100644
--- a/docs/contributors/triage.md
+++ b/docs/contributors/triage.md
@@ -1,78 +1,68 @@
## Get involved in triage
-To keep the issue list healthy, it needs to be triaged regularly. Triage is the practice of reviewing existing issues to make sure they’re relevant, actionable, and have all the information they need.
-Anyone can help triage, although you’ll need to be a member of the triage team for the Gutenberg repository to modify an issue’s labels or edit its title.
+To keep the issue list healthy, it needs to be triaged regularly. Triage is the practice of reviewing existing issues to make sure they’re relevant, actionable, and have all the information they need. Anyone can help triage, although you’ll need to be a member of the triage team for the Gutenberg repository to modify an issue’s labels or edit its title.
## Join the triage team
The triage team is an open group of people with a particular role of making sure triage is done consistently across the Gutenberg repo. There are various types of triage which happen:
-* Regular self triage sessions
-* Organised triage sessions
-* Focusing on a specific board, label or feature to triage
+* Regular self triage sessions done by members on their own time.
+* Organised triage sessions done as a group at a set time. You can [review the meetings page](https://make.wordpress.org/meetings/) to find these triage sessions and appropriate slack channels.
+* Focused triage sessions on a specific board, label or feature.
-If you would like to join this team, you can through asking in #core-editor Slack at any time.
+These are the expectations of being a triage team member:
-These are the expectations of being a team member:
+* You are expected to do some triage even if it is self triage at least once a week.
+* As you can, try to join organized triage sessions.
+* If you join the triage team to focus on a specific label or board, the expectation is that your focus will be there. Please make this known to fellow triage team members.
-* As a member of the triage team, you are expected to at least once a week do some triage even if it is self triage.
-* Some people might join this team to focus on a specific label or board, in that case their focus is there.
-* Try and join triage sessions.
+If you would like to join this team, simply ask in #core-editor [Slack](https://make.wordpress.org/chat/) at any time.
## Getting started
-To start simply choose from one of these filtered lists of issues:
+To start simply choose from one of these filtered lists of issues below. Note: You can find these filters by selecting the “Sort” option from the [overall Issues page](https://github.com/wordpress/gutenberg/issues).
-* All Gutenberg issues without an assigned label. Triaging by simply adding labels helps people focused on certain aspects of Gutenberg find relevant issues easier and start working on them.
-* The least recently updated Gutenberg issues. Triaging issues that are getting old and possibly out of date keeps important work from being overlooked.
-* All Gutenberg issues with no comments. Triaging this list helps make sure all issues are acknowledged, and can help identify issues that may need more information or discussion before they are actionable.
-* The least commented on issues Triaging this list helps the community figure out things like traction for certain proposals.
+* All Gutenberg issues [without an assigned label](https://github.com/WordPress/gutenberg/issues?q=is%3Aopen+is%3Aissue+no%3Alabel+sort%3Aupdated-asc). Triaging by simply adding labels helps people focused on certain aspects of Gutenberg find relevant issues easier and start working on them.
+* [The least recently updated](https://github.com/WordPress/gutenberg/issues?q=is%3Aopen+is%3Aissue+sort%3Aupdated-asc) Gutenberg issues. Triaging issues that are getting old and possibly out of date keeps important work from being overlooked.
+* All Gutenberg issues [with no comments](https://github.com/wordpress/gutenberg/issues?q=is%3Aissue+is%3Aopen+comments%3A0+). Triaging this list helps make sure all issues are acknowledged, and can help identify issues that may need more information or discussion before they are actionable.
+* [The least commented](https://github.com/wordpress/gutenberg/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-asc) on Gutenberg issues. Triaging this list helps the community figure out what things might still need traction for certain proposals.
* You can also create your own custom set of filters on GitHub. If you have a filter you think might be useful for the community, feel free to submit a PR to add it to this list.
-### Triage itself
+
+### General triage process
When triaging, either one of the lists above or issues in general, work through issues one-by-one. Here are some steps you can perform for each issue:
-* First search for duplicates. If the issue is duplicate, close it by commenting with “Duplicate of #” and add any relevant new details to the existing issue. (Don’t forget to search for duplicates among closed issues as well!)
-* If the issue is missing labels, add some to better categorize it (requires proper permissions).
- ** A good starting place when adding labels is to apply one of the labels prefixed [Type] (e.g. [Type] Enhancement or [Type] Bug) to indicate what kind of issue it is.
- ** After that consider adding more descriptive labels. If the issue concerns a particular core block, add one of the labels prefixed [Block]. Or if the issue affects a particular feature there are [Feature] labels.
- ** Finally, there are labels that affect particular interest areas, like Accessibility and Internationalization
-* Consider adding priority if you can:
- ** Priority OMGWTFBBQ:
- *** Major issues that are causing failures and are reported frequently.
- *** Typically, these are issues that are critical because they break important behaviour or functionality.
- *** An example might be, “Unable to remove a block after it is added to the editor”. .
- ** Priority: High:
- *** Fits one of the current focuses: usually placing in that project board.
- *** Major broken experience (including flow, visual bugs and blocks).
- ** Priority: Low:
- *** Enhancements that aren’t part of focuses.
- *** Niche bugs.
- *** Old browsers
- ** Note that no priority label infers normal.
-* If the title doesn’t communicate the issue, edit it for clarity (requires proper permissions).
-* If it’s a bug report, test to confirm the report or add the Needs Testing label. If there is not enough information to confirm the report, add the [Status] Needs More Info label and ask for the details needed. It’s particularly beneficial when a bug report has steps for reproduction, ask the reporter to add those if they’re missing.
+* First search for duplicates. If the issue is duplicate, close it by commenting with “Duplicate of #” and add any relevant new details to the existing issue. (Don’t forget to search for duplicates among closed issues as well!).
+* If the issue is missing labels, add some to better categorize it (requires proper permissions given after joining the triage team). A good starting place when adding labels is to apply one of the labels prefixed [Type] (e.g. [Type] Enhancement or [Type] Bug) to indicate what kind of issue it is. After that consider adding more descriptive labels. If the issue concerns a particular core block, add one of the labels prefixed [Block]. Or if the issue affects a particular feature there are [Feature] labels. Finally, there are labels that affect particular interest areas, like Accessibility and Internationalization. You can view all possible labels [here](https://github.com/WordPress/gutenberg/labels).
+* Consider adding priority if you can confidently determine what the likely level should be:
+ * Priority OMGWTFBBQ: Major issues that are causing failures and are reported frequently. Typically, these are issues that are critical because they break important behaviour or functionality. An example might be, “Unable to remove a block after it is added to the editor”.
+ * Priority: High: Fits one of the current focuses and is causing a major broken experience (including flow, visual bugs and blocks).
+ * Priority: Low: Enhancements that aren’t part of focuses, iche bugs, problems with old browsers.
+ * Note that it’s on purpose that no priority label infers a normal level.
+* If the title doesn’t communicate the issue clearly enough, edit it for clarity (requires proper permissions). Specifically, we’d recommend having the main feature the issue relates to in the beginning of the title ([example](https://github.com/WordPress/gutenberg/issues/6193)) and for the title to generally be as succinct yet descriptive as possible ([example](https://github.com/WordPress/gutenberg/issues/6193)).
+* If it’s a bug report, test to confirm the report or add the Needs Testing label. If there is not enough information to confirm the report, add the [Status] Needs More Info label and ask for the details needed. It’s particularly beneficial when a bug report has steps for reproduction so ask the reporter to add those if they’re missing.
* Remove the [Status] Needs More Info if the author of the issue has responded with enough details.
* Close the issue with a note if it has a [Status] Needs More Info label but the author didn't respond in 2+ weeks.
-* If there was a conversation on the issue but no actionable steps identified, follow up with the participants to see what’s actionable.
+* If there was a conversation on the issue but no actionable steps identified, follow up with the participants to see what’s actionable. Make sure to @ each participant when responding in a comment.
* If you feel comfortable triaging the issue further, then you can also:
- ** Check that the bug report is valid by debugging it to see if you can track down the technical specifics.
- ** Check if the issue is missing some detail and see if you can fill in those details. For instance, if a bug report is missing visual detail, it’s helpful to reproduce the issue locally and upload a screenshot or GIF.
- ** Consider adding the Good First Issue label if you believe this is a relatively easy issue for a first-time contributor to try to solve.
+ * Check that the bug report is valid by debugging it to see if you can track down the technical specifics.
+ * Check if the issue is missing some detail and see if you can fill in those details. For instance, if a bug report is missing visual detail, it’s helpful to reproduce the issue locally and upload a screenshot or GIF.
+ * Consider adding the Good First Issue label if you believe this is a relatively easy issue for a first-time contributor to try to solve.
-For triaging there are some labels which are very useful:
-* Needs Technical Feedback - you can apply them when you see new features or API changes proposed
-* Needs More Info - when it’s not clear what the issue is or it would help to provide additional details
-* Needs Testing - it’s useful for old bugs where it seems like they are no longer relevant
+Generally speaking, the following labels are very useful for triaging issues and will likely be the ones you use the most consistently:
+* Needs Technical Feedback - when you see new features or API changes proposed.
+* Needs More Info - when it’s not clear what the issue is or it would help to provide additional details.
+* Needs Testing - when old bugs seem like they are no longer relevant.
+* [Type] Help Request - when someone is asking for general help with setup/implementation.
## Design specific triage
-Along with the general triage flows listed previously, there are some specific additions to the flows for more design-centric triage:
+Along with the general triage flows listed previously, there are some specific additions to the flows for more design-centric triage for design minded folks participating in triage.
+
+* PR testing and reviews: this should be your first stop for daily self triage.
+* Needs design feedback: check if the issue does need design feedback and, if possible, give it. You can organise this by priority, project boards or by least commented. Once there are enough opinions, please remove this label and decide on next steps (ie adding the Needs Design label).
+* Needs design: Does it really need a design? Does this fit a focus? If it has a design mark as ‘needs design feedback’ to better categorize the issue.
+
+Reminders:
+* Ask for screenshots as needed.
+* Ask for iterations and note any changes before merging.
+* If the issue isn’t in a board, check to see if it doesn’t fit in a specific focus.
+* If the issue/pull has not been prioritized yet, consider adding a priority to help move the issue forward.
-* PR testing and reviews: ideally this is your first stop, particularly in daily self triage.
-* Needs design feedback: check this does need design feedback and if possible give it. You can organise this by priority, project boards or by least commented.
- ** Ask for screenshots to see if unable to.
- ** Ask for iterations and note need to change before merging.
- ** Once enough opinions remove the label and either go to needs design.
- ** If this isn’t in a board, check it doesn’t fit in a specific focus.
- ** If the issue/pull has not been prioritized yet, consider adding a priority.
-* Needs design:
- ** Does it really need a design?
- ** Does this fit a focus?
- ** If it has a design mark as ‘needs design feedback’.
+For more detailed information about weekly design triage and to join in, please [review this guide](https://make.wordpress.org/design/handbook/workflows/weekly-gutenberg-design-triage/).
diff --git a/docs/designers-developers/developers/backward-compatibility/deprecations.md b/docs/designers-developers/developers/backward-compatibility/deprecations.md
index 9947d262b243cb..2016845ea53ef2 100644
--- a/docs/designers-developers/developers/backward-compatibility/deprecations.md
+++ b/docs/designers-developers/developers/backward-compatibility/deprecations.md
@@ -2,6 +2,11 @@
For features included in the Gutenberg plugin, the deprecation policy is intended to support backward compatibility for two minor plugin releases, when possible. Features and code included in a stable release of WordPress are not included in this deprecation timeline, and are instead subject to the [versioning policies of the WordPress project](https://make.wordpress.org/core/handbook/about/release-cycle/version-numbering/). The current deprecations are listed below and are grouped by _the version at which they will be removed completely_. If your plugin depends on these behaviors, you must update to the recommended alternative before the noted version.
+## 8.3.0
+
+- The PHP function `gutenberg_get_post_from_context` has been removed. Use [Block Context](https://github.com/WordPress/gutenberg/blob/master/docs/designers-developers/developers/block-api/block-context.md) instead.
+- The old Block Pattern APIs `register_pattern`/`unregister_pattern` have been removed. Use the [new functions](https://github.com/WordPress/gutenberg/blob/master/docs/designers-developers/developers/block-api/block-patterns.md#register_block_pattern) instead.
+
## 5.5.0
- The PHP function `gutenberg_init` has been removed.
diff --git a/docs/designers-developers/developers/block-api/README.md b/docs/designers-developers/developers/block-api/README.md
index 284b0db24df488..13dbd344bc89fa 100644
--- a/docs/designers-developers/developers/block-api/README.md
+++ b/docs/designers-developers/developers/block-api/README.md
@@ -8,6 +8,7 @@ The following sections will walk you through the existing block APIs:
- [Edit and Save](/docs/designers-developers/developers/block-api/block-edit-save.md)
- [Attributes](/docs/designers-developers/developers/block-api/block-attributes.md)
- [Deprecated blocks](/docs/designers-developers/developers/block-api/block-deprecation.md)
+- [Transformations](./docs/designers-developers/developers/block-transforms.md)
- [Templates](/docs/designers-developers/developers/block-api/block-templates.md)
- [Annotations](/docs/designers-developers/developers/block-api/block-annotations.md)
- [Patterns (experimental)](/docs/designers-developers/developers/block-api/block-patterns.md)
diff --git a/docs/designers-developers/developers/block-api/block-context.md b/docs/designers-developers/developers/block-api/block-context.md
index 56289ef088c3e2..4ee517d148e1af 100644
--- a/docs/designers-developers/developers/block-api/block-context.md
+++ b/docs/designers-developers/developers/block-api/block-context.md
@@ -63,14 +63,14 @@ registerBlockType( 'my-plugin/record-title', {
### PHP
-A block's context values are available from the `context` property of the `$block` argument passed to the `render_callback` function.
+A block's context values are available from the `context` property of the `$block` argument passed as the third argument to the `render_callback` function.
`record-title/index.php`
```php
-register_block_type( 'my-plugin/record-title', [
- 'render_callback' => function( $block ) {
+register_block_type( 'my-plugin/record-title', array(
+ 'render_callback' => function( $attributes, $content, $block ) {
return 'The current record ID is: ' . $block->context['my-plugin/recordId'];
},
-] );
+) );
```
diff --git a/docs/designers-developers/developers/block-api/block-patterns.md b/docs/designers-developers/developers/block-api/block-patterns.md
index 951818af01ebcb..9587628c6b29ce 100644
--- a/docs/designers-developers/developers/block-api/block-patterns.md
+++ b/docs/designers-developers/developers/block-api/block-patterns.md
@@ -4,18 +4,18 @@ Patterns are predefined block layouts, ready to insert and tweak.
**Note** Patterns are still under heavy development and the APIs are subject to change.
-#### register_pattern
+#### register_block_pattern
-The editor comes with a list of built-in patterns. Theme and plugin authors can register addition custom patterns using the `register_pattern` function.
+The editor comes with a list of built-in patterns. Theme and plugin authors can register addition custom patterns using the `register_block_pattern` function.
-The `register_pattern` function receives the name of the pattern as the first argument and an array describing properties of the pattern as the second argument.
+The `register_block_pattern` function receives the name of the pattern as the first argument and an array describing properties of the pattern as the second argument.
The properties of the style array must include `name` and `label`:
- `title`: A human-readable title for the pattern.
- `content`: Raw HTML content for the pattern.
```php
-register_pattern(
+register_block_pattern(
'my-plugin/my-awesome-pattern',
array(
'title' => __( 'Two buttons', 'my-plugin' ),
@@ -24,14 +24,14 @@ register_pattern(
);
```
-#### unregister_pattern
+#### unregister_block_pattern
-`unregister_pattern` allows unregistering a pattern previously registered on the server using `register_pattern`.
+`unregister_block_pattern` allows unregistering a pattern previously registered on the server using `register_block_pattern`.
The function's argument is the registered name of the pattern.
The following code sample unregisters the style named 'my-plugin/my-awesome-pattern':
```php
-unregister_pattern( 'my-plugin/my-awesome-pattern' );
+unregister_block_pattern( 'my-plugin/my-awesome-pattern' );
```
diff --git a/docs/designers-developers/developers/block-api/block-registration.md b/docs/designers-developers/developers/block-api/block-registration.md
index e2c9f6ff71afcb..b62dec5d138d79 100644
--- a/docs/designers-developers/developers/block-api/block-registration.md
+++ b/docs/designers-developers/developers/block-api/block-registration.md
@@ -196,36 +196,6 @@ Similarly to how the block's style variations can be declared, a block type can
By default, all variations will show up in the Inserter in addition to the regular block type item. However, setting the `isDefault` flag for any of the variations listed will override the regular block type in the Inserter.
-{% codetabs %}
-{% ES5 %}
-
-```js
-variations: [
- {
- name: 'wordpress',
- isDefault: true,
- title: __( 'WordPress' ),
- description: __( 'Code is poetry!' ),
- icon: WordPressIcon,
- attributes: { service: 'wordpress' },
- },
- {
- name: 'google',
- title: __( 'Google' ),
- icon: GoogleIcon,
- attributes: { service: 'google' },
- },
- {
- name: 'twitter',
- title: __( 'Twitter' ),
- icon: TwitterIcon,
- attributes: { service: 'twitter' },
- },
-],
-```
-
-{% ESNext %}
-
```js
variations: [
{
@@ -251,8 +221,6 @@ variations: [
],
```
-{% end %}
-
An object describing a variation defined for the block type can contain the following fields:
- `name` (type `string`) – The unique and machine-readable name.
@@ -265,404 +233,25 @@ An object describing a variation defined for the block type can contain the foll
- `example` (optional, type `Object`) – Example provides structured data for the block preview. You can set to `undefined` to disable the preview shown for the block type.
- `scope` (optional, type `String[]`) - the list of scopes where the variation is applicable. When not provided, it assumes all available scopes. Available options: `block`, `inserter`.
-#### transforms (optional)
-
-- **Type:** `Array`
-
-Transforms provide rules for what a block can be transformed from and what it can be transformed to. A block can be transformed from another block, a shortcode, a regular expression, a file or a raw DOM node.
-
-For example, a Paragraph block can be transformed into a Heading block. This uses the `createBlock` function from the [`wp-blocks` package](/packages/blocks/README.md#createBlock).
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- from: [
- {
- type: 'block',
- blocks: [ 'core/paragraph' ],
- transform: function ( attributes ) {
- return createBlock( 'core/heading', {
- content: attributes.content,
- } );
- },
- },
- ]
-},
-```
-
-{% ESNext %}
-
-```js
-transforms: {
- from: [
- {
- type: 'block',
- blocks: [ 'core/paragraph' ],
- transform: ( { content } ) => {
- return createBlock( 'core/heading', {
- content,
- } );
- },
- },
- ]
-},
-```
-
-{% end %}
-
-An existing shortcode can be transformed into its block counterpart.
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- from: [
- {
- type: 'shortcode',
- // Shortcode tag can also be an array of shortcode aliases
- tag: 'caption',
- attributes: {
- // An attribute can be source from a tag attribute in the shortcode content
- url: {
- type: 'string',
- source: 'attribute',
- attribute: 'src',
- selector: 'img',
- },
- // An attribute can be source from the shortcode attributes
- align: {
- type: 'string',
- shortcode: function( attributes ) {
- var align = attributes.named.align ? attributes.named.align : 'alignnone';
- return align.replace( 'align', '' );
- },
- },
- },
- },
- ]
-},
-```
-
-{% ESNext %}
-
-```js
-transforms: {
- from: [
- {
- type: 'shortcode',
- // Shortcode tag can also be an array of shortcode aliases
- tag: 'caption',
- attributes: {
- // An attribute can be source from a tag attribute in the shortcode content
- url: {
- type: 'string',
- source: 'attribute',
- attribute: 'src',
- selector: 'img',
- },
- // An attribute can be source from the shortcode attributes
- align: {
- type: 'string',
- shortcode: ( { named: { align = 'alignnone' } } ) => {
- return align.replace( 'align', '' );
- },
- },
- },
- },
- ]
-},
-
-```
-
-{% end %}
-
-A block can also be transformed into another block type. For example, a Heading block can be transformed into a Paragraph block.
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- to: [
- {
- type: 'block',
- blocks: [ 'core/paragraph' ],
- transform: function( attributes ) {
- return createBlock( 'core/paragraph', {
- content: attributes.content,
- } );
- },
- },
- ],
-},
-```
-
-{% ESNext %}
+It's also possible to override the default block style variation using the `className` attribute when defining block variations.
```js
-transforms: {
- to: [
- {
- type: 'block',
- blocks: [ 'core/paragraph' ],
- transform: ( { content } ) => {
- return createBlock( 'core/paragraph', {
- content,
- } );
- },
- },
- ],
-},
-```
-
-{% end %}
-
-In addition to accepting an array of known block types, the `blocks` option also accepts a "wildcard" (`"*"`). This allows for transformations which apply to _all_ block types (eg: all blocks can transform into `core/group`):
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- from: [
- {
- type: 'block',
- blocks: [ '*' ], // wildcard - match any block
- transform: function( attributes, innerBlocks ) {
- // transform logic here
- },
- },
- ],
-},
-```
-
-{% ESNext %}
-
-```js
-transforms: {
- from: [
- {
- type: 'block',
- blocks: [ '*' ], // wildcard - match any block
- transform: ( attributes, innerBlocks ) => {
- // transform logic here
- },
- },
- ],
-},
-```
-
-{% end %}
-
-A block with InnerBlocks can also be transformed from and to another block with InnerBlocks.
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- to: [
- {
- type: 'block',
- blocks: [ 'some/block-with-innerblocks' ],
- transform: function( attributes, innerBlocks ) {
- return createBlock( 'some/other-block-with-innerblocks', attributes, innerBlocks );
- },
- },
- ],
-},
-```
-
-{% ESNext %}
-
-```js
-transforms: {
- to: [
- {
- type: 'block',
- blocks: [ 'some/block-with-innerblocks' ],
- transform: ( attributes, innerBlocks ) => {
- return createBlock( 'some/other-block-with-innerblocks', attributes, innerBlocks);
- },
- },
- ],
-},
-```
-
-{% end %}
-
-An optional `isMatch` function can be specified on a transform object. This provides an opportunity to perform additional checks on whether a transform should be possible. Returning `false` from this function will prevent the transform from being displayed as an option to the user.
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- to: [
- {
- type: 'block',
- blocks: [ 'core/paragraph' ],
- isMatch: function( attributes ) {
- return attributes.isText;
- },
- transform: function( attributes ) {
- return createBlock( 'core/paragraph', {
- content: attributes.content,
- } );
- },
- },
- ],
-},
-```
-
-{% ESNext %}
-
-```js
-transforms: {
- to: [
- {
- type: 'block',
- blocks: [ 'core/paragraph' ],
- isMatch: ( { isText } ) => isText,
- transform: ( { content } ) => {
- return createBlock( 'core/paragraph', {
- content,
- } );
- },
- },
- ],
-},
-```
-
-{% end %}
-
-In the case of shortcode transforms, `isMatch` receives shortcode attributes per the [Shortcode API](https://codex.wordpress.org/Shortcode_API):
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-isMatch: function( attributes ) {
- return attributes.named.id === 'my-id';
-},
-```
-
-{% ESNext %}
-
-```js
-isMatch( { named: { id } } ) {
- return id === 'my-id';
-},
-```
-
-{% end %}
-
-To control the priority with which a transform is applied, define a `priority` numeric property on your transform object, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
-
-A file can be dropped into the editor and converted into a block with a matching transform.
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- from: [
- {
- type: 'files',
- isMatch: function( files ) {
- return files.length === 1;
- },
- // We define a lower priority (higher number) than the default of 10. This
- // ensures that the File block is only created as a fallback.
- priority: 15,
- transform: function( files ) {
- var file = files[ 0 ];
- var blobURL = createBlobURL( file );
-
- // File will be uploaded in componentDidMount()
- return createBlock( 'core/file', {
- href: blobURL,
- fileName: file.name,
- textLinkHref: blobURL,
- } );
- },
- },
- ];
-}
-```
-
-{% ESNext %}
-
-```js
-transforms: {
- from: [
- {
- type: 'files',
- isMatch: ( files ) => files.length === 1,
- // We define a lower priority (higher number) than the default of 10. This
- // ensures that the File block is only created as a fallback.
- priority: 15,
- transform: ( files ) => {
- const file = files[ 0 ];
- const blobURL = createBlobURL( file );
-
- // File will be uploaded in componentDidMount()
- return createBlock( 'core/file', {
- href: blobURL,
- fileName: file.name,
- textLinkHref: blobURL,
- } );
- },
- },
- ];
-}
-```
-
-{% end %}
-
-A prefix transform is a transform that will be applied if the user prefixes some text in e.g. the Paragraph block with a given pattern and a trailing space.
-
-{% codetabs %}
-{% ES5 %}
-
-```js
-transforms: {
- from: [
- {
- type: 'prefix',
- prefix: '?',
- transform: function( content ) {
- return createBlock( 'my-plugin/question', {
- content,
- } );
- },
- },
- ];
-}
+variations: [
+ {
+ name: 'blue',
+ title: __( 'Blue Quote' ),
+ isDefault: true,
+ attributes: { className: 'is-style-blue-quote' },
+ icon: 'format-quote',
+ },
+],
```
-{% ESNext %}
+#### transforms (optional)
-```js
-transforms: {
- from: [
- {
- type: 'prefix',
- prefix: '?',
- transform( content ) {
- return createBlock( 'my-plugin/question', {
- content,
- } );
- },
- },
- ];
-}
-```
+- **Type:** `Object`
-{% end %}
+Transforms provide rules for what a block can be transformed from and what it can be transformed to. A block can be transformed from another block, a shortcode, a regular expression, a file or a raw DOM node. Take a look at the [Block Transforms API](./block-transforms.md) for more info about each available transformation.
#### parent (optional)
diff --git a/docs/designers-developers/developers/block-api/block-transforms.md b/docs/designers-developers/developers/block-api/block-transforms.md
new file mode 100644
index 00000000000000..cd3a88e2be252e
--- /dev/null
+++ b/docs/designers-developers/developers/block-api/block-transforms.md
@@ -0,0 +1,462 @@
+# Block Transforms
+
+Block Transforms is the API that allows a block to be transformed _from_ and _to_ other blocks, as well as _from_ other entities. Existing entities that work with this API include shortcodes, files, regular expressions, and raw DOM nodes.
+
+## Transform direction: `to` and `from`
+
+A block declares which transformations it supports via the optional `transforms` key of the block configuration, whose subkeys `to` and `from` hold an array of available transforms for every direction. Example:
+
+```js
+export const settings = {
+ title: 'My Block Title',
+ description: 'My block description',
+ /* ... */
+ transforms: {
+ from: [ /* supported from transforms */ ],
+ to: [ /* supported to transforms */ ],
+ }
+}
+```
+
+## Transformations Types
+
+This section goes through the existing types of transformations blocks support:
+
+* block
+* enter
+* files
+* prefix
+* raw
+* shortcode
+
+### Block
+
+This type of transformations support both _from_ and _to_ directions, allowing blocks to be converted into a different one. It has a corresponding UI control within the block toolbar.
+
+A transformation of type `block` is an object that takes the following parameters:
+
+- **type** _(string)_: the value `block`.
+- **blocks** _(array)_: a list of known block types. It also accepts the wildcard value (`"*"`), meaning that the transform is available to _all_ block types (eg: all blocks can transform into `core/group`).
+- **transform** _(function)_: a callback that receives the attributes and inner blocks of the block being processed. It should return a block object or an array of block objects.
+- **isMatch** _(function, optional)_: a callback that receives the block attributes and should return a boolean. Returning `false` from this function will prevent the transform from being available and displayed as an option to the user.
+- **priority** _(number, optional)_: controls the priority with which a transformation is applied, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
+
+**Example: from Paragraph block to Heading block**
+
+To declare this transformation we add the following code into the heading block configuration, which uses the `createBlock` function from the [`wp-blocks` package](/packages/blocks/README.md#createBlock).
+
+{% codetabs %}
+{% ES5 %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'block',
+ blocks: [ 'core/paragraph' ],
+ transform: function ( attributes ) {
+ return createBlock( 'core/heading', {
+ content: attributes.content,
+ } );
+ },
+ },
+ ]
+},
+```
+
+{% ESNext %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'block',
+ blocks: [ 'core/paragraph' ],
+ transform: ( { content } ) => {
+ return createBlock( 'core/heading', {
+ content,
+ } );
+ },
+ },
+ ]
+},
+```
+
+{% end %}
+
+**Example: blocks that have InnerBlocks**
+
+A block with InnerBlocks can also be transformed from and to another block with InnerBlocks.
+
+{% codetabs %}
+{% ES5 %}
+
+```js
+transforms: {
+ to: [
+ {
+ type: 'block',
+ blocks: [ 'some/block-with-innerblocks' ],
+ transform: function( attributes, innerBlocks ) {
+ return createBlock(
+ 'some/other-block-with-innerblocks',
+ attributes,
+ innerBlocks
+ );
+ },
+ },
+ ],
+},
+```
+
+{% ESNext %}
+
+```js
+transforms: {
+ to: [
+ {
+ type: 'block',
+ blocks: [ 'some/block-with-innerblocks' ],
+ transform: ( attributes, innerBlocks ) => {
+ return createBlock(
+ 'some/other-block-with-innerblocks',
+ attributes,
+ innerBlocks
+ );
+ },
+ },
+ ],
+},
+```
+
+{% end %}
+
+### Enter
+
+This type of transformations support the _from_ direction, allowing blocks to be created from some content introduced by the user. They're applied in a new block line after the user has introduced some content and hit the ENTER key.
+
+A transformation of type `enter` is an object that takes the following parameters:
+
+- **type** _(string)_: the value `enter`.
+- **regExp** _(RegExp)_: the Regular Expression to use as a matcher. If the value matches, the transformation will be applied.
+- **transform** _(function)_: a callback that receives the value that has been entered. It should return a block object or an array of block objects.
+- **priority** _(number, optional)_: controls the priority with which a transform is applied, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
+
+**Example: from --- to Separator block**
+
+To create a separator block when the user types the hypen three times and then hits the ENTER key we can use the following code:
+
+{% codetabs %}
+
+{% ES5 %}
+
+```js
+transforms = {
+ from: [
+ {
+ type: 'enter',
+ regExp: /^-{3,}$/,
+ transform: function( value ) {
+ return createBlock( 'core/separator' );
+ },
+ },
+ ]
+}
+```
+
+{% ESNext %}
+
+```js
+transforms = {
+ from: [
+ {
+ type: 'enter',
+ regExp: /^-{3,}$/,
+ transform: () => createBlock( 'core/separator' ),
+ },
+ ]
+}
+```
+
+{% end %}
+
+### Files
+
+This type of transformations support the _from_ direction, allowing blocks to be created from files dropped into the editor.
+
+A transformation of type `files` is an object that takes the following parameters:
+
+- **type** _(string)_: the value `files`.
+- **transform** _(function)_: a callback that receives the array of files being processed. It should return a block object or an array of block objects.
+- **isMatch** _(function, optional)_: a callback that receives the array of files being processed and should return a boolean. Returning `false` from this function will prevent the transform from being applied.
+- **priority** _(number, optional)_: controls the priority with which a transform is applied, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
+
+**Example: from file to File block**
+
+To create a File block when the user drops a file into the editor we can use the following code:
+
+{% codetabs %}
+{% ES5 %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'files',
+ isMatch: function( files ) {
+ return files.length === 1;
+ },
+ // By defining a lower priority than the default of 10,
+ // we make that the File block to be created as a fallback,
+ // if no other transform is found.
+ priority: 15,
+ transform: function( files ) {
+ var file = files[ 0 ];
+ var blobURL = createBlobURL( file );
+ // File will be uploaded in componentDidMount()
+ return createBlock( 'core/file', {
+ href: blobURL,
+ fileName: file.name,
+ textLinkHref: blobURL,
+ } );
+ },
+ },
+ ];
+}
+```
+
+{% ESNext %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'files',
+ isMatch: ( files ) => files.length === 1,
+ // By defining a lower priority than the default of 10,
+ // we make that the File block to be created as a fallback,
+ // if no other transform is found.
+ priority: 15,
+ transform: ( files ) => {
+ const file = files[ 0 ];
+ const blobURL = createBlobURL( file );
+ // File will be uploaded in componentDidMount()
+ return createBlock( 'core/file', {
+ href: blobURL,
+ fileName: file.name,
+ textLinkHref: blobURL,
+ } );
+ },
+ },
+ ];
+}
+```
+
+{% end %}
+
+### Prefix
+
+This type of transformations support the _from_ direction, allowing blocks to be created from some text typed by the user. They're applied when, in a new block line, the user types some text and then adds a trailing space.
+
+A transformation of type `prefix` is an object that takes the following parameters:
+
+- **type** _(string)_: the value `files`.
+- **prefix** _(string)_: the character or sequence of characters that match this transfrom.
+- **transform** _(function)_: a callback that receives the content introduced. It should return a block object or an array of block objects.
+- **priority** _(number, optional)_: controls the priority with which a transform is applied, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
+
+**Example: from text to custom block**
+
+If we want to create a custom block when the user types the question mark, we could use this code:
+
+{% codetabs %}
+{% ES5 %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'prefix',
+ prefix: '?',
+ transform: function( content ) {
+ return createBlock( 'my-plugin/question', {
+ content,
+ } );
+ },
+ },
+ ];
+}
+```
+
+{% ESNext %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'prefix',
+ prefix: '?',
+ transform( content ) {
+ return createBlock( 'my-plugin/question', {
+ content,
+ } );
+ },
+ },
+ ];
+}
+```
+
+{% end %}
+
+### Raw
+
+This type of transformations support the _from_ direction, allowing blocks to be created from raw HTML nodes. They're applied when the user executes the "Convert to Blocks" action frow within the block setting UI menu, as well as when some content is pasted or dropped into the editor.
+
+A transformation of type `raw` is an object that takes the following parameters:
+
+- **type** _(string)_: the value `raw`.
+- **transform** _(function, optional)_: a callback that receives the node being processed. It should return a block object or an array of block objects.
+- **schema** _(object|function, optional)_: it defines the attributes and children of the node that will be preserved on paste, according to its [HTML content model](https://html.spec.whatwg.org/multipage/dom.html#content-models). Take a look at [pasteHandler](/packages/blocks/README.md#pasteHandler) for more info.
+- **selector** _(string, optional)_: a CSS selector string to determine whether the element matches according to the [element.matches](https://developer.mozilla.org/en-US/docs/Web/API/Element/matches) method. The transform won't be executed if the element doesn't match. This is a shorthand and alternative to using `isMatch`, which, if present, will take precedence.
+- **isMatch** _(function, optional)_: a callback that receives the node being processed and should return a boolean. Returning `false` from this function will prevent the transform from being applied.
+- **priority** _(number, optional)_: controls the priority with which a transform is applied, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
+
+**Example: from URLs to Embed block**
+
+If we want to create an Embed block when the user pastes some URL in the editor, we could use this code:
+
+{% codetabs %}
+{% ES5 %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'raw',
+ isMatch: function( node ) {
+ return node.nodeName === 'P' &&
+ /^\s*(https?:\/\/\S+)\s*$/i.test( node.textContent );
+ },
+ transform: function( node ) {
+ return createBlock( 'core/embed', {
+ url: node.textContent.trim(),
+ } );
+ },
+ },
+ ],
+}
+```
+
+{% ESNext %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'raw',
+ isMatch: ( node ) =>
+ node.nodeName === 'P' &&
+ /^\s*(https?:\/\/\S+)\s*$/i.test( node.textContent ),
+ transform: ( node ) => {
+ return createBlock( 'core/embed', {
+ url: node.textContent.trim(),
+ } );
+ },
+ },
+ ],
+}
+```
+
+{% end %}
+
+### Shortcode
+
+This type of transformations support the _from_ direction, allowing blocks to be created from shortcodes. It's applied as part of the `raw` transformation process.
+
+A transformation of type `shortcode` is an object that takes the following parameters:
+
+- **type** _(string)_: the value `shortcode`.
+- **tag** _(string|array)_: the shortcode tag or list of shortcode aliases this transform can work with.
+- **attributes** _(object)_: object representing where the block attributes should be sourced from, according to the attributes shape defined by the [block configuration object](./block-registration.md). If a particular attribute contains a `shortcode` key, it should be a function that receives the shortcode attributes as the first arguments and the [WPShortcodeMatch](/packages/shortcode/README.md#next) as second, and returns a value for the attribute that will be sourced in the block's comment.
+- **isMatch** _(function, optional)_: a callback that receives the shortcode attributes per the [Shortcode API](https://codex.wordpress.org/Shortcode_API) and should return a boolean. Returning `false` from this function will prevent the shortcode to be transformed into this block.
+- **priority** _(number, optional)_: controls the priority with which a transform is applied, where a lower value will take precedence over higher values. This behaves much like a [WordPress hook](https://codex.wordpress.org/Plugin_API#Hook_to_WordPress). Like hooks, the default priority is `10` when not otherwise set.
+
+**Example: from shortcode to block**
+
+An existing shortcode can be transformed into its block counterpart.
+
+{% codetabs %}
+{% ES5 %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'shortcode',
+ tag: 'caption',
+ attributes: {
+ url: {
+ type: 'string',
+ source: 'attribute',
+ attribute: 'src',
+ selector: 'img',
+ },
+ align: {
+ type: 'string',
+ // The shortcode function will extract
+ // the shortcode atts into a value
+ // to be sourced in the block's comment.
+ shortcode: function( attributes ) {
+ var align = attributes.named.align ? attributes.named.align : 'alignnone';
+ return align.replace( 'align', '' );
+ },
+ },
+ },
+ // Prevent the shortcode to be converted
+ // into this block when it doesn't
+ // have the proper ID.
+ isMatch: function( attributes ) {
+ return attributes.named.id === 'my-id';
+ },
+ },
+ ]
+},
+```
+
+{% ESNext %}
+
+```js
+transforms: {
+ from: [
+ {
+ type: 'shortcode',
+ tag: 'caption',
+ attributes: {
+ url: {
+ type: 'string',
+ source: 'attribute',
+ attribute: 'src',
+ selector: 'img',
+ },
+ align: {
+ type: 'string',
+ // The shortcode function will extract
+ // the shortcode atts into a value
+ // to be sourced in the block's comment.
+ shortcode: ( { named: { align = 'alignnone' } } ) => {
+ return align.replace( 'align', '' );
+ },
+ },
+ },
+ // Prevent the shortcode to be converted
+ // into this block when it doesn't
+ // have the proper ID.
+ isMatch( { named: { id } } ) {
+ return id === 'my-id';
+ },
+ },
+ ]
+},
+```
+
+{% end %}
diff --git a/docs/designers-developers/developers/data/data-core-block-editor.md b/docs/designers-developers/developers/data/data-core-block-editor.md
index e19a7cb52c12b1..0632f870731fef 100644
--- a/docs/designers-developers/developers/data/data-core-block-editor.md
+++ b/docs/designers-developers/developers/data/data-core-block-editor.md
@@ -1124,6 +1124,7 @@ _Parameters_
- _clientIds_ `(string|Array)`: Block client ID(s) to replace.
- _blocks_ `(Object|Array)`: Replacement block(s).
- _indexToSelect_ `number`: Index of replacement block to select.
+- _initialPosition_ `number`: Index of caret after in the selected block after the operation.
# **replaceInnerBlocks**
diff --git a/docs/designers-developers/developers/filters/block-filters.md b/docs/designers-developers/developers/filters/block-filters.md
index f9a5ec173cd30a..b66acd3d612796 100644
--- a/docs/designers-developers/developers/filters/block-filters.md
+++ b/docs/designers-developers/developers/filters/block-filters.md
@@ -63,7 +63,7 @@ To simplify the process of registering and unregistering block styles, two serve
The `register_block_style` function receives the name of the block as the first argument and an array describing properties of the style as the second argument.
-The properties of the style array must include `name` and `label`:
+The properties of the style array must include `name` and `label`:
- `name`: The identifier of the style used to compute a CSS class.
- `label`: A human-readable label for the style.
@@ -231,7 +231,7 @@ var withInspectorControls = wp.compose.createHigherOrderComponent( function( Blo
props
),
el(
- wp.editor.InspectorControls,
+ wp.blockEditor.InspectorControls,
{},
el(
wp.components.PanelBody,
@@ -249,7 +249,7 @@ wp.hooks.addFilter( 'editor.BlockEdit', 'my-plugin/with-inspector-controls', wit
```js
const { createHigherOrderComponent } = wp.compose;
const { Fragment } = wp.element;
-const { InspectorControls } = wp.editor;
+const { InspectorControls } = wp.blockEditor;
const { PanelBody } = wp.components;
const withInspectorControls = createHigherOrderComponent( ( BlockEdit ) => {
diff --git a/docs/designers-developers/developers/slotfills/README.md b/docs/designers-developers/developers/slotfills/README.md
index 2b241ffb979ca7..3ab5536f55f823 100644
--- a/docs/designers-developers/developers/slotfills/README.md
+++ b/docs/designers-developers/developers/slotfills/README.md
@@ -97,6 +97,7 @@ const PostStatus = ( { isOpened, onTogglePanel } ) => (
There are currently eight available SlotFills in the `edit-post` package. Please refer to the individual items below for usage and example details:
+* [MainDashboardButton](/docs/designers-developers/developers/slotfills/main-dashboard-button.md)
* [PluginBlockSettingsMenuItem](/docs/designers-developers/developers/slotfills/plugin-block-settings-menu-item.md)
* [PluginDocumentSettingPanel](/docs/designers-developers/developers/slotfills/plugin-document-setting-panel.md)
* [PluginMoreMenuItem](/docs/designers-developers/developers/slotfills/plugin-more-menu-item.md)
diff --git a/docs/designers-developers/developers/slotfills/main-dashboard-button.md b/docs/designers-developers/developers/slotfills/main-dashboard-button.md
new file mode 100644
index 00000000000000..f036fd3e08141e
--- /dev/null
+++ b/docs/designers-developers/developers/slotfills/main-dashboard-button.md
@@ -0,0 +1,44 @@
+# MainDashboardButton
+
+This slot allows replacing the default main dashboard button that's used for closing
+the editor in fullscreen mode.
+
+## Example
+
+```js
+import { registerPlugin } from '@wordpress/plugins';
+import { __experimentalMainDashboardButton } from '@wordpress/edit-site';
+
+const MainDashboardButtonTest = () => (
+ <__experimentalMainDashboardButton>
+ Custom main dashboard button content
+
+);
+
+registerPlugin( 'main-dashboard-button-test', {
+ render: MainDashboardButtonTest,
+} );
+```
+
+If your goal is just to replace the icon of the existing button, that can be achieved
+in the following way:
+
+```js
+import { registerPlugin } from '@wordpress/plugins';
+import {
+ __experimentalMainDashboardButton,
+ __experimentalFullscrenModeClose
+} from '@wordpress/edit-site';
+import { close } from '@wordpress/icons';
+
+
+const MainDashboardButtonIconTest = () => (
+ <__experimentalMainDashboardButton>
+ <__experimentalFullscrenModeClose icon={ close } />
+
+);
+
+registerPlugin( 'main-dashboard-button-icon-test', {
+ render: MainDashboardButtonIconTest,
+} );
+```
diff --git a/docs/designers-developers/developers/tutorials/block-tutorial/creating-dynamic-blocks.md b/docs/designers-developers/developers/tutorials/block-tutorial/creating-dynamic-blocks.md
index 84a6fc4f1489f5..c48315515e5b4a 100644
--- a/docs/designers-developers/developers/tutorials/block-tutorial/creating-dynamic-blocks.md
+++ b/docs/designers-developers/developers/tutorials/block-tutorial/creating-dynamic-blocks.md
@@ -99,7 +99,7 @@ Because it is a dynamic block it doesn't need to override the default `save` imp
* Plugin Name: Gutenberg examples dynamic
*/
-function gutenberg_examples_dynamic_render_callback( $block, $content ) {
+function gutenberg_examples_dynamic_render_callback( $block_attributes, $content ) {
$recent_posts = wp_get_recent_posts( array(
'numberposts' => 1,
'post_status' => 'publish',
@@ -143,14 +143,6 @@ There are a few things to notice:
* The built-in `save` function just returns `null` because the rendering is performed server-side.
* The server-side rendering is a function taking the block and the block inner content as arguments, and returning the markup (quite similar to shortcodes)
-Note that for convenience and for backward-compatibility, the first argument of a `render_callback` function can also be referenced as an associative array of the block's attributes:
-
-```php
-function gutenberg_examples_dynamic_render_callback( $block_attributes ) {
- return 'The record ID is: ' . esc_html( $block_attributes['recordId'] );
-}
-```
-
## Live rendering in the block editor
Gutenberg 2.8 added the [``](/packages/server-side-render/README.md) block which enables rendering to take place on the server using PHP rather than in JavaScript.
diff --git a/docs/designers-developers/developers/tutorials/metabox/meta-block-4-use-data.md b/docs/designers-developers/developers/tutorials/metabox/meta-block-4-use-data.md
index e10049e16c2b90..e0f5ccd5f15905 100644
--- a/docs/designers-developers/developers/tutorials/metabox/meta-block-4-use-data.md
+++ b/docs/designers-developers/developers/tutorials/metabox/meta-block-4-use-data.md
@@ -25,7 +25,7 @@ You can also use the post meta data in other blocks. For this example the data i
In PHP, use the [register_block_type](https://developer.wordpress.org/reference/functions/register_block_type/) function to set a callback when the block is rendered to include the meta value.
```php
-function myguten_render_paragraph( $block, $content ) {
+function myguten_render_paragraph( $block_attributes, $content ) {
$value = get_post_meta( get_the_ID(), 'myguten_meta_block_field', true );
// check value is set before outputting
if ( $value ) {
diff --git a/docs/manifest.json b/docs/manifest.json
index 7e5cac22e042e5..d8d60d7448664d 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -83,6 +83,12 @@
"markdown_source": "../docs/designers-developers/developers/block-api/block-deprecation.md",
"parent": "block-api"
},
+ {
+ "title": "Block Transforms",
+ "slug": "block-transforms",
+ "markdown_source": "../docs/designers-developers/developers/block-api/block-transforms.md",
+ "parent": "block-api"
+ },
{
"title": "Templates",
"slug": "block-templates",
@@ -965,6 +971,12 @@
"markdown_source": "../packages/components/src/responsive-wrapper/README.md",
"parent": "components"
},
+ {
+ "title": "RovingTabIndex",
+ "slug": "roving-tab-index",
+ "markdown_source": "../packages/components/src/roving-tab-index/README.md",
+ "parent": "components"
+ },
{
"title": "Sandbox",
"slug": "sandbox",
@@ -1049,6 +1061,12 @@
"markdown_source": "../packages/components/src/tooltip/README.md",
"parent": "components"
},
+ {
+ "title": "TreeGrid",
+ "slug": "tree-grid",
+ "markdown_source": "../packages/components/src/tree-grid/README.md",
+ "parent": "components"
+ },
{
"title": "TreeSelect",
"slug": "tree-select",
diff --git a/docs/toc.json b/docs/toc.json
index 3c3269200af2aa..4b804c3ee6e510 100644
--- a/docs/toc.json
+++ b/docs/toc.json
@@ -15,6 +15,7 @@
{ "docs/designers-developers/developers/block-api/block-attributes.md": [] },
{ "docs/designers-developers/developers/block-api/block-context.md": [] },
{ "docs/designers-developers/developers/block-api/block-deprecation.md": [] },
+ { "docs/designers-developers/developers/block-api/block-transforms.md": [] },
{ "docs/designers-developers/developers/block-api/block-templates.md": [] },
{ "docs/designers-developers/developers/block-api/block-patterns.md": [] },
{ "docs/designers-developers/developers/block-api/block-annotations.md": [] }
diff --git a/gutenberg.php b/gutenberg.php
index e8143a9a355f27..2fcfb6bc76fe9a 100644
--- a/gutenberg.php
+++ b/gutenberg.php
@@ -3,7 +3,7 @@
* Plugin Name: Gutenberg
* Plugin URI: https://github.com/WordPress/gutenberg
* Description: Printing since 1440. This is the development plugin for the new block editor in core.
- * Version: 7.9.1
+ * Version: 8.1.0-rc.1
* Author: Gutenberg Team
* Text Domain: gutenberg
*
diff --git a/lib/blocks.php b/lib/blocks.php
index c7516568815019..9a381d73a1fd1b 100644
--- a/lib/blocks.php
+++ b/lib/blocks.php
@@ -17,33 +17,41 @@ function gutenberg_reregister_core_block_types() {
}
$block_names = array(
- 'archives.php' => 'core/archives',
- 'block.php' => 'core/block',
- 'calendar.php' => 'core/calendar',
- 'categories.php' => 'core/categories',
- 'latest-comments.php' => 'core/latest-comments',
- 'latest-posts.php' => 'core/latest-posts',
- 'legacy-widget.php' => 'core/legacy-widget',
- 'navigation.php' => 'core/navigation',
- 'rss.php' => 'core/rss',
- 'shortcode.php' => 'core/shortcode',
- 'search.php' => 'core/search',
- 'social-link.php' => 'core/social-link',
- 'tag-cloud.php' => 'core/tag-cloud',
- 'site-title.php' => 'core/site-title',
- 'template-part.php' => 'core/template-part',
- 'post-title.php' => 'core/post-title',
- 'post-content.php' => 'core/post-content',
- 'post-author.php' => 'core/post-author',
- 'post-comments.php' => 'core/post-comments',
- 'post-comments-count.php' => 'core/post-comments-count',
- 'post-comments-form.php' => 'core/post-comments-form',
- 'post-date.php' => 'core/post-date',
- 'post-excerpt.php' => 'core/post-excerpt',
- 'post-featured-image.php' => 'core/post-featured-image',
- 'post-tags.php' => 'core/post-tags',
+ 'archives.php' => 'core/archives',
+ 'block.php' => 'core/block',
+ 'calendar.php' => 'core/calendar',
+ 'categories.php' => 'core/categories',
+ 'latest-comments.php' => 'core/latest-comments',
+ 'latest-posts.php' => 'core/latest-posts',
+ 'legacy-widget.php' => 'core/legacy-widget',
+ 'navigation.php' => 'core/navigation',
+ 'rss.php' => 'core/rss',
+ 'shortcode.php' => 'core/shortcode',
+ 'search.php' => 'core/search',
+ 'social-link.php' => 'core/social-link',
+ 'tag-cloud.php' => 'core/tag-cloud',
);
+ if ( gutenberg_is_experiment_enabled( 'gutenberg-full-site-editing' ) ) {
+ $block_names = array_merge(
+ $block_names,
+ array(
+ 'post-title.php' => 'core/post-title',
+ 'post-content.php' => 'core/post-content',
+ 'post-author.php' => 'core/post-author',
+ 'post-comments.php' => 'core/post-comments',
+ 'post-comments-count.php' => 'core/post-comments-count',
+ 'post-comments-form.php' => 'core/post-comments-form',
+ 'post-date.php' => 'core/post-date',
+ 'post-excerpt.php' => 'core/post-excerpt',
+ 'post-featured-image.php' => 'core/post-featured-image',
+ 'post-tags.php' => 'core/post-tags',
+ 'site-title.php' => 'core/site-title',
+ 'template-part.php' => 'core/template-part',
+ )
+ );
+ }
+
$registry = WP_Block_Type_Registry::get_instance();
foreach ( $block_names as $file => $block_names ) {
diff --git a/lib/class-wp-block-list.php b/lib/class-wp-block-list.php
new file mode 100644
index 00000000000000..281fa6ed4deb68
--- /dev/null
+++ b/lib/class-wp-block-list.php
@@ -0,0 +1,189 @@
+blocks = $blocks;
+ $this->available_context = $available_context;
+ $this->registry = $registry;
+ }
+
+ /*
+ * ArrayAccess interface methods.
+ */
+
+ /**
+ * Returns true if a block exists by the specified block index, or false
+ * otherwise.
+ *
+ * @link https://www.php.net/manual/en/arrayaccess.offsetexists.php
+ *
+ * @param string $index Index of block to check.
+ *
+ * @return bool Whether block exists.
+ */
+ public function offsetExists( $index ) {
+ return isset( $this->blocks[ $index ] );
+ }
+
+ /**
+ * Returns the value by the specified block index.
+ *
+ * @link https://www.php.net/manual/en/arrayaccess.offsetget.php
+ *
+ * @param string $index Index of block value to retrieve.
+ *
+ * @return mixed|null Block value if exists, or null.
+ */
+ public function offsetGet( $index ) {
+ $block = $this->blocks[ $index ];
+
+ if ( isset( $block ) && is_array( $block ) ) {
+ $block = new WP_Block( $block, $this->available_context, $this->registry );
+ $this->blocks[ $index ] = $block;
+ }
+
+ return $block;
+ }
+
+ /**
+ * Assign a block value by the specified block index.
+ *
+ * @link https://www.php.net/manual/en/arrayaccess.offsetset.php
+ *
+ * @param string $index Index of block value to set.
+ * @param mixed $value Block value.
+ */
+ public function offsetSet( $index, $value ) {
+ if ( is_null( $index ) ) {
+ $this->blocks[] = $value;
+ } else {
+ $this->blocks[ $index ] = $value;
+ }
+ }
+
+ /**
+ * Unset a block.
+ *
+ * @link https://www.php.net/manual/en/arrayaccess.offsetunset.php
+ *
+ * @param string $index Index of block value to unset.
+ */
+ public function offsetUnset( $index ) {
+ unset( $this->blocks[ $index ] );
+ }
+
+ /*
+ * Iterator interface methods.
+ */
+
+ /**
+ * Rewinds back to the first element of the Iterator.
+ *
+ * @link https://www.php.net/manual/en/iterator.rewind.php
+ */
+ public function rewind() {
+ reset( $this->blocks );
+ }
+
+ /**
+ * Returns the current element of the block list.
+ *
+ * @link https://www.php.net/manual/en/iterator.current.php
+ *
+ * @return mixed Current element.
+ */
+ public function current() {
+ return $this->offsetGet( $this->key() );
+ }
+
+ /**
+ * Returns the key of the current element of the block list.
+ *
+ * @link https://www.php.net/manual/en/iterator.key.php
+ *
+ * @return mixed Key of the current element.
+ */
+ public function key() {
+ return key( $this->blocks );
+ }
+
+ /**
+ * Moves the current position of the block list to the next element.
+ *
+ * @link https://www.php.net/manual/en/iterator.next.php
+ */
+ public function next() {
+ next( $this->blocks );
+ }
+
+ /**
+ * Checks if current position is valid.
+ *
+ * @link https://www.php.net/manual/en/iterator.valid.php
+ */
+ public function valid() {
+ return null !== key( $this->blocks );
+ }
+
+ /*
+ * Countable interface methods.
+ */
+
+ /**
+ * Returns the count of blocks in the list.
+ *
+ * @link https://www.php.net/manual/en/countable.count.php
+ *
+ * @return int Block count.
+ */
+ public function count() {
+ return count( $this->blocks );
+ }
+
+}
diff --git a/lib/class-wp-patterns-registry.php b/lib/class-wp-block-patterns-registry.php
similarity index 64%
rename from lib/class-wp-patterns-registry.php
rename to lib/class-wp-block-patterns-registry.php
index c83ab704de8537..d2ab68cc34f906 100644
--- a/lib/class-wp-patterns-registry.php
+++ b/lib/class-wp-block-patterns-registry.php
@@ -1,6 +1,6 @@
registered_patterns[ $pattern_name ] = $pattern_properties;
+ $this->registered_patterns[ $pattern_name ] = array_merge(
+ $pattern_properties,
+ array( 'name' => $pattern_name )
+ );
return true;
}
@@ -102,7 +105,7 @@ public function is_registered( $pattern_name ) {
*
* @since 5.3.0
*
- * @return WP_Patterns_Registry The main instance.
+ * @return WP_Block_Patterns_Registry The main instance.
*/
public static function get_instance() {
if ( null === self::$instance ) {
@@ -113,6 +116,45 @@ public static function get_instance() {
}
}
+/**
+ * Registers a new pattern.
+ *
+ * @param string $pattern_name Pattern name including namespace.
+ * @param array $pattern_properties Array containing the properties of the pattern.
+ *
+ * @return boolean True if the pattern was registered with success and false otherwise.
+ */
+function register_block_pattern( $pattern_name, $pattern_properties ) {
+ return WP_Block_Patterns_Registry::get_instance()->register( $pattern_name, $pattern_properties );
+}
+
+/**
+ * Unregisters a pattern.
+ *
+ * @param string $pattern_name Pattern name including namespace.
+ *
+ * @return boolean True if the pattern was unregistered with success and false otherwise.
+ */
+function unregister_block_pattern( $pattern_name ) {
+ return WP_Block_Patterns_Registry::get_instance()->unregister( $pattern_name );
+}
+
+/**
+ * Class used for interacting with patterns.
+ */
+class WP_Patterns_Registry {
+
+ /**
+ * Utility method to retrieve the main instance of the class.
+ *
+ * @return WP_Block_Patterns_Registry The main instance.
+ */
+ public static function get_instance() {
+ _deprecated_function( 'WP_Patterns_Registry', 'Gutenberg 8.3.0', 'WP_Block_Patterns_Registry' );
+ return WP_Block_Patterns_Registry::get_instance();
+ }
+}
+
/**
* Registers a new pattern.
*
@@ -122,7 +164,8 @@ public static function get_instance() {
* @return boolean True if the pattern was registered with success and false otherwise.
*/
function register_pattern( $pattern_name, $pattern_properties ) {
- return WP_Patterns_Registry::get_instance()->register( $pattern_name, $pattern_properties );
+ _deprecated_function( __FUNCTION__, 'Gutenberg 8.3.0', 'register_block_pattern()' );
+ return register_block_pattern( $pattern_name, $pattern_properties );
}
/**
@@ -133,5 +176,6 @@ function register_pattern( $pattern_name, $pattern_properties ) {
* @return boolean True if the pattern was unregistered with success and false otherwise.
*/
function unregister_pattern( $pattern_name ) {
- return WP_Patterns_Registry::get_instance()->unregister( $pattern_name );
+ _deprecated_function( __FUNCTION__, 'Gutenberg 8.1.0', 'unregister_block_pattern()' );
+ return unregister_block_pattern( $pattern_name );
}
diff --git a/lib/class-wp-block.php b/lib/class-wp-block.php
index 4e3cf5f17989d0..d362dea65a0713 100644
--- a/lib/class-wp-block.php
+++ b/lib/class-wp-block.php
@@ -8,7 +8,14 @@
/**
* Class representing a parsed instance of a block.
*/
-class WP_Block implements ArrayAccess {
+class WP_Block {
+
+ /**
+ * Original parsed array representation of block.
+ *
+ * @var array
+ */
+ public $parsed_block;
/**
* Name of block.
@@ -41,13 +48,6 @@ class WP_Block implements ArrayAccess {
*/
protected $available_context;
- /**
- * Block attribute values.
- *
- * @var array
- */
- public $attributes = array();
-
/**
* List of inner blocks (of this same class)
*
@@ -94,7 +94,8 @@ class WP_Block implements ArrayAccess {
* @param WP_Block_Type_Registry $registry Optional block type registry.
*/
public function __construct( $block, $available_context = array(), $registry = null ) {
- $this->name = $block['blockName'];
+ $this->parsed_block = $block;
+ $this->name = $block['blockName'];
if ( is_null( $registry ) ) {
$registry = WP_Block_Type_Registry::get_instance();
@@ -102,14 +103,6 @@ public function __construct( $block, $available_context = array(), $registry = n
$this->block_type = $registry->get_registered( $this->name );
- if ( ! empty( $block['attrs'] ) ) {
- $this->attributes = $block['attrs'];
- }
-
- if ( ! is_null( $this->block_type ) ) {
- $this->attributes = $this->block_type->prepare_attributes_for_render( $this->attributes );
- }
-
$this->available_context = $available_context;
if ( ! empty( $this->block_type->context ) ) {
@@ -133,12 +126,7 @@ public function __construct( $block, $available_context = array(), $registry = n
}
/* phpcs:enable */
- $this->inner_blocks = array_map(
- function( $inner_block ) use ( $child_context, $registry ) {
- return new WP_Block( $inner_block, $child_context, $registry );
- },
- $block['innerBlocks']
- );
+ $this->inner_blocks = new WP_Block_List( $block['innerBlocks'], $child_context, $registry );
}
if ( ! empty( $block['innerHTML'] ) ) {
@@ -150,6 +138,34 @@ function( $inner_block ) use ( $child_context, $registry ) {
}
}
+ /**
+ * Returns a value from an inaccessible property.
+ *
+ * This is used to lazily initialize the `attributes` property of a block,
+ * such that it is only prepared with default attributes at the time that
+ * the property is accessed. For all other inaccessible properties, a `null`
+ * value is returned.
+ *
+ * @param string $name Property name.
+ *
+ * @return array|null Prepared attributes, or null.
+ */
+ public function __get( $name ) {
+ if ( 'attributes' === $name ) {
+ $this->attributes = isset( $this->parsed_block['attrs'] ) ?
+ $this->parsed_block['attrs'] :
+ array();
+
+ if ( ! is_null( $this->block_type ) ) {
+ $this->attributes = $this->block_type->prepare_attributes_for_render( $this->attributes );
+ }
+
+ return $this->attributes;
+ }
+
+ return null;
+ }
+
/**
* Generates the render output for the block.
*
@@ -170,71 +186,12 @@ public function render() {
if ( $is_dynamic ) {
$global_post = $post;
- $block_content = (string) call_user_func( $this->block_type->render_callback, $this, $block_content );
+ $block_content = (string) call_user_func( $this->block_type->render_callback, $this->attributes, $block_content, $this );
$post = $global_post;
}
- return $block_content;
- }
-
- /**
- * Returns true if an attribute exists by the specified attribute name, or
- * false otherwise.
- *
- * @link https://www.php.net/manual/en/arrayaccess.offsetexists.php
- *
- * @param string $attribute_name Name of attribute to check.
- *
- * @return bool Whether attribute exists.
- */
- public function offsetExists( $attribute_name ) {
- return isset( $this->attributes[ $attribute_name ] );
- }
-
- /**
- * Returns the value by the specified attribute name.
- *
- * @link https://www.php.net/manual/en/arrayaccess.offsetget.php
- *
- * @param string $attribute_name Name of attribute value to retrieve.
- *
- * @return mixed|null Attribute value if exists, or null.
- */
- public function offsetGet( $attribute_name ) {
- // This may cause an "Undefined index" notice if the attribute name does
- // not exist. This is expected, since the purpose of this implementation
- // is to align exactly to the expectations of operating on an array.
- return $this->attributes[ $attribute_name ];
- }
-
- /**
- * Assign an attribute value by the specified attribute name.
- *
- * @link https://www.php.net/manual/en/arrayaccess.offsetset.php
- *
- * @param string $attribute_name Name of attribute value to set.
- * @param mixed $value Attribute value.
- */
- public function offsetSet( $attribute_name, $value ) {
- if ( is_null( $attribute_name ) ) {
- // This is not technically a valid use-case for attributes. Since
- // this implementation is expected to align to expectations of
- // operating on an array, it is still supported.
- $this->attributes[] = $value;
- } else {
- $this->attributes[ $attribute_name ] = $value;
- }
- }
-
- /**
- * Unset an attribute.
- *
- * @link https://www.php.net/manual/en/arrayaccess.offsetunset.php
- *
- * @param string $attribute_name Name of attribute value to unset.
- */
- public function offsetUnset( $attribute_name ) {
- unset( $this->attributes[ $attribute_name ] );
+ /** This filter is documented in src/wp-includes/blocks.php */
+ return apply_filters( 'render_block', $block_content, $this->parsed_block );
}
}
diff --git a/lib/class-wp-rest-block-directory-controller.php b/lib/class-wp-rest-block-directory-controller.php
index 9c2c2f96160cfe..f6dc08c3333b9a 100644
--- a/lib/class-wp-rest-block-directory-controller.php
+++ b/lib/class-wp-rest-block-directory-controller.php
@@ -286,7 +286,7 @@ private static function parse_block_metadata( $plugin ) {
$block->rating_count = $plugin['num_ratings'];
$block->active_installs = $plugin['active_installs'];
$block->author_block_rating = $plugin['author_block_rating'] / 20;
- $block->author_block_count = $plugin['author_block_count'];
+ $block->author_block_count = (int) $plugin['author_block_count'];
// Plugin's author, not author in block.json.
$block->author = wp_strip_all_tags( $plugin['author'] );
diff --git a/lib/class-wp-rest-menu-items-controller.php b/lib/class-wp-rest-menu-items-controller.php
index cd592046fe661f..1e1b84975abeb0 100644
--- a/lib/class-wp-rest-menu-items-controller.php
+++ b/lib/class-wp-rest-menu-items-controller.php
@@ -440,12 +440,13 @@ protected function prepare_item_for_database( $request ) {
$menu_items = wp_get_nav_menu_items( $prepared_nav_item['menu-id'], array( 'post_status' => 'publish,draft' ) );
if ( 0 === (int) $prepared_nav_item['menu-item-position'] ) {
if ( $menu_items ) {
- $last_item = array_pop( $menu_items );
+ $last_item = $menu_items[ count( $menu_items ) - 1 ];
if ( $last_item && isset( $last_item->menu_order ) ) {
$prepared_nav_item['menu-item-position'] = $last_item->menu_order + 1;
} else {
- $prepared_nav_item['menu-item-position'] = count( $menu_items );
+ $prepared_nav_item['menu-item-position'] = count( $menu_items ) - 1;
}
+ array_push( $menu_items, $last_item );
} else {
$prepared_nav_item['menu-item-position'] = 1;
}
diff --git a/lib/client-assets.php b/lib/client-assets.php
index 4a0b6c3824f1d0..5427ee3abfdf3c 100644
--- a/lib/client-assets.php
+++ b/lib/client-assets.php
@@ -42,7 +42,7 @@ function gutenberg_url( $path ) {
*
* @since 4.1.0
*
- * @param WP_Scripts $scripts WP_Scripts instance (passed by reference).
+ * @param WP_Scripts $scripts WP_Scripts instance.
* @param string $handle Name of the script. Should be unique.
* @param string $src Full URL of the script, or path of the script relative to the WordPress root directory.
* @param array $deps Optional. An array of registered script handles this script depends on. Default empty array.
@@ -53,7 +53,7 @@ function gutenberg_url( $path ) {
* @param bool $in_footer Optional. Whether to enqueue the script before
instead of in the
.
* Default 'false'.
*/
-function gutenberg_override_script( &$scripts, $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
+function gutenberg_override_script( $scripts, $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
$script = $scripts->query( $handle, 'registered' );
if ( $script ) {
/*
@@ -174,7 +174,7 @@ function gutenberg_override_posttype_labels( $labels ) {
*
* @since 4.1.0
*
- * @param WP_Styles $styles WP_Styles instance (passed by reference).
+ * @param WP_Styles $styles WP_Styles instance.
* @param string $handle Name of the stylesheet. Should be unique.
* @param string $src Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
* @param array $deps Optional. An array of registered stylesheet handles this stylesheet depends on. Default empty array.
@@ -186,7 +186,7 @@ function gutenberg_override_posttype_labels( $labels ) {
* Default 'all'. Accepts media types like 'all', 'print' and 'screen', or media queries like
* '(orientation: portrait)' and '(max-width: 640px)'.
*/
-function gutenberg_override_style( &$styles, $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
+function gutenberg_override_style( $styles, $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
$style = $styles->query( $handle, 'registered' );
if ( $style ) {
$styles->remove( $handle );
@@ -203,9 +203,9 @@ function gutenberg_override_style( &$styles, $handle, $src, $deps = array(), $ve
*
* @since 0.1.0
*
- * @param WP_Scripts $scripts WP_Scripts instance (passed by reference).
+ * @param WP_Scripts $scripts WP_Scripts instance.
*/
-function gutenberg_register_vendor_scripts( &$scripts ) {
+function gutenberg_register_vendor_scripts( $scripts ) {
$suffix = SCRIPT_DEBUG ? '' : '.min';
/*
@@ -244,9 +244,9 @@ function gutenberg_register_vendor_scripts( &$scripts ) {
*
* @since 4.5.0
*
- * @param WP_Scripts $scripts WP_Scripts instance (passed by reference).
+ * @param WP_Scripts $scripts WP_Scripts instance.
*/
-function gutenberg_register_packages_scripts( &$scripts ) {
+function gutenberg_register_packages_scripts( $scripts ) {
foreach ( glob( gutenberg_dir_path() . 'build/*/index.js' ) as $path ) {
// Prefix `wp-` to package directory to get script handle.
// For example, `…/build/a11y/index.js` becomes `wp-a11y`.
@@ -296,9 +296,9 @@ function gutenberg_register_packages_scripts( &$scripts ) {
*
* @since 6.7.0
- * @param WP_Styles $styles WP_Styles instance (passed by reference).
+ * @param WP_Styles $styles WP_Styles instance.
*/
-function gutenberg_register_packages_styles( &$styles ) {
+function gutenberg_register_packages_styles( $styles ) {
// Editor Styles.
gutenberg_override_style(
$styles,
@@ -488,7 +488,7 @@ function gutenberg_vendor_script_filename( $handle, $src ) {
* possible, or downloading it if the cached version is unavailable or
* outdated.
*
- * @param WP_Scripts $scripts WP_Scripts instance (passed by reference).
+ * @param WP_Scripts $scripts WP_Scripts instance.
* @param string $handle Name of the script.
* @param string $src Full URL of the external script.
* @param array $deps Optional. An array of registered script handles this
@@ -502,7 +502,7 @@ function gutenberg_vendor_script_filename( $handle, $src ) {
*
* @since 0.1.0
*/
-function gutenberg_register_vendor_script( &$scripts, $handle, $src, $deps = array(), $ver = null, $in_footer = false ) {
+function gutenberg_register_vendor_script( $scripts, $handle, $src, $deps = array(), $ver = null, $in_footer = false ) {
if ( defined( 'GUTENBERG_LOAD_VENDOR_SCRIPTS' ) && ! GUTENBERG_LOAD_VENDOR_SCRIPTS ) {
return;
}
@@ -629,10 +629,7 @@ function gutenberg_extend_block_editor_styles( $settings ) {
* @return array Block Pattern Array.
*/
function gutenberg_load_block_pattern( $name ) {
- return json_decode(
- file_get_contents( __DIR__ . '/patterns/' . $name . '.json' ),
- true
- );
+ return require( __DIR__ . '/patterns/' . $name . '.php' );
}
/**
@@ -648,7 +645,7 @@ function gutenberg_extend_settings_block_patterns( $settings ) {
}
$settings['__experimentalBlockPatterns'] = array_merge(
- WP_Patterns_Registry::get_instance()->get_all_registered(),
+ WP_Block_Patterns_Registry::get_instance()->get_all_registered(),
$settings['__experimentalBlockPatterns']
);
@@ -686,12 +683,15 @@ function gutenberg_extend_settings_custom_units( $settings ) {
/*
* Register default patterns if not registered in Core already.
*/
-if ( class_exists( 'WP_Patterns_Registry' ) && ! WP_Patterns_Registry::get_instance()->is_registered( 'text-two-columns' ) ) {
- register_pattern( 'core/text-two-columns', gutenberg_load_block_pattern( 'text-two-columns' ) );
- register_pattern( 'core/two-buttons', gutenberg_load_block_pattern( 'two-buttons' ) );
- register_pattern( 'core/cover-abc', gutenberg_load_block_pattern( 'cover-abc' ) );
- register_pattern( 'core/two-images', gutenberg_load_block_pattern( 'two-images' ) );
- register_pattern( 'core/hero-two-columns', gutenberg_load_block_pattern( 'hero-two-columns' ) );
- register_pattern( 'core/numbered-features', gutenberg_load_block_pattern( 'numbered-features' ) );
- register_pattern( 'core/its-time', gutenberg_load_block_pattern( 'its-time' ) );
+
+if ( class_exists( 'WP_Block_Patterns_Registry' ) && ! WP_Block_Patterns_Registry::get_instance()->is_registered( 'text-two-columns' ) ) {
+ register_block_pattern( 'core/text-two-columns', gutenberg_load_block_pattern( 'text-two-columns' ) );
+ register_block_pattern( 'core/two-buttons', gutenberg_load_block_pattern( 'two-buttons' ) );
+ register_block_pattern( 'core/cover-abc', gutenberg_load_block_pattern( 'cover-abc' ) );
+ register_block_pattern( 'core/two-images', gutenberg_load_block_pattern( 'two-images' ) );
+ register_block_pattern( 'core/hero-two-columns', gutenberg_load_block_pattern( 'hero-two-columns' ) );
+ register_block_pattern( 'core/numbered-features', gutenberg_load_block_pattern( 'numbered-features' ) );
+ register_block_pattern( 'core/its-time', gutenberg_load_block_pattern( 'its-time' ) );
+ register_block_pattern( 'core/hero-right-column', gutenberg_load_block_pattern( 'hero-right-column' ) );
+ register_block_pattern( 'core/testimonials', gutenberg_load_block_pattern( 'testimonials' ) );
}
diff --git a/lib/compat.php b/lib/compat.php
index 96c07375dda41e..38e33289738e80 100644
--- a/lib/compat.php
+++ b/lib/compat.php
@@ -44,6 +44,20 @@ function register_block_type_from_metadata( $path, $args = array() ) {
}
}
+/**
+ * Extends block editor settings to determine whether to use drop cap feature.
+ *
+ * @param array $settings Default editor settings.
+ *
+ * @return array Filtered editor settings.
+ */
+function gutenberg_extend_settings_drop_cap( $settings ) {
+ $settings['__experimentalDisableDropCap'] = false;
+ return $settings;
+}
+add_filter( 'block_editor_settings', 'gutenberg_extend_settings_drop_cap' );
+
+
/**
* Extends block editor settings to include a list of image dimensions per size.
*
@@ -155,6 +169,9 @@ function gutenberg_get_post_from_context() {
if ( is_admin() || defined( 'REST_REQUEST' ) ) {
return null;
}
+
+ _deprecated_function( __FUNCTION__, '8.1.0' );
+
if ( ! in_the_loop() ) {
rewind_posts();
the_post();
@@ -168,7 +185,7 @@ function gutenberg_get_post_from_context() {
*
* This can be removed when plugin support requires WordPress 5.5.0+.
*
- * @see (TBD Trac Link)
+ * @see https://core.trac.wordpress.org/ticket/49927
*
* @param string|null $pre_render The pre-rendered content. Defaults to null.
* @param array $parsed_block The parsed block being rendered.
@@ -178,8 +195,10 @@ function gutenberg_get_post_from_context() {
function gutenberg_render_block_with_assigned_block_context( $pre_render, $parsed_block ) {
global $post;
- // If a non-null value is provided, a filter has run at an earlier priority
- // and has already handled custom rendering and should take precedence.
+ /*
+ * If a non-null value is provided, a filter has run at an earlier priority
+ * and has already handled custom rendering and should take precedence.
+ */
if ( null !== $pre_render ) {
return $pre_render;
}
@@ -188,10 +207,29 @@ function gutenberg_render_block_with_assigned_block_context( $pre_render, $parse
/** This filter is documented in src/wp-includes/blocks.php */
$parsed_block = apply_filters( 'render_block_data', $parsed_block, $source_block );
- $context = array( 'postId' => $post->ID );
- $block = new WP_Block( $parsed_block, $context );
- /** This filter is documented in src/wp-includes/blocks.php */
- return apply_filters( 'render_block', $block->render(), $parsed_block );
+ $context = array(
+ 'postId' => $post->ID,
+
+ /*
+ * The `postType` context is largely unnecessary server-side, since the
+ * ID is usually sufficient on its own. That being said, since a block's
+ * manifest is expected to be shared between the server and the client,
+ * it should be included to consistently fulfill the expectation.
+ */
+ 'postType' => $post->post_type,
+ );
+
+ /**
+ * Filters the default context provided to a rendered block.
+ *
+ * @param array $context Default context.
+ * @param array $parsed_block Block being rendered, filtered by `render_block_data`.
+ */
+ $context = apply_filters( 'render_block_context', $context, $parsed_block );
+
+ $block = new WP_Block( $parsed_block, $context );
+
+ return $block->render();
}
add_filter( 'pre_render_block', 'gutenberg_render_block_with_assigned_block_context', 9, 2 );
diff --git a/lib/demo-block-template-parts/header.html b/lib/demo-block-template-parts/header.html
index 11a9e3adf8beca..e4abb0f058ae23 100644
--- a/lib/demo-block-template-parts/header.html
+++ b/lib/demo-block-template-parts/header.html
@@ -1,3 +1,9 @@
-
-
Header Template Part
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/demo-block-templates/front-page.html b/lib/demo-block-templates/front-page.html
index da11edd68e8754..f150777c425f4a 100644
--- a/lib/demo-block-templates/front-page.html
+++ b/lib/demo-block-templates/front-page.html
@@ -1,66 +1,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
Say Hello to the New New Editor
+
-
-
-
+
+
Now you can edit your entire site!
+
+
-
-
-
-
-
+
+
+
-
-
-
-
With full-site editing you can modify all visual aspects of the site using the block editor.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
Rebuilding the entire editing experience pages and posts was just the start. We have expanded what is possible within the editor by making every part of your site customizable right in the editor. Customize your site navigation. Change your site title. Customize your footer. If you can imagine it, you can build it.
+
diff --git a/lib/edit-site-page.php b/lib/edit-site-page.php
index c9cad42f3360cd..5d7df87db07281 100644
--- a/lib/edit-site-page.php
+++ b/lib/edit-site-page.php
@@ -32,7 +32,7 @@ function gutenberg_is_edit_site_page( $page ) {
}
/**
- * Load editor styles (this is copied form edit-form-blocks.php).
+ * Load editor styles (this is copied from edit-form-blocks.php).
* Ideally the code is extracted into a reusable function.
*
* @return array Editor Styles Setting.
@@ -88,13 +88,7 @@ function gutenberg_get_editor_styles() {
* @param string $hook Page.
*/
function gutenberg_edit_site_init( $hook ) {
- global
- $_wp_current_template_id,
- $_wp_current_template_name,
- $_wp_current_template_content,
- $_wp_current_template_hierarchy,
- $_wp_current_template_part_ids,
- $current_screen;
+ global $current_screen;
if ( ! gutenberg_is_edit_site_page( $hook ) ) {
return;
@@ -149,50 +143,26 @@ function gutenberg_edit_site_init( $hook ) {
$settings['fontSizes'] = $font_sizes;
}
- // Get all templates by triggering `./template-loader.php`'s logic.
- $template_getters = array(
- 'get_embed_template',
- 'get_404_template',
- 'get_search_template',
- 'get_home_template',
- 'get_privacy_policy_template',
- 'get_post_type_archive_template',
- 'get_taxonomy_template',
- 'get_attachment_template',
- 'get_single_template',
- 'get_page_template',
- 'get_singular_template',
- 'get_category_template',
- 'get_tag_template',
- 'get_author_template',
- 'get_date_template',
- 'get_archive_template',
- );
$template_ids = array();
$template_part_ids = array();
- foreach ( $template_getters as $template_getter ) {
- call_user_func( $template_getter );
- apply_filters( 'template_include', null );
- if ( isset( $_wp_current_template_id ) ) {
- $template_ids[ $_wp_current_template_name ] = $_wp_current_template_id;
+ foreach ( get_template_types() as $template_type ) {
+ // Skip 'embed' for now because it is not a regular template type.
+ // Skip 'index' because it's a fallback that we handle differently.
+ if ( in_array( $template_type, array( 'embed', 'index' ), true ) ) {
+ continue;
}
- if ( isset( $_wp_current_template_part_ids ) ) {
- $template_part_ids = $template_part_ids + $_wp_current_template_part_ids;
+
+ $current_template = gutenberg_find_template_post_and_parts( $template_type );
+ if ( isset( $current_template ) ) {
+ $template_ids[ $current_template['template_post']->post_name ] = $current_template['template_post']->ID;
+ $template_part_ids = $template_part_ids + $current_template['template_part_ids'];
}
- $_wp_current_template_id = null;
- $_wp_current_template_name = null;
- $_wp_current_template_content = null;
- $_wp_current_template_hierarchy = null;
- $_wp_current_template_part_ids = null;
- }
- get_front_page_template();
- get_index_template();
- apply_filters( 'template_include', null );
- $template_ids[ $_wp_current_template_name ] = $_wp_current_template_id;
- if ( isset( $_wp_current_template_part_ids ) ) {
- $template_part_ids = $template_part_ids + $_wp_current_template_part_ids;
}
- $settings['templateId'] = $_wp_current_template_id;
+
+ $current_template_id = $template_ids['front-page'];
+
+ $settings['templateId'] = $current_template_id;
+ $settings['homeTemplateId'] = $current_template_id;
$settings['templateType'] = 'wp_template';
$settings['templateIds'] = array_values( $template_ids );
$settings['templatePartIds'] = array_values( $template_part_ids );
@@ -210,7 +180,7 @@ function gutenberg_edit_site_init( $hook ) {
'/wp/v2/types?context=edit',
'/wp/v2/taxonomies?per_page=-1&context=edit',
'/wp/v2/themes?status=active',
- sprintf( '/wp/v2/templates/%s?context=edit', $_wp_current_template_id ),
+ sprintf( '/wp/v2/templates/%s?context=edit', $current_template_id ),
array( '/wp/v2/media', 'OPTIONS' ),
);
$preload_data = array_reduce(
diff --git a/lib/global-styles.php b/lib/global-styles.php
index 6c98d272202976..8101bf41707f5b 100644
--- a/lib/global-styles.php
+++ b/lib/global-styles.php
@@ -153,13 +153,56 @@ function gutenberg_experimental_global_styles_get_core() {
}
/**
- * Return theme's Global Styles.
+ * Return theme's Global Styles. It also fetches the editor palettes
+ * declared via add_theme_support.
*
* @return array Global Styles tree.
*/
function gutenberg_experimental_global_styles_get_theme() {
- return gutenberg_experimental_global_styles_get_from_file(
- locate_template( 'experimental-theme.json' )
+ $theme_supports = array();
+ // Take colors from declared theme support.
+ $theme_colors = get_theme_support( 'editor-color-palette' )[0];
+ if ( is_array( $theme_colors ) ) {
+ foreach ( $theme_colors as $color ) {
+ $theme_supports['preset']['color'][ $color['slug'] ] = $color['color'];
+ }
+ }
+
+ // Take gradients from declared theme support.
+ $theme_gradients = get_theme_support( 'editor-gradient-presets' )[0];
+ if ( is_array( $theme_gradients ) ) {
+ foreach ( $theme_gradients as $gradient ) {
+ $theme_supports['preset']['gradient'][ $gradient['slug'] ] = $gradient['gradient'];
+ }
+ }
+
+ // Take font-sizes from declared theme support.
+ $theme_font_sizes = get_theme_support( 'editor-font-sizes' )[0];
+ if ( is_array( $theme_font_sizes ) ) {
+ foreach ( $theme_font_sizes as $font_size ) {
+ $theme_supports['preset']['font-size'][ $font_size['slug'] ] = $font_size['size'];
+ }
+ }
+
+ /*
+ * We want the presets declared in theme.json
+ * to take precedence over the ones declared via add_theme_support.
+ *
+ * However, at the moment, it's not clear how we're going to declare them
+ * in theme.json until we resolve issues related to i18n and
+ * unfold the proper theme.json hierarchy. See:
+ *
+ * https://github.com/wp-cli/i18n-command/pull/210
+ * https://github.com/WordPress/gutenberg/issues/20588
+ *
+ * Hence, for simplicity, we take here the existing presets
+ * from the add_theme_support, if any.
+ */
+ return array_merge(
+ gutenberg_experimental_global_styles_get_from_file(
+ locate_template( 'experimental-theme.json' )
+ ),
+ $theme_supports
);
}
diff --git a/lib/load.php b/lib/load.php
index 1dca8b64972c56..e0dbcd56431a84 100644
--- a/lib/load.php
+++ b/lib/load.php
@@ -59,14 +59,18 @@ function gutenberg_is_experiment_enabled( $name ) {
require dirname( __FILE__ ) . '/class-wp-block-styles-registry.php';
}
-if ( ! class_exists( 'WP_Patterns_Registry' ) ) {
- require dirname( __FILE__ ) . '/class-wp-patterns-registry.php';
+if ( ! class_exists( 'WP_Block_Patterns_Registry' ) ) {
+ require dirname( __FILE__ ) . '/class-wp-block-patterns-registry.php';
}
if ( ! class_exists( 'WP_Block' ) ) {
require dirname( __FILE__ ) . '/class-wp-block.php';
}
+if ( ! class_exists( 'WP_Block_List' ) ) {
+ require dirname( __FILE__ ) . '/class-wp-block-list.php';
+}
+
require dirname( __FILE__ ) . '/compat.php';
require dirname( __FILE__ ) . '/blocks.php';
diff --git a/lib/patterns/cover-abc.json b/lib/patterns/cover-abc.json
deleted file mode 100644
index c1ff0314f8b56b..00000000000000
--- a/lib/patterns/cover-abc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "Cover",
- "content": "\n
\n"
- }
diff --git a/lib/patterns/cover-abc.php b/lib/patterns/cover-abc.php
new file mode 100644
index 00000000000000..b2a50cadcdd332
--- /dev/null
+++ b/lib/patterns/cover-abc.php
@@ -0,0 +1,11 @@
+ __( 'Cover', 'gutenberg' ),
+ 'content' => "\n
\n
" . _x( 'abc!', 'pattern', 'gutenberg' ) . "
\n
\n",
+);
diff --git a/lib/patterns/hero-right-column.php b/lib/patterns/hero-right-column.php
new file mode 100644
index 00000000000000..19bf4e44fee4fb
--- /dev/null
+++ b/lib/patterns/hero-right-column.php
@@ -0,0 +1,11 @@
+ __( 'Hero Right Column', 'gutenberg' ),
+ 'content' => "\n
\n
\n\n\n\n
\n
\n\n\n\n
\n
\n\n\n\n
Extend it with over 54,000 plugins to help your website meet your needs. Hundreds of thousands of developers and site owners trust it worldwide. Add an online store, galleries, mailing lists, forums, analytics, and much more.
\n\n\n\n
Hundreds of thousands of developers and site owners trust it worldwide. Add an online store, galleries, mailing lists, forums, analytics, and much more.
\n\n\n\n
\n\n\n\n
\n
\n
\n
\n",
+);
diff --git a/lib/patterns/hero-two-columns.json b/lib/patterns/hero-two-columns.json
deleted file mode 100644
index eb1805c3dff0e3..00000000000000
--- a/lib/patterns/hero-two-columns.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "Hero Two Columns",
- "content": "\n
\n
Enjoy a wide variety of
\n\n\n\n
Custom Designs
\n\n\n\n
\n
\n
Extend it with over 54,000 plugins to help your website meet your needs. Add an online store, galleries, mailing lists, forums, analytics, and much more. Hundreds of thousands of developers and site owners trust it worldwide.
\n
\n\n\n\n
\n
Hundreds of thousands of developers and site owners trust it worldwide. Extend it with over 54,000 plugins to help your website meet your needs. Add an online store, galleries, mailing lists, forums, analytics, and much more.
\n
\n
\n
\n"
- }
diff --git a/lib/patterns/hero-two-columns.php b/lib/patterns/hero-two-columns.php
new file mode 100644
index 00000000000000..c23b8456a5d790
--- /dev/null
+++ b/lib/patterns/hero-two-columns.php
@@ -0,0 +1,11 @@
+ __( 'Hero Two Columns', 'gutenberg' ),
+ 'content' => "\n
\n
Enjoy a wide variety of
\n\n\n\n
Custom Designs
\n\n\n\n
\n
\n
Extend it with over 54,000 plugins to help your website meet your needs. Add an online store, galleries, mailing lists, forums, analytics, and much more. Hundreds of thousands of developers and site owners trust it worldwide.
\n
\n\n\n\n
\n
Hundreds of thousands of developers and site owners trust it worldwide. Extend it with over 54,000 plugins to help your website meet your needs. Add an online store, galleries, mailing lists, forums, analytics, and much more.
\n
\n
\n
\n",
+);
diff --git a/lib/patterns/its-time.json b/lib/patterns/its-time.json
deleted file mode 100644
index 0e048a908ba568..00000000000000
--- a/lib/patterns/its-time.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "It's time",
- "content": "\n
\n
\n
\n
NEW
\n\n\n\n
John Lenwood \"Jackie\" McLean was an American jazz alto saxophonist, composer, bandleader, and educator, and is one of the few musicians to be elected to the DownBeat Hall of Fame in the year of their death.
\n
\n\n\n\n
\n
space
\n\n\n\n
Derek Ansell's full-length biography of McLean, Sugar Free Saxophone (London: Northway Books, 2012), details the story of his career and provides a full analysis of his music on record.
\n
\n
\n\n\n\n
\n
\n"
- }
diff --git a/lib/patterns/its-time.php b/lib/patterns/its-time.php
new file mode 100644
index 00000000000000..8f927f8d376c0d
--- /dev/null
+++ b/lib/patterns/its-time.php
@@ -0,0 +1,11 @@
+ __( 'It\'s time', 'gutenberg' ),
+ 'content' => "\n
\n
\n
\n
NEW
\n\n\n\n
John Lenwood \"Jackie\" McLean was an American jazz alto saxophonist, composer, bandleader, and educator, and is one of the few musicians to be elected to the DownBeat Hall of Fame in the year of their death.
\n
\n\n\n\n
\n
space
\n\n\n\n
Derek Ansell's full-length biography of McLean, Sugar Free Saxophone (London: Northway Books, 2012), details the story of his career and provides a full analysis of his music on record.
\n
\n
\n\n\n\n
\n
\n",
+);
diff --git a/lib/patterns/numbered-features.json b/lib/patterns/numbered-features.json
deleted file mode 100644
index 010a0f52e09ed4..00000000000000
--- a/lib/patterns/numbered-features.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "Numbered Features",
- "content": "\n
\n
\n
\n
\n\n\n\n
\n
Custom Designs
\n\n\n\n
Extend it with over 54,000 plugins to help your website meet your needs.
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n\n\n\n
\n
High Performance
\n\n\n\n
Add an online store, galleries, mailing lists, forums, analytics, and much more.
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n\n\n\n
\n
Easy and Accessible
\n\n\n\n
Hundreds of thousands of developers and site owners trust it worldwide.
\n
\n
\n
\n
\n"
- }
diff --git a/lib/patterns/numbered-features.php b/lib/patterns/numbered-features.php
new file mode 100644
index 00000000000000..ab6b1a73719003
--- /dev/null
+++ b/lib/patterns/numbered-features.php
@@ -0,0 +1,11 @@
+ __( 'Numbered Features', 'gutenberg' ),
+ 'content' => "\n
\n
\n
\n
\n\n\n\n
\n
Custom Designs
\n\n\n\n
Extend it with over 54,000 plugins to help your website meet your needs.
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n\n\n\n
\n
High Performance
\n\n\n\n
Add an online store, galleries, mailing lists, forums, analytics, and much more.
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n\n\n\n
\n
Easy and Accessible
\n\n\n\n
Hundreds of thousands of developers and site owners trust it worldwide.
\n
\n
\n
\n
\n",
+);
diff --git a/lib/patterns/testimonials.php b/lib/patterns/testimonials.php
new file mode 100644
index 00000000000000..504ece83ea7e8a
--- /dev/null
+++ b/lib/patterns/testimonials.php
@@ -0,0 +1,11 @@
+ __( 'Testimonials', 'gutenberg' ),
+ 'content' => "\n
\n
\n
\n
\n
\"This software is designed for everyone, emphasizing accessibility, performance, security, and ease of use.\"
\n
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n\n\n\n
\n
\n
\"We believe great software should work with minimum set up, so you can focus on sharing your story, or services freely.\"
\n
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n\n\n\n
\n
\n
\"The product is simple and predictable so you can easily get started. It also offers powerful features for success.\"
\n
\n\n\n\n
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n
\n",
+);
diff --git a/lib/patterns/text-two-columns.json b/lib/patterns/text-two-columns.json
deleted file mode 100644
index 6dd4ff98351ee1..00000000000000
--- a/lib/patterns/text-two-columns.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "Two Columns of Text",
- "content": "\n
\n
\n
CHAPTER 1. Loomings
\n\n\n\n
Call me Ishmael. Some years ago—never mind how long precisely—having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen and regulating the circulation.
\n
\n\n\n\n
\n
Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people’s hats off—then, I account it high time to get to sea as soon as I can.
\n
\n
\n"
- }
diff --git a/lib/patterns/text-two-columns.php b/lib/patterns/text-two-columns.php
new file mode 100644
index 00000000000000..0df940ba26e47c
--- /dev/null
+++ b/lib/patterns/text-two-columns.php
@@ -0,0 +1,11 @@
+ __( 'Two Columns of Text', 'gutenberg' ),
+ 'content' => "\n
\n
\n
CHAPTER 1. Loomings
\n\n\n\n
Call me Ishmael. Some years ago—never mind how long precisely—having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen and regulating the circulation.
\n
\n\n\n\n
\n
Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people’s hats off—then, I account it high time to get to sea as soon as I can.
\n
\n
\n",
+);
diff --git a/lib/patterns/two-buttons.json b/lib/patterns/two-buttons.json
deleted file mode 100644
index 74bc530e77dedd..00000000000000
--- a/lib/patterns/two-buttons.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "Two Buttons",
- "content": "\n
\n"
- }
diff --git a/lib/patterns/two-buttons.php b/lib/patterns/two-buttons.php
new file mode 100644
index 00000000000000..5536943245ddc3
--- /dev/null
+++ b/lib/patterns/two-buttons.php
@@ -0,0 +1,11 @@
+ __( 'Two Buttons', 'gutenberg' ),
+ 'content' => "\n
\n",
+);
diff --git a/lib/patterns/two-images.json b/lib/patterns/two-images.json
deleted file mode 100644
index d3303be5d5c6c1..00000000000000
--- a/lib/patterns/two-images.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "__file": "wp_block",
- "title": "Two images side by side",
- "content": "\n \n"
-}
diff --git a/lib/patterns/two-images.php b/lib/patterns/two-images.php
new file mode 100644
index 00000000000000..f4ef009d97f830
--- /dev/null
+++ b/lib/patterns/two-images.php
@@ -0,0 +1,11 @@
+ __( 'Two images side by side', 'gutenberg' ),
+ 'content' => "\n \n",
+);
diff --git a/lib/template-loader.php b/lib/template-loader.php
index 0ef843f205bc7d..c0be22bc759571 100644
--- a/lib/template-loader.php
+++ b/lib/template-loader.php
@@ -6,21 +6,14 @@
*/
/**
- * Adds necessary filters to use 'wp_template' posts instead of theme template files.
+ * Return a list of all overrideable default template types.
+ *
+ * @see get_query_template
+ *
+ * @return string[] List of all overrideable default template types.
*/
-function gutenberg_add_template_loader_filters() {
- if ( ! post_type_exists( 'wp_template' ) ) {
- return;
- }
-
- /**
- * Array of all overrideable default template types.
- *
- * @see get_query_template
- *
- * @var array
- */
- $template_types = array(
+function get_template_types() {
+ return array(
'index',
'404',
'archive',
@@ -29,47 +22,94 @@ function gutenberg_add_template_loader_filters() {
'tag',
'taxonomy',
'date',
- // Skip 'embed' for now because it is not a regular template type.
+ 'embed',
'home',
- 'frontpage',
- 'privacypolicy',
+ 'front-page',
+ 'privacy-policy',
'page',
'search',
'single',
'singular',
'attachment',
);
- foreach ( $template_types as $template_type ) {
- add_filter( $template_type . '_template', 'gutenberg_override_query_template', 20, 3 );
+}
+
+/**
+ * Adds necessary filters to use 'wp_template' posts instead of theme template files.
+ */
+function gutenberg_add_template_loader_filters() {
+ if ( ! post_type_exists( 'wp_template' ) ) {
+ return;
}
- add_filter( 'template_include', 'gutenberg_find_template', 20 );
+ foreach ( get_template_types() as $template_type ) {
+ if ( 'embed' === $template_type ) { // Skip 'embed' for now because it is not a regular template type.
+ continue;
+ }
+ add_filter( str_replace( '-', '', $template_type ) . '_template', 'gutenberg_override_query_template', 20, 3 );
+ }
}
add_action( 'wp_loaded', 'gutenberg_add_template_loader_filters' );
/**
- * Filters into the "{$type}_template" hooks to record the current template hierarchy.
+ * Get the template hierarchy for a given template type.
+ *
+ * Internally, this filters into the "{$type}_template_hierarchy" hook to record the type-specific template hierarchy.
*
- * The method returns an empty result for every template so that a 'wp_template' post
- * is used instead.
+ * @param string $template_type A template type.
+ * @return string[] A list of template candidates, in descending order of priority.
+ */
+function get_template_hierachy( $template_type ) {
+ if ( ! in_array( $template_type, get_template_types(), true ) ) {
+ return array();
+ }
+
+ $get_template_function = 'get_' . str_replace( '-', '_', $template_type ) . '_template'; // front-page -> get_front_page_template.
+ $template_hierarchy_filter = str_replace( '-', '', $template_type ) . '_template_hierarchy'; // front-page -> frontpage_template_hierarchy.
+
+ $result = array();
+ $template_hierarchy_filter_function = function( $templates ) use ( &$result ) {
+ $result = $templates;
+ return $templates;
+ };
+
+ add_filter( $template_hierarchy_filter, $template_hierarchy_filter_function, 20, 1 );
+ call_user_func( $get_template_function ); // This invokes template_hierarchy_filter.
+ remove_filter( $template_hierarchy_filter, $template_hierarchy_filter_function, 20 );
+
+ return $result;
+}
+
+/**
+ * Filters into the "{$type}_template" hooks to redirect them to the Full Site Editing template canvas.
*
- * @see gutenberg_find_template
+ * Internally, this communicates the block content that needs to be used by the template canvas through a global variable.
*
* @param string $template Path to the template. See locate_template().
* @param string $type Sanitized filename without extension.
* @param array $templates A list of template candidates, in descending order of priority.
- * @return string Empty string to ensure template file is considered not found.
+ * @return string The path to the Full Site Editing template canvas file.
*/
function gutenberg_override_query_template( $template, $type, array $templates = array() ) {
- global $_wp_current_template_hierarchy;
+ global $_wp_current_template_id, $_wp_current_template_content;
- if ( ! is_array( $_wp_current_template_hierarchy ) ) {
- $_wp_current_template_hierarchy = $templates;
- } else {
- $_wp_current_template_hierarchy = array_merge( $_wp_current_template_hierarchy, $templates );
+ $current_template = gutenberg_find_template_post_and_parts( basename( $template, '.php' ), $templates );
+
+ if ( $current_template ) {
+ $_wp_current_template_id = $current_template['template_post']->ID;
+ $_wp_current_template_content = empty( $current_template['template_post']->post_content ) ? __( 'Empty template.', 'gutenberg' ) : $current_template['template_post']->post_content;
}
- return '';
+ // Add hooks for template canvas.
+ // Add viewport meta tag.
+ add_action( 'wp_head', 'gutenberg_viewport_meta_tag', 0 );
+
+ // Render title tag with content, regardless of whether theme has title-tag support.
+ remove_action( 'wp_head', '_wp_render_title_tag', 1 ); // Remove conditional title tag rendering...
+ add_action( 'wp_head', 'gutenberg_render_title_tag', 1 ); // ...and make it unconditional.
+
+ // This file will be included instead of the theme's template file.
+ return gutenberg_dir_path() . 'lib/template-canvas.php';
}
/**
@@ -79,14 +119,43 @@ function gutenberg_override_query_template( $template, $type, array $templates =
* @access private
*
* @param array $block The root block to start traversing from.
+ * @return int[] A list of template parts IDs for the given block.
*/
function create_auto_draft_for_template_part_block( $block ) {
- global $_wp_current_template_part_ids;
+ if ( 'core/template-part' !== $block['blockName'] ) {
+ return array();
+ }
- if ( 'core/template-part' === $block['blockName'] ) {
- if ( ! isset( $block['attrs']['postId'] ) ) {
+ if ( isset( $block['attrs']['postId'] ) ) {
+ // Template part is customized.
+ $template_part_id = $block['attrs']['postId'];
+ } else {
+ // A published post might already exist if this template part
+ // was customized elsewhere or if it's part of a customized
+ // template. We also check if an auto-draft was already created
+ // because preloading can make this run twice, so, different code
+ // paths can end up with different posts for the same template part.
+ // E.g. The server could send back post ID 1 to the client, preload,
+ // and create another auto-draft. So, if the client tries to resolve the
+ // post ID from the slug and theme, it won't match with what the server sent.
+ $template_part_query = new WP_Query(
+ array(
+ 'post_type' => 'wp_template_part',
+ 'post_status' => array( 'publish', 'auto-draft' ),
+ 'name' => $block['attrs']['slug'],
+ 'meta_key' => 'theme',
+ 'meta_value' => $block['attrs']['theme'],
+ 'posts_per_page' => 1,
+ 'no_found_rows' => true,
+ )
+ );
+ $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null;
+ if ( $template_part_post ) {
+ $template_part_id = $template_part_post->ID;
+ } else {
+ // Template part is not customized, get it from a file and make an auto-draft for it.
$template_part_file_path =
- get_stylesheet_directory() . '/block-template-parts/' . $block['attrs']['slug'] . '.html';
+ get_stylesheet_directory() . '/block-template-parts/' . $block['attrs']['slug'] . '.html';
if ( ! file_exists( $template_part_file_path ) ) {
if ( gutenberg_is_experiment_enabled( 'gutenberg-full-site-editing-demo' ) ) {
$template_part_file_path =
@@ -110,41 +179,45 @@ function create_auto_draft_for_template_part_block( $block ) {
),
)
);
- } else {
- $template_part_id = $block['attrs']['postId'];
- }
-
- if ( isset( $_wp_current_template_part_ids ) ) {
- $_wp_current_template_part_ids[ $block['attrs']['slug'] ] = $template_part_id;
- } else {
- $_wp_current_template_part_ids = array( $block['attrs']['slug'] => $template_part_id );
}
}
+ $template_part_ids = array( $block['attrs']['slug'] => $template_part_id );
+
foreach ( $block['innerBlocks'] as $inner_block ) {
- create_auto_draft_for_template_part_block( $inner_block );
+ $template_part_ids = array_merge( $template_part_ids, create_auto_draft_for_template_part_block( $inner_block ) );
}
+ return $template_part_ids;
}
/**
- * Find the correct 'wp_template' post for the current hierarchy and return the path
- * to the canvas file that will render it.
+ * Return the correct 'wp_template' post and template part IDs for the current template.
+ *
+ * Accepts an optional $template_hierarchy argument as a hint.
*
- * @param string $template_file Original template file. Will be overridden.
- * @return string Path to the canvas file to include.
+ * @param string $template_type The current template type.
+ * @param string[] $template_hierarchy (optional) The current template hierarchy, ordered by priority.
+ * @return null|array {
+ * @type WP_Post|null template_post A template post object, or null if none could be found.
+ * @type int[] A list of template parts IDs for the template.
+ * }
*/
-function gutenberg_find_template( $template_file ) {
- global $_wp_current_template_id, $_wp_current_template_name, $_wp_current_template_content, $_wp_current_template_hierarchy;
+function gutenberg_find_template_post_and_parts( $template_type, $template_hierarchy = array() ) {
+ if ( ! $template_type ) {
+ return null;
+ }
- // Bail if no relevant template hierarchy was determined, or if the template file
- // was overridden another way.
- if ( ! $_wp_current_template_hierarchy || $template_file ) {
- return $template_file;
+ if ( empty( $template_hierarchy ) ) {
+ if ( 'index' === $template_type ) {
+ $template_hierarchy = get_template_hierachy( 'index' );
+ } else {
+ $template_hierarchy = array_merge( get_template_hierachy( $template_type ), get_template_hierachy( 'index' ) );
+ }
}
$slugs = array_map(
'gutenberg_strip_php_suffix',
- $_wp_current_template_hierarchy
+ $template_hierarchy
);
// Find most specific 'wp_template' post matching the hierarchy.
@@ -226,23 +299,18 @@ function gutenberg_find_template( $template_file ) {
}
if ( $current_template_post ) {
+ $template_part_ids = array();
if ( is_admin() ) {
foreach ( parse_blocks( $current_template_post->post_content ) as $block ) {
- create_auto_draft_for_template_part_block( $block );
+ $template_part_ids = array_merge( $template_part_ids, create_auto_draft_for_template_part_block( $block ) );
}
}
- $_wp_current_template_id = $current_template_post->ID;
- $_wp_current_template_name = $current_template_post->post_name;
- $_wp_current_template_content = empty( $current_template_post->post_content ) ? __( 'Empty template.', 'gutenberg' ) : $current_template_post->post_content;
+ return array(
+ 'template_post' => $current_template_post,
+ 'template_part_ids' => $template_part_ids,
+ );
}
-
- // Add extra hooks for template canvas.
- add_action( 'wp_head', 'gutenberg_viewport_meta_tag', 0 );
- remove_action( 'wp_head', '_wp_render_title_tag', 1 );
- add_action( 'wp_head', 'gutenberg_render_title_tag', 1 );
-
- // This file will be included instead of the theme's template file.
- return gutenberg_dir_path() . 'lib/template-canvas.php';
+ return null;
}
/**
@@ -331,3 +399,28 @@ function gutenberg_template_loader_filter_block_editor_settings( $settings ) {
return $settings;
}
add_filter( 'block_editor_settings', 'gutenberg_template_loader_filter_block_editor_settings' );
+
+/**
+ * Removes post details from block context when rendering a block template.
+ *
+ * @param array $context Default context.
+ *
+ * @return array Filtered context.
+ */
+function gutenberg_template_render_without_post_block_context( $context ) {
+ /*
+ * When loading a template or template part directly and not through a page
+ * that resolves it, the top-level post ID and type context get set to that
+ * of the template part. Templates are just the structure of a site, and
+ * they should not be available as post context because blocks like Post
+ * Content would recurse infinitely.
+ */
+ if ( isset( $context['postType'] ) &&
+ ( 'wp_template' === $context['postType'] || 'wp_template_part' === $context['postType'] ) ) {
+ unset( $context['postId'] );
+ unset( $context['postType'] );
+ }
+
+ return $context;
+}
+add_filter( 'render_block_context', 'gutenberg_template_render_without_post_block_context' );
diff --git a/lib/template-parts.php b/lib/template-parts.php
index 62b892e8129098..7edf730bcaacd0 100644
--- a/lib/template-parts.php
+++ b/lib/template-parts.php
@@ -68,6 +68,26 @@ function gutenberg_register_template_part_post_type() {
}
add_action( 'init', 'gutenberg_register_template_part_post_type' );
+/**
+ * Filters `wp_template_part` posts slug resolution to bypass deduplication logic as
+ * template part slugs should be unique.
+ *
+ * @param string $slug The resolved slug (post_name).
+ * @param int $post_ID Post ID.
+ * @param string $post_status No uniqueness checks are made if the post is still draft or pending.
+ * @param string $post_type Post type.
+ * @param int $post_parent Post parent ID.
+ * @param int $original_slug The desired slug (post_name).
+ * @return string The original, desired slug.
+ */
+function gutenberg_filter_wp_template_part_wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
+ if ( 'wp_template_part' === $post_type ) {
+ return $original_slug;
+ }
+ return $slug;
+}
+add_filter( 'wp_unique_post_slug', 'gutenberg_filter_wp_template_part_wp_unique_post_slug', 10, 6 );
+
/**
* Fixes the label of the 'wp_template_part' admin menu entry.
*/
@@ -118,3 +138,42 @@ function gutenberg_render_template_part_list_table_column( $column_name, $post_i
echo esc_html( $post->post_name );
}
add_action( 'manage_wp_template_part_posts_custom_column', 'gutenberg_render_template_part_list_table_column', 10, 2 );
+
+
+/**
+ * Filter for adding a `theme` parameter to `wp_template_part` queries.
+ *
+ * @param array $query_params The query parameters.
+ * @return array Filtered $query_params.
+ */
+function filter_rest_wp_template_part_collection_params( $query_params ) {
+ $query_params += array(
+ 'theme' => array(
+ 'description' => __( 'The theme slug for the theme that created the template part.', 'gutenberg' ),
+ 'type' => 'string',
+ ),
+ );
+ return $query_params;
+}
+apply_filters( 'rest_wp_template_part_collection_params', 'filter_rest_wp_template_part_collection_params', 99, 1 );
+
+/**
+ * Filter for supporting the `theme` parameter in `wp_template_part` queries.
+ *
+ * @param array $args The query arguments.
+ * @param WP_REST_Request $request The request object.
+ * @return array Filtered $args.
+ */
+function filter_rest_wp_template_part_query( $args, $request ) {
+ if ( $request['theme'] ) {
+ $meta_query = isset( $args['meta_query'] ) ? $args['meta_query'] : array();
+ $meta_query[] = array(
+ 'key' => 'theme',
+ 'value' => $request['theme'],
+ );
+
+ $args['meta_query'] = $meta_query;
+ }
+ return $args;
+}
+add_filter( 'rest_wp_template_part_query', 'filter_rest_wp_template_part_query', 99, 2 );
diff --git a/lib/templates.php b/lib/templates.php
index 95382cdc16fc56..9336cf44717cfe 100644
--- a/lib/templates.php
+++ b/lib/templates.php
@@ -155,3 +155,51 @@ function gutenberg_render_template_list_table_column( $column_name, $post_id ) {
echo esc_html( $post->post_name );
}
add_action( 'manage_wp_template_posts_custom_column', 'gutenberg_render_template_list_table_column', 10, 2 );
+
+/**
+ * Filter for adding a `resolved` parameter to `wp_template` queries.
+ *
+ * @param array $query_params The query parameters.
+ * @return array Filtered $query_params.
+ */
+function filter_rest_wp_template_collection_params( $query_params ) {
+ $query_params += array(
+ 'resolved' => array(
+ 'description' => __( 'Whether to filter for resolved templates', 'gutenberg' ),
+ 'type' => 'boolean',
+ ),
+ );
+ return $query_params;
+}
+apply_filters( 'rest_wp_template_collection_params', 'filter_rest_wp_template_collection_params', 99, 1 );
+
+/**
+ * Filter for supporting the `resolved` parameter in `wp_template` queries.
+ *
+ * @param array $args The query arguments.
+ * @param WP_REST_Request $request The request object.
+ * @return array Filtered $args.
+ */
+function filter_rest_wp_template_query( $args, $request ) {
+ if ( $request['resolved'] ) {
+ $template_ids = array( 0 ); // Return nothing by default (the 0 is needed for `post__in`).
+ $template_types = $request['slug'] ? array( $request['slug'] ) : get_template_types();
+
+ foreach ( $template_types as $template_type ) {
+ // Skip 'embed' for now because it is not a regular template type.
+ // Skip 'index' because it's a fallback that we handle differently.
+ if ( in_array( $template_type, array( 'embed', 'index' ), true ) ) {
+ continue;
+ }
+
+ $current_template = gutenberg_find_template_post_and_parts( $template_type );
+ if ( isset( $current_template ) ) {
+ $template_ids[ $current_template['template_post']->post_name ] = $current_template['template_post']->ID;
+ }
+ }
+ $args['post__in'] = array_values( $template_ids );
+ }
+
+ return $args;
+}
+add_filter( 'rest_wp_template_query', 'filter_rest_wp_template_query', 99, 2 );
diff --git a/package-lock.json b/package-lock.json
index a4c9a3dffc472e..3077e98a4e305c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "gutenberg",
- "version": "7.9.1",
+ "version": "8.1.0-rc.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -172,19 +172,8 @@
},
"dependencies": {
"leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true
- },
- "levenary": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
- "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
- "dev": true,
- "requires": {
- "leven": "^3.1.0"
- }
+ "version": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
},
"semver": {
"version": "5.7.1",
@@ -1117,19 +1106,8 @@
},
"dependencies": {
"leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true
- },
- "levenary": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
- "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
- "dev": true,
- "requires": {
- "leven": "^3.1.0"
- }
+ "version": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
},
"semver": {
"version": "5.7.1",
@@ -1274,18 +1252,8 @@
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "source-map-support": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
- "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
}
}
},
@@ -1474,44 +1442,20 @@
},
"dependencies": {
"@emotion/hash": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.4.tgz",
+ "version": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.4.tgz",
"integrity": "sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A=="
},
"@emotion/memoize": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "version": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
"integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
},
"@emotion/utils": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz",
"integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw=="
- },
- "babel-plugin-emotion": {
- "version": "10.0.27",
- "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.27.tgz",
- "integrity": "sha512-SUNYcT4FqhOqvwv0z1oeYhqgheU8qrceLojuHyX17ngo7WtWqN5I9l3IGHzf21Xraj465CVzF4IvOlAF+3ed0A==",
- "requires": {
- "@babel/helper-module-imports": "^7.0.0",
- "@emotion/hash": "0.7.4",
- "@emotion/memoize": "0.7.4",
- "@emotion/serialize": "^0.11.15",
- "babel-plugin-macros": "^2.0.0",
- "babel-plugin-syntax-jsx": "^6.18.0",
- "convert-source-map": "^1.5.0",
- "escape-string-regexp": "^1.0.5",
- "find-root": "^1.1.0",
- "source-map": "^0.5.7"
- }
}
}
},
- "@emotion/hash": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.3.tgz",
- "integrity": "sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw=="
- },
"@emotion/is-prop-valid": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.5.tgz",
@@ -1599,28 +1543,6 @@
"@emotion/is-prop-valid": "0.8.5",
"@emotion/serialize": "^0.11.14",
"@emotion/utils": "0.11.2"
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz",
- "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==",
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
- },
- "@emotion/serialize": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.14.tgz",
- "integrity": "sha512-6hTsySIuQTbDbv00AnUO6O6Xafdwo5GswRlMZ5hHqiFx+4pZ7uGWXUQFW46Kc2taGhP89uXMXn/lWQkdyTosPA==",
- "requires": {
- "@emotion/hash": "0.7.3",
- "@emotion/memoize": "0.7.3",
- "@emotion/unitless": "0.7.4",
- "@emotion/utils": "0.11.2",
- "csstype": "^2.5.7"
- }
- }
}
},
"@emotion/stylis": {
@@ -1629,11 +1551,6 @@
"integrity": "sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ==",
"dev": true
},
- "@emotion/unitless": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.4.tgz",
- "integrity": "sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ=="
- },
"@emotion/utils": {
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.2.tgz",
@@ -2177,447 +2094,115 @@
}
},
"@jest/core": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz",
- "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==",
- "dev": true,
- "requires": {
- "@jest/console": "^24.7.1",
- "@jest/reporters": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "graceful-fs": "^4.1.15",
- "jest-changed-files": "^24.9.0",
- "jest-config": "^24.9.0",
- "jest-haste-map": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.9.0",
- "jest-resolve-dependencies": "^24.9.0",
- "jest-runner": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-snapshot": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "jest-watcher": "^24.9.0",
- "micromatch": "^3.1.10",
- "p-each-series": "^1.0.0",
- "realpath-native": "^1.1.0",
- "rimraf": "^2.5.4",
- "slash": "^2.0.0",
- "strip-ansi": "^5.0.0"
- },
- "dependencies": {
- "@jest/reporters": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz",
- "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==",
- "dev": true,
- "requires": {
- "@jest/environment": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "glob": "^7.1.2",
- "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",
- "istanbul-reports": "^2.2.6",
- "jest-haste-map": "^24.9.0",
- "jest-resolve": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-worker": "^24.6.0",
- "node-notifier": "^5.4.2",
- "slash": "^2.0.0",
- "source-map": "^0.6.0",
- "string-length": "^2.0.0"
- }
- },
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
- },
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "dev": true
- },
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true
- },
- "istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "dev": true,
- "requires": {
- "@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": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node-notifier": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
- "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
- "dev": true,
- "requires": {
- "growly": "^1.3.0",
- "is-wsl": "^1.1.0",
- "semver": "^5.5.0",
- "shellwords": "^0.1.1",
- "which": "^1.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "string-length": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
- "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=",
- "dev": true,
- "requires": {
- "astral-regex": "^1.0.0",
- "strip-ansi": "^4.0.0"
- },
- "dependencies": {
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- }
- }
- }
- }
- },
- "@jest/environment": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz",
- "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz",
+ "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^24.9.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "jest-mock": "^24.9.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
- },
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- }
- }
- },
- "@jest/fake-timers": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
- "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
- "requires": {
- "@jest/types": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-mock": "^24.9.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
- },
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "requires": {
- "@types/yargs-parser": "*"
- }
- }
- }
- },
- "@jest/reporters": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.3.0.tgz",
- "integrity": "sha512-1u0ZBygs0C9DhdYgLCrRfZfNKQa+9+J7Uo+Z9z0RWLHzgsxhoG32lrmMOtUw48yR6bLNELdvzormwUqSk4H4Vg==",
- "dev": true,
- "requires": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^25.3.0",
- "@jest/test-result": "^25.3.0",
- "@jest/transform": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/console": "^25.5.0",
+ "@jest/reporters": "^25.5.1",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
+ "ansi-escapes": "^4.2.1",
"chalk": "^3.0.0",
- "collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
- "glob": "^7.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^4.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.0.2",
- "jest-haste-map": "^25.3.0",
- "jest-resolve": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-worker": "^25.2.6",
- "node-notifier": "^6.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-changed-files": "^25.5.0",
+ "jest-config": "^25.5.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-message-util": "^25.5.0",
+ "jest-regex-util": "^25.2.6",
+ "jest-resolve": "^25.5.1",
+ "jest-resolve-dependencies": "^25.5.4",
+ "jest-runner": "^25.5.4",
+ "jest-runtime": "^25.5.4",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "jest-watcher": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "p-each-series": "^2.1.0",
+ "realpath-native": "^2.0.0",
+ "rimraf": "^3.0.0",
"slash": "^3.0.0",
- "source-map": "^0.6.0",
- "string-length": "^3.1.0",
- "terminal-link": "^2.0.0",
- "v8-to-istanbul": "^4.0.1"
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
"@jest/console": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.3.0.tgz",
- "integrity": "sha512-LvSDNqpmZIZyweFaEQ6wKY7CbexPitlsLHGJtcooNECo0An/w49rFhjCJzu6efeb6+a3ee946xss1Jcd9r03UQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
"dev": true,
"requires": {
- "@jest/source-map": "^25.2.6",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
- "jest-util": "^25.3.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
"slash": "^3.0.0"
}
},
- "@jest/source-map": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz",
- "integrity": "sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ==",
+ "@jest/reporters": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz",
+ "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==",
"dev": true,
"requires": {
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.3",
- "source-map": "^0.6.0"
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.4",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "jest-haste-map": "^25.5.1",
+ "jest-resolve": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
+ "node-notifier": "^6.0.0",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^3.1.0",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^4.1.3"
}
},
"@jest/test-result": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.3.0.tgz",
- "integrity": "sha512-mqrGuiiPXl1ap09Mydg4O782F3ouDQfsKqtQzIjitpwv3t1cHDwCto21jThw6WRRE+dKcWQvLG70GpyLJICfGw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
"dev": true,
"requires": {
- "@jest/console": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
}
},
"@jest/transform": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.3.0.tgz",
- "integrity": "sha512-W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+ "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"babel-plugin-istanbul": "^6.0.0",
"chalk": "^3.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.3",
- "jest-haste-map": "^25.3.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
"jest-regex-util": "^25.2.6",
- "jest-util": "^25.3.0",
+ "jest-util": "^25.5.0",
"micromatch": "^4.0.2",
"pirates": "^4.0.1",
"realpath-native": "^2.0.0",
@@ -2626,6 +2211,41 @@
"write-file-atomic": "^3.0.0"
}
},
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.11.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"ansi-styles": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
@@ -2668,6 +2288,12 @@
"fill-range": "^7.0.1"
}
},
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
"chalk": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
@@ -2702,17 +2328,27 @@
"to-regex-range": "^5.0.1"
}
},
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
"fsevents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
- "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
"dev": true,
"optional": true
},
"graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"has-flag": {
@@ -2728,42 +2364,58 @@
"dev": true
},
"is-wsl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
- "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
- "dev": true,
- "optional": true
- },
- "istanbul-reports": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
- "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
+ "optional": true,
"requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
+ "is-docker": "^2.0.0"
}
},
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
"jest-haste-map": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.3.0.tgz",
- "integrity": "sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"fsevents": "^2.1.2",
- "graceful-fs": "^4.2.3",
- "jest-serializer": "^25.2.6",
- "jest-util": "^25.3.0",
- "jest-worker": "^25.2.6",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"micromatch": "^4.0.2",
"sane": "^4.0.3",
"walker": "^1.0.7",
"which": "^2.0.2"
}
},
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
"jest-regex-util": {
"version": "25.2.6",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
@@ -2771,47 +2423,83 @@
"dev": true
},
"jest-resolve": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.3.0.tgz",
- "integrity": "sha512-IHoQAAybulsJ+ZgWis+ekYKDAoFkVH5Nx/znpb41zRtpxj4fr2WNV9iDqavdSm8GIpMlsfZxbC/fV9DhW0q9VQ==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"browser-resolve": "^1.11.3",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"jest-pnp-resolver": "^1.2.1",
+ "read-pkg-up": "^7.0.1",
"realpath-native": "^2.0.0",
- "resolve": "^1.15.1"
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
}
},
"jest-serializer": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz",
- "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==",
- "dev": true
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4"
+ }
},
"jest-util": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.3.0.tgz",
- "integrity": "sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"is-ci": "^2.0.0",
"make-dir": "^3.0.0"
}
},
+ "jest-validate": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+ "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "jest-get-type": "^25.2.6",
+ "leven": "^3.1.0",
+ "pretty-format": "^25.5.0"
+ }
+ },
"jest-worker": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz",
- "integrity": "sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
"merge-stream": "^2.0.0",
"supports-color": "^7.0.0"
}
},
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -2842,6 +2530,13 @@
"which": "^1.3.1"
},
"dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "optional": true
+ },
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -2854,18 +2549,121 @@
}
}
},
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ }
+ },
"realpath-native": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
@@ -2873,20 +2671,19 @@
"dev": true
},
"resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
}
},
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "optional": true
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
},
"slash": {
"version": "3.0.0",
@@ -2900,6 +2697,15 @@
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
"supports-color": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -2909,42 +2715,49 @@
"has-flag": "^4.0.0"
}
},
- "test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
+ "v8-to-istanbul": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz",
+ "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
},
"dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "safe-buffer": "~5.1.1"
}
+ },
+ "source-map": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "dev": true
}
}
},
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -2968,168 +2781,42 @@
}
}
},
- "@jest/source-map": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
- "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
- "requires": {
- "callsites": "^3.0.0",
- "graceful-fs": "^4.1.15",
- "source-map": "^0.6.0"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "@jest/test-result": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
- "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
+ "@jest/environment": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz",
+ "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==",
+ "dev": true,
"requires": {
- "@jest/console": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/istanbul-lib-coverage": "^2.0.0"
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0"
},
"dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "@jest/fake-timers": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+ "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
+ "dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@jest/types": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "lolex": "^5.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "requires": {
- "@types/yargs-parser": "*"
- }
- }
- }
- },
- "@jest/test-sequencer": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz",
- "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==",
- "dev": true,
- "requires": {
- "@jest/test-result": "^24.9.0",
- "jest-haste-map": "^24.9.0",
- "jest-runner": "^24.9.0",
- "jest-runtime": "^24.9.0"
- }
- },
- "@jest/transform": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
- "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.1.0",
- "@jest/types": "^24.9.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.9.0",
- "jest-regex-util": "^24.9.0",
- "jest-util": "^24.9.0",
- "micromatch": "^3.1.10",
- "pirates": "^4.0.1",
- "realpath-native": "^1.1.0",
- "slash": "^2.0.0",
- "source-map": "^0.6.1",
- "write-file-atomic": "2.4.1"
- },
- "dependencies": {
"@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
- },
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "dev": true
- },
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "write-file-atomic": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
- "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- }
- }
- },
- "@jest/types": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz",
- "integrity": "sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^15.0.0",
- "chalk": "^3.0.0"
- },
- "dependencies": {
"ansi-styles": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
@@ -3140,6 +2827,15 @@
"color-convert": "^2.0.1"
}
},
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
"chalk": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
@@ -3165,12 +2861,87 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-mock": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0"
+ }
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
"supports-color": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -3179,1201 +2950,1053 @@
"requires": {
"has-flag": "^4.0.0"
}
- }
- }
- },
- "@lerna/add": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.18.0.tgz",
- "integrity": "sha512-Z5EaQbBnJn1LEPb0zb0Q2o9T8F8zOnlCsj6JYpY6aSke17UUT7xx0QMN98iBK+ueUHKjN/vdFdYlNCYRSIdujA==",
- "dev": true,
- "requires": {
- "@evocateur/pacote": "^9.6.3",
- "@lerna/bootstrap": "3.18.0",
- "@lerna/command": "3.18.0",
- "@lerna/filter-options": "3.18.0",
- "@lerna/npm-conf": "3.16.0",
- "@lerna/validation-error": "3.13.0",
- "dedent": "^0.7.0",
- "npm-package-arg": "^6.1.0",
- "p-map": "^2.1.0",
- "semver": "^6.2.0"
- },
- "dependencies": {
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
}
}
},
- "@lerna/bootstrap": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.18.0.tgz",
- "integrity": "sha512-3DZKWIaKvr7sUImoKqSz6eqn84SsOVMnA5QHwgzXiQjoeZ/5cg9x2r+Xj3+3w/lvLoh0j8U2GNtrIaPNis4bKQ==",
- "dev": true,
+ "@jest/fake-timers": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
+ "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
"requires": {
- "@lerna/command": "3.18.0",
- "@lerna/filter-options": "3.18.0",
- "@lerna/has-npm-version": "3.16.5",
- "@lerna/npm-install": "3.16.5",
- "@lerna/package-graph": "3.18.0",
- "@lerna/pulse-till-done": "3.13.0",
- "@lerna/rimraf-dir": "3.16.5",
- "@lerna/run-lifecycle": "3.16.2",
- "@lerna/run-topologically": "3.18.0",
- "@lerna/symlink-binary": "3.17.0",
- "@lerna/symlink-dependencies": "3.17.0",
- "@lerna/validation-error": "3.13.0",
- "dedent": "^0.7.0",
- "get-port": "^4.2.0",
- "multimatch": "^3.0.0",
- "npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2",
- "p-finally": "^1.0.0",
- "p-map": "^2.1.0",
- "p-map-series": "^1.0.0",
- "p-waterfall": "^1.0.0",
- "read-package-tree": "^5.1.6",
- "semver": "^6.2.0"
+ "@jest/types": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0"
},
"dependencies": {
- "get-port": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
- "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
- "dev": true
- },
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "@types/yargs": {
+ "version": "13.0.8",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
+ "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
}
}
},
- "@lerna/changed": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.18.2.tgz",
- "integrity": "sha512-xVnFuj4A6Avxem+8R+KOuKDxfnxp1S5tM5nwsh7n3IhCN5Ga7YINV/JgPhrwgcpqPCVBvAowkilghT/I0r6wUw==",
- "dev": true,
- "requires": {
- "@lerna/collect-updates": "3.18.0",
- "@lerna/command": "3.18.0",
- "@lerna/listable": "3.18.0",
- "@lerna/output": "3.13.0",
- "@lerna/version": "3.18.2"
- }
- },
- "@lerna/check-working-tree": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz",
- "integrity": "sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==",
- "dev": true,
- "requires": {
- "@lerna/collect-uncommitted": "3.16.5",
- "@lerna/describe-ref": "3.16.5",
- "@lerna/validation-error": "3.13.0"
- }
- },
- "@lerna/child-process": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz",
- "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==",
+ "@jest/globals": {
+ "version": "25.5.2",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz",
+ "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==",
"dev": true,
"requires": {
- "chalk": "^2.3.1",
- "execa": "^1.0.0",
- "strong-log-transformer": "^2.0.0"
+ "@jest/environment": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "expect": "^25.5.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "@jest/environment": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz",
+ "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0"
}
},
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "@jest/fake-timers": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+ "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
"dev": true,
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "@jest/types": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "lolex": "^5.0.0"
}
},
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.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"
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "pump": {
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "@lerna/clean": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.18.0.tgz",
- "integrity": "sha512-BiwBELZNkarRQqj+v5NPB1aIzsOX+Y5jkZ9a5UbwHzEdBUQ5lQa0qaMLSOve/fSkaiZQxe6qnTyatN75lOcDMg==",
- "dev": true,
- "requires": {
- "@lerna/command": "3.18.0",
- "@lerna/filter-options": "3.18.0",
- "@lerna/prompt": "3.13.0",
- "@lerna/pulse-till-done": "3.13.0",
- "@lerna/rimraf-dir": "3.16.5",
- "p-map": "^2.1.0",
- "p-map-series": "^1.0.0",
- "p-waterfall": "^1.0.0"
- },
- "dependencies": {
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
- }
- }
- },
- "@lerna/cli": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.0.tgz",
- "integrity": "sha512-AwDyfGx7fxJgeaZllEuyJ9LZ6Tdv9yqRD9RX762yCJu+PCAFvB9bp6OYuRSGli7QQgM0CuOYnSg4xVNOmuGKDA==",
- "dev": true,
- "requires": {
- "@lerna/global-options": "3.13.0",
- "dedent": "^0.7.0",
- "npmlog": "^4.1.2",
- "yargs": "^14.2.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
},
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "expect": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz",
+ "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==",
"dev": true,
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "@jest/types": "^25.5.0",
+ "ansi-styles": "^4.0.0",
+ "jest-get-type": "^25.2.6",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-regex-util": "^25.2.6"
}
},
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
- "locate-path": "^3.0.0"
+ "to-regex-range": "^5.0.1"
}
},
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+ "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
"dev": true,
"requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "chalk": "^3.0.0",
+ "diff-sequences": "^25.2.6",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
}
},
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-matcher-utils": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+ "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
+ "dev": true,
"requires": {
- "pify": "^3.0.0"
+ "chalk": "^3.0.0",
+ "jest-diff": "^25.5.0",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
}
},
- "p-limit": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
- "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
}
},
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "jest-mock": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
"dev": true,
"requires": {
- "p-limit": "^2.0.0"
+ "@jest/types": "^25.5.0"
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "jest-regex-util": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+ "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
"dev": true
},
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
}
},
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- }
- },
- "write-json-file": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
- "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
- "requires": {
- "detect-indent": "^5.0.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^1.0.0",
- "pify": "^3.0.0",
- "sort-keys": "^2.0.0",
- "write-file-atomic": "^2.0.0"
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
}
},
- "write-pkg": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
- "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
- "requires": {
- "sort-keys": "^2.0.0",
- "write-json-file": "^2.2.0"
- }
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
},
- "y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
},
- "yargs": {
- "version": "14.2.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz",
- "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==",
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "cliui": "^5.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^15.0.0"
+ "has-flag": "^4.0.0"
}
},
- "yargs-parser": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
- "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
+ "is-number": "^7.0.0"
}
}
}
},
- "@lerna/collect-uncommitted": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz",
- "integrity": "sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==",
+ "@jest/reporters": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.3.0.tgz",
+ "integrity": "sha512-1u0ZBygs0C9DhdYgLCrRfZfNKQa+9+J7Uo+Z9z0RWLHzgsxhoG32lrmMOtUw48yR6bLNELdvzormwUqSk4H4Vg==",
"dev": true,
"requires": {
- "@lerna/child-process": "3.16.5",
- "chalk": "^2.3.1",
- "figgy-pudding": "^3.5.1",
- "npmlog": "^4.1.2"
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^25.3.0",
+ "@jest/test-result": "^25.3.0",
+ "@jest/transform": "^25.3.0",
+ "@jest/types": "^25.3.0",
+ "chalk": "^3.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^4.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.0.2",
+ "jest-haste-map": "^25.3.0",
+ "jest-resolve": "^25.3.0",
+ "jest-util": "^25.3.0",
+ "jest-worker": "^25.2.6",
+ "node-notifier": "^6.0.0",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^3.1.0",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^4.0.1"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "@jest/console": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.3.0.tgz",
+ "integrity": "sha512-LvSDNqpmZIZyweFaEQ6wKY7CbexPitlsLHGJtcooNECo0An/w49rFhjCJzu6efeb6+a3ee946xss1Jcd9r03UQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@jest/source-map": "^25.2.6",
+ "chalk": "^3.0.0",
+ "jest-util": "^25.3.0",
+ "slash": "^3.0.0"
}
- }
- }
- },
- "@lerna/collect-updates": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.18.0.tgz",
- "integrity": "sha512-LJMKgWsE/var1RSvpKDIxS8eJ7POADEc0HM3FQiTpEczhP6aZfv9x3wlDjaHpZm9MxJyQilqxZcasRANmRcNgw==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/describe-ref": "3.16.5",
- "minimatch": "^3.0.4",
- "npmlog": "^4.1.2",
- "slash": "^2.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
- "dev": true
- }
- }
- },
- "@lerna/command": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.18.0.tgz",
- "integrity": "sha512-JQ0TGzuZc9Ky8xtwtSLywuvmkU8X62NTUT3rMNrUykIkOxBaO+tE0O98u2yo/9BYOeTRji9IsjKZEl5i9Qt0xQ==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/package-graph": "3.18.0",
- "@lerna/project": "3.18.0",
- "@lerna/validation-error": "3.13.0",
- "@lerna/write-log-file": "3.13.0",
- "dedent": "^0.7.0",
- "execa": "^1.0.0",
- "is-ci": "^2.0.0",
- "lodash": "^4.17.14",
- "npmlog": "^4.1.2"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ },
+ "@jest/source-map": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz",
+ "integrity": "sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ==",
"dev": true,
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.3",
+ "source-map": "^0.6.0"
}
},
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "@jest/test-result": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.3.0.tgz",
+ "integrity": "sha512-mqrGuiiPXl1ap09Mydg4O782F3ouDQfsKqtQzIjitpwv3t1cHDwCto21jThw6WRRE+dKcWQvLG70GpyLJICfGw==",
"dev": true,
"requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.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"
+ "@jest/console": "^25.3.0",
+ "@jest/types": "^25.3.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
}
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "@jest/transform": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.3.0.tgz",
+ "integrity": "sha512-W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg==",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^25.3.0",
+ "babel-plugin-istanbul": "^6.0.0",
+ "chalk": "^3.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.3",
+ "jest-haste-map": "^25.3.0",
+ "jest-regex-util": "^25.2.6",
+ "jest-util": "^25.3.0",
+ "micromatch": "^4.0.2",
+ "pirates": "^4.0.1",
+ "realpath-native": "^2.0.0",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
}
},
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "@lerna/conventional-commits": {
- "version": "3.16.4",
- "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.16.4.tgz",
- "integrity": "sha512-QSZJ0bC9n6FVaf+7KDIq5zMv8WnHXnwhyL5jG1Nyh3SgOg9q2uflqh7YsYB+G6FwaRfnPaKosh6obijpYg0llA==",
- "dev": true,
- "requires": {
- "@lerna/validation-error": "3.13.0",
- "conventional-changelog-angular": "^5.0.3",
- "conventional-changelog-core": "^3.1.6",
- "conventional-recommended-bump": "^5.0.0",
- "fs-extra": "^8.1.0",
- "get-stream": "^4.0.0",
- "lodash.template": "^4.5.0",
- "npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2",
- "pify": "^4.0.1",
- "semver": "^6.2.0"
- },
- "dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
}
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "babel-plugin-istanbul": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz",
+ "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^4.0.0",
+ "test-exclude": "^6.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
},
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
"requires": {
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "color-name": "~1.1.4"
}
},
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
+ "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+ "dev": true,
+ "optional": true
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
"dev": true
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "write-json-file": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
- "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
+ "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
+ "dev": true,
+ "optional": true
+ },
+ "jest-haste-map": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.3.0.tgz",
+ "integrity": "sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A==",
+ "dev": true,
"requires": {
- "detect-indent": "^5.0.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^1.0.0",
- "pify": "^3.0.0",
- "sort-keys": "^2.0.0",
- "write-file-atomic": "^2.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
+ "@jest/types": "^25.3.0",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.1.2",
+ "graceful-fs": "^4.2.3",
+ "jest-serializer": "^25.2.6",
+ "jest-util": "^25.3.0",
+ "jest-worker": "^25.2.6",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7",
+ "which": "^2.0.2"
}
},
- "write-pkg": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
- "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
+ "jest-regex-util": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+ "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
+ "dev": true
+ },
+ "jest-serializer": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz",
+ "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==",
+ "dev": true
+ },
+ "jest-util": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.3.0.tgz",
+ "integrity": "sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA==",
+ "dev": true,
"requires": {
- "sort-keys": "^2.0.0",
- "write-json-file": "^2.2.0"
+ "@jest/types": "^25.3.0",
+ "chalk": "^3.0.0",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
}
- }
- }
- },
- "@lerna/create": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.18.0.tgz",
- "integrity": "sha512-y9oS7ND5T13c+cCTJHa2Y9in02ppzyjsNynVWFuS40eIzZ3z058d9+3qSBt1nkbbQlVyfLoP6+bZPsjyzap5ig==",
- "dev": true,
- "requires": {
- "@evocateur/pacote": "^9.6.3",
- "@lerna/child-process": "3.16.5",
- "@lerna/command": "3.18.0",
- "@lerna/npm-conf": "3.16.0",
- "@lerna/validation-error": "3.13.0",
- "camelcase": "^5.0.0",
- "dedent": "^0.7.0",
- "fs-extra": "^8.1.0",
- "globby": "^9.2.0",
- "init-package-json": "^1.10.3",
- "npm-package-arg": "^6.1.0",
- "p-reduce": "^1.0.0",
- "pify": "^4.0.1",
- "semver": "^6.2.0",
- "slash": "^2.0.0",
- "validate-npm-package-license": "^3.0.3",
- "validate-npm-package-name": "^3.0.0",
- "whatwg-url": "^7.0.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ },
+ "jest-worker": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz",
+ "integrity": "sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==",
+ "dev": true,
+ "requires": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "node-notifier": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz",
+ "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "growly": "^1.3.0",
+ "is-wsl": "^2.1.1",
+ "semver": "^6.3.0",
+ "shellwords": "^0.1.1",
+ "which": "^1.3.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ },
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
"dev": true
},
+ "resolve": {
+ "version": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "dev": true,
+ "optional": true
},
"slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
- "whatwg-url": {
+ "supports-color": {
"version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dev": true,
"requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
}
}
},
- "@lerna/create-symlink": {
- "version": "3.16.2",
- "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz",
- "integrity": "sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==",
- "dev": true,
+ "@jest/source-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
+ "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
"requires": {
- "@zkochan/cmd-shim": "^3.1.0",
- "fs-extra": "^8.1.0",
- "npmlog": "^4.1.2"
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.1.15",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
}
},
- "@lerna/describe-ref": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz",
- "integrity": "sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/diff": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.18.0.tgz",
- "integrity": "sha512-3iLNlpurc2nV9k22w8ini2Zjm2UPo3xtQgWyqdA6eJjvge0+5AlNAWfPoV6cV+Hc1xDbJD2YDSFpZPJ1ZGilRw==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/command": "3.18.0",
- "@lerna/validation-error": "3.13.0",
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/exec": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.18.0.tgz",
- "integrity": "sha512-hwkuzg1+38+pbzdZPhGtLIYJ59z498/BCNzR8d4/nfMYm8lFbw9RgJJajLcdbuJ9LJ08cZ93hf8OlzetL84TYg==",
- "dev": true,
+ "@jest/test-result": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
+ "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
"requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/command": "3.18.0",
- "@lerna/filter-options": "3.18.0",
- "@lerna/run-topologically": "3.18.0",
- "@lerna/validation-error": "3.13.0",
- "p-map": "^2.1.0"
+ "@jest/console": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/istanbul-lib-coverage": "^2.0.0"
},
"dependencies": {
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
+ },
+ "@types/yargs": {
+ "version": "13.0.8",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
+ "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
}
}
},
- "@lerna/filter-options": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.18.0.tgz",
- "integrity": "sha512-UGVcixs3TGzD8XSmFSbwUVVQnAjaZ6Rmt8Vuq2RcR98ULkGB1LiGNMY89XaNBhaaA8vx7yQWiLmJi2AfmD63Qg==",
- "dev": true,
- "requires": {
- "@lerna/collect-updates": "3.18.0",
- "@lerna/filter-packages": "3.18.0",
- "dedent": "^0.7.0",
- "figgy-pudding": "^3.5.1",
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/filter-packages": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz",
- "integrity": "sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==",
- "dev": true,
- "requires": {
- "@lerna/validation-error": "3.13.0",
- "multimatch": "^3.0.0",
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/get-npm-exec-opts": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz",
- "integrity": "sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==",
- "dev": true,
- "requires": {
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/get-packed": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz",
- "integrity": "sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==",
+ "@jest/test-sequencer": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz",
+ "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==",
"dev": true,
"requires": {
- "fs-extra": "^8.1.0",
- "ssri": "^6.0.1",
- "tar": "^4.4.8"
+ "@jest/test-result": "^25.5.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-runner": "^25.5.4",
+ "jest-runtime": "^25.5.4"
},
"dependencies": {
- "chownr": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
- "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
- "dev": true
- },
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "@jest/console": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "slash": "^3.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- },
- "minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "@jest/test-result": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
"dev": true,
"requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
}
},
- "ssri": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
- "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
- "figgy-pudding": "^3.5.1"
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "tar": {
- "version": "4.4.13",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
- "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.8.6",
- "minizlib": "^1.2.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.3"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "yallist": {
+ "anymatch": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- }
- }
- },
- "@lerna/github-client": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.16.5.tgz",
- "integrity": "sha512-rHQdn8Dv/CJrO3VouOP66zAcJzrHsm+wFuZ4uGAai2At2NkgKH+tpNhQy2H1PSC0Ezj9LxvdaHYrUzULqVK5Hw==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "@octokit/plugin-enterprise-rest": "^3.6.1",
- "@octokit/rest": "^16.28.4",
- "git-url-parse": "^11.1.2",
- "npmlog": "^4.1.2"
- },
- "dependencies": {
- "@octokit/endpoint": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz",
- "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
- "@octokit/types": "^2.0.0",
- "is-plain-object": "^3.0.0",
- "universal-user-agent": "^4.0.0"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
}
},
- "@octokit/request": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz",
- "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==",
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "@octokit/endpoint": "^5.5.0",
- "@octokit/request-error": "^1.0.1",
- "@octokit/types": "^2.0.0",
- "deprecation": "^2.0.0",
- "is-plain-object": "^3.0.0",
- "node-fetch": "^2.3.0",
- "once": "^1.4.0",
- "universal-user-agent": "^4.0.0"
+ "fill-range": "^7.0.1"
}
},
- "@octokit/rest": {
- "version": "16.38.1",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz",
- "integrity": "sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==",
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "@octokit/auth-token": "^2.4.0",
- "@octokit/request": "^5.2.0",
- "@octokit/request-error": "^1.0.2",
- "atob-lite": "^2.0.0",
- "before-after-hook": "^2.0.0",
- "btoa-lite": "^1.0.0",
- "deprecation": "^2.0.0",
- "lodash.get": "^4.4.2",
- "lodash.set": "^4.3.2",
- "lodash.uniq": "^4.5.0",
- "octokit-pagination-methods": "^1.1.0",
- "once": "^1.4.0",
- "universal-user-agent": "^4.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "before-after-hook": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz",
- "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==",
- "dev": true
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "color-name": "~1.1.4"
}
},
- "is-plain-object": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
- "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
- "isobject": "^4.0.0"
+ "to-regex-range": "^5.0.1"
}
},
- "isobject": {
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
- "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "jest-haste-map": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
+ "dev": true,
"requires": {
- "glob": "^7.1.3"
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7",
+ "which": "^2.0.2"
}
},
- "universal-user-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz",
- "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==",
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
"dev": true,
"requires": {
- "os-name": "^3.1.0"
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
}
- }
- }
- },
- "@lerna/gitlab-client": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz",
- "integrity": "sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==",
- "dev": true,
- "requires": {
- "node-fetch": "^2.5.0",
- "npmlog": "^4.1.2",
- "whatwg-url": "^7.0.0"
- },
- "dependencies": {
- "node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
- "dev": true
},
- "whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "jest-serializer": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
"dev": true,
"requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
+ "graceful-fs": "^4.2.4"
}
- }
- }
- },
- "@lerna/global-options": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz",
- "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==",
- "dev": true
- },
- "@lerna/has-npm-version": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz",
- "integrity": "sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "semver": "^6.2.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "@lerna/import": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.18.0.tgz",
- "integrity": "sha512-2pYIkkBTZsEdccfc+dPsKZeSw3tBzKSyl0b2lGrfmNX2Y41qqOzsJCyI1WO1uvEIP8aOaLy4hPpqRIBe4ee7hw==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/command": "3.18.0",
- "@lerna/prompt": "3.13.0",
- "@lerna/pulse-till-done": "3.13.0",
- "@lerna/validation-error": "3.13.0",
- "dedent": "^0.7.0",
- "fs-extra": "^8.1.0",
- "p-map-series": "^1.0.0"
- },
- "dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- }
- }
- },
- "@lerna/init": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.18.0.tgz",
- "integrity": "sha512-/vHpmXkMlSaJaq25v5K13mcs/2L7E32O6dSsEkHaZCDRiV2BOqsZng9jjbE/4ynfsWfLLlU9ZcydwG72C3I+mQ==",
- "dev": true,
- "requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/command": "3.18.0",
- "fs-extra": "^8.1.0",
- "p-map": "^2.1.0",
- "write-json-file": "^3.2.0"
- },
- "dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "jest-worker": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- },
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
- }
- }
- },
- "@lerna/link": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.18.0.tgz",
- "integrity": "sha512-FbbIpH0EpsC+dpAbvxCoF3cn7F1MAyJjEa5Lh3XkDGATOlinMFuKCbmX0NLpOPQZ5zghvrui97cx+jz5F2IlHw==",
- "dev": true,
- "requires": {
- "@lerna/command": "3.18.0",
- "@lerna/package-graph": "3.18.0",
- "@lerna/symlink-dependencies": "3.17.0",
- "p-map": "^2.1.0",
- "slash": "^2.0.0"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
- "load-json-file": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
- "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
"requires": {
- "graceful-fs": "^4.1.15",
- "type-fest": "^0.3.0"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
"slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
}
}
},
- "@lerna/list": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.18.0.tgz",
- "integrity": "sha512-mpB7Q6T+n2CaiPFz0LuOE+rXphDfHm0mKIwShnyS/XDcii8jXv+z9Iytj8p3rfCH2I1L80j2qL6jWzyGy/uzKA==",
- "dev": true,
- "requires": {
- "@lerna/command": "3.18.0",
- "@lerna/filter-options": "3.18.0",
- "@lerna/listable": "3.18.0",
- "@lerna/output": "3.13.0"
- }
- },
- "@lerna/listable": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.0.tgz",
- "integrity": "sha512-9gLGKYNLSKeurD+sJ2RA+nz4Ftulr91U127gefz0RlmAPpYSjwcJkxwa0UfJvpQTXv9C7yzHLnn0BjyAQRjuew==",
+ "@jest/transform": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
+ "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
"dev": true,
"requires": {
- "@lerna/query-graph": "3.18.0",
- "chalk": "^2.3.1",
- "columnify": "^1.5.4"
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^24.9.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.9.0",
+ "jest-regex-util": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "pirates": "^4.0.1",
+ "realpath-native": "^1.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "2.4.1"
},
"dependencies": {
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
+ },
+ "@types/yargs": {
+ "version": "13.0.8",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
+ "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -4384,326 +4007,442 @@
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
- }
- }
- },
- "@lerna/log-packed": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz",
- "integrity": "sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==",
- "dev": true,
- "requires": {
- "byte-size": "^5.0.1",
- "columnify": "^1.5.4",
- "has-unicode": "^2.0.1",
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/npm-conf": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz",
- "integrity": "sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==",
- "dev": true,
- "requires": {
- "config-chain": "^1.1.11",
- "pify": "^4.0.1"
- },
- "dependencies": {
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "write-file-atomic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
+ "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
}
}
},
- "@lerna/npm-dist-tag": {
- "version": "3.18.1",
- "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.1.tgz",
- "integrity": "sha512-vWkZh2T/O9OjPLDrba0BTWO7ug/C3sCwjw7Qyk1aEbxMBXB/eEJPqirwJTWT+EtRJQYB01ky3K8ZFOhElVyjLw==",
- "dev": true,
- "requires": {
- "@evocateur/npm-registry-fetch": "^4.0.0",
- "@lerna/otplease": "3.16.0",
- "figgy-pudding": "^3.5.1",
- "npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/npm-install": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz",
- "integrity": "sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==",
+ "@jest/types": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz",
+ "integrity": "sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==",
"dev": true,
"requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/get-npm-exec-opts": "3.13.0",
- "fs-extra": "^8.1.0",
- "npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2",
- "signal-exit": "^3.0.2",
- "write-pkg": "^3.1.0"
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
},
"dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- },
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "pify": "^3.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- },
- "write-json-file": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
- "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "detect-indent": "^5.0.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^1.0.0",
- "pify": "^3.0.0",
- "sort-keys": "^2.0.0",
- "write-file-atomic": "^2.0.0"
+ "color-name": "~1.1.4"
}
},
- "write-pkg": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
- "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "sort-keys": "^2.0.0",
- "write-json-file": "^2.2.0"
+ "has-flag": "^4.0.0"
}
}
}
},
- "@lerna/npm-publish": {
- "version": "3.16.2",
- "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.16.2.tgz",
- "integrity": "sha512-tGMb9vfTxP57vUV5svkBQxd5Tzc+imZbu9ZYf8Mtwe0+HYfDjNiiHLIQw7G95w4YRdc5KsCE8sQ0uSj+f2soIg==",
+ "@lerna/add": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.18.0.tgz",
+ "integrity": "sha512-Z5EaQbBnJn1LEPb0zb0Q2o9T8F8zOnlCsj6JYpY6aSke17UUT7xx0QMN98iBK+ueUHKjN/vdFdYlNCYRSIdujA==",
"dev": true,
"requires": {
- "@evocateur/libnpmpublish": "^1.2.2",
- "@lerna/otplease": "3.16.0",
- "@lerna/run-lifecycle": "3.16.2",
- "figgy-pudding": "^3.5.1",
- "fs-extra": "^8.1.0",
+ "@evocateur/pacote": "^9.6.3",
+ "@lerna/bootstrap": "3.18.0",
+ "@lerna/command": "3.18.0",
+ "@lerna/filter-options": "3.18.0",
+ "@lerna/npm-conf": "3.16.0",
+ "@lerna/validation-error": "3.13.0",
+ "dedent": "^0.7.0",
"npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2",
- "pify": "^4.0.1",
- "read-package-json": "^2.0.13"
+ "p-map": "^2.1.0",
+ "semver": "^6.2.0"
},
"dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
},
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
},
- "@lerna/npm-run-script": {
- "version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz",
- "integrity": "sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==",
+ "@lerna/bootstrap": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.18.0.tgz",
+ "integrity": "sha512-3DZKWIaKvr7sUImoKqSz6eqn84SsOVMnA5QHwgzXiQjoeZ/5cg9x2r+Xj3+3w/lvLoh0j8U2GNtrIaPNis4bKQ==",
"dev": true,
"requires": {
- "@lerna/child-process": "3.16.5",
- "@lerna/get-npm-exec-opts": "3.13.0",
- "npmlog": "^4.1.2"
+ "@lerna/command": "3.18.0",
+ "@lerna/filter-options": "3.18.0",
+ "@lerna/has-npm-version": "3.16.5",
+ "@lerna/npm-install": "3.16.5",
+ "@lerna/package-graph": "3.18.0",
+ "@lerna/pulse-till-done": "3.13.0",
+ "@lerna/rimraf-dir": "3.16.5",
+ "@lerna/run-lifecycle": "3.16.2",
+ "@lerna/run-topologically": "3.18.0",
+ "@lerna/symlink-binary": "3.17.0",
+ "@lerna/symlink-dependencies": "3.17.0",
+ "@lerna/validation-error": "3.13.0",
+ "dedent": "^0.7.0",
+ "get-port": "^4.2.0",
+ "multimatch": "^3.0.0",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2",
+ "p-finally": "^1.0.0",
+ "p-map": "^2.1.0",
+ "p-map-series": "^1.0.0",
+ "p-waterfall": "^1.0.0",
+ "read-package-tree": "^5.1.6",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
- "@lerna/otplease": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.16.0.tgz",
- "integrity": "sha512-uqZ15wYOHC+/V0WnD2iTLXARjvx3vNrpiIeyIvVlDB7rWse9mL4egex/QSgZ+lDx1OID7l2kgvcUD9cFpbqB7Q==",
+ "@lerna/changed": {
+ "version": "3.18.2",
+ "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.18.2.tgz",
+ "integrity": "sha512-xVnFuj4A6Avxem+8R+KOuKDxfnxp1S5tM5nwsh7n3IhCN5Ga7YINV/JgPhrwgcpqPCVBvAowkilghT/I0r6wUw==",
"dev": true,
"requires": {
- "@lerna/prompt": "3.13.0",
- "figgy-pudding": "^3.5.1"
+ "@lerna/collect-updates": "3.18.0",
+ "@lerna/command": "3.18.0",
+ "@lerna/listable": "3.18.0",
+ "@lerna/output": "3.13.0",
+ "@lerna/version": "3.18.2"
}
},
- "@lerna/output": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz",
- "integrity": "sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==",
+ "@lerna/check-working-tree": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz",
+ "integrity": "sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==",
"dev": true,
"requires": {
- "npmlog": "^4.1.2"
+ "@lerna/collect-uncommitted": "3.16.5",
+ "@lerna/describe-ref": "3.16.5",
+ "@lerna/validation-error": "3.13.0"
}
},
- "@lerna/pack-directory": {
- "version": "3.16.4",
- "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz",
- "integrity": "sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==",
+ "@lerna/child-process": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz",
+ "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==",
"dev": true,
"requires": {
- "@lerna/get-packed": "3.16.0",
- "@lerna/package": "3.16.0",
- "@lerna/run-lifecycle": "3.16.2",
- "figgy-pudding": "^3.5.1",
- "npm-packlist": "^1.4.4",
- "npmlog": "^4.1.2",
- "tar": "^4.4.10",
- "temp-write": "^3.4.0"
+ "chalk": "^2.3.1",
+ "execa": "^1.0.0",
+ "strong-log-transformer": "^2.0.0"
},
"dependencies": {
- "chownr": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
- "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
- "dev": true
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
},
- "minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
- "tar": {
- "version": "4.4.13",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
- "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
"requires": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.8.6",
- "minizlib": "^1.2.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.3"
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
}
},
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
}
},
- "@lerna/package": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz",
- "integrity": "sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==",
+ "@lerna/clean": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.18.0.tgz",
+ "integrity": "sha512-BiwBELZNkarRQqj+v5NPB1aIzsOX+Y5jkZ9a5UbwHzEdBUQ5lQa0qaMLSOve/fSkaiZQxe6qnTyatN75lOcDMg==",
"dev": true,
"requires": {
- "load-json-file": "^5.3.0",
- "npm-package-arg": "^6.1.0",
- "write-pkg": "^3.1.0"
+ "@lerna/command": "3.18.0",
+ "@lerna/filter-options": "3.18.0",
+ "@lerna/prompt": "3.13.0",
+ "@lerna/pulse-till-done": "3.13.0",
+ "@lerna/rimraf-dir": "3.16.5",
+ "p-map": "^2.1.0",
+ "p-map-series": "^1.0.0",
+ "p-waterfall": "^1.0.0"
},
"dependencies": {
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/cli": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.0.tgz",
+ "integrity": "sha512-AwDyfGx7fxJgeaZllEuyJ9LZ6Tdv9yqRD9RX762yCJu+PCAFvB9bp6OYuRSGli7QQgM0CuOYnSg4xVNOmuGKDA==",
+ "dev": true,
+ "requires": {
+ "@lerna/global-options": "3.13.0",
+ "dedent": "^0.7.0",
+ "npmlog": "^4.1.2",
+ "yargs": "^14.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
- "load-json-file": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
- "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^4.0.0",
- "pify": "^4.0.1",
- "strip-bom": "^3.0.0",
- "type-fest": "^0.3.0"
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
}
},
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
+ "locate-path": "^3.0.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "strip-bom": {
+ "pify": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
"write-json-file": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
"integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
- "dev": true,
"requires": {
"detect-indent": "^5.0.0",
"graceful-fs": "^4.1.2",
@@ -4711,164 +4450,225 @@
"pify": "^3.0.0",
"sort-keys": "^2.0.0",
"write-file-atomic": "^2.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
}
},
"write-pkg": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
"integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
- "dev": true,
"requires": {
"sort-keys": "^2.0.0",
"write-json-file": "^2.2.0"
}
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "14.2.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz",
+ "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
- "@lerna/package-graph": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.0.tgz",
- "integrity": "sha512-BLYDHO5ihPh20i3zoXfLZ5ZWDCrPuGANgVhl7k5pCmRj90LCvT+C7V3zrw70fErGAfvkcYepMqxD+oBrAYwquQ==",
+ "@lerna/collect-uncommitted": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz",
+ "integrity": "sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==",
"dev": true,
"requires": {
- "@lerna/prerelease-id-from-version": "3.16.0",
- "@lerna/validation-error": "3.13.0",
- "npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2",
- "semver": "^6.2.0"
+ "@lerna/child-process": "3.16.5",
+ "chalk": "^2.3.1",
+ "figgy-pudding": "^3.5.1",
+ "npmlog": "^4.1.2"
},
"dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
}
}
},
- "@lerna/prerelease-id-from-version": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz",
- "integrity": "sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==",
+ "@lerna/collect-updates": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.18.0.tgz",
+ "integrity": "sha512-LJMKgWsE/var1RSvpKDIxS8eJ7POADEc0HM3FQiTpEczhP6aZfv9x3wlDjaHpZm9MxJyQilqxZcasRANmRcNgw==",
"dev": true,
"requires": {
- "semver": "^6.2.0"
+ "@lerna/child-process": "3.16.5",
+ "@lerna/describe-ref": "3.16.5",
+ "minimatch": "^3.0.4",
+ "npmlog": "^4.1.2",
+ "slash": "^2.0.0"
},
"dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true
}
}
},
- "@lerna/project": {
+ "@lerna/command": {
"version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.18.0.tgz",
- "integrity": "sha512-+LDwvdAp0BurOAWmeHE3uuticsq9hNxBI0+FMHiIai8jrygpJGahaQrBYWpwbshbQyVLeQgx3+YJdW2TbEdFWA==",
+ "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.18.0.tgz",
+ "integrity": "sha512-JQ0TGzuZc9Ky8xtwtSLywuvmkU8X62NTUT3rMNrUykIkOxBaO+tE0O98u2yo/9BYOeTRji9IsjKZEl5i9Qt0xQ==",
"dev": true,
"requires": {
- "@lerna/package": "3.16.0",
+ "@lerna/child-process": "3.16.5",
+ "@lerna/package-graph": "3.18.0",
+ "@lerna/project": "3.18.0",
"@lerna/validation-error": "3.13.0",
- "cosmiconfig": "^5.1.0",
+ "@lerna/write-log-file": "3.13.0",
"dedent": "^0.7.0",
- "dot-prop": "^4.2.0",
- "glob-parent": "^5.0.0",
- "globby": "^9.2.0",
- "load-json-file": "^5.3.0",
- "npmlog": "^4.1.2",
- "p-map": "^2.1.0",
- "resolve-from": "^4.0.0",
- "write-json-file": "^3.2.0"
+ "execa": "^1.0.0",
+ "is-ci": "^2.0.0",
+ "lodash": "^4.17.14",
+ "npmlog": "^4.1.2"
},
"dependencies": {
- "cosmiconfig": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
- "import-fresh": "^2.0.0",
- "is-directory": "^0.3.1",
- "js-yaml": "^3.13.1",
- "parse-json": "^4.0.0"
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
- "glob-parent": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
- "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
"requires": {
- "is-glob": "^4.0.1"
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- },
- "import-fresh": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
"requires": {
- "caller-path": "^2.0.0",
- "resolve-from": "^3.0.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
- "dev": true
- }
+ "pump": "^3.0.0"
}
},
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
- "load-json-file": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
- "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/conventional-commits": {
+ "version": "3.16.4",
+ "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.16.4.tgz",
+ "integrity": "sha512-QSZJ0bC9n6FVaf+7KDIq5zMv8WnHXnwhyL5jG1Nyh3SgOg9q2uflqh7YsYB+G6FwaRfnPaKosh6obijpYg0llA==",
+ "dev": true,
+ "requires": {
+ "@lerna/validation-error": "3.13.0",
+ "conventional-changelog-angular": "^5.0.3",
+ "conventional-changelog-core": "^3.1.6",
+ "conventional-recommended-bump": "^5.0.0",
+ "fs-extra": "^8.1.0",
+ "get-stream": "^4.0.0",
+ "lodash.template": "^4.5.0",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2",
+ "pify": "^4.0.1",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.15",
- "parse-json": "^4.0.0",
- "pify": "^4.0.1",
- "strip-bom": "^3.0.0",
- "type-fest": "^0.3.0"
+ "pump": "^3.0.0"
}
},
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
+ }
},
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
"requires": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -4880,146 +4680,89 @@
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "strip-bom": {
+ "pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
- }
- }
- },
- "@lerna/prompt": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.13.0.tgz",
- "integrity": "sha512-P+lWSFokdyvYpkwC3it9cE0IF2U5yy2mOUbGvvE4iDb9K7TyXGE+7lwtx2thtPvBAfIb7O13POMkv7df03HJeA==",
- "dev": true,
- "requires": {
- "inquirer": "^6.2.0",
- "npmlog": "^4.1.2"
- },
- "dependencies": {
- "ansi-escapes": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
- "dev": true
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
- "inquirer": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
- "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
- "dev": true,
+ "write-json-file": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
+ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
"requires": {
- "ansi-escapes": "^3.2.0",
- "chalk": "^2.4.2",
- "cli-cursor": "^2.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^3.0.3",
- "figures": "^2.0.0",
- "lodash": "^4.17.12",
- "mute-stream": "0.0.7",
- "run-async": "^2.2.0",
- "rxjs": "^6.4.0",
- "string-width": "^2.1.0",
- "strip-ansi": "^5.1.0",
- "through": "^2.3.6"
+ "detect-indent": "^5.0.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "pify": "^3.0.0",
+ "sort-keys": "^2.0.0",
+ "write-file-atomic": "^2.0.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
}
}
},
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
+ "write-pkg": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
+ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
"requires": {
- "ansi-regex": "^4.1.0"
+ "sort-keys": "^2.0.0",
+ "write-json-file": "^2.2.0"
}
}
}
},
- "@lerna/publish": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.18.2.tgz",
- "integrity": "sha512-lLQOjoaFv/gc9HtOCMRsOK6NIub8eHnnvmQARjXY/HayA8GuLaD2Px9xOu1L7il+Q0LlMU3wASB9Khy/CiHJUQ==",
+ "@lerna/create": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.18.0.tgz",
+ "integrity": "sha512-y9oS7ND5T13c+cCTJHa2Y9in02ppzyjsNynVWFuS40eIzZ3z058d9+3qSBt1nkbbQlVyfLoP6+bZPsjyzap5ig==",
"dev": true,
"requires": {
- "@evocateur/libnpmaccess": "^3.1.2",
- "@evocateur/npm-registry-fetch": "^4.0.0",
"@evocateur/pacote": "^9.6.3",
- "@lerna/check-working-tree": "3.16.5",
"@lerna/child-process": "3.16.5",
- "@lerna/collect-updates": "3.18.0",
"@lerna/command": "3.18.0",
- "@lerna/describe-ref": "3.16.5",
- "@lerna/log-packed": "3.16.0",
"@lerna/npm-conf": "3.16.0",
- "@lerna/npm-dist-tag": "3.18.1",
- "@lerna/npm-publish": "3.16.2",
- "@lerna/otplease": "3.16.0",
- "@lerna/output": "3.13.0",
- "@lerna/pack-directory": "3.16.4",
- "@lerna/prerelease-id-from-version": "3.16.0",
- "@lerna/prompt": "3.13.0",
- "@lerna/pulse-till-done": "3.13.0",
- "@lerna/run-lifecycle": "3.16.2",
- "@lerna/run-topologically": "3.18.0",
"@lerna/validation-error": "3.13.0",
- "@lerna/version": "3.18.2",
- "figgy-pudding": "^3.5.1",
+ "camelcase": "^5.0.0",
+ "dedent": "^0.7.0",
"fs-extra": "^8.1.0",
+ "globby": "^9.2.0",
+ "init-package-json": "^1.10.3",
"npm-package-arg": "^6.1.0",
- "npmlog": "^4.1.2",
- "p-finally": "^1.0.0",
- "p-map": "^2.1.0",
- "p-pipe": "^1.2.0",
- "semver": "^6.2.0"
+ "p-reduce": "^1.0.0",
+ "pify": "^4.0.1",
+ "semver": "^6.2.0",
+ "slash": "^2.0.0",
+ "validate-npm-package-license": "^3.0.3",
+ "validate-npm-package-name": "^3.0.0",
+ "whatwg-url": "^7.0.0"
},
"dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
},
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- },
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
"semver": {
@@ -5027,75 +4770,237 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
}
}
},
- "@lerna/pulse-till-done": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz",
- "integrity": "sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==",
+ "@lerna/create-symlink": {
+ "version": "3.16.2",
+ "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz",
+ "integrity": "sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==",
"dev": true,
"requires": {
+ "@zkochan/cmd-shim": "^3.1.0",
+ "fs-extra": "^8.1.0",
"npmlog": "^4.1.2"
}
},
- "@lerna/query-graph": {
+ "@lerna/describe-ref": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz",
+ "integrity": "sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==",
+ "dev": true,
+ "requires": {
+ "@lerna/child-process": "3.16.5",
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/diff": {
"version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.0.tgz",
- "integrity": "sha512-fgUhLx6V0jDuKZaKj562jkuuhrfVcjl5sscdfttJ8dXNVADfDz76nzzwLY0ZU7/0m69jDedohn5Fx5p7hDEVEg==",
+ "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.18.0.tgz",
+ "integrity": "sha512-3iLNlpurc2nV9k22w8ini2Zjm2UPo3xtQgWyqdA6eJjvge0+5AlNAWfPoV6cV+Hc1xDbJD2YDSFpZPJ1ZGilRw==",
"dev": true,
"requires": {
- "@lerna/package-graph": "3.18.0",
- "figgy-pudding": "^3.5.1"
+ "@lerna/child-process": "3.16.5",
+ "@lerna/command": "3.18.0",
+ "@lerna/validation-error": "3.13.0",
+ "npmlog": "^4.1.2"
}
},
- "@lerna/resolve-symlink": {
+ "@lerna/exec": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.18.0.tgz",
+ "integrity": "sha512-hwkuzg1+38+pbzdZPhGtLIYJ59z498/BCNzR8d4/nfMYm8lFbw9RgJJajLcdbuJ9LJ08cZ93hf8OlzetL84TYg==",
+ "dev": true,
+ "requires": {
+ "@lerna/child-process": "3.16.5",
+ "@lerna/command": "3.18.0",
+ "@lerna/filter-options": "3.18.0",
+ "@lerna/run-topologically": "3.18.0",
+ "@lerna/validation-error": "3.13.0",
+ "p-map": "^2.1.0"
+ },
+ "dependencies": {
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/filter-options": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.18.0.tgz",
+ "integrity": "sha512-UGVcixs3TGzD8XSmFSbwUVVQnAjaZ6Rmt8Vuq2RcR98ULkGB1LiGNMY89XaNBhaaA8vx7yQWiLmJi2AfmD63Qg==",
+ "dev": true,
+ "requires": {
+ "@lerna/collect-updates": "3.18.0",
+ "@lerna/filter-packages": "3.18.0",
+ "dedent": "^0.7.0",
+ "figgy-pudding": "^3.5.1",
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/filter-packages": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz",
+ "integrity": "sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==",
+ "dev": true,
+ "requires": {
+ "@lerna/validation-error": "3.13.0",
+ "multimatch": "^3.0.0",
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/get-npm-exec-opts": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz",
+ "integrity": "sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==",
+ "dev": true,
+ "requires": {
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/get-packed": {
"version": "3.16.0",
- "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz",
- "integrity": "sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==",
+ "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz",
+ "integrity": "sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==",
"dev": true,
"requires": {
"fs-extra": "^8.1.0",
- "npmlog": "^4.1.2",
- "read-cmd-shim": "^1.0.1"
+ "ssri": "^6.0.1",
+ "tar": "^4.4.8"
},
"dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"dev": true,
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "ssri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+ "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+ "dev": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "dev": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
}
}
},
- "@lerna/rimraf-dir": {
+ "@lerna/github-client": {
"version": "3.16.5",
- "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz",
- "integrity": "sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==",
+ "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.16.5.tgz",
+ "integrity": "sha512-rHQdn8Dv/CJrO3VouOP66zAcJzrHsm+wFuZ4uGAai2At2NkgKH+tpNhQy2H1PSC0Ezj9LxvdaHYrUzULqVK5Hw==",
"dev": true,
"requires": {
"@lerna/child-process": "3.16.5",
- "npmlog": "^4.1.2",
- "path-exists": "^3.0.0",
- "rimraf": "^2.6.2"
+ "@octokit/plugin-enterprise-rest": "^3.6.1",
+ "@octokit/rest": "^16.28.4",
+ "git-url-parse": "^11.1.2",
+ "npmlog": "^4.1.2"
},
"dependencies": {
+ "@octokit/endpoint": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz",
+ "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==",
+ "dev": true,
+ "requires": {
+ "@octokit/types": "^2.0.0",
+ "is-plain-object": "^3.0.0",
+ "universal-user-agent": "^4.0.0"
+ }
+ },
+ "@octokit/request": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz",
+ "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==",
+ "dev": true,
+ "requires": {
+ "@octokit/endpoint": "^5.5.0",
+ "@octokit/request-error": "^1.0.1",
+ "@octokit/types": "^2.0.0",
+ "deprecation": "^2.0.0",
+ "is-plain-object": "^3.0.0",
+ "node-fetch": "^2.3.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^4.0.0"
+ }
+ },
+ "@octokit/rest": {
+ "version": "16.38.1",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz",
+ "integrity": "sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==",
+ "dev": true,
+ "requires": {
+ "@octokit/auth-token": "^2.4.0",
+ "@octokit/request": "^5.2.0",
+ "@octokit/request-error": "^1.0.2",
+ "atob-lite": "^2.0.0",
+ "before-after-hook": "^2.0.0",
+ "btoa-lite": "^1.0.0",
+ "deprecation": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "lodash.set": "^4.3.2",
+ "lodash.uniq": "^4.5.0",
+ "octokit-pagination-methods": "^1.1.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^4.0.0"
+ }
+ },
+ "before-after-hook": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz",
+ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==",
+ "dev": true
+ },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -5105,132 +5010,127 @@
"path-is-absolute": "^1.0.0"
}
},
+ "is-plain-object": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
+ "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
+ "dev": true,
+ "requires": {
+ "isobject": "^4.0.0"
+ }
+ },
+ "isobject": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "dev": true
+ },
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
"requires": {
"glob": "^7.1.3"
}
+ },
+ "universal-user-agent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz",
+ "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==",
+ "dev": true,
+ "requires": {
+ "os-name": "^3.1.0"
+ }
}
}
},
- "@lerna/run": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.18.0.tgz",
- "integrity": "sha512-sblxHBZ9djaaG7wefPcfEicDqzrB7CP1m/jIB0JvPEQwG4C2qp++ewBpkjRw/mBtjtzg0t7v0nNMXzaWYrQckQ==",
+ "@lerna/gitlab-client": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz",
+ "integrity": "sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==",
"dev": true,
"requires": {
- "@lerna/command": "3.18.0",
- "@lerna/filter-options": "3.18.0",
- "@lerna/npm-run-script": "3.16.5",
- "@lerna/output": "3.13.0",
- "@lerna/run-topologically": "3.18.0",
- "@lerna/timer": "3.13.0",
- "@lerna/validation-error": "3.13.0",
- "p-map": "^2.1.0"
+ "node-fetch": "^2.5.0",
+ "npmlog": "^4.1.2",
+ "whatwg-url": "^7.0.0"
},
"dependencies": {
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
"dev": true
}
}
},
- "@lerna/run-lifecycle": {
- "version": "3.16.2",
- "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz",
- "integrity": "sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==",
- "dev": true,
- "requires": {
- "@lerna/npm-conf": "3.16.0",
- "figgy-pudding": "^3.5.1",
- "npm-lifecycle": "^3.1.2",
- "npmlog": "^4.1.2"
- }
+ "@lerna/global-options": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz",
+ "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==",
+ "dev": true
},
- "@lerna/run-topologically": {
- "version": "3.18.0",
- "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.0.tgz",
- "integrity": "sha512-lrfEewwuUMC3ioxf9Z9NdHUakN6ihekcPfdYbzR2slmdbjYKmIA5srkWdrK8NwOpQCAuekpOovH2s8X3FGEopg==",
+ "@lerna/has-npm-version": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz",
+ "integrity": "sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==",
"dev": true,
"requires": {
- "@lerna/query-graph": "3.18.0",
- "figgy-pudding": "^3.5.1",
- "p-queue": "^4.0.0"
+ "@lerna/child-process": "3.16.5",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
- "@lerna/symlink-binary": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz",
- "integrity": "sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==",
+ "@lerna/import": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.18.0.tgz",
+ "integrity": "sha512-2pYIkkBTZsEdccfc+dPsKZeSw3tBzKSyl0b2lGrfmNX2Y41qqOzsJCyI1WO1uvEIP8aOaLy4hPpqRIBe4ee7hw==",
"dev": true,
"requires": {
- "@lerna/create-symlink": "3.16.2",
- "@lerna/package": "3.16.0",
+ "@lerna/child-process": "3.16.5",
+ "@lerna/command": "3.18.0",
+ "@lerna/prompt": "3.13.0",
+ "@lerna/pulse-till-done": "3.13.0",
+ "@lerna/validation-error": "3.13.0",
+ "dedent": "^0.7.0",
"fs-extra": "^8.1.0",
- "p-map": "^2.1.0"
+ "p-map-series": "^1.0.0"
},
"dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
- },
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
}
}
},
- "@lerna/symlink-dependencies": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz",
- "integrity": "sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==",
+ "@lerna/init": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.18.0.tgz",
+ "integrity": "sha512-/vHpmXkMlSaJaq25v5K13mcs/2L7E32O6dSsEkHaZCDRiV2BOqsZng9jjbE/4ynfsWfLLlU9ZcydwG72C3I+mQ==",
"dev": true,
"requires": {
- "@lerna/create-symlink": "3.16.2",
- "@lerna/resolve-symlink": "3.16.0",
- "@lerna/symlink-binary": "3.17.0",
+ "@lerna/child-process": "3.16.5",
+ "@lerna/command": "3.18.0",
"fs-extra": "^8.1.0",
- "p-finally": "^1.0.0",
"p-map": "^2.1.0",
- "p-map-series": "^1.0.0"
+ "write-json-file": "^3.2.0"
},
"dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
},
"p-map": {
"version": "2.1.0",
@@ -5240,82 +5140,30 @@
}
}
},
- "@lerna/timer": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz",
- "integrity": "sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==",
- "dev": true
- },
- "@lerna/validation-error": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz",
- "integrity": "sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==",
- "dev": true,
- "requires": {
- "npmlog": "^4.1.2"
- }
- },
- "@lerna/version": {
- "version": "3.18.2",
- "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.18.2.tgz",
- "integrity": "sha512-nmCJpw3A2DoNGbjmvI5UB3ZwTQUayI8M/b3rOA6ZzYeGmoQmm2QBKun05aBRasqTuUo4XjSuas5CqHN+x4f8Ww==",
+ "@lerna/link": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.18.0.tgz",
+ "integrity": "sha512-FbbIpH0EpsC+dpAbvxCoF3cn7F1MAyJjEa5Lh3XkDGATOlinMFuKCbmX0NLpOPQZ5zghvrui97cx+jz5F2IlHw==",
"dev": true,
"requires": {
- "@lerna/check-working-tree": "3.16.5",
- "@lerna/child-process": "3.16.5",
- "@lerna/collect-updates": "3.18.0",
"@lerna/command": "3.18.0",
- "@lerna/conventional-commits": "3.16.4",
- "@lerna/github-client": "3.16.5",
- "@lerna/gitlab-client": "3.15.0",
- "@lerna/output": "3.13.0",
- "@lerna/prerelease-id-from-version": "3.16.0",
- "@lerna/prompt": "3.13.0",
- "@lerna/run-lifecycle": "3.16.2",
- "@lerna/run-topologically": "3.18.0",
- "@lerna/validation-error": "3.13.0",
- "chalk": "^2.3.1",
- "dedent": "^0.7.0",
- "load-json-file": "^5.3.0",
- "minimatch": "^3.0.4",
- "npmlog": "^4.1.2",
+ "@lerna/package-graph": "3.18.0",
+ "@lerna/symlink-dependencies": "3.17.0",
"p-map": "^2.1.0",
- "p-pipe": "^1.2.0",
- "p-reduce": "^1.0.0",
- "p-waterfall": "^1.0.0",
- "semver": "^6.2.0",
- "slash": "^2.0.0",
- "temp-write": "^3.4.0",
- "write-json-file": "^3.2.0"
+ "slash": "^2.0.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
},
"load-json-file": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
"integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
- "dev": true,
"requires": {
"graceful-fs": "^4.1.15",
- "parse-json": "^4.0.0",
- "pify": "^4.0.1",
- "strip-bom": "^3.0.0",
"type-fest": "^0.3.0"
}
},
@@ -5325,1098 +5173,967 @@
"integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
"slash": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
}
}
},
- "@lerna/write-log-file": {
- "version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz",
- "integrity": "sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==",
+ "@lerna/list": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.18.0.tgz",
+ "integrity": "sha512-mpB7Q6T+n2CaiPFz0LuOE+rXphDfHm0mKIwShnyS/XDcii8jXv+z9Iytj8p3rfCH2I1L80j2qL6jWzyGy/uzKA==",
"dev": true,
"requires": {
- "npmlog": "^4.1.2",
- "write-file-atomic": "^2.3.0"
+ "@lerna/command": "3.18.0",
+ "@lerna/filter-options": "3.18.0",
+ "@lerna/listable": "3.18.0",
+ "@lerna/output": "3.13.0"
}
},
- "@mdx-js/loader": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.5.5.tgz",
- "integrity": "sha512-2/2WX73qj79Kv2cYk14kQsN/aypAH3RPzuNMx1gxwZjj77G0N6tzhM9WFkEDM/SXjasWep03ZmSRb9d//b2D8w==",
+ "@lerna/listable": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.0.tgz",
+ "integrity": "sha512-9gLGKYNLSKeurD+sJ2RA+nz4Ftulr91U127gefz0RlmAPpYSjwcJkxwa0UfJvpQTXv9C7yzHLnn0BjyAQRjuew==",
"dev": true,
"requires": {
- "@mdx-js/mdx": "^1.5.5",
- "@mdx-js/react": "^1.5.5",
- "loader-utils": "1.2.3"
- },
- "dependencies": {
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true
- },
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "@lerna/query-graph": "3.18.0",
+ "chalk": "^2.3.1",
+ "columnify": "^1.5.4"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^2.0.0",
- "json5": "^1.0.1"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
}
}
},
- "@mdx-js/mdx": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.5.5.tgz",
- "integrity": "sha512-Xv1lJ+VWt8giWQrqf4GdIBxl08SfepfIWAnuuIzuR+wA59SaXDvkW6XFIvl8u495OQEB1eugMvq8l2XR8ZGr1A==",
+ "@lerna/log-packed": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz",
+ "integrity": "sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==",
"dev": true,
"requires": {
- "@babel/core": "7.8.0",
- "@babel/plugin-syntax-jsx": "7.8.0",
- "@babel/plugin-syntax-object-rest-spread": "7.8.0",
- "@mdx-js/util": "^1.5.5",
- "babel-plugin-apply-mdx-type-prop": "^1.5.5",
- "babel-plugin-extract-import-names": "^1.5.5",
- "camelcase-css": "2.0.1",
- "detab": "2.0.2",
- "hast-util-raw": "5.0.1",
- "lodash.uniq": "4.5.0",
- "mdast-util-to-hast": "6.0.2",
- "remark-mdx": "^1.5.5",
- "remark-parse": "7.0.2",
- "remark-squeeze-paragraphs": "3.0.4",
- "style-to-object": "0.3.0",
- "unified": "8.4.2",
- "unist-builder": "1.0.4",
- "unist-util-visit": "2.0.1"
+ "byte-size": "^5.0.1",
+ "columnify": "^1.5.4",
+ "has-unicode": "^2.0.1",
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/npm-conf": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz",
+ "integrity": "sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==",
+ "dev": true,
+ "requires": {
+ "config-chain": "^1.1.11",
+ "pify": "^4.0.1"
},
"dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/npm-dist-tag": {
+ "version": "3.18.1",
+ "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.1.tgz",
+ "integrity": "sha512-vWkZh2T/O9OjPLDrba0BTWO7ug/C3sCwjw7Qyk1aEbxMBXB/eEJPqirwJTWT+EtRJQYB01ky3K8ZFOhElVyjLw==",
+ "dev": true,
+ "requires": {
+ "@evocateur/npm-registry-fetch": "^4.0.0",
+ "@lerna/otplease": "3.16.0",
+ "figgy-pudding": "^3.5.1",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/npm-install": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz",
+ "integrity": "sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==",
+ "dev": true,
+ "requires": {
+ "@lerna/child-process": "3.16.5",
+ "@lerna/get-npm-exec-opts": "3.13.0",
+ "fs-extra": "^8.1.0",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2",
+ "signal-exit": "^3.0.2",
+ "write-pkg": "^3.1.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "dev": true
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.8.3"
+ "pify": "^3.0.0"
}
},
- "@babel/core": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.0.tgz",
- "integrity": "sha512-3rqPi/bv/Xfu2YzHvBz4XqMI1fKVwnhntPA1/fjoECrSjrhbOCxlTrbVu5gUtr8zkxW+RpkDOa/HCW93gzS2Dw==",
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "write-json-file": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
+ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.0",
- "@babel/generator": "^7.8.0",
- "@babel/helpers": "^7.8.0",
- "@babel/parser": "^7.8.0",
- "@babel/template": "^7.8.0",
- "@babel/traverse": "^7.8.0",
- "@babel/types": "^7.8.0",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.1",
- "json5": "^2.1.0",
- "lodash": "^4.17.13",
- "resolve": "^1.3.2",
- "semver": "^5.4.1",
- "source-map": "^0.5.0"
+ "detect-indent": "^5.0.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "pify": "^3.0.0",
+ "sort-keys": "^2.0.0",
+ "write-file-atomic": "^2.0.0"
}
},
- "@babel/generator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
- "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
+ "write-pkg": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
+ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3",
- "jsesc": "^2.5.1",
- "lodash": "^4.17.13",
- "source-map": "^0.5.0"
+ "sort-keys": "^2.0.0",
+ "write-json-file": "^2.2.0"
}
+ }
+ }
+ },
+ "@lerna/npm-publish": {
+ "version": "3.16.2",
+ "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.16.2.tgz",
+ "integrity": "sha512-tGMb9vfTxP57vUV5svkBQxd5Tzc+imZbu9ZYf8Mtwe0+HYfDjNiiHLIQw7G95w4YRdc5KsCE8sQ0uSj+f2soIg==",
+ "dev": true,
+ "requires": {
+ "@evocateur/libnpmpublish": "^1.2.2",
+ "@lerna/otplease": "3.16.0",
+ "@lerna/run-lifecycle": "3.16.2",
+ "figgy-pudding": "^3.5.1",
+ "fs-extra": "^8.1.0",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2",
+ "pify": "^4.0.1",
+ "read-package-json": "^2.0.13"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/npm-run-script": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz",
+ "integrity": "sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==",
+ "dev": true,
+ "requires": {
+ "@lerna/child-process": "3.16.5",
+ "@lerna/get-npm-exec-opts": "3.13.0",
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/otplease": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.16.0.tgz",
+ "integrity": "sha512-uqZ15wYOHC+/V0WnD2iTLXARjvx3vNrpiIeyIvVlDB7rWse9mL4egex/QSgZ+lDx1OID7l2kgvcUD9cFpbqB7Q==",
+ "dev": true,
+ "requires": {
+ "@lerna/prompt": "3.13.0",
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "@lerna/output": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz",
+ "integrity": "sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==",
+ "dev": true,
+ "requires": {
+ "npmlog": "^4.1.2"
+ }
+ },
+ "@lerna/pack-directory": {
+ "version": "3.16.4",
+ "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz",
+ "integrity": "sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==",
+ "dev": true,
+ "requires": {
+ "@lerna/get-packed": "3.16.0",
+ "@lerna/package": "3.16.0",
+ "@lerna/run-lifecycle": "3.16.2",
+ "figgy-pudding": "^3.5.1",
+ "npm-packlist": "^1.4.4",
+ "npmlog": "^4.1.2",
+ "tar": "^4.4.10",
+ "temp-write": "^3.4.0"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "dev": true
},
- "@babel/helper-function-name": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
- "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
- "@babel/helper-get-function-arity": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
- "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
}
},
- "@babel/helper-plugin-utils": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
- "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/package": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz",
+ "integrity": "sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^5.3.0",
+ "npm-package-arg": "^6.1.0",
+ "write-pkg": "^3.1.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
"dev": true
},
- "@babel/helper-split-export-declaration": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
- "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+ "load-json-file": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+ "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "graceful-fs": "^4.1.15",
+ "parse-json": "^4.0.0",
+ "pify": "^4.0.1",
+ "strip-bom": "^3.0.0",
+ "type-fest": "^0.3.0"
}
},
- "@babel/helpers": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz",
- "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==",
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"dev": true,
"requires": {
- "@babel/template": "^7.8.3",
- "@babel/traverse": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
}
},
- "@babel/highlight": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
- "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- }
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
- "@babel/parser": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
- "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
- "@babel/plugin-syntax-jsx": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.0.tgz",
- "integrity": "sha512-zLDUckAuKeOtxJhfNE0TlR7iEApb2u7EYRlh5cxKzq6A5VzUbYEdyJGJlug41jDbjRbHTtsLKZUnUcy/8V3xZw==",
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "write-json-file": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz",
+ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "detect-indent": "^5.0.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "pify": "^3.0.0",
+ "sort-keys": "^2.0.0",
+ "write-file-atomic": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
}
},
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.0.tgz",
- "integrity": "sha512-dt89fDlkfkTrQcy5KavMQPyF2A6tR0kYp8HAnIoQv5hO34iAUffHghP/hMGd7Gf/+uYTmLQO0ar7peX1SUWyIA==",
+ "write-pkg": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz",
+ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "sort-keys": "^2.0.0",
+ "write-json-file": "^2.2.0"
}
- },
- "@babel/template": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
- "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
+ }
+ }
+ },
+ "@lerna/package-graph": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.0.tgz",
+ "integrity": "sha512-BLYDHO5ihPh20i3zoXfLZ5ZWDCrPuGANgVhl7k5pCmRj90LCvT+C7V3zrw70fErGAfvkcYepMqxD+oBrAYwquQ==",
+ "dev": true,
+ "requires": {
+ "@lerna/prerelease-id-from-version": "3.16.0",
+ "@lerna/validation-error": "3.13.0",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/prerelease-id-from-version": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz",
+ "integrity": "sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/project": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.18.0.tgz",
+ "integrity": "sha512-+LDwvdAp0BurOAWmeHE3uuticsq9hNxBI0+FMHiIai8jrygpJGahaQrBYWpwbshbQyVLeQgx3+YJdW2TbEdFWA==",
+ "dev": true,
+ "requires": {
+ "@lerna/package": "3.16.0",
+ "@lerna/validation-error": "3.13.0",
+ "cosmiconfig": "^5.1.0",
+ "dedent": "^0.7.0",
+ "dot-prop": "^4.2.0",
+ "glob-parent": "^5.0.0",
+ "globby": "^9.2.0",
+ "load-json-file": "^5.3.0",
+ "npmlog": "^4.1.2",
+ "p-map": "^2.1.0",
+ "resolve-from": "^4.0.0",
+ "write-json-file": "^3.2.0"
+ },
+ "dependencies": {
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
}
},
- "@babel/traverse": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
- "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
+ "glob-parent": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.8.3",
- "@babel/helper-function-name": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.13"
+ "is-glob": "^4.0.1"
}
},
- "@babel/types": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
- "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
"dev": true,
"requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.13",
- "to-fast-properties": "^2.0.0"
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
}
},
- "convert-source-map": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
- "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
- "safe-buffer": "~5.1.1"
+ "is-extglob": "^2.1.1"
}
},
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "load-json-file": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+ "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
"dev": true,
"requires": {
- "ms": "^2.1.1"
+ "graceful-fs": "^4.1.15",
+ "parse-json": "^4.0.0",
+ "pify": "^4.0.1",
+ "strip-bom": "^3.0.0",
+ "type-fest": "^0.3.0"
}
},
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- },
- "is-buffer": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
- "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
},
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true
- },
- "json5": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
- "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "minimist": "^1.2.0"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
- "remark-parse": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz",
- "integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==",
- "dev": true,
- "requires": {
- "collapse-white-space": "^1.0.2",
- "is-alphabetical": "^1.0.0",
- "is-decimal": "^1.0.0",
- "is-whitespace-character": "^1.0.0",
- "is-word-character": "^1.0.0",
- "markdown-escapes": "^1.0.0",
- "parse-entities": "^1.1.0",
- "repeat-string": "^1.5.4",
- "state-toggle": "^1.0.0",
- "trim": "0.0.1",
- "trim-trailing-lines": "^1.0.0",
- "unherit": "^1.0.4",
- "unist-util-remove-position": "^1.0.0",
- "vfile-location": "^2.0.0",
- "xtend": "^4.0.1"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
- "unified": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz",
- "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==",
- "dev": true,
- "requires": {
- "bail": "^1.0.0",
- "extend": "^3.0.0",
- "is-plain-obj": "^2.0.0",
- "trough": "^1.0.0",
- "vfile": "^4.0.0"
- }
- },
- "unist-util-is": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.1.tgz",
- "integrity": "sha512-7NYjErP4LJtkEptPR22wO5RsCPnHZZrop7t2SoQzjvpFedCFer4WW8ujj9GI5DkUX7yVcffXLjoURf6h2QUv6Q==",
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "@lerna/prompt": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.13.0.tgz",
+ "integrity": "sha512-P+lWSFokdyvYpkwC3it9cE0IF2U5yy2mOUbGvvE4iDb9K7TyXGE+7lwtx2thtPvBAfIb7O13POMkv7df03HJeA==",
+ "dev": true,
+ "requires": {
+ "inquirer": "^6.2.0",
+ "npmlog": "^4.1.2"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
"dev": true
},
- "unist-util-stringify-position": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz",
- "integrity": "sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.2"
- }
- },
- "unist-util-visit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.1.tgz",
- "integrity": "sha512-bEDa5S/O8WRDeI1mLaMoKuFFi89AjF+UAoMNxO+bbVdo06q+53Vhq4iiv1PenL6Rx1ZxIpXIzqZoc5HD2I1oMA==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0",
- "unist-util-visit-parents": "^3.0.0"
- }
- },
- "unist-util-visit-parents": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.1.tgz",
- "integrity": "sha512-umEOTkm6/y1gIqPrqet55mYqlvGXCia/v1FSc5AveLAI7jFmOAIbqiwcHcviLcusAkEQt1bq2hixCKO9ltMb2Q==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0"
- }
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
},
- "vfile": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.2.tgz",
- "integrity": "sha512-yhoTU5cDMSsaeaMfJ5g0bUKYkYmZhAh9fn9TZicxqn+Cw4Z439il2v3oT9S0yjlpqlI74aFOQCt3nOV+pxzlkw==",
+ "inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "replace-ext": "1.0.0",
- "unist-util-stringify-position": "^2.0.0",
- "vfile-message": "^2.0.0"
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ }
}
},
- "vfile-message": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.2.tgz",
- "integrity": "sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA==",
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0"
+ "ansi-regex": "^4.1.0"
}
}
}
},
- "@mdx-js/react": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.5.tgz",
- "integrity": "sha512-Qwvri4zyU9ZbhhXsH0wfSZ/J9b8mARRTB6GSCTnyKRffO2CaQXl9oLsvRAeQSLRei/onEARc+RexH+jMeNS1rw==",
- "dev": true
- },
- "@mdx-js/util": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.5.tgz",
- "integrity": "sha512-IudQkyZuM8T1CrSX9r0ShPXCABjtEtyrV4lxQqhKAwFqw1aYpy/5LOZhitMLoJTybZPVdPotuh+zjqYy9ZOSbA==",
- "dev": true
- },
- "@mrmlnc/readdir-enhanced": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
- "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
- "dev": true,
- "requires": {
- "call-me-maybe": "^1.0.1",
- "glob-to-regexp": "^0.3.0"
- }
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.2.tgz",
- "integrity": "sha512-wrIBsjA5pl13f0RN4Zx4FNWmU71lv03meGKnqRUoCyan17s4V3WL92f3w3AIuWbNnpcrQyFBU5qMavJoB8d27w==",
+ "@lerna/publish": {
+ "version": "3.18.2",
+ "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.18.2.tgz",
+ "integrity": "sha512-lLQOjoaFv/gc9HtOCMRsOK6NIub8eHnnvmQARjXY/HayA8GuLaD2Px9xOu1L7il+Q0LlMU3wASB9Khy/CiHJUQ==",
"dev": true,
"requires": {
- "@nodelib/fs.stat": "2.0.2",
- "run-parallel": "^1.1.9"
+ "@evocateur/libnpmaccess": "^3.1.2",
+ "@evocateur/npm-registry-fetch": "^4.0.0",
+ "@evocateur/pacote": "^9.6.3",
+ "@lerna/check-working-tree": "3.16.5",
+ "@lerna/child-process": "3.16.5",
+ "@lerna/collect-updates": "3.18.0",
+ "@lerna/command": "3.18.0",
+ "@lerna/describe-ref": "3.16.5",
+ "@lerna/log-packed": "3.16.0",
+ "@lerna/npm-conf": "3.16.0",
+ "@lerna/npm-dist-tag": "3.18.1",
+ "@lerna/npm-publish": "3.16.2",
+ "@lerna/otplease": "3.16.0",
+ "@lerna/output": "3.13.0",
+ "@lerna/pack-directory": "3.16.4",
+ "@lerna/prerelease-id-from-version": "3.16.0",
+ "@lerna/prompt": "3.13.0",
+ "@lerna/pulse-till-done": "3.13.0",
+ "@lerna/run-lifecycle": "3.16.2",
+ "@lerna/run-topologically": "3.18.0",
+ "@lerna/validation-error": "3.13.0",
+ "@lerna/version": "3.18.2",
+ "figgy-pudding": "^3.5.1",
+ "fs-extra": "^8.1.0",
+ "npm-package-arg": "^6.1.0",
+ "npmlog": "^4.1.2",
+ "p-finally": "^1.0.0",
+ "p-map": "^2.1.0",
+ "p-pipe": "^1.2.0",
+ "semver": "^6.2.0"
},
"dependencies": {
- "@nodelib/fs.stat": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz",
- "integrity": "sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw==",
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
},
- "@nodelib/fs.stat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
- "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.3.tgz",
- "integrity": "sha512-l6t8xEhfK9Sa4YO5mIRdau7XSOADfmh3jCr0evNHdY+HNkW6xuQhgMH7D73VV6WpZOagrW0UludvMTiifiwTfA==",
+ "@lerna/pulse-till-done": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz",
+ "integrity": "sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==",
"dev": true,
"requires": {
- "@nodelib/fs.scandir": "2.1.2",
- "fastq": "^1.6.0"
+ "npmlog": "^4.1.2"
}
},
- "@octokit/auth-token": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz",
- "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==",
+ "@lerna/query-graph": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.0.tgz",
+ "integrity": "sha512-fgUhLx6V0jDuKZaKj562jkuuhrfVcjl5sscdfttJ8dXNVADfDz76nzzwLY0ZU7/0m69jDedohn5Fx5p7hDEVEg==",
"dev": true,
"requires": {
- "@octokit/types": "^2.0.0"
+ "@lerna/package-graph": "3.18.0",
+ "figgy-pudding": "^3.5.1"
}
},
- "@octokit/endpoint": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.1.2.tgz",
- "integrity": "sha512-bBGGmcRFq1x0jrB29G/9KjYmO3cdHfk3476B2JOHRvLsNw1Pn3l+ZvbiqtcO9qAS4Ti+zFedLB84ziHZRZclQA==",
+ "@lerna/resolve-symlink": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz",
+ "integrity": "sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==",
"dev": true,
"requires": {
- "deepmerge": "3.2.0",
- "is-plain-object": "^3.0.0",
- "universal-user-agent": "^2.1.0",
- "url-template": "^2.0.8"
+ "fs-extra": "^8.1.0",
+ "npmlog": "^4.1.2",
+ "read-cmd-shim": "^1.0.1"
},
"dependencies": {
- "deepmerge": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
- "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==",
- "dev": true
- },
- "is-plain-object": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
- "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
- "dev": true,
- "requires": {
- "isobject": "^4.0.0"
- }
- },
- "isobject": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
- "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
- "dev": true
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
}
}
},
- "@octokit/graphql": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz",
- "integrity": "sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==",
+ "@lerna/rimraf-dir": {
+ "version": "3.16.5",
+ "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz",
+ "integrity": "sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==",
"dev": true,
"requires": {
- "@octokit/request": "^5.0.0",
- "universal-user-agent": "^2.0.3"
+ "@lerna/child-process": "3.16.5",
+ "npmlog": "^4.1.2",
+ "path-exists": "^3.0.0",
+ "rimraf": "^2.6.2"
},
"dependencies": {
- "@octokit/request": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.0.2.tgz",
- "integrity": "sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A==",
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
- "@octokit/endpoint": "^5.1.0",
- "@octokit/request-error": "^1.0.1",
- "deprecation": "^2.0.0",
- "is-plain-object": "^3.0.0",
- "node-fetch": "^2.3.0",
- "once": "^1.4.0",
- "universal-user-agent": "^3.0.0"
- },
- "dependencies": {
- "universal-user-agent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-3.0.0.tgz",
- "integrity": "sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA==",
- "dev": true,
- "requires": {
- "os-name": "^3.0.0"
- }
- }
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
- "is-plain-object": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
- "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
- "isobject": "^4.0.0"
+ "glob": "^7.1.3"
}
- },
- "isobject": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
- "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
- "dev": true
- },
- "node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
- "dev": true
}
}
},
- "@octokit/plugin-enterprise-rest": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz",
- "integrity": "sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA==",
- "dev": true
- },
- "@octokit/request": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-4.1.0.tgz",
- "integrity": "sha512-RvpQAba4i+BNH0z8i0gPRc1ShlHidj4puQjI/Tno6s+Q3/Mzb0XRSHJiOhpeFrZ22V7Mwjq1E7QS27P5CgpWYA==",
+ "@lerna/run": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.18.0.tgz",
+ "integrity": "sha512-sblxHBZ9djaaG7wefPcfEicDqzrB7CP1m/jIB0JvPEQwG4C2qp++ewBpkjRw/mBtjtzg0t7v0nNMXzaWYrQckQ==",
"dev": true,
"requires": {
- "@octokit/endpoint": "^5.1.0",
- "@octokit/request-error": "^1.0.1",
- "deprecation": "^2.0.0",
- "is-plain-object": "^3.0.0",
- "node-fetch": "^2.3.0",
- "once": "^1.4.0",
- "universal-user-agent": "^2.1.0"
+ "@lerna/command": "3.18.0",
+ "@lerna/filter-options": "3.18.0",
+ "@lerna/npm-run-script": "3.16.5",
+ "@lerna/output": "3.13.0",
+ "@lerna/run-topologically": "3.18.0",
+ "@lerna/timer": "3.13.0",
+ "@lerna/validation-error": "3.13.0",
+ "p-map": "^2.1.0"
},
"dependencies": {
- "is-plain-object": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
- "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
- "dev": true,
- "requires": {
- "isobject": "^4.0.0"
- }
- },
- "isobject": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
- "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
- "dev": true
- },
- "node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
}
}
},
- "@octokit/request-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.2.tgz",
- "integrity": "sha512-T9swMS/Vc4QlfWrvyeSyp/GjhXtYaBzCcibjGywV4k4D2qVrQKfEMPy8OxMDEj7zkIIdpHwqdpVbKCvnUPqkXw==",
+ "@lerna/run-lifecycle": {
+ "version": "3.16.2",
+ "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz",
+ "integrity": "sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==",
"dev": true,
"requires": {
- "deprecation": "^2.0.0",
- "once": "^1.4.0"
+ "@lerna/npm-conf": "3.16.0",
+ "figgy-pudding": "^3.5.1",
+ "npm-lifecycle": "^3.1.2",
+ "npmlog": "^4.1.2"
}
},
- "@octokit/rest": {
- "version": "16.26.0",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.26.0.tgz",
- "integrity": "sha512-NBpzre44ZAQWZhlH+zUYTgqI0pHN+c9rNj4d+pCydGEiKTGc1HKmoTghEUyr9GxazDyoAvmpx9nL0I7QS1Olvg==",
+ "@lerna/run-topologically": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.0.tgz",
+ "integrity": "sha512-lrfEewwuUMC3ioxf9Z9NdHUakN6ihekcPfdYbzR2slmdbjYKmIA5srkWdrK8NwOpQCAuekpOovH2s8X3FGEopg==",
"dev": true,
"requires": {
- "@octokit/request": "^4.0.1",
- "@octokit/request-error": "^1.0.2",
- "atob-lite": "^2.0.0",
- "before-after-hook": "^1.4.0",
- "btoa-lite": "^1.0.0",
- "deprecation": "^2.0.0",
- "lodash.get": "^4.4.2",
- "lodash.set": "^4.3.2",
- "lodash.uniq": "^4.5.0",
- "octokit-pagination-methods": "^1.1.0",
- "once": "^1.4.0",
- "universal-user-agent": "^2.0.0",
- "url-template": "^2.0.8"
+ "@lerna/query-graph": "3.18.0",
+ "figgy-pudding": "^3.5.1",
+ "p-queue": "^4.0.0"
}
},
- "@octokit/types": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.5.0.tgz",
- "integrity": "sha512-KEnLwOfdXzxPNL34fj508bhi9Z9cStyN7qY1kOfVahmqtAfrWw6Oq3P4R+dtsg0lYtZdWBpUrS/Ixmd5YILSww==",
+ "@lerna/symlink-binary": {
+ "version": "3.17.0",
+ "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz",
+ "integrity": "sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==",
"dev": true,
"requires": {
- "@types/node": ">= 8"
+ "@lerna/create-symlink": "3.16.2",
+ "@lerna/package": "3.16.0",
+ "fs-extra": "^8.1.0",
+ "p-map": "^2.1.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
+ },
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ }
}
},
- "@octokit/webhooks": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-7.1.0.tgz",
- "integrity": "sha512-kHyYkJkqY/wiP/hp0IT9FhkY5PhnV01co16V2YMRP/Zgnk3Vsy3U5iLAaP6U/0eRIlz5T4LSvkrcfNlfSb3cVQ==",
+ "@lerna/symlink-dependencies": {
+ "version": "3.17.0",
+ "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz",
+ "integrity": "sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==",
"dev": true,
"requires": {
- "debug": "^4.0.0"
+ "@lerna/create-symlink": "3.16.2",
+ "@lerna/resolve-symlink": "3.16.0",
+ "@lerna/symlink-binary": "3.17.0",
+ "fs-extra": "^8.1.0",
+ "p-finally": "^1.0.0",
+ "p-map": "^2.1.0",
+ "p-map-series": "^1.0.0"
},
"dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
}
}
},
- "@popperjs/core": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.1.1.tgz",
- "integrity": "sha512-sLqWxCzC5/QHLhziXSCAksBxHfOnQlhPRVgPK0egEw+ktWvG75T2k+aYWVjVh9+WKeT3tlG3ZNbZQvZLmfuOIw=="
+ "@lerna/timer": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz",
+ "integrity": "sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==",
+ "dev": true
},
- "@reach/router": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.2.1.tgz",
- "integrity": "sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ==",
+ "@lerna/validation-error": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz",
+ "integrity": "sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==",
"dev": true,
"requires": {
- "create-react-context": "^0.2.1",
- "invariant": "^2.2.3",
- "prop-types": "^15.6.1",
- "react-lifecycles-compat": "^3.0.4",
- "warning": "^3.0.0"
- }
- },
- "@react-native-community/cli-debugger-ui": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-3.0.0.tgz",
- "integrity": "sha512-m3X+iWLsK/H7/b7PpbNO33eQayR/+M26la4ZbYe1KRke5Umg4PIWsvg21O8Tw4uJcY8LA5hsP+rBi/syBkBf0g==",
- "requires": {
- "serve-static": "^1.13.1"
+ "npmlog": "^4.1.2"
}
},
- "@react-native-community/cli-platform-android": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-3.0.3.tgz",
- "integrity": "sha512-rNO9DmRiVhB6aP2DVUjEJv7ecriTARDZND88ny3xNVUkrD1Y+zwF6aZu3eoT52VXOxLCSLiJzz19OiyGmfqxYg==",
+ "@lerna/version": {
+ "version": "3.18.2",
+ "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.18.2.tgz",
+ "integrity": "sha512-nmCJpw3A2DoNGbjmvI5UB3ZwTQUayI8M/b3rOA6ZzYeGmoQmm2QBKun05aBRasqTuUo4XjSuas5CqHN+x4f8Ww==",
+ "dev": true,
"requires": {
- "@react-native-community/cli-tools": "^3.0.0",
- "chalk": "^2.4.2",
- "execa": "^1.0.0",
- "jetifier": "^1.6.2",
- "logkitty": "^0.6.0",
- "slash": "^3.0.0",
- "xmldoc": "^1.1.2"
+ "@lerna/check-working-tree": "3.16.5",
+ "@lerna/child-process": "3.16.5",
+ "@lerna/collect-updates": "3.18.0",
+ "@lerna/command": "3.18.0",
+ "@lerna/conventional-commits": "3.16.4",
+ "@lerna/github-client": "3.16.5",
+ "@lerna/gitlab-client": "3.15.0",
+ "@lerna/output": "3.13.0",
+ "@lerna/prerelease-id-from-version": "3.16.0",
+ "@lerna/prompt": "3.13.0",
+ "@lerna/run-lifecycle": "3.16.2",
+ "@lerna/run-topologically": "3.18.0",
+ "@lerna/validation-error": "3.13.0",
+ "chalk": "^2.3.1",
+ "dedent": "^0.7.0",
+ "load-json-file": "^5.3.0",
+ "minimatch": "^3.0.4",
+ "npmlog": "^4.1.2",
+ "p-map": "^2.1.0",
+ "p-pipe": "^1.2.0",
+ "p-reduce": "^1.0.0",
+ "p-waterfall": "^1.0.0",
+ "semver": "^6.2.0",
+ "slash": "^2.0.0",
+ "temp-write": "^3.4.0",
+ "write-json-file": "^3.2.0"
},
"dependencies": {
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.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"
- }
- },
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
- }
- }
- },
- "@react-native-community/cli-platform-ios": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.0.0.tgz",
- "integrity": "sha512-QoNVlDj8eMXRZk9uktPFsctHurQpv9jKmiu6mQii4NEtT2npE7g1hbWpRNojutBsfgmCdQGDHd9uB54eeCnYgg==",
- "requires": {
- "@react-native-community/cli-tools": "^3.0.0",
- "chalk": "^2.4.2",
- "js-yaml": "^3.13.1",
- "xcode": "^2.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- }
- }
- },
- "@react-native-community/cli-tools": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-3.0.0.tgz",
- "integrity": "sha512-8IhQKZdf3E4CR8T7HhkPGgorot/cLkRDgneJFDSWk/wCYZAuUh4NEAdumQV7N0jLSMWX7xxiWUPi94lOBxVY9g==",
- "requires": {
- "chalk": "^2.4.2",
- "lodash": "^4.17.5",
- "mime": "^2.4.1",
- "node-fetch": "^2.5.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "dev": true
},
- "node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
- }
- }
- },
- "@react-native-community/cli-types": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-3.0.0.tgz",
- "integrity": "sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg=="
- },
- "@react-native-community/slider": {
- "version": "git+https://github.com/wordpress-mobile/react-native-slider.git#5ad284d92b8d886e366445bf215be741ed53ddc6",
- "from": "git+https://github.com/wordpress-mobile/react-native-slider.git#5ad284d92b8d886e366445bf215be741ed53ddc6"
- },
- "@samverschueren/stream-to-observable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
- "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
- "dev": true,
- "requires": {
- "any-observable": "^0.3.0"
- }
- },
- "@sindresorhus/is": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.0.tgz",
- "integrity": "sha512-lXKXfypKo644k4Da4yXkPCrwcvn6SlUW2X2zFbuflKHNjf0w9htru01bo26uMhleMXsDmnZ12eJLdrAZa9MANg==",
- "dev": true
- },
- "@sinonjs/commons": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz",
- "integrity": "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@storybook/addon-a11y": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-5.3.2.tgz",
- "integrity": "sha512-JOx4GZl8ZDxPlYnMTiBNnzE6GQzojlJobcbJiXWXJP1P7YnOL7IwVS5zNxtGAtN0npL2I0ZhhSSsaG2Si5IoLQ==",
- "dev": true,
- "requires": {
- "@storybook/addons": "5.3.2",
- "@storybook/api": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "@storybook/components": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/theming": "5.3.2",
- "axe-core": "^3.3.2",
- "core-js": "^3.0.1",
- "global": "^4.3.2",
- "memoizerific": "^1.11.3",
- "react": "^16.8.3",
- "react-redux": "^7.0.2",
- "react-sizeme": "^2.5.2",
- "redux": "^4.0.1",
- "ts-dedent": "^1.1.0",
- "util-deprecate": "^1.0.2"
- },
- "dependencies": {
- "redux": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz",
- "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==",
+ "load-json-file": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+ "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
"dev": true,
"requires": {
- "loose-envify": "^1.4.0",
- "symbol-observable": "^1.2.0"
+ "graceful-fs": "^4.1.15",
+ "parse-json": "^4.0.0",
+ "pify": "^4.0.1",
+ "strip-bom": "^3.0.0",
+ "type-fest": "^0.3.0"
}
- }
- }
- },
- "@storybook/addon-docs": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-5.3.2.tgz",
- "integrity": "sha512-gGxDYP2VMl2Js3eSR0FM/QCf8PULLoZq57LIA8mxX38oxOydC3mIG1970sUM/g6MDtP4TV4F6rjd++eY4Gc07g==",
- "dev": true,
- "requires": {
- "@babel/generator": "^7.4.0",
- "@babel/parser": "^7.4.2",
- "@babel/plugin-transform-react-jsx": "^7.3.0",
- "@egoist/vue-to-react": "^1.1.0",
- "@jest/transform": "^24.9.0",
- "@mdx-js/loader": "^1.5.1",
- "@mdx-js/mdx": "^1.5.1",
- "@mdx-js/react": "^1.5.1",
- "@storybook/addons": "5.3.2",
- "@storybook/api": "5.3.2",
- "@storybook/components": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/csf": "0.0.1",
- "@storybook/postinstall": "5.3.2",
- "@storybook/source-loader": "5.3.2",
- "@storybook/theming": "5.3.2",
- "acorn": "^7.1.0",
- "acorn-jsx": "^5.1.0",
- "acorn-walk": "^7.0.0",
- "core-js": "^3.0.1",
- "doctrine": "^3.0.0",
- "escodegen": "^1.12.0",
- "global": "^4.3.2",
- "html-tags": "^3.1.0",
- "js-string-escape": "^1.0.1",
- "lodash": "^4.17.15",
- "prop-types": "^15.7.2",
- "react-element-to-jsx-string": "^14.1.0",
- "remark-external-links": "^5.0.0",
- "remark-slug": "^5.1.2",
- "ts-dedent": "^1.1.0",
- "util-deprecate": "^1.0.2",
- "vue-docgen-api": "^4.1.0",
- "vue-docgen-loader": "^1.3.0-beta.0"
- },
- "dependencies": {
- "acorn": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
- "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
- "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
- "dev": true
},
- "acorn-walk": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz",
- "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==",
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
},
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "escodegen": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz",
- "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==",
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
- "esprima": {
+ "pify": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
- "html-tags": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
- "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "optional": true
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
}
}
},
- "@storybook/addon-knobs": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-5.3.2.tgz",
- "integrity": "sha512-5enTXIoVzepQDDe55wTQOfqT1cOwngjlakKar7lYWqww2ixVJJ3xMZ9dLqnYZkROMsN67sDwmuawvze+W5lbEA==",
+ "@lerna/write-log-file": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz",
+ "integrity": "sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==",
"dev": true,
"requires": {
- "@storybook/addons": "5.3.2",
- "@storybook/api": "5.3.2",
- "@storybook/client-api": "5.3.2",
- "@storybook/components": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/theming": "5.3.2",
- "@types/react-color": "^3.0.1",
- "copy-to-clipboard": "^3.0.8",
- "core-js": "^3.0.1",
- "escape-html": "^1.0.3",
- "fast-deep-equal": "^2.0.1",
- "global": "^4.3.2",
- "lodash": "^4.17.15",
- "prop-types": "^15.7.2",
- "qs": "^6.6.0",
- "react-color": "^2.17.0",
- "react-lifecycles-compat": "^3.0.4",
- "react-select": "^3.0.8"
- },
- "dependencies": {
- "qs": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
- "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
- "dev": true
- }
+ "npmlog": "^4.1.2",
+ "write-file-atomic": "^2.3.0"
}
},
- "@storybook/addon-storysource": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-5.3.2.tgz",
- "integrity": "sha512-wLbYfwM/XX0HbXvJNWpTrA+Z61EIZQafEDClFeM0OUSoG7PkXzLEHQb5UC0me1an9veZfgejjEqn2NmMkAAV0Q==",
+ "@mdx-js/loader": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.5.5.tgz",
+ "integrity": "sha512-2/2WX73qj79Kv2cYk14kQsN/aypAH3RPzuNMx1gxwZjj77G0N6tzhM9WFkEDM/SXjasWep03ZmSRb9d//b2D8w==",
"dev": true,
"requires": {
- "@storybook/addons": "5.3.2",
- "@storybook/components": "5.3.2",
- "@storybook/router": "5.3.2",
- "@storybook/source-loader": "5.3.2",
- "@storybook/theming": "5.3.2",
- "core-js": "^3.0.1",
- "estraverse": "^4.2.0",
- "loader-utils": "^1.2.3",
- "prettier": "^1.16.4",
- "prop-types": "^15.7.2",
- "react-syntax-highlighter": "^11.0.2",
- "regenerator-runtime": "^0.13.3",
- "util-deprecate": "^1.0.2"
+ "@mdx-js/mdx": "^1.5.5",
+ "@mdx-js/react": "^1.5.5",
+ "loader-utils": "1.2.3"
},
"dependencies": {
"big.js": {
@@ -6444,1061 +6161,862 @@
"emojis-list": "^2.0.0",
"json5": "^1.0.1"
}
- },
- "regenerator-runtime": {
- "version": "0.13.3",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
- "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
- "dev": true
}
}
},
- "@storybook/addon-viewport": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-5.3.2.tgz",
- "integrity": "sha512-4W1pxVymFIcFO535Q2h7gXXdGeVluvVhHJGU58fFtrKVAN1UOgMprMe/6PnisvDtyWwqUbEHwxxghoaVF28xXA==",
- "dev": true,
- "requires": {
- "@storybook/addons": "5.3.2",
- "@storybook/api": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "@storybook/components": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/theming": "5.3.2",
- "core-js": "^3.0.1",
- "global": "^4.3.2",
- "memoizerific": "^1.11.3",
- "prop-types": "^15.7.2",
- "util-deprecate": "^1.0.2"
- }
- },
- "@storybook/addons": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.2.tgz",
- "integrity": "sha512-vSByVK0yQJ8kjYmw8Ayj7cmCIOEdQKNjV7OLTXmLMpde+hUBqmDbCzwT0m5kZjzSFRTvB8bz0WBPavE02ZBN8A==",
- "dev": true,
- "requires": {
- "@storybook/api": "5.3.2",
- "@storybook/channels": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "core-js": "^3.0.1",
- "global": "^4.3.2",
- "util-deprecate": "^1.0.2"
- }
- },
- "@storybook/api": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.2.tgz",
- "integrity": "sha512-4XK1+RXCb0HnQsmDzQn6H9SljibV/Mi/vIixlcprcTZ5sBPhaMumt/T3d2rUEyP7Lpm4/7HMsuuhkkkXcjPJJw==",
+ "@mdx-js/mdx": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.5.5.tgz",
+ "integrity": "sha512-Xv1lJ+VWt8giWQrqf4GdIBxl08SfepfIWAnuuIzuR+wA59SaXDvkW6XFIvl8u495OQEB1eugMvq8l2XR8ZGr1A==",
"dev": true,
"requires": {
- "@reach/router": "^1.2.1",
- "@storybook/channels": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/csf": "0.0.1",
- "@storybook/router": "5.3.2",
- "@storybook/theming": "5.3.2",
- "@types/reach__router": "^1.2.3",
- "core-js": "^3.0.1",
- "fast-deep-equal": "^2.0.1",
- "global": "^4.3.2",
- "lodash": "^4.17.15",
- "memoizerific": "^1.11.3",
- "prop-types": "^15.6.2",
- "react": "^16.8.3",
- "semver": "^6.0.0",
- "shallow-equal": "^1.1.0",
- "store2": "^2.7.1",
- "telejson": "^3.2.0",
- "util-deprecate": "^1.0.2"
- },
- "dependencies": {
- "shallow-equal": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
- "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
- "dev": true
- }
- }
- },
- "@storybook/channel-postmessage": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.2.tgz",
- "integrity": "sha512-2SnYDtzBhtBEu8tKn+2QzewdW1/R7xpBY3FmMqhY+vdBCtFFSqdiFuaKbGUQRKKLH+mQEKc7DBVf/U+HJlKPyg==",
- "dev": true,
- "requires": {
- "@storybook/channels": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "core-js": "^3.0.1",
- "global": "^4.3.2",
- "telejson": "^3.2.0"
- }
- },
- "@storybook/channels": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.2.tgz",
- "integrity": "sha512-eVHGrFCsQ6sO/H1cdEvPoBCsEndIbkbvOEMdI3Fah6jnWLb9fXJwM7f+UKkMPUOflMvzyO17dfXtigSU8uJMoA==",
- "dev": true,
- "requires": {
- "core-js": "^3.0.1"
- }
- },
- "@storybook/client-api": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.2.tgz",
- "integrity": "sha512-zfnfy46YUBukPpztAB9nZYJ3RazZx1a+0ZCCMEK6KuZkFSOVcYeqJe2PRAbiRVdCG+fG05OaSWw/AXraHZCE8Q==",
- "dev": true,
- "requires": {
- "@storybook/addons": "5.3.2",
- "@storybook/channel-postmessage": "5.3.2",
- "@storybook/channels": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/csf": "0.0.1",
- "core-js": "^3.0.1",
- "eventemitter3": "^4.0.0",
- "global": "^4.3.2",
- "is-plain-object": "^3.0.0",
- "lodash": "^4.17.15",
- "memoizerific": "^1.11.3",
- "qs": "^6.6.0",
- "stable": "^0.1.8",
- "ts-dedent": "^1.1.0",
- "util-deprecate": "^1.0.2"
- },
- "dependencies": {
- "eventemitter3": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
- "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
- "dev": true
- },
- "is-plain-object": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
- "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
- "dev": true,
- "requires": {
- "isobject": "^4.0.0"
- }
- },
- "isobject": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
- "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
- "dev": true
- },
- "qs": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
- "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
- "dev": true
- }
- }
- },
- "@storybook/client-logger": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.2.tgz",
- "integrity": "sha512-sLP3MZ1LPQg/YR9yDoJq2S9/iM+yuD925RR0tD1ItQksKZA2gsI1CSf6zRPBluf7UwS7ACsotLlIPJg+czvr4A==",
- "dev": true,
- "requires": {
- "core-js": "^3.0.1"
- }
- },
- "@storybook/components": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.2.tgz",
- "integrity": "sha512-JtVPz03vVDI9/QqUbYitTQhLGxXHN0+49y97G527Xn3y6S71DkdQAVgYqUNnsUpPSyNLESgvAV39HRvzy/LSyw==",
- "dev": true,
- "requires": {
- "@storybook/client-logger": "5.3.2",
- "@storybook/theming": "5.3.2",
- "@types/react-syntax-highlighter": "11.0.2",
- "@types/react-textarea-autosize": "^4.3.3",
- "core-js": "^3.0.1",
- "global": "^4.3.2",
- "lodash": "^4.17.15",
- "markdown-to-jsx": "^6.9.1",
- "memoizerific": "^1.11.3",
- "polished": "^3.3.1",
- "popper.js": "^1.14.7",
- "prop-types": "^15.7.2",
- "react": "^16.8.3",
- "react-dom": "^16.8.3",
- "react-focus-lock": "^2.1.0",
- "react-helmet-async": "^1.0.2",
- "react-popper-tooltip": "^2.8.3",
- "react-syntax-highlighter": "^11.0.2",
- "react-textarea-autosize": "^7.1.0",
- "simplebar-react": "^1.0.0-alpha.6",
- "ts-dedent": "^1.1.0"
- }
- },
- "@storybook/core": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.2.tgz",
- "integrity": "sha512-0AURg+mBFhLEnuMMxd7d3QQRpV3IQ25LMq2ceNwwl6VSLKaSZ09jgnoXeuRJ6VQHc2lER5eYuj/0L2x3RdbPMQ==",
- "dev": true,
- "requires": {
- "@babel/plugin-proposal-class-properties": "^7.7.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
- "@babel/plugin-syntax-dynamic-import": "^7.2.0",
- "@babel/plugin-transform-react-constant-elements": "^7.2.0",
- "@babel/preset-env": "^7.4.5",
- "@storybook/addons": "5.3.2",
- "@storybook/channel-postmessage": "5.3.2",
- "@storybook/client-api": "5.3.2",
- "@storybook/client-logger": "5.3.2",
- "@storybook/core-events": "5.3.2",
- "@storybook/csf": "0.0.1",
- "@storybook/node-logger": "5.3.2",
- "@storybook/router": "5.3.2",
- "@storybook/theming": "5.3.2",
- "@storybook/ui": "5.3.2",
- "airbnb-js-shims": "^2.2.1",
- "ansi-to-html": "^0.6.11",
- "autoprefixer": "^9.7.2",
- "babel-plugin-add-react-displayname": "^0.0.5",
- "babel-plugin-emotion": "^10.0.20",
- "babel-plugin-macros": "^2.7.0",
- "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5",
- "boxen": "^4.1.0",
- "case-sensitive-paths-webpack-plugin": "^2.2.0",
- "chalk": "^3.0.0",
- "cli-table3": "0.5.1",
- "commander": "^4.0.1",
- "core-js": "^3.0.1",
- "corejs-upgrade-webpack-plugin": "^2.2.0",
- "css-loader": "^3.0.0",
- "detect-port": "^1.3.0",
- "dotenv-webpack": "^1.7.0",
- "ejs": "^2.7.4",
- "express": "^4.17.0",
- "file-loader": "^4.2.0",
- "file-system-cache": "^1.0.5",
- "find-cache-dir": "^3.0.0",
- "find-up": "^4.1.0",
- "fs-extra": "^8.0.1",
- "glob-base": "^0.3.0",
- "global": "^4.3.2",
- "html-webpack-plugin": "^4.0.0-beta.2",
- "inquirer": "^7.0.0",
- "interpret": "^2.0.0",
- "ip": "^1.1.5",
- "json5": "^2.1.1",
- "lazy-universal-dotenv": "^3.0.1",
- "micromatch": "^4.0.2",
- "node-fetch": "^2.6.0",
- "open": "^7.0.0",
- "pnp-webpack-plugin": "1.5.0",
- "postcss-flexbugs-fixes": "^4.1.0",
- "postcss-loader": "^3.0.0",
- "pretty-hrtime": "^1.0.3",
- "qs": "^6.6.0",
- "raw-loader": "^3.1.0",
- "react-dev-utils": "^9.0.0",
- "regenerator-runtime": "^0.13.3",
- "resolve": "^1.11.0",
- "resolve-from": "^5.0.0",
- "semver": "^6.0.0",
- "serve-favicon": "^2.5.0",
- "shelljs": "^0.8.3",
- "style-loader": "^1.0.0",
- "terser-webpack-plugin": "^2.1.2",
- "ts-dedent": "^1.1.0",
- "unfetch": "^4.1.0",
- "url-loader": "^2.0.1",
- "util-deprecate": "^1.0.2",
- "webpack": "^4.33.0",
- "webpack-dev-middleware": "^3.7.0",
- "webpack-hot-middleware": "^2.25.0",
- "webpack-virtual-modules": "^0.2.0"
+ "@babel/core": "7.8.0",
+ "@babel/plugin-syntax-jsx": "7.8.0",
+ "@babel/plugin-syntax-object-rest-spread": "7.8.0",
+ "@mdx-js/util": "^1.5.5",
+ "babel-plugin-apply-mdx-type-prop": "^1.5.5",
+ "babel-plugin-extract-import-names": "^1.5.5",
+ "camelcase-css": "2.0.1",
+ "detab": "2.0.2",
+ "hast-util-raw": "5.0.1",
+ "lodash.uniq": "4.5.0",
+ "mdast-util-to-hast": "6.0.2",
+ "remark-mdx": "^1.5.5",
+ "remark-parse": "7.0.2",
+ "remark-squeeze-paragraphs": "3.0.4",
+ "style-to-object": "0.3.0",
+ "unified": "8.4.2",
+ "unist-builder": "1.0.4",
+ "unist-util-visit": "2.0.1"
},
"dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/generator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
- "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
+ "@babel/core": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.0.tgz",
+ "integrity": "sha512-3rqPi/bv/Xfu2YzHvBz4XqMI1fKVwnhntPA1/fjoECrSjrhbOCxlTrbVu5gUtr8zkxW+RpkDOa/HCW93gzS2Dw==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3",
- "jsesc": "^2.5.1",
+ "@babel/code-frame": "^7.8.0",
+ "@babel/generator": "^7.8.0",
+ "@babel/helpers": "^7.8.0",
+ "@babel/parser": "^7.8.0",
+ "@babel/template": "^7.8.0",
+ "@babel/traverse": "^7.8.0",
+ "@babel/types": "^7.8.0",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.0",
"lodash": "^4.17.13",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
"source-map": "^0.5.0"
}
},
- "@babel/helper-create-class-features-plugin": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz",
- "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==",
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.0.tgz",
+ "integrity": "sha512-zLDUckAuKeOtxJhfNE0TlR7iEApb2u7EYRlh5cxKzq6A5VzUbYEdyJGJlug41jDbjRbHTtsLKZUnUcy/8V3xZw==",
"dev": true,
"requires": {
- "@babel/helper-function-name": "^7.8.3",
- "@babel/helper-member-expression-to-functions": "^7.8.3",
- "@babel/helper-optimise-call-expression": "^7.8.3",
- "@babel/helper-plugin-utils": "^7.8.3",
- "@babel/helper-replace-supers": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "@babel/helper-function-name": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
- "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.0.tgz",
+ "integrity": "sha512-dt89fDlkfkTrQcy5KavMQPyF2A6tR0kYp8HAnIoQv5hO34iAUffHghP/hMGd7Gf/+uYTmLQO0ar7peX1SUWyIA==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.8.0"
}
},
- "@babel/helper-get-function-arity": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
- "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "safe-buffer": "~5.1.1"
}
},
- "@babel/helper-member-expression-to-functions": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
- "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "ms": "^2.1.1"
}
},
- "@babel/helper-optimise-call-expression": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
- "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
+ "globals": {
+ "version": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
- "@babel/helper-plugin-utils": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
- "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
"dev": true
},
- "@babel/helper-replace-supers": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz",
- "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==",
- "dev": true,
- "requires": {
- "@babel/helper-member-expression-to-functions": "^7.8.3",
- "@babel/helper-optimise-call-expression": "^7.8.3",
- "@babel/traverse": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
},
- "@babel/helper-split-export-declaration": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
- "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+ "json5": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
+ "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "minimist": "^1.2.0"
}
},
- "@babel/highlight": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
- "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "remark-parse": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz",
+ "integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==",
"dev": true,
"requires": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- }
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^1.1.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^1.0.0",
+ "vfile-location": "^2.0.0",
+ "xtend": "^4.0.1"
}
},
- "@babel/parser": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
- "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
},
- "@babel/plugin-proposal-class-properties": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz",
- "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==",
+ "unified": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz",
+ "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.8.3",
- "@babel/helper-plugin-utils": "^7.8.3"
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
}
},
- "@babel/plugin-proposal-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.3",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.0"
- }
+ "unist-util-is": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.1.tgz",
+ "integrity": "sha512-7NYjErP4LJtkEptPR22wO5RsCPnHZZrop7t2SoQzjvpFedCFer4WW8ujj9GI5DkUX7yVcffXLjoURf6h2QUv6Q==",
+ "dev": true
},
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "unist-util-stringify-position": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz",
+ "integrity": "sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@types/unist": "^2.0.2"
}
},
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
+ "unist-util-visit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.1.tgz",
+ "integrity": "sha512-bEDa5S/O8WRDeI1mLaMoKuFFi89AjF+UAoMNxO+bbVdo06q+53Vhq4iiv1PenL6Rx1ZxIpXIzqZoc5HD2I1oMA==",
"dev": true,
"requires": {
- "regenerator-runtime": "^0.13.2"
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
}
},
- "@babel/template": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
- "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
+ "unist-util-visit-parents": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.1.tgz",
+ "integrity": "sha512-umEOTkm6/y1gIqPrqet55mYqlvGXCia/v1FSc5AveLAI7jFmOAIbqiwcHcviLcusAkEQt1bq2hixCKO9ltMb2Q==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
}
},
- "@babel/traverse": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
- "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
+ "vfile": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.2.tgz",
+ "integrity": "sha512-yhoTU5cDMSsaeaMfJ5g0bUKYkYmZhAh9fn9TZicxqn+Cw4Z439il2v3oT9S0yjlpqlI74aFOQCt3nOV+pxzlkw==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.8.3",
- "@babel/helper-function-name": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.13"
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
}
},
- "@babel/types": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
- "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
+ "vfile-message": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.2.tgz",
+ "integrity": "sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA==",
"dev": true,
"requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.13",
- "to-fast-properties": "^2.0.0"
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
}
+ }
+ }
+ },
+ "@mdx-js/react": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.5.tgz",
+ "integrity": "sha512-Qwvri4zyU9ZbhhXsH0wfSZ/J9b8mARRTB6GSCTnyKRffO2CaQXl9oLsvRAeQSLRei/onEARc+RexH+jMeNS1rw==",
+ "dev": true
+ },
+ "@mdx-js/util": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.5.tgz",
+ "integrity": "sha512-IudQkyZuM8T1CrSX9r0ShPXCABjtEtyrV4lxQqhKAwFqw1aYpy/5LOZhitMLoJTybZPVdPotuh+zjqYy9ZOSbA==",
+ "dev": true
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.2.tgz",
+ "integrity": "sha512-wrIBsjA5pl13f0RN4Zx4FNWmU71lv03meGKnqRUoCyan17s4V3WL92f3w3AIuWbNnpcrQyFBU5qMavJoB8d27w==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.2",
+ "run-parallel": "^1.1.9"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz",
+ "integrity": "sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw==",
+ "dev": true
+ }
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
+ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.3.tgz",
+ "integrity": "sha512-l6t8xEhfK9Sa4YO5mIRdau7XSOADfmh3jCr0evNHdY+HNkW6xuQhgMH7D73VV6WpZOagrW0UludvMTiifiwTfA==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.2",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@octokit/auth-token": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz",
+ "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==",
+ "dev": true,
+ "requires": {
+ "@octokit/types": "^2.0.0"
+ }
+ },
+ "@octokit/endpoint": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.1.2.tgz",
+ "integrity": "sha512-bBGGmcRFq1x0jrB29G/9KjYmO3cdHfk3476B2JOHRvLsNw1Pn3l+ZvbiqtcO9qAS4Ti+zFedLB84ziHZRZclQA==",
+ "dev": true,
+ "requires": {
+ "deepmerge": "3.2.0",
+ "is-plain-object": "^3.0.0",
+ "universal-user-agent": "^2.1.0",
+ "url-template": "^2.0.8"
+ },
+ "dependencies": {
+ "deepmerge": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
+ "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==",
+ "dev": true
},
- "accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "is-plain-object": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
+ "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
"dev": true,
"requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "isobject": "^4.0.0"
}
},
- "ansi-escapes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
- "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
+ "isobject": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
+ "dev": true
+ }
+ }
+ },
+ "@octokit/graphql": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz",
+ "integrity": "sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==",
+ "dev": true,
+ "requires": {
+ "@octokit/request": "^5.0.0",
+ "universal-user-agent": "^2.0.3"
+ },
+ "dependencies": {
+ "@octokit/request": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.0.2.tgz",
+ "integrity": "sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A==",
"dev": true,
"requires": {
- "type-fest": "^0.8.1"
- }
- },
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "autoprefixer": {
- "version": "9.7.4",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz",
- "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==",
- "dev": true,
- "requires": {
- "browserslist": "^4.8.3",
- "caniuse-lite": "^1.0.30001020",
- "chalk": "^2.4.2",
- "normalize-range": "^0.1.2",
- "num2fraction": "^1.2.2",
- "postcss": "^7.0.26",
- "postcss-value-parser": "^4.0.2"
+ "@octokit/endpoint": "^5.1.0",
+ "@octokit/request-error": "^1.0.1",
+ "deprecation": "^2.0.0",
+ "is-plain-object": "^3.0.0",
+ "node-fetch": "^2.3.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^3.0.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "universal-user-agent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-3.0.0.tgz",
+ "integrity": "sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "os-name": "^3.0.0"
}
}
}
},
- "babel-plugin-macros": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
- "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+ "is-plain-object": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
+ "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.7.2",
- "cosmiconfig": "^6.0.0",
- "resolve": "^1.12.0"
+ "isobject": "^4.0.0"
}
},
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "isobject": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
"dev": true
},
- "body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "dev": true,
- "requires": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
- "dev": true
- }
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browserslist": {
- "version": "4.8.5",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.5.tgz",
- "integrity": "sha512-4LMHuicxkabIB+n9874jZX/az1IaZ5a+EUuvD7KFOu9x/Bd5YHyO0DIz2ls/Kl8g0ItS4X/ilEgf4T1Br0lgSg==",
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "dev": true
+ }
+ }
+ },
+ "@octokit/plugin-enterprise-rest": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz",
+ "integrity": "sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA==",
+ "dev": true
+ },
+ "@octokit/request": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-4.1.0.tgz",
+ "integrity": "sha512-RvpQAba4i+BNH0z8i0gPRc1ShlHidj4puQjI/Tno6s+Q3/Mzb0XRSHJiOhpeFrZ22V7Mwjq1E7QS27P5CgpWYA==",
+ "dev": true,
+ "requires": {
+ "@octokit/endpoint": "^5.1.0",
+ "@octokit/request-error": "^1.0.1",
+ "deprecation": "^2.0.0",
+ "is-plain-object": "^3.0.0",
+ "node-fetch": "^2.3.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^2.1.0"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
+ "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001022",
- "electron-to-chromium": "^1.3.338",
- "node-releases": "^1.1.46"
+ "isobject": "^4.0.0"
}
},
- "bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "isobject": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
"dev": true
},
- "cacache": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
- "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "dev": true
+ }
+ }
+ },
+ "@octokit/request-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.2.tgz",
+ "integrity": "sha512-T9swMS/Vc4QlfWrvyeSyp/GjhXtYaBzCcibjGywV4k4D2qVrQKfEMPy8OxMDEj7zkIIdpHwqdpVbKCvnUPqkXw==",
+ "dev": true,
+ "requires": {
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ }
+ },
+ "@octokit/rest": {
+ "version": "16.26.0",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.26.0.tgz",
+ "integrity": "sha512-NBpzre44ZAQWZhlH+zUYTgqI0pHN+c9rNj4d+pCydGEiKTGc1HKmoTghEUyr9GxazDyoAvmpx9nL0I7QS1Olvg==",
+ "dev": true,
+ "requires": {
+ "@octokit/request": "^4.0.1",
+ "@octokit/request-error": "^1.0.2",
+ "atob-lite": "^2.0.0",
+ "before-after-hook": "^1.4.0",
+ "btoa-lite": "^1.0.0",
+ "deprecation": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "lodash.set": "^4.3.2",
+ "lodash.uniq": "^4.5.0",
+ "octokit-pagination-methods": "^1.1.0",
+ "once": "^1.4.0",
+ "universal-user-agent": "^2.0.0",
+ "url-template": "^2.0.8"
+ }
+ },
+ "@octokit/types": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.5.0.tgz",
+ "integrity": "sha512-KEnLwOfdXzxPNL34fj508bhi9Z9cStyN7qY1kOfVahmqtAfrWw6Oq3P4R+dtsg0lYtZdWBpUrS/Ixmd5YILSww==",
+ "dev": true,
+ "requires": {
+ "@types/node": ">= 8"
+ }
+ },
+ "@octokit/webhooks": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-7.1.0.tgz",
+ "integrity": "sha512-kHyYkJkqY/wiP/hp0IT9FhkY5PhnV01co16V2YMRP/Zgnk3Vsy3U5iLAaP6U/0eRIlz5T4LSvkrcfNlfSb3cVQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
- "chownr": "^1.1.2",
- "figgy-pudding": "^3.5.1",
- "fs-minipass": "^2.0.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.2",
- "infer-owner": "^1.0.4",
- "lru-cache": "^5.1.1",
- "minipass": "^3.0.0",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.2",
- "mkdirp": "^0.5.1",
- "move-concurrently": "^1.0.1",
- "p-map": "^3.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^2.7.1",
- "ssri": "^7.0.0",
- "unique-filename": "^1.1.1"
+ "ms": "^2.1.1"
}
},
- "caniuse-lite": {
- "version": "1.0.30001022",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001022.tgz",
- "integrity": "sha512-FjwPPtt/I07KyLPkBQ0g7/XuZg6oUkYBVnPHNj3VHJbOjmmJ/GdSo/GUY6MwINEQvjhP6WZVbX8Tvms8xh0D5A==",
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
- },
+ }
+ }
+ },
+ "@popperjs/core": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.0.tgz",
+ "integrity": "sha512-NMrDy6EWh9TPdSRiHmHH2ye1v5U0gBD7pRYwSwJvomx7Bm4GG04vu63dYiVzebLOx2obPpJugew06xVP0Nk7hA=="
+ },
+ "@reach/router": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.2.1.tgz",
+ "integrity": "sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ==",
+ "dev": true,
+ "requires": {
+ "create-react-context": "^0.2.1",
+ "invariant": "^2.2.3",
+ "prop-types": "^15.6.1",
+ "react-lifecycles-compat": "^3.0.4",
+ "warning": "^3.0.0"
+ }
+ },
+ "@react-native-community/cli-debugger-ui": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-3.0.0.tgz",
+ "integrity": "sha512-m3X+iWLsK/H7/b7PpbNO33eQayR/+M26la4ZbYe1KRke5Umg4PIWsvg21O8Tw4uJcY8LA5hsP+rBi/syBkBf0g==",
+ "requires": {
+ "serve-static": "^1.13.1"
+ }
+ },
+ "@react-native-community/cli-platform-android": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-3.0.3.tgz",
+ "integrity": "sha512-rNO9DmRiVhB6aP2DVUjEJv7ecriTARDZND88ny3xNVUkrD1Y+zwF6aZu3eoT52VXOxLCSLiJzz19OiyGmfqxYg==",
+ "requires": {
+ "@react-native-community/cli-tools": "^3.0.0",
+ "chalk": "^2.4.2",
+ "execa": "^1.0.0",
+ "jetifier": "^1.6.2",
+ "logkitty": "^0.6.0",
+ "slash": "^3.0.0",
+ "xmldoc": "^1.1.2"
+ },
+ "dependencies": {
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
- "chownr": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
- "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
- "dev": true
- },
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"requires": {
- "restore-cursor": "^3.1.0"
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"requires": {
- "color-name": "~1.1.4"
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "commander": {
+ "get-stream": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz",
- "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
},
- "content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
- "dev": true,
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"requires": {
- "safe-buffer": "5.1.2"
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
- "cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
- "dev": true
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
- "cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
- "dev": true,
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ }
+ }
+ },
+ "@react-native-community/cli-platform-ios": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.0.0.tgz",
+ "integrity": "sha512-QoNVlDj8eMXRZk9uktPFsctHurQpv9jKmiu6mQii4NEtT2npE7g1hbWpRNojutBsfgmCdQGDHd9uB54eeCnYgg==",
+ "requires": {
+ "@react-native-community/cli-tools": "^3.0.0",
+ "chalk": "^2.4.2",
+ "js-yaml": "^3.13.1",
+ "xcode": "^2.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.7.2"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
+ }
+ }
+ },
+ "@react-native-community/cli-tools": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-3.0.0.tgz",
+ "integrity": "sha512-8IhQKZdf3E4CR8T7HhkPGgorot/cLkRDgneJFDSWk/wCYZAuUh4NEAdumQV7N0jLSMWX7xxiWUPi94lOBxVY9g==",
+ "requires": {
+ "chalk": "^2.4.2",
+ "lodash": "^4.17.5",
+ "mime": "^2.4.1",
+ "node-fetch": "^2.5.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
- "ms": "^2.1.1"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
- "ejs": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
- "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
- "dev": true
- },
- "electron-to-chromium": {
- "version": "1.3.339",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.339.tgz",
- "integrity": "sha512-C1i/vH6/kQx9YV8RddMkmW216GwW4pTrnYIlKmDFIqXA4fPwqDxIdGyHsuG+fgurHoljRz7/oaD+tztcryW/9g==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.7",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
- "content-type": "~1.0.4",
- "cookie": "0.4.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
- "dev": true
- }
- }
- },
- "figures": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
- "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "find-cache-dir": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz",
- "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.0",
- "pkg-dir": "^4.1.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ }
+ }
+ },
+ "@react-native-community/cli-types": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-3.0.0.tgz",
+ "integrity": "sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg=="
+ },
+ "@react-native-community/slider": {
+ "version": "git+https://github.com/wordpress-mobile/react-native-slider.git#5ad284d92b8d886e366445bf215be741ed53ddc6",
+ "from": "git+https://github.com/wordpress-mobile/react-native-slider.git#5ad284d92b8d886e366445bf215be741ed53ddc6"
+ },
+ "@samverschueren/stream-to-observable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
+ "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
+ "dev": true,
+ "requires": {
+ "any-observable": "^0.3.0"
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.0.tgz",
+ "integrity": "sha512-lXKXfypKo644k4Da4yXkPCrwcvn6SlUW2X2zFbuflKHNjf0w9htru01bo26uMhleMXsDmnZ12eJLdrAZa9MANg==",
+ "dev": true
+ },
+ "@sinonjs/commons": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz",
+ "integrity": "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@storybook/addon-a11y": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-5.3.2.tgz",
+ "integrity": "sha512-JOx4GZl8ZDxPlYnMTiBNnzE6GQzojlJobcbJiXWXJP1P7YnOL7IwVS5zNxtGAtN0npL2I0ZhhSSsaG2Si5IoLQ==",
+ "dev": true,
+ "requires": {
+ "@storybook/addons": "5.3.2",
+ "@storybook/api": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/components": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "axe-core": "^3.3.2",
+ "core-js": "^3.0.1",
+ "global": "^4.3.2",
+ "memoizerific": "^1.11.3",
+ "react": "^16.8.3",
+ "react-redux": "^7.0.2",
+ "react-sizeme": "^2.5.2",
+ "redux": "^4.0.1",
+ "ts-dedent": "^1.1.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "dependencies": {
+ "redux": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz",
+ "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "loose-envify": "^1.4.0",
+ "symbol-observable": "^1.2.0"
}
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ }
+ }
+ },
+ "@storybook/addon-docs": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-5.3.2.tgz",
+ "integrity": "sha512-gGxDYP2VMl2Js3eSR0FM/QCf8PULLoZq57LIA8mxX38oxOydC3mIG1970sUM/g6MDtP4TV4F6rjd++eY4Gc07g==",
+ "dev": true,
+ "requires": {
+ "@babel/generator": "^7.4.0",
+ "@babel/parser": "^7.4.2",
+ "@babel/plugin-transform-react-jsx": "^7.3.0",
+ "@egoist/vue-to-react": "^1.1.0",
+ "@jest/transform": "^24.9.0",
+ "@mdx-js/loader": "^1.5.1",
+ "@mdx-js/mdx": "^1.5.1",
+ "@mdx-js/react": "^1.5.1",
+ "@storybook/addons": "5.3.2",
+ "@storybook/api": "5.3.2",
+ "@storybook/components": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/csf": "0.0.1",
+ "@storybook/postinstall": "5.3.2",
+ "@storybook/source-loader": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "acorn": "^7.1.0",
+ "acorn-jsx": "^5.1.0",
+ "acorn-walk": "^7.0.0",
+ "core-js": "^3.0.1",
+ "doctrine": "^3.0.0",
+ "escodegen": "^1.12.0",
+ "global": "^4.3.2",
+ "html-tags": "^3.1.0",
+ "js-string-escape": "^1.0.1",
+ "lodash": "^4.17.15",
+ "prop-types": "^15.7.2",
+ "react-element-to-jsx-string": "^14.1.0",
+ "remark-external-links": "^5.0.0",
+ "remark-slug": "^5.1.2",
+ "ts-dedent": "^1.1.0",
+ "util-deprecate": "^1.0.2",
+ "vue-docgen-api": "^4.1.0",
+ "vue-docgen-loader": "^1.3.0-beta.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
"dev": true
},
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "acorn-jsx": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
+ "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
"dev": true
},
- "http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
- "dev": true,
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "inquirer": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.3.tgz",
- "integrity": "sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw==",
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"requires": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^2.4.2",
- "cli-cursor": "^3.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.15",
- "mute-stream": "0.0.8",
- "run-async": "^2.2.0",
- "rxjs": "^6.5.3",
- "string-width": "^4.1.0",
- "strip-ansi": "^5.1.0",
- "through": "^2.3.6"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- }
+ "esutils": "^2.0.2"
}
},
- "interpret": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.0.0.tgz",
- "integrity": "sha512-e0/LknJ8wpMMhTiWcjivB+ESwIuvHnBSlBbmP/pSb8CQJldoj1p2qv7xGZ/+BtbTziYRFSz8OsvdbiX45LtYQA==",
- "dev": true
- },
- "ipaddr.js": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
- "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "html-tags": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
+ "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
"dev": true
},
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "source-map": {
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "@storybook/addon-knobs": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-knobs/-/addon-knobs-5.3.2.tgz",
+ "integrity": "sha512-5enTXIoVzepQDDe55wTQOfqT1cOwngjlakKar7lYWqww2ixVJJ3xMZ9dLqnYZkROMsN67sDwmuawvze+W5lbEA==",
+ "dev": true,
+ "requires": {
+ "@storybook/addons": "5.3.2",
+ "@storybook/api": "5.3.2",
+ "@storybook/client-api": "5.3.2",
+ "@storybook/components": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "@types/react-color": "^3.0.1",
+ "copy-to-clipboard": "^3.0.8",
+ "core-js": "^3.0.1",
+ "escape-html": "^1.0.3",
+ "fast-deep-equal": "^2.0.1",
+ "global": "^4.3.2",
+ "lodash": "^4.17.15",
+ "prop-types": "^15.7.2",
+ "qs": "^6.6.0",
+ "react-color": "^2.17.0",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-select": "^3.0.8"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
+ "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
"dev": true
- },
- "is-wsl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
- "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
+ }
+ }
+ },
+ "@storybook/addon-storysource": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-5.3.2.tgz",
+ "integrity": "sha512-wLbYfwM/XX0HbXvJNWpTrA+Z61EIZQafEDClFeM0OUSoG7PkXzLEHQb5UC0me1an9veZfgejjEqn2NmMkAAV0Q==",
+ "dev": true,
+ "requires": {
+ "@storybook/addons": "5.3.2",
+ "@storybook/components": "5.3.2",
+ "@storybook/router": "5.3.2",
+ "@storybook/source-loader": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "core-js": "^3.0.1",
+ "estraverse": "^4.2.0",
+ "loader-utils": "^1.2.3",
+ "prettier": "^1.16.4",
+ "prop-types": "^15.7.2",
+ "react-syntax-highlighter": "^11.0.2",
+ "regenerator-runtime": "^0.13.3",
+ "util-deprecate": "^1.0.2"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
- "jest-worker": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
- "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
- "dev": true,
- "requires": {
- "merge-stream": "^2.0.0",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
"json5": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
- "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
@@ -7513,314 +7031,868 @@
"big.js": "^5.2.2",
"emojis-list": "^2.0.0",
"json5": "^1.0.1"
- },
- "dependencies": {
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- }
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "requires": {
- "yallist": "^3.0.2"
- },
- "dependencies": {
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- }
- }
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.0.5"
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true
- },
- "mime-db": {
- "version": "1.43.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
- "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.26",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
- "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
- "dev": true,
- "requires": {
- "mime-db": "1.43.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "minipass": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz",
- "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
- },
- "negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
"dev": true
- },
- "node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ }
+ }
+ },
+ "@storybook/addon-viewport": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-5.3.2.tgz",
+ "integrity": "sha512-4W1pxVymFIcFO535Q2h7gXXdGeVluvVhHJGU58fFtrKVAN1UOgMprMe/6PnisvDtyWwqUbEHwxxghoaVF28xXA==",
+ "dev": true,
+ "requires": {
+ "@storybook/addons": "5.3.2",
+ "@storybook/api": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/components": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "core-js": "^3.0.1",
+ "global": "^4.3.2",
+ "memoizerific": "^1.11.3",
+ "prop-types": "^15.7.2",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "@storybook/addons": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.2.tgz",
+ "integrity": "sha512-vSByVK0yQJ8kjYmw8Ayj7cmCIOEdQKNjV7OLTXmLMpde+hUBqmDbCzwT0m5kZjzSFRTvB8bz0WBPavE02ZBN8A==",
+ "dev": true,
+ "requires": {
+ "@storybook/api": "5.3.2",
+ "@storybook/channels": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "core-js": "^3.0.1",
+ "global": "^4.3.2",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "@storybook/api": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.2.tgz",
+ "integrity": "sha512-4XK1+RXCb0HnQsmDzQn6H9SljibV/Mi/vIixlcprcTZ5sBPhaMumt/T3d2rUEyP7Lpm4/7HMsuuhkkkXcjPJJw==",
+ "dev": true,
+ "requires": {
+ "@reach/router": "^1.2.1",
+ "@storybook/channels": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/csf": "0.0.1",
+ "@storybook/router": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "@types/reach__router": "^1.2.3",
+ "core-js": "^3.0.1",
+ "fast-deep-equal": "^2.0.1",
+ "global": "^4.3.2",
+ "lodash": "^4.17.15",
+ "memoizerific": "^1.11.3",
+ "prop-types": "^15.6.2",
+ "react": "^16.8.3",
+ "semver": "^6.0.0",
+ "shallow-equal": "^1.1.0",
+ "store2": "^2.7.1",
+ "telejson": "^3.2.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "dependencies": {
+ "shallow-equal": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
+ "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
+ "dev": true
+ }
+ }
+ },
+ "@storybook/channel-postmessage": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.2.tgz",
+ "integrity": "sha512-2SnYDtzBhtBEu8tKn+2QzewdW1/R7xpBY3FmMqhY+vdBCtFFSqdiFuaKbGUQRKKLH+mQEKc7DBVf/U+HJlKPyg==",
+ "dev": true,
+ "requires": {
+ "@storybook/channels": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "core-js": "^3.0.1",
+ "global": "^4.3.2",
+ "telejson": "^3.2.0"
+ }
+ },
+ "@storybook/channels": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.2.tgz",
+ "integrity": "sha512-eVHGrFCsQ6sO/H1cdEvPoBCsEndIbkbvOEMdI3Fah6jnWLb9fXJwM7f+UKkMPUOflMvzyO17dfXtigSU8uJMoA==",
+ "dev": true,
+ "requires": {
+ "core-js": "^3.0.1"
+ }
+ },
+ "@storybook/client-api": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.2.tgz",
+ "integrity": "sha512-zfnfy46YUBukPpztAB9nZYJ3RazZx1a+0ZCCMEK6KuZkFSOVcYeqJe2PRAbiRVdCG+fG05OaSWw/AXraHZCE8Q==",
+ "dev": true,
+ "requires": {
+ "@storybook/addons": "5.3.2",
+ "@storybook/channel-postmessage": "5.3.2",
+ "@storybook/channels": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/csf": "0.0.1",
+ "core-js": "^3.0.1",
+ "eventemitter3": "^4.0.0",
+ "global": "^4.3.2",
+ "is-plain-object": "^3.0.0",
+ "lodash": "^4.17.15",
+ "memoizerific": "^1.11.3",
+ "qs": "^6.6.0",
+ "stable": "^0.1.8",
+ "ts-dedent": "^1.1.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
+ "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
"dev": true
},
- "onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "is-plain-object": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz",
+ "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==",
"dev": true,
"requires": {
- "mimic-fn": "^2.1.0"
+ "isobject": "^4.0.0"
}
},
- "open": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz",
- "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==",
- "dev": true,
+ "isobject": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+ "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
+ "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
+ "dev": true
+ }
+ }
+ },
+ "@storybook/client-logger": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.2.tgz",
+ "integrity": "sha512-sLP3MZ1LPQg/YR9yDoJq2S9/iM+yuD925RR0tD1ItQksKZA2gsI1CSf6zRPBluf7UwS7ACsotLlIPJg+czvr4A==",
+ "dev": true,
+ "requires": {
+ "core-js": "^3.0.1"
+ }
+ },
+ "@storybook/components": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.2.tgz",
+ "integrity": "sha512-JtVPz03vVDI9/QqUbYitTQhLGxXHN0+49y97G527Xn3y6S71DkdQAVgYqUNnsUpPSyNLESgvAV39HRvzy/LSyw==",
+ "dev": true,
+ "requires": {
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "@types/react-syntax-highlighter": "11.0.2",
+ "@types/react-textarea-autosize": "^4.3.3",
+ "core-js": "^3.0.1",
+ "global": "^4.3.2",
+ "lodash": "^4.17.15",
+ "markdown-to-jsx": "^6.9.1",
+ "memoizerific": "^1.11.3",
+ "polished": "^3.3.1",
+ "popper.js": "^1.14.7",
+ "prop-types": "^15.7.2",
+ "react": "^16.8.3",
+ "react-dom": "^16.8.3",
+ "react-focus-lock": "^2.1.0",
+ "react-helmet-async": "^1.0.2",
+ "react-popper-tooltip": "^2.8.3",
+ "react-syntax-highlighter": "^11.0.2",
+ "react-textarea-autosize": "^7.1.0",
+ "simplebar-react": "^1.0.0-alpha.6",
+ "ts-dedent": "^1.1.0"
+ }
+ },
+ "@storybook/core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.2.tgz",
+ "integrity": "sha512-0AURg+mBFhLEnuMMxd7d3QQRpV3IQ25LMq2ceNwwl6VSLKaSZ09jgnoXeuRJ6VQHc2lER5eYuj/0L2x3RdbPMQ==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-proposal-class-properties": "^7.7.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
+ "@babel/plugin-transform-react-constant-elements": "^7.2.0",
+ "@babel/preset-env": "^7.4.5",
+ "@storybook/addons": "5.3.2",
+ "@storybook/channel-postmessage": "5.3.2",
+ "@storybook/client-api": "5.3.2",
+ "@storybook/client-logger": "5.3.2",
+ "@storybook/core-events": "5.3.2",
+ "@storybook/csf": "0.0.1",
+ "@storybook/node-logger": "5.3.2",
+ "@storybook/router": "5.3.2",
+ "@storybook/theming": "5.3.2",
+ "@storybook/ui": "5.3.2",
+ "airbnb-js-shims": "^2.2.1",
+ "ansi-to-html": "^0.6.11",
+ "autoprefixer": "^9.7.2",
+ "babel-plugin-add-react-displayname": "^0.0.5",
+ "babel-plugin-emotion": "^10.0.20",
+ "babel-plugin-macros": "^2.7.0",
+ "babel-preset-minify": "^0.5.0 || 0.6.0-alpha.5",
+ "boxen": "^4.1.0",
+ "case-sensitive-paths-webpack-plugin": "^2.2.0",
+ "chalk": "^3.0.0",
+ "cli-table3": "0.5.1",
+ "commander": "^4.0.1",
+ "core-js": "^3.0.1",
+ "corejs-upgrade-webpack-plugin": "^2.2.0",
+ "css-loader": "^3.0.0",
+ "detect-port": "^1.3.0",
+ "dotenv-webpack": "^1.7.0",
+ "ejs": "^2.7.4",
+ "express": "^4.17.0",
+ "file-loader": "^4.2.0",
+ "file-system-cache": "^1.0.5",
+ "find-cache-dir": "^3.0.0",
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.0.1",
+ "glob-base": "^0.3.0",
+ "global": "^4.3.2",
+ "html-webpack-plugin": "^4.0.0-beta.2",
+ "inquirer": "^7.0.0",
+ "interpret": "^2.0.0",
+ "ip": "^1.1.5",
+ "json5": "^2.1.1",
+ "lazy-universal-dotenv": "^3.0.1",
+ "micromatch": "^4.0.2",
+ "node-fetch": "^2.6.0",
+ "open": "^7.0.0",
+ "pnp-webpack-plugin": "1.5.0",
+ "postcss-flexbugs-fixes": "^4.1.0",
+ "postcss-loader": "^3.0.0",
+ "pretty-hrtime": "^1.0.3",
+ "qs": "^6.6.0",
+ "raw-loader": "^3.1.0",
+ "react-dev-utils": "^9.0.0",
+ "regenerator-runtime": "^0.13.3",
+ "resolve": "^1.11.0",
+ "resolve-from": "^5.0.0",
+ "semver": "^6.0.0",
+ "serve-favicon": "^2.5.0",
+ "shelljs": "^0.8.3",
+ "style-loader": "^1.0.0",
+ "terser-webpack-plugin": "^2.1.2",
+ "ts-dedent": "^1.1.0",
+ "unfetch": "^4.1.0",
+ "url-loader": "^2.0.1",
+ "util-deprecate": "^1.0.2",
+ "webpack": "^4.33.0",
+ "webpack-dev-middleware": "^3.7.0",
+ "webpack-hot-middleware": "^2.25.0",
+ "webpack-virtual-modules": "^0.2.0"
+ },
+ "dependencies": {
+ "accepts": {
+ "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"requires": {
- "is-wsl": "^2.1.0"
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
}
},
- "p-limit": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
- "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
- "dev": true,
+ "ansi-escapes": {
+ "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
+ "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
"requires": {
- "p-try": "^2.0.0"
+ "type-fest": "^0.8.1"
}
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "autoprefixer": {
+ "version": "9.7.4",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz",
+ "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==",
"dev": true,
"requires": {
- "p-limit": "^2.2.0"
+ "browserslist": "^4.8.3",
+ "caniuse-lite": "^1.0.30001020",
+ "chalk": "^2.4.2",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.26",
+ "postcss-value-parser": "^4.0.2"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ }
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
- "parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1",
- "lines-and-columns": "^1.1.6"
+ "fill-range": "^7.0.1"
}
},
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
- "dev": true
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "cacache": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
+ "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
"dev": true,
"requires": {
- "find-up": "^4.0.0"
+ "chownr": "^1.1.2",
+ "figgy-pudding": "^3.5.1",
+ "fs-minipass": "^2.0.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.2",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^5.1.1",
+ "minipass": "^3.0.0",
+ "minipass-collect": "^1.0.2",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.2",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "p-map": "^3.0.0",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.7.1",
+ "ssri": "^7.0.0",
+ "unique-filename": "^1.1.1"
}
},
- "postcss": {
- "version": "7.0.26",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
- "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
+ "caniuse-lite": {
+ "version": "1.0.30001022",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001022.tgz",
+ "integrity": "sha512-FjwPPtt/I07KyLPkBQ0g7/XuZg6oUkYBVnPHNj3VHJbOjmmJ/GdSo/GUY6MwINEQvjhP6WZVbX8Tvms8xh0D5A==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
}
}
}
},
- "postcss-value-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
- "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
"dev": true
},
- "proxy-addr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
- "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
- "dev": true,
+ "cli-cursor": {
+ "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"requires": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.9.0"
+ "restore-cursor": "^3.1.0"
}
},
- "qs": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
- "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
- "dev": true
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true
- },
- "raw-body": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
- "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "color-name": "~1.1.4"
}
},
- "regenerator-runtime": {
- "version": "0.13.3",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
- "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "resolve": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
- "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
- "dev": true,
+ "cosmiconfig": {
+ "version": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
"requires": {
- "path-parse": "^1.0.6"
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
}
},
- "resolve-from": {
+ "debug": {
+ "version": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "figures": {
+ "version": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
+ "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-cache-dir": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz",
+ "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.0",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "globals": {
+ "version": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "interpret": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.0.0.tgz",
+ "integrity": "sha512-e0/LknJ8wpMMhTiWcjivB+ESwIuvHnBSlBbmP/pSb8CQJldoj1p2qv7xGZ/+BtbTziYRFSz8OsvdbiX45LtYQA==",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
+ "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
+ "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "minipass": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz",
+ "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "mute-stream": {
+ "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "open": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz",
+ "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^2.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "postcss": {
+ "version": "7.0.26",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
+ "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
+ "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
+ "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
+ "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
@@ -7830,7 +7902,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
"requires": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
@@ -7846,10 +7917,8 @@
}
},
"rxjs": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
+ "version": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
"integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
- "dev": true,
"requires": {
"tslib": "^1.9.0"
}
@@ -7868,7 +7937,6 @@
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
- "dev": true,
"requires": {
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -7889,7 +7957,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
"requires": {
"ms": "2.0.0"
},
@@ -7897,16 +7964,14 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
@@ -7917,10 +7982,8 @@
"dev": true
},
"serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
- "dev": true,
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
@@ -7931,8 +7994,7 @@
"setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
- "dev": true
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"ssri": {
"version": "7.1.0",
@@ -7947,14 +8009,11 @@
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
- "dev": true
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "version": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -7965,7 +8024,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
@@ -7973,10 +8031,8 @@
}
},
"strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
"requires": {
"ansi-regex": "^4.1.0"
},
@@ -7984,8 +8040,7 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
}
}
},
@@ -8025,18 +8080,7 @@
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
},
"unique-filename": {
"version": "1.1.1",
@@ -9293,15 +9337,6 @@
"pretty-format": "^25.1.0"
},
"dependencies": {
- "@babel/runtime": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
- "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
@@ -9362,10 +9397,8 @@
"dev": true
},
"regenerator-runtime": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
- "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
- "dev": true
+ "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
}
}
},
@@ -9380,20 +9413,9 @@
"@types/testing-library__react": "^10.0.0"
},
"dependencies": {
- "@babel/runtime": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
- "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
"regenerator-runtime": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
- "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
- "dev": true
+ "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
}
}
},
@@ -9436,9 +9458,9 @@
}
},
"@types/babel__traverse": {
- "version": "7.0.10",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.10.tgz",
- "integrity": "sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw==",
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz",
+ "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0"
@@ -9493,6 +9515,15 @@
"@types/node": "*"
}
},
+ "@types/graceful-fs": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz",
+ "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/history": {
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.4.tgz",
@@ -9533,6 +9564,12 @@
"@types/istanbul-lib-report": "*"
}
},
+ "@types/jest": {
+ "version": "23.3.14",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.14.tgz",
+ "integrity": "sha512-Q5hTcfdudEL2yOmluA1zaSyPbzWPmJ3XfSWeP3RyoYvS9hnje1ZyagrZOuQ6+1nQC1Gw+7gap3pLNL3xL6UBug==",
+ "dev": true
+ },
"@types/json-schema": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz",
@@ -10261,13 +10298,14 @@
"@wordpress/keycodes": "file:packages/keycodes",
"@wordpress/priority-queue": "file:packages/priority-queue",
"@wordpress/rich-text": "file:packages/rich-text",
+ "@wordpress/shortcode": "file:packages/shortcode",
"@wordpress/token-list": "file:packages/token-list",
"@wordpress/url": "file:packages/url",
"@wordpress/viewport": "file:packages/viewport",
"@wordpress/wordcount": "file:packages/wordcount",
"classnames": "^2.2.5",
"css-mediaquery": "^0.1.2",
- "diff": "^3.5.0",
+ "diff": "^4.0.2",
"dom-scroll-into-view": "^1.2.1",
"inherits": "^2.0.3",
"lodash": "^4.17.15",
@@ -10351,7 +10389,7 @@
"hpq": "^1.3.0",
"lodash": "^4.17.15",
"rememo": "^3.0.0",
- "showdown": "^1.8.6",
+ "showdown": "^1.9.1",
"simple-html-tokenizer": "^0.5.7",
"tinycolor2": "^1.4.1",
"uuid": "^7.0.2"
@@ -10393,7 +10431,7 @@
"re-resizable": "^6.0.0",
"react-dates": "^17.1.1",
"react-spring": "^8.0.20",
- "reakit": "^1.0.0-rc.0",
+ "reakit": "^1.0.0-rc.2",
"rememo": "^3.0.0",
"tinycolor2": "^1.4.1",
"uuid": "^7.0.2"
@@ -10436,6 +10474,7 @@
"check-node-version": "^3.1.1",
"commander": "^4.1.0",
"execa": "^4.0.0",
+ "fast-glob": "^2.2.7",
"inquirer": "^7.1.0",
"lodash": "^4.17.15",
"make-dir": "^3.0.0",
@@ -10461,7 +10500,7 @@
"@wordpress/priority-queue": "file:packages/priority-queue",
"@wordpress/redux-routine": "file:packages/redux-routine",
"equivalent-key-map": "^0.2.2",
- "is-promise": "^2.1.0",
+ "is-promise": "^4.0.0",
"lodash": "^4.17.15",
"memize": "^1.1.0",
"redux": "^4.0.0",
@@ -10504,8 +10543,8 @@
"version": "file:packages/docgen",
"dev": true,
"requires": {
+ "@babel/core": "^7.9.0",
"doctrine": "^2.1.0",
- "espree": "^4.0.0",
"lodash": "^4.17.15",
"mdast-util-inject": "1.1.0",
"optionator": "0.8.2",
@@ -10536,18 +10575,6 @@
"@wordpress/url": "file:packages/url",
"lodash": "^4.17.15",
"node-fetch": "^1.7.3"
- },
- "dependencies": {
- "node-fetch": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
- "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
- "dev": true,
- "requires": {
- "encoding": "^0.1.11",
- "is-stream": "^1.0.1"
- }
- }
}
},
"@wordpress/e2e-tests": {
@@ -10569,6 +10596,7 @@
"version": "file:packages/edit-navigation",
"requires": {
"@babel/runtime": "^7.9.2",
+ "@wordpress/api-fetch": "file:packages/api-fetch",
"@wordpress/block-editor": "file:packages/block-editor",
"@wordpress/block-library": "file:packages/block-library",
"@wordpress/blocks": "file:packages/blocks",
@@ -10579,10 +10607,12 @@
"@wordpress/dom-ready": "file:packages/dom-ready",
"@wordpress/element": "file:packages/element",
"@wordpress/hooks": "file:packages/hooks",
+ "@wordpress/html-entities": "file:packages/html-entities",
"@wordpress/i18n": "file:packages/i18n",
"@wordpress/keyboard-shortcuts": "file:packages/keyboard-shortcuts",
"@wordpress/media-utils": "file:packages/media-utils",
"@wordpress/notices": "file:packages/notices",
+ "@wordpress/url": "file:packages/url",
"classnames": "^2.2.5",
"lodash": "^4.17.15",
"rememo": "^3.0.0"
@@ -10640,6 +10670,8 @@
"@wordpress/i18n": "file:packages/i18n",
"@wordpress/icons": "file:packages/icons",
"@wordpress/interface": "file:packages/interface",
+ "@wordpress/keyboard-shortcuts": "file:packages/keyboard-shortcuts",
+ "@wordpress/keycodes": "file:packages/keycodes",
"@wordpress/media-utils": "file:packages/media-utils",
"@wordpress/notices": "file:packages/notices",
"@wordpress/plugins": "file:packages/plugins",
@@ -10659,12 +10691,16 @@
"@wordpress/blocks": "file:packages/blocks",
"@wordpress/components": "file:packages/components",
"@wordpress/compose": "file:packages/compose",
+ "@wordpress/core-data": "file:packages/core-data",
"@wordpress/data": "file:packages/data",
"@wordpress/data-controls": "file:packages/data-controls",
"@wordpress/element": "file:packages/element",
"@wordpress/hooks": "file:packages/hooks",
"@wordpress/i18n": "file:packages/i18n",
+ "@wordpress/icons": "file:packages/icons",
"@wordpress/interface": "file:packages/interface",
+ "@wordpress/keyboard-shortcuts": "file:packages/keyboard-shortcuts",
+ "@wordpress/keycodes": "file:packages/keycodes",
"@wordpress/media-utils": "file:packages/media-utils",
"@wordpress/notices": "file:packages/notices",
"lodash": "^4.17.15",
@@ -10855,21 +10891,21 @@
},
"dependencies": {
"@jest/transform": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.4.0.tgz",
- "integrity": "sha512-t1w2S6V1sk++1HHsxboWxPEuSpN8pxEvNrZN+Ud/knkROWtf8LeUmz73A4ezE8476a5AM00IZr9a8FO9x1+j3g==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+ "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"babel-plugin-istanbul": "^6.0.0",
"chalk": "^3.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.3",
- "jest-haste-map": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
"jest-regex-util": "^25.2.6",
- "jest-util": "^25.4.0",
+ "jest-util": "^25.5.0",
"micromatch": "^4.0.2",
"pirates": "^4.0.1",
"realpath-native": "^2.0.0",
@@ -10879,9 +10915,9 @@
}
},
"@jest/types": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.4.0.tgz",
- "integrity": "sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -10911,17 +10947,18 @@
}
},
"babel-jest": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.4.0.tgz",
- "integrity": "sha512-p+epx4K0ypmHuCnd8BapfyOwWwosNCYhedetQey1awddtfmEX0MmdxctGl956uwUmjwXR5VSS5xJcGX9DvdIog==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+ "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
"dev": true,
"requires": {
- "@jest/transform": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"@types/babel__core": "^7.1.7",
"babel-plugin-istanbul": "^6.0.0",
- "babel-preset-jest": "^25.4.0",
+ "babel-preset-jest": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"slash": "^3.0.0"
}
},
@@ -10939,21 +10976,23 @@
}
},
"babel-plugin-jest-hoist": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.4.0.tgz",
- "integrity": "sha512-M3a10JCtTyKevb0MjuH6tU+cP/NVQZ82QPADqI1RQYY1OphztsCeIeQmTsHmF/NS6m0E51Zl4QNsI3odXSQF5w==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz",
+ "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==",
"dev": true,
"requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
"@types/babel__traverse": "^7.0.6"
}
},
"babel-preset-jest": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.4.0.tgz",
- "integrity": "sha512-PwFiEWflHdu3JCeTr0Pb9NcHHE34qWFnPQRVPvqQITx4CsDCzs6o05923I10XvLvn9nNsRHuiVgB72wG/90ZHQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz",
+ "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "^25.4.0",
+ "babel-plugin-jest-hoist": "^25.5.0",
"babel-preset-current-node-syntax": "^0.1.2"
}
},
@@ -11008,9 +11047,9 @@
"optional": true
},
"graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"has-flag": {
@@ -11026,19 +11065,20 @@
"dev": true
},
"jest-haste-map": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.4.0.tgz",
- "integrity": "sha512-5EoCe1gXfGC7jmXbKzqxESrgRcaO3SzWXGCnvp9BcT0CFMyrB1Q6LIsjl9RmvmJGQgW297TCfrdgiy574Rl9HQ==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"fsevents": "^2.1.2",
- "graceful-fs": "^4.2.3",
- "jest-serializer": "^25.2.6",
- "jest-util": "^25.4.0",
- "jest-worker": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"micromatch": "^4.0.2",
"sane": "^4.0.3",
"walker": "^1.0.7",
@@ -11052,27 +11092,31 @@
"dev": true
},
"jest-serializer": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz",
- "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==",
- "dev": true
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4"
+ }
},
"jest-util": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.4.0.tgz",
- "integrity": "sha512-WSZD59sBtAUjLv1hMeKbNZXmMcrLRWcYqpO8Dz8b4CeCTZpfNQw2q9uwrYAD+BbJoLJlu4ezVPwtAmM/9/SlZA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"is-ci": "^2.0.0",
"make-dir": "^3.0.0"
}
},
"jest-worker": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz",
- "integrity": "sha512-ghAs/1FtfYpMmYQ0AHqxV62XPvKdUDIBBApMZfly+E9JEmYh2K45G0R5dWxx986RN12pRCxsViwQVtGl+N4whw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
"merge-stream": "^2.0.0",
@@ -11318,8 +11362,12 @@
"@wordpress/react-native-editor": {
"version": "file:packages/react-native-editor",
"requires": {
- "@babel/runtime": "^7.7.7",
+ "@babel/runtime": "^7.9.2",
"@react-native-community/slider": "git+https://github.com/wordpress-mobile/react-native-slider.git#5ad284d92b8d886e366445bf215be741ed53ddc6",
+ "@wordpress/api-fetch": "file:packages/api-fetch",
+ "@wordpress/block-editor": "file:packages/block-editor",
+ "@wordpress/block-library": "file:packages/block-library",
+ "@wordpress/blocks": "file:packages/blocks",
"@wordpress/components": "file:packages/components",
"@wordpress/data": "file:packages/data",
"@wordpress/edit-post": "file:packages/edit-post",
@@ -11334,11 +11382,11 @@
"metro-react-native-babel-preset": "0.57.0",
"metro-react-native-babel-transformer": "0.56.0",
"node-fetch": "^2.3.0",
- "node-libs-react-native": "^1.0.2",
"react-native": "0.61.5",
"react-native-dark-mode": "git+https://github.com/wordpress-mobile/react-native-dark-mode.git#f09bf1480e7b34536413ab3300f29e4375edb2c6",
"react-native-get-random-values": "^1.4.0",
"react-native-hr": "git+https://github.com/Riglerr/react-native-hr.git#2d01a5cf77212d100e8b99e0310cce5234f977b3",
+ "react-native-hsv-color-picker": "git+https://github.com/wordpress-mobile/react-native-hsv-color-picker.git",
"react-native-keyboard-aware-scroll-view": "git+https://github.com/wordpress-mobile/react-native-keyboard-aware-scroll-view.git#gb-v0.8.8",
"react-native-linear-gradient": "git+https://github.com/wordpress-mobile/react-native-linear-gradient.git#52bf43077171cff8714ce3e0155f3ebb7f55bc37",
"react-native-modal": "^6.5.0",
@@ -11346,13 +11394,18 @@
"react-native-sass-transformer": "^1.1.1",
"react-native-svg": "git+https://github.com/wordpress-mobile/react-native-svg.git#a628e92990a2404e30a0086f168bd2b5b7b4ce96",
"react-native-url-polyfill": "^1.1.2",
- "react-native-video": "git+https://github.com/wordpress-mobile/react-native-video.git#6cdaddd9c81ebe2da5b28412d389cc105e156948"
+ "react-native-video": "git+https://github.com/wordpress-mobile/react-native-video.git#1b964b107863351ed744fc104d7952bbec3e2d4f"
},
"dependencies": {
"jsc-android": {
"version": "241213.1.0",
"resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-241213.1.0.tgz",
"integrity": "sha512-AH8NYyMNLNhcUEF97QbMxPNLNW+oiSBlvm1rsMNzgJ1d5TQzdh/AOJGsxeeESp3m9YIWGLCgUvGTVoVLs0p68A=="
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
}
}
},
@@ -11360,7 +11413,7 @@
"version": "file:packages/redux-routine",
"requires": {
"@babel/runtime": "^7.9.2",
- "is-promise": "^2.1.0",
+ "is-promise": "^4.0.0",
"lodash": "^4.17.15",
"rungen": "^0.3.2"
}
@@ -11429,15 +11482,15 @@
},
"dependencies": {
"@jest/console": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.4.0.tgz",
- "integrity": "sha512-CfE0erx4hdJ6t7RzAcE1wLG6ZzsHSmybvIBQDoCkDM1QaSeWL9wJMzID/2BbHHa7ll9SsbbK43HjbERbBaFX2A==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
- "jest-message-util": "^25.4.0",
- "jest-util": "^25.4.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
"slash": "^3.0.0"
},
"dependencies": {
@@ -11454,33 +11507,33 @@
}
},
"@jest/core": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.4.0.tgz",
- "integrity": "sha512-h1x9WSVV0+TKVtATGjyQIMJENs8aF6eUjnCoi4jyRemYZmekLr8EJOGQqTWEX8W6SbZ6Skesy9pGXrKeAolUJw==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz",
+ "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==",
"dev": true,
"requires": {
- "@jest/console": "^25.4.0",
- "@jest/reporters": "^25.4.0",
- "@jest/test-result": "^25.4.0",
- "@jest/transform": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/console": "^25.5.0",
+ "@jest/reporters": "^25.5.1",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"ansi-escapes": "^4.2.1",
"chalk": "^3.0.0",
"exit": "^0.1.2",
- "graceful-fs": "^4.2.3",
- "jest-changed-files": "^25.4.0",
- "jest-config": "^25.4.0",
- "jest-haste-map": "^25.4.0",
- "jest-message-util": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-changed-files": "^25.5.0",
+ "jest-config": "^25.5.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-message-util": "^25.5.0",
"jest-regex-util": "^25.2.6",
- "jest-resolve": "^25.4.0",
- "jest-resolve-dependencies": "^25.4.0",
- "jest-runner": "^25.4.0",
- "jest-runtime": "^25.4.0",
- "jest-snapshot": "^25.4.0",
- "jest-util": "^25.4.0",
- "jest-validate": "^25.4.0",
- "jest-watcher": "^25.4.0",
+ "jest-resolve": "^25.5.1",
+ "jest-resolve-dependencies": "^25.5.4",
+ "jest-runner": "^25.5.4",
+ "jest-runtime": "^25.5.4",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "jest-watcher": "^25.5.0",
"micromatch": "^4.0.2",
"p-each-series": "^2.1.0",
"realpath-native": "^2.0.0",
@@ -11502,53 +11555,54 @@
}
},
"@jest/environment": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.4.0.tgz",
- "integrity": "sha512-KDctiak4mu7b4J6BIoN/+LUL3pscBzoUCP+EtSPd2tK9fqyDY5OF+CmkBywkFWezS9tyH5ACOQNtpjtueEDH6Q==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz",
+ "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^25.4.0",
- "@jest/types": "^25.4.0",
- "jest-mock": "^25.4.0"
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0"
}
},
"@jest/fake-timers": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.4.0.tgz",
- "integrity": "sha512-lI9z+VOmVX4dPPFzyj0vm+UtaB8dCJJ852lcDnY0uCPRvZAaVGnMwBBc1wxtf+h7Vz6KszoOvKAt4QijDnHDkg==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+ "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
- "jest-message-util": "^25.4.0",
- "jest-mock": "^25.4.0",
- "jest-util": "^25.4.0",
+ "@jest/types": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
"lolex": "^5.0.0"
}
},
"@jest/reporters": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.4.0.tgz",
- "integrity": "sha512-bhx/buYbZgLZm4JWLcRJ/q9Gvmd3oUh7k2V7gA4ZYBx6J28pIuykIouclRdiAC6eGVX1uRZT+GK4CQJLd/PwPg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz",
+ "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==",
"dev": true,
"requires": {
"@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^25.4.0",
- "@jest/test-result": "^25.4.0",
- "@jest/transform": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/console": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
"glob": "^7.1.2",
+ "graceful-fs": "^4.2.4",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-instrument": "^4.0.0",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.0.2",
- "jest-haste-map": "^25.4.0",
- "jest-resolve": "^25.4.0",
- "jest-util": "^25.4.0",
- "jest-worker": "^25.4.0",
+ "jest-haste-map": "^25.5.1",
+ "jest-resolve": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"node-notifier": "^6.0.0",
"slash": "^3.0.0",
"source-map": "^0.6.0",
@@ -11570,56 +11624,57 @@
}
},
"@jest/source-map": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz",
- "integrity": "sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz",
+ "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==",
"dev": true,
"requires": {
"callsites": "^3.0.0",
- "graceful-fs": "^4.2.3",
+ "graceful-fs": "^4.2.4",
"source-map": "^0.6.0"
}
},
"@jest/test-result": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.4.0.tgz",
- "integrity": "sha512-8BAKPaMCHlL941eyfqhWbmp3MebtzywlxzV+qtngQ3FH+RBqnoSAhNEPj4MG7d2NVUrMOVfrwuzGpVIK+QnMAA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
"dev": true,
"requires": {
- "@jest/console": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
}
},
"@jest/test-sequencer": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.4.0.tgz",
- "integrity": "sha512-240cI+nsM3attx2bMp9uGjjHrwrpvxxrZi8Tyqp/cfOzl98oZXVakXBgxODGyBYAy/UGXPKXLvNc2GaqItrsJg==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz",
+ "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==",
"dev": true,
"requires": {
- "@jest/test-result": "^25.4.0",
- "jest-haste-map": "^25.4.0",
- "jest-runner": "^25.4.0",
- "jest-runtime": "^25.4.0"
+ "@jest/test-result": "^25.5.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-runner": "^25.5.4",
+ "jest-runtime": "^25.5.4"
}
},
"@jest/transform": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.4.0.tgz",
- "integrity": "sha512-t1w2S6V1sk++1HHsxboWxPEuSpN8pxEvNrZN+Ud/knkROWtf8LeUmz73A4ezE8476a5AM00IZr9a8FO9x1+j3g==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+ "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"babel-plugin-istanbul": "^6.0.0",
"chalk": "^3.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.3",
- "jest-haste-map": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
"jest-regex-util": "^25.2.6",
- "jest-util": "^25.4.0",
+ "jest-util": "^25.5.0",
"micromatch": "^4.0.2",
"pirates": "^4.0.1",
"realpath-native": "^2.0.0",
@@ -11641,9 +11696,9 @@
}
},
"@jest/types": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.4.0.tgz",
- "integrity": "sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -11664,12 +11719,6 @@
}
}
},
- "agent-base": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
- "dev": true
- },
"ansi-escapes": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
@@ -11714,17 +11763,18 @@
}
},
"babel-jest": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.4.0.tgz",
- "integrity": "sha512-p+epx4K0ypmHuCnd8BapfyOwWwosNCYhedetQey1awddtfmEX0MmdxctGl956uwUmjwXR5VSS5xJcGX9DvdIog==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+ "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
"dev": true,
"requires": {
- "@jest/transform": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"@types/babel__core": "^7.1.7",
"babel-plugin-istanbul": "^6.0.0",
- "babel-preset-jest": "^25.4.0",
+ "babel-preset-jest": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"slash": "^3.0.0"
},
"dependencies": {
@@ -11754,43 +11804,26 @@
}
},
"babel-plugin-jest-hoist": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.4.0.tgz",
- "integrity": "sha512-M3a10JCtTyKevb0MjuH6tU+cP/NVQZ82QPADqI1RQYY1OphztsCeIeQmTsHmF/NS6m0E51Zl4QNsI3odXSQF5w==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz",
+ "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==",
"dev": true,
"requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
"@types/babel__traverse": "^7.0.6"
}
},
"babel-preset-jest": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.4.0.tgz",
- "integrity": "sha512-PwFiEWflHdu3JCeTr0Pb9NcHHE34qWFnPQRVPvqQITx4CsDCzs6o05923I10XvLvn9nNsRHuiVgB72wG/90ZHQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz",
+ "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "^25.4.0",
+ "babel-plugin-jest-hoist": "^25.5.0",
"babel-preset-current-node-syntax": "^0.1.2"
}
},
- "bl": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
- "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
- "dev": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- }
- }
- },
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@@ -11800,28 +11833,12 @@
"fill-range": "^7.0.1"
}
},
- "buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
- "dev": true,
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
- }
- },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
"cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
@@ -11848,15 +11865,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
"deepmerge": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
@@ -11869,12 +11877,6 @@
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true
},
- "diff-sequences": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz",
- "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==",
- "dev": true
- },
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -11913,40 +11915,19 @@
}
},
"expect": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-25.4.0.tgz",
- "integrity": "sha512-7BDIX99BTi12/sNGJXA9KMRcby4iAmu1xccBOhyKCyEhjcVKS3hPmHdA/4nSI9QGIOkUropKqr3vv7WMDM5lvQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz",
+ "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"ansi-styles": "^4.0.0",
"jest-get-type": "^25.2.6",
- "jest-matcher-utils": "^25.4.0",
- "jest-message-util": "^25.4.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
"jest-regex-util": "^25.2.6"
}
},
- "extract-zip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.0.tgz",
- "integrity": "sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg==",
- "dev": true,
- "requires": {
- "@types/yauzl": "^2.9.1",
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- }
- },
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
- "dev": true,
- "requires": {
- "pend": "~1.2.0"
- }
- },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -11989,9 +11970,9 @@
}
},
"graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"has-flag": {
@@ -12000,16 +11981,6 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "https-proxy-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
- "dev": true,
- "requires": {
- "agent-base": "5",
- "debug": "4"
- }
- },
"import-local": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz",
@@ -12039,31 +12010,24 @@
"dev": true
},
"is-wsl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
- "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
- "dev": true,
- "optional": true
- },
- "istanbul-reports": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
- "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
+ "optional": true,
"requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
+ "is-docker": "^2.0.0"
}
},
"jest": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-25.4.0.tgz",
- "integrity": "sha512-XWipOheGB4wai5JfCYXd6vwsWNwM/dirjRoZgAa7H2wd8ODWbli2AiKjqG8AYhyx+8+5FBEdpO92VhGlBydzbw==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz",
+ "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==",
"dev": true,
"requires": {
- "@jest/core": "^25.4.0",
+ "@jest/core": "^25.5.4",
"import-local": "^3.0.2",
- "jest-cli": "^25.4.0"
+ "jest-cli": "^25.5.4"
},
"dependencies": {
"chalk": {
@@ -12077,21 +12041,22 @@
}
},
"jest-cli": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.4.0.tgz",
- "integrity": "sha512-usyrj1lzCJZMRN1r3QEdnn8e6E6yCx/QN7+B1sLoA68V7f3WlsxSSQfy0+BAwRiF4Hz2eHauf11GZG3PIfWTXQ==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz",
+ "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==",
"dev": true,
"requires": {
- "@jest/core": "^25.4.0",
- "@jest/test-result": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/core": "^25.5.4",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
"import-local": "^3.0.2",
"is-ci": "^2.0.0",
- "jest-config": "^25.4.0",
- "jest-util": "^25.4.0",
- "jest-validate": "^25.4.0",
+ "jest-config": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
"prompts": "^2.0.1",
"realpath-native": "^2.0.0",
"yargs": "^15.3.1"
@@ -12100,39 +12065,40 @@
}
},
"jest-changed-files": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.4.0.tgz",
- "integrity": "sha512-VR/rfJsEs4BVMkwOTuStRyS630fidFVekdw/lBaBQjx9KK3VZFOZ2c0fsom2fRp8pMCrCTP6LGna00o/DXGlqA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz",
+ "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"execa": "^3.2.0",
"throat": "^5.0.0"
}
},
"jest-config": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.4.0.tgz",
- "integrity": "sha512-egT9aKYxMyMSQV1aqTgam0SkI5/I2P9qrKexN5r2uuM2+68ypnc+zPGmfUxK7p1UhE7dYH9SLBS7yb+TtmT1AA==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz",
+ "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^25.4.0",
- "@jest/types": "^25.4.0",
- "babel-jest": "^25.4.0",
+ "@jest/test-sequencer": "^25.5.4",
+ "@jest/types": "^25.5.0",
+ "babel-jest": "^25.5.1",
"chalk": "^3.0.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
- "jest-environment-jsdom": "^25.4.0",
- "jest-environment-node": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-environment-jsdom": "^25.5.0",
+ "jest-environment-node": "^25.5.0",
"jest-get-type": "^25.2.6",
- "jest-jasmine2": "^25.4.0",
+ "jest-jasmine2": "^25.5.4",
"jest-regex-util": "^25.2.6",
- "jest-resolve": "^25.4.0",
- "jest-util": "^25.4.0",
- "jest-validate": "^25.4.0",
+ "jest-resolve": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
"micromatch": "^4.0.2",
- "pretty-format": "^25.4.0",
+ "pretty-format": "^25.5.0",
"realpath-native": "^2.0.0"
},
"dependencies": {
@@ -12149,15 +12115,15 @@
}
},
"jest-diff": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.4.0.tgz",
- "integrity": "sha512-kklLbJVXW0y8UKOWOdYhI6TH5MG6QAxrWiBMgQaPIuhj3dNFGirKCd+/xfplBXICQ7fI+3QcqHm9p9lWu1N6ug==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+ "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
"dev": true,
"requires": {
"chalk": "^3.0.0",
"diff-sequences": "^25.2.6",
"jest-get-type": "^25.2.6",
- "pretty-format": "^25.4.0"
+ "pretty-format": "^25.5.0"
},
"dependencies": {
"chalk": {
@@ -12182,16 +12148,16 @@
}
},
"jest-each": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.4.0.tgz",
- "integrity": "sha512-lwRIJ8/vQU/6vq3nnSSUw1Y3nz5tkYSFIywGCZpUBd6WcRgpn8NmJoQICojbpZmsJOJNHm0BKdyuJ6Xdx+eDQQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz",
+ "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"jest-get-type": "^25.2.6",
- "jest-util": "^25.4.0",
- "pretty-format": "^25.4.0"
+ "jest-util": "^25.5.0",
+ "pretty-format": "^25.5.0"
},
"dependencies": {
"chalk": {
@@ -12207,30 +12173,30 @@
}
},
"jest-environment-jsdom": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.4.0.tgz",
- "integrity": "sha512-KTitVGMDrn2+pt7aZ8/yUTuS333w3pWt1Mf88vMntw7ZSBNDkRS6/4XLbFpWXYfWfp1FjcjQTOKzbK20oIehWQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz",
+ "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==",
"dev": true,
"requires": {
- "@jest/environment": "^25.4.0",
- "@jest/fake-timers": "^25.4.0",
- "@jest/types": "^25.4.0",
- "jest-mock": "^25.4.0",
- "jest-util": "^25.4.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
"jsdom": "^15.2.1"
}
},
"jest-environment-node": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.4.0.tgz",
- "integrity": "sha512-wryZ18vsxEAKFH7Z74zi/y/SyI1j6UkVZ6QsllBuT/bWlahNfQjLNwFsgh/5u7O957dYFoXj4yfma4n4X6kU9A==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz",
+ "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==",
"dev": true,
"requires": {
- "@jest/environment": "^25.4.0",
- "@jest/fake-timers": "^25.4.0",
- "@jest/types": "^25.4.0",
- "jest-mock": "^25.4.0",
- "jest-util": "^25.4.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
"semver": "^6.3.0"
},
"dependencies": {
@@ -12249,19 +12215,20 @@
"dev": true
},
"jest-haste-map": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.4.0.tgz",
- "integrity": "sha512-5EoCe1gXfGC7jmXbKzqxESrgRcaO3SzWXGCnvp9BcT0CFMyrB1Q6LIsjl9RmvmJGQgW297TCfrdgiy574Rl9HQ==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"fsevents": "^2.1.2",
- "graceful-fs": "^4.2.3",
- "jest-serializer": "^25.2.6",
- "jest-util": "^25.4.0",
- "jest-worker": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"micromatch": "^4.0.2",
"sane": "^4.0.3",
"walker": "^1.0.7",
@@ -12269,27 +12236,27 @@
}
},
"jest-jasmine2": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.4.0.tgz",
- "integrity": "sha512-QccxnozujVKYNEhMQ1vREiz859fPN/XklOzfQjm2j9IGytAkUbSwjFRBtQbHaNZ88cItMpw02JnHGsIdfdpwxQ==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz",
+ "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^25.4.0",
- "@jest/source-map": "^25.2.6",
- "@jest/test-result": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/source-map": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"co": "^4.6.0",
- "expect": "^25.4.0",
+ "expect": "^25.5.0",
"is-generator-fn": "^2.0.0",
- "jest-each": "^25.4.0",
- "jest-matcher-utils": "^25.4.0",
- "jest-message-util": "^25.4.0",
- "jest-runtime": "^25.4.0",
- "jest-snapshot": "^25.4.0",
- "jest-util": "^25.4.0",
- "pretty-format": "^25.4.0",
+ "jest-each": "^25.5.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-runtime": "^25.5.4",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "pretty-format": "^25.5.0",
"throat": "^5.0.0"
},
"dependencies": {
@@ -12306,25 +12273,25 @@
}
},
"jest-leak-detector": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.4.0.tgz",
- "integrity": "sha512-7Y6Bqfv2xWsB+7w44dvZuLs5SQ//fzhETgOGG7Gq3TTGFdYvAgXGwV8z159RFZ6fXiCPm/szQ90CyfVos9JIFQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz",
+ "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==",
"dev": true,
"requires": {
"jest-get-type": "^25.2.6",
- "pretty-format": "^25.4.0"
+ "pretty-format": "^25.5.0"
}
},
"jest-matcher-utils": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.4.0.tgz",
- "integrity": "sha512-yPMdtj7YDgXhnGbc66bowk8AkQ0YwClbbwk3Kzhn5GVDrciiCr27U4NJRbrqXbTdtxjImONITg2LiRIw650k5A==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+ "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
"dev": true,
"requires": {
"chalk": "^3.0.0",
- "jest-diff": "^25.4.0",
+ "jest-diff": "^25.5.0",
"jest-get-type": "^25.2.6",
- "pretty-format": "^25.4.0"
+ "pretty-format": "^25.5.0"
},
"dependencies": {
"chalk": {
@@ -12340,15 +12307,16 @@
}
},
"jest-message-util": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.4.0.tgz",
- "integrity": "sha512-LYY9hRcVGgMeMwmdfh9tTjeux1OjZHMusq/E5f3tJN+dAoVVkJtq5ZUEPIcB7bpxDUt2zjUsrwg0EGgPQ+OhXQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"@types/stack-utils": "^1.0.1",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"micromatch": "^4.0.2",
"slash": "^3.0.0",
"stack-utils": "^1.0.1"
@@ -12367,12 +12335,12 @@
}
},
"jest-mock": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.4.0.tgz",
- "integrity": "sha512-MdazSfcYAUjJjuVTTnusLPzE0pE4VXpOUzWdj8sbM+q6abUjm3bATVPXFqTXrxSieR8ocpvQ9v/QaQCftioQFg==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0"
+ "@jest/types": "^25.5.0"
}
},
"jest-regex-util": {
@@ -12382,18 +12350,19 @@
"dev": true
},
"jest-resolve": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.4.0.tgz",
- "integrity": "sha512-wOsKqVDFWUiv8BtLMCC6uAJ/pHZkfFgoBTgPtmYlsprAjkxrr2U++ZnB3l5ykBMd2O24lXvf30SMAjJIW6k2aA==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"browser-resolve": "^1.11.3",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"jest-pnp-resolver": "^1.2.1",
"read-pkg-up": "^7.0.1",
"realpath-native": "^2.0.0",
- "resolve": "^1.15.1",
+ "resolve": "^1.17.0",
"slash": "^3.0.0"
},
"dependencies": {
@@ -12421,39 +12390,39 @@
}
},
"jest-resolve-dependencies": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.4.0.tgz",
- "integrity": "sha512-A0eoZXx6kLiuG1Ui7wITQPl04HwjLErKIJTt8GR3c7UoDAtzW84JtCrgrJ6Tkw6c6MwHEyAaLk7dEPml5pf48A==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz",
+ "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"jest-regex-util": "^25.2.6",
- "jest-snapshot": "^25.4.0"
+ "jest-snapshot": "^25.5.1"
}
},
"jest-runner": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.4.0.tgz",
- "integrity": "sha512-wWQSbVgj2e/1chFdMRKZdvlmA6p1IPujhpLT7TKNtCSl1B0PGBGvJjCaiBal/twaU2yfk8VKezHWexM8IliBfA==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz",
+ "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==",
"dev": true,
"requires": {
- "@jest/console": "^25.4.0",
- "@jest/environment": "^25.4.0",
- "@jest/test-result": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/console": "^25.5.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"exit": "^0.1.2",
- "graceful-fs": "^4.2.3",
- "jest-config": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^25.5.4",
"jest-docblock": "^25.3.0",
- "jest-haste-map": "^25.4.0",
- "jest-jasmine2": "^25.4.0",
- "jest-leak-detector": "^25.4.0",
- "jest-message-util": "^25.4.0",
- "jest-resolve": "^25.4.0",
- "jest-runtime": "^25.4.0",
- "jest-util": "^25.4.0",
- "jest-worker": "^25.4.0",
+ "jest-haste-map": "^25.5.1",
+ "jest-jasmine2": "^25.5.4",
+ "jest-leak-detector": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-resolve": "^25.5.1",
+ "jest-runtime": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"source-map-support": "^0.5.6",
"throat": "^5.0.0"
},
@@ -12471,32 +12440,33 @@
}
},
"jest-runtime": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.4.0.tgz",
- "integrity": "sha512-lgNJlCDULtXu9FumnwCyWlOub8iytijwsPNa30BKrSNtgoT6NUMXOPrZvsH06U6v0wgD/Igwz13nKA2wEKU2VA==",
- "dev": true,
- "requires": {
- "@jest/console": "^25.4.0",
- "@jest/environment": "^25.4.0",
- "@jest/source-map": "^25.2.6",
- "@jest/test-result": "^25.4.0",
- "@jest/transform": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz",
+ "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/globals": "^25.5.2",
+ "@jest/source-map": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"@types/yargs": "^15.0.0",
"chalk": "^3.0.0",
"collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
"glob": "^7.1.3",
- "graceful-fs": "^4.2.3",
- "jest-config": "^25.4.0",
- "jest-haste-map": "^25.4.0",
- "jest-message-util": "^25.4.0",
- "jest-mock": "^25.4.0",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^25.5.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
"jest-regex-util": "^25.2.6",
- "jest-resolve": "^25.4.0",
- "jest-snapshot": "^25.4.0",
- "jest-util": "^25.4.0",
- "jest-validate": "^25.4.0",
+ "jest-resolve": "^25.5.1",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
"realpath-native": "^2.0.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0",
@@ -12530,30 +12500,34 @@
}
},
"jest-serializer": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz",
- "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==",
- "dev": true
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4"
+ }
},
"jest-snapshot": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.4.0.tgz",
- "integrity": "sha512-J4CJ0X2SaGheYRZdLz9CRHn9jUknVmlks4UBeu270hPAvdsauFXOhx9SQP2JtRzhnR3cvro/9N9KP83/uvFfRg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz",
+ "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"@types/prettier": "^1.19.0",
"chalk": "^3.0.0",
- "expect": "^25.4.0",
- "jest-diff": "^25.4.0",
+ "expect": "^25.5.0",
+ "graceful-fs": "^4.2.4",
+ "jest-diff": "^25.5.0",
"jest-get-type": "^25.2.6",
- "jest-matcher-utils": "^25.4.0",
- "jest-message-util": "^25.4.0",
- "jest-resolve": "^25.4.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-resolve": "^25.5.1",
"make-dir": "^3.0.0",
"natural-compare": "^1.4.0",
- "pretty-format": "^25.4.0",
+ "pretty-format": "^25.5.0",
"semver": "^6.3.0"
},
"dependencies": {
@@ -12576,13 +12550,14 @@
}
},
"jest-util": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.4.0.tgz",
- "integrity": "sha512-WSZD59sBtAUjLv1hMeKbNZXmMcrLRWcYqpO8Dz8b4CeCTZpfNQw2q9uwrYAD+BbJoLJlu4ezVPwtAmM/9/SlZA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"is-ci": "^2.0.0",
"make-dir": "^3.0.0"
},
@@ -12600,17 +12575,17 @@
}
},
"jest-validate": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.4.0.tgz",
- "integrity": "sha512-hvjmes/EFVJSoeP1yOl8qR8mAtMR3ToBkZeXrD/ZS9VxRyWDqQ/E1C5ucMTeSmEOGLipvdlyipiGbHJ+R1MQ0g==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+ "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"camelcase": "^5.3.1",
"chalk": "^3.0.0",
"jest-get-type": "^25.2.6",
"leven": "^3.1.0",
- "pretty-format": "^25.4.0"
+ "pretty-format": "^25.5.0"
},
"dependencies": {
"chalk": {
@@ -12626,16 +12601,16 @@
}
},
"jest-watcher": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.4.0.tgz",
- "integrity": "sha512-36IUfOSRELsKLB7k25j/wutx0aVuHFN6wO94gPNjQtQqFPa2rkOymmx9rM5EzbF3XBZZ2oqD9xbRVoYa2w86gw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz",
+ "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==",
"dev": true,
"requires": {
- "@jest/test-result": "^25.4.0",
- "@jest/types": "^25.4.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"ansi-escapes": "^4.2.1",
"chalk": "^3.0.0",
- "jest-util": "^25.4.0",
+ "jest-util": "^25.5.0",
"string-length": "^3.1.0"
},
"dependencies": {
@@ -12652,9 +12627,9 @@
}
},
"jest-worker": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz",
- "integrity": "sha512-ghAs/1FtfYpMmYQ0AHqxV62XPvKdUDIBBApMZfly+E9JEmYh2K45G0R5dWxx986RN12pRCxsViwQVtGl+N4whw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
"merge-stream": "^2.0.0",
@@ -12692,33 +12667,12 @@
"picomatch": "^2.0.5"
}
},
- "mime-db": {
- "version": "1.43.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
- "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.26",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
- "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
- "dev": true,
- "requires": {
- "mime-db": "1.43.0"
- }
- },
"mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node-notifier": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz",
@@ -12864,12 +12818,12 @@
}
},
"pretty-format": {
- "version": "25.4.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.4.0.tgz",
- "integrity": "sha512-PI/2dpGjXK5HyXexLPZU/jw5T9Q6S1YVXxxVxco+LIqzUFHXIbKZKdUVt7GcX7QUCr31+3fzhi4gN4/wUYPVxQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.4.0",
+ "@jest/types": "^25.5.0",
"ansi-regex": "^5.0.0",
"ansi-styles": "^4.0.0",
"react-is": "^16.12.0"
@@ -12885,26 +12839,6 @@
"once": "^1.3.1"
}
},
- "puppeteer": {
- "version": "npm:puppeteer@3.0.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-3.0.0.tgz",
- "integrity": "sha512-oWjZFGMc0q2ak+8OxdmMffS79LIT0UEtmpV4h1/AARvESIqqKljf8mrfP+dQ2kas7XttsAZIxRBuWu7Y5JH8KQ==",
- "dev": true,
- "requires": {
- "@types/mime-types": "^2.1.0",
- "debug": "^4.1.0",
- "extract-zip": "^2.0.0",
- "https-proxy-agent": "^4.0.0",
- "mime": "^2.0.3",
- "mime-types": "^2.1.25",
- "progress": "^2.0.1",
- "proxy-from-env": "^1.0.0",
- "rimraf": "^3.0.2",
- "tar-fs": "^2.0.0",
- "unbzip2-stream": "^1.3.3",
- "ws": "^7.2.3"
- }
- },
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -12931,17 +12865,6 @@
}
}
},
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
"realpath-native": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
@@ -12955,9 +12878,9 @@
"dev": true
},
"resolve": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.16.1.tgz",
- "integrity": "sha512-rmAglCSqWWMrrBv/XM6sW0NuRFiKViw/W4d9EbC4pt+49H8JwHy+mcGmALTEg504AUDcLTvb1T2q3E9AnmY+ig==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -13046,31 +12969,6 @@
"has-flag": "^4.0.0"
}
},
- "tar-fs": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
- "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
- "dev": true,
- "requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.0.0"
- }
- },
- "tar-stream": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
- "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
- "dev": true,
- "requires": {
- "bl": "^4.0.1",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- }
- },
"throat": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
@@ -13093,9 +12991,9 @@
"dev": true
},
"v8-to-istanbul": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz",
- "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz",
+ "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -13152,12 +13050,6 @@
"typedarray-to-buffer": "^3.1.5"
}
},
- "ws": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
- "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
- "dev": true
- },
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
@@ -13192,16 +13084,6 @@
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
- },
- "yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "dev": true,
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
}
}
},
@@ -13329,9 +13211,9 @@
}
},
"acorn": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz",
- "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
"dev": true
},
"acorn-globals": {
@@ -13344,12 +13226,6 @@
"acorn-walk": "^6.0.1"
},
"dependencies": {
- "acorn": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
- "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
- "dev": true
- },
"acorn-walk": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
@@ -13358,15 +13234,6 @@
}
}
},
- "acorn-jsx": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz",
- "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==",
- "dev": true,
- "requires": {
- "acorn": "^5.0.3"
- }
- },
"acorn-walk": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz",
@@ -13817,847 +13684,558 @@
"resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz",
"integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA=="
},
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
- },
- "archiver": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
- "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
- "dev": true,
- "requires": {
- "archiver-utils": "^2.1.0",
- "async": "^2.6.3",
- "buffer-crc32": "^0.2.1",
- "glob": "^7.1.4",
- "readable-stream": "^3.4.0",
- "tar-stream": "^2.1.0",
- "zip-stream": "^2.1.2"
+ "appium": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/appium/-/appium-1.17.1.tgz",
+ "integrity": "sha512-QdM7b0AAF/q79V8rauVZw24dGpU6tkLLHbbMG+yfNlsrsa8/xivOrbc3DM5Fmn8x4JjgUthHenIse7KRWCQy3w==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.6.0",
+ "appium-android-driver": "^4.20.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-espresso-driver": "^1.0.0",
+ "appium-fake-driver": "^0.x",
+ "appium-flutter-driver": "^0",
+ "appium-ios-driver": "4.x",
+ "appium-mac-driver": "1.x",
+ "appium-support": "2.x",
+ "appium-tizen-driver": "^1.1.1-beta.4",
+ "appium-uiautomator2-driver": "^1.37.1",
+ "appium-windows-driver": "1.x",
+ "appium-xcuitest-driver": "^3.22.0",
+ "appium-youiengine-driver": "^1.2.0",
+ "argparse": "^1.0.10",
+ "async-lock": "^1.0.0",
+ "asyncbox": "2.x",
+ "bluebird": "3.x",
+ "continuation-local-storage": "3.x",
+ "dateformat": "^3.0.3",
+ "find-root": "^1.1.0",
+ "fsevents": "2.x",
+ "lodash": "^4.17.11",
+ "longjohn": "^0.2.12",
+ "npmlog": "4.x",
+ "request": "^2.81.0",
+ "request-promise": "4.x",
+ "semver": "^7.0.0",
+ "source-map-support": "0.x",
+ "teen_process": "1.x",
+ "winston": "3.x",
+ "word-wrap": "^1.2.3"
},
"dependencies": {
- "async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "101": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/101/-/101-1.6.3.tgz",
+ "integrity": "sha512-4dmQ45yY0Dx24Qxp+zAsNLlMF6tteCyfVzgbulvSyC7tCyd3V8sW76sS0tHq8NpcbXfWTKasfyfzU1Kd86oKzw==",
"dev": true,
"requires": {
- "lodash": "^4.17.14"
+ "clone": "^1.0.2",
+ "deep-eql": "^0.1.3",
+ "keypather": "^1.10.2"
}
},
- "bl": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
- "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
+ "@babel/polyfill": {
+ "version": "7.8.7",
+ "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.7.tgz",
+ "integrity": "sha512-LeSfP9bNZH2UOZgcGcZ0PIHUt1ZuHub1L3CVmEyqLxCeDLm4C5Gi8jRH8ZX2PNpDhQCo0z6y/+DIs2JlliXW8w==",
"dev": true,
"requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
+ "core-js": "^2.6.5",
+ "regenerator-runtime": "^0.13.4"
},
"dependencies": {
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
"dev": true
}
}
},
- "buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
+ "@babel/runtime": {
+ "version": "7.8.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz",
+ "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==",
"dev": true,
"requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
+ "regenerator-runtime": "^0.13.4"
}
},
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "@jimp/bmp": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.5.tgz",
+ "integrity": "sha512-2cYdgXaNykuPe9sjm11Jihp5VomyWTWziIuDDB7xnxQtEz2HUR0bjXm2MJJOfU0TL52H+LS2JIKtAxcLPzp28w==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "bmp-js": "^0.1.0",
+ "core-js": "^3.4.1"
}
},
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "@jimp/core": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.9.5.tgz",
+ "integrity": "sha512-P1mlB9UOeI3IAQ4lGTmRBGw+F/mHWXd3tSyBskjL4E3YJ1eNK7WRrErUj/vUOvSBIryotu7nGo8vv8Q8JZ7/8w==",
"dev": true,
"requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "any-base": "^1.1.0",
+ "buffer": "^5.2.0",
+ "core-js": "^3.4.1",
+ "exif-parser": "^0.1.12",
+ "file-type": "^9.0.0",
+ "load-bmfont": "^1.3.1",
+ "mkdirp": "0.5.1",
+ "phin": "^2.9.1",
+ "pixelmatch": "^4.0.2",
+ "tinycolor2": "^1.4.1"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ }
}
},
- "tar-stream": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
- "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "@jimp/custom": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.5.tgz",
+ "integrity": "sha512-FaR7M0oxqbd7ujBL5ryyllS+mEuMKbKaDsdb8Cpu9SAo80DBiasUrYFFD/45/aRa95aM5o8t4C4Pna2bx8t3Tg==",
"dev": true,
"requires": {
- "bl": "^4.0.1",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/core": "^0.9.5",
+ "core-js": "^3.4.1"
}
- }
- }
- },
- "archiver-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
- "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
- "dev": true,
- "requires": {
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.0",
- "lazystream": "^1.0.0",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.5.0",
- "lodash.flatten": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.union": "^4.6.0",
- "normalize-path": "^3.0.0",
- "readable-stream": "^2.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ },
+ "@jimp/gif": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.5.tgz",
+ "integrity": "sha512-QxjLl15nIz/QTeNgLFUJIOMLIceMO2B/xLUWF1/WqaP7Su6SGasRS6JY8OZ9QnqJLMWkodoEJmL6DxwtoOtqdg==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1",
+ "omggif": "^1.0.9"
}
},
- "graceful-fs": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
- "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
- "dev": true
+ "@jimp/jpeg": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.5.tgz",
+ "integrity": "sha512-cBpXqmeegsLzf/mYk1WpYov2RH1W944re5P61/ag6AMWEMQ51BoBdgBy5JABZIELg2GQxpoG+g/KxUshRzeIAg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1",
+ "jpeg-js": "^0.3.4"
+ }
},
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- }
- }
- },
- "are-we-there-yet": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
- "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- },
- "dependencies": {
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- }
- }
- },
- "aria-query": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
- "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
- "dev": true,
- "requires": {
- "ast-types-flow": "0.0.7",
- "commander": "^2.11.0"
- },
- "dependencies": {
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- }
- }
- },
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
- },
- "array-differ": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz",
- "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==",
- "dev": true
- },
- "array-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
- "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
- "dev": true
- },
- "array-filter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
- "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
- "dev": true
- },
- "array-find-index": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
- "dev": true
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
- "dev": true
- },
- "array-ify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
- "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
- "dev": true
- },
- "array-includes": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
- "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.7.0"
- }
- },
- "array-iterate": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.2.tgz",
- "integrity": "sha512-1hWSHTIlG/8wtYD+PPX5AOBtKWngpDFjrsrHgZpe+JdgNGz0udYu6ZIkAa/xuenIUEqFv7DvE2Yr60jxweJSrQ==",
- "dev": true
- },
- "array-map": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
- "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="
- },
- "array-reduce": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
- "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="
- },
- "array-slice": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
- "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU="
- },
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "dev": true,
- "requires": {
- "array-uniq": "^1.0.1"
- }
- },
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
- },
- "array.prototype.find": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.0.tgz",
- "integrity": "sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==",
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.13.0"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "@jimp/plugin-blit": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.9.5.tgz",
+ "integrity": "sha512-VmV99HeCPOyliY/uEGOaKO9EcqDxSBzKDGC7emNCLFzlbK4uty4/cYMKGKTBiZR9AS1rEd63LxrDtbHKR8CsqQ==",
+ "dev": true,
"requires": {
- "object-keys": "^1.0.12"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "es-abstract": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
- "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
+ "@jimp/plugin-blur": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.9.5.tgz",
+ "integrity": "sha512-FnAEhMW9ZK8D6qCLDeMAloi4h7TCch9ZWFdonj49gwllpvLksBpnL9PTft4dFXCwZgOAq2apYwW7cwTAIfAw4A==",
+ "dev": true,
"requires": {
- "es-to-primitive": "^1.2.0",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.0",
- "is-callable": "^1.1.4",
- "is-regex": "^1.0.4",
- "object-inspect": "^1.6.0",
- "object-keys": "^1.1.1",
- "string.prototype.trimleft": "^2.1.0",
- "string.prototype.trimright": "^2.1.0"
- },
- "dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- }
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "es-to-primitive": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
- "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "@jimp/plugin-color": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.9.5.tgz",
+ "integrity": "sha512-2aFE0tRdhAKCCgh+tFLsLPOSgrk3ttl2TtTP5FAXeKmzlLj7FZ/JKj0waaGWZKdJ+uDxsVpX3EhuK3CfukIyrg==",
+ "dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1",
+ "tinycolor2": "^1.4.1"
}
},
- "is-symbol": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
- "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "@jimp/plugin-contain": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.9.5.tgz",
+ "integrity": "sha512-zhaCJnUqd8hhD8IXxbRALU6ZzCWWbQDulc8Tn8Hxnub0si7dlq/DxBQT7og6kCxswBj2zPBtRAHONEwLdt7Nfw==",
+ "dev": true,
"requires": {
- "has-symbols": "^1.0.0"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
- }
- }
- },
- "array.prototype.flat": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz",
- "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==",
- "requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.10.0",
- "function-bind": "^1.1.1"
- }
- },
- "array.prototype.flatmap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
- "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ },
+ "@jimp/plugin-cover": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.9.5.tgz",
+ "integrity": "sha512-rG7vtx7vV9mHCFR4YP9GzGEsaop0IkMidP3UFPULbDcBdEEkehEG7a0h2X4w/Nt07J3k8wVoXYTjrb/CXpWkaw==",
"dev": true,
"requires": {
- "object-keys": "^1.0.12"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "es-abstract": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
- "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "@jimp/plugin-crop": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.9.5.tgz",
+ "integrity": "sha512-yoScC43YhYlswTKyL4fmawGwF73HyuIRpp1R3mXa6qbMA9mjX9QiqNdAIMB3UMHeBcIgkOD/Zy1f90/skBMpxg==",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- },
- "dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "@jimp/plugin-displace": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.9.5.tgz",
+ "integrity": "sha512-nwfB72qNP8kNyBnlaY0vgJys7RUjvI61Qp3AMMbKKaRSsthCx7aeKU9Cyv+AHMfcVkkt3NdTmh7ScE+hkNFUhA==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
+ "@jimp/plugin-dither": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.9.5.tgz",
+ "integrity": "sha512-Pp1ehm5Hon6LcttRG+d+x1UN1ww00P4cyBnMVRR3NMhIfgc0IjQgojik9ZXax3nVj7XkqXJJh8f5uxC1cvYUnA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
+ }
},
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
- "dev": true
- },
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "@jimp/plugin-flip": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.9.5.tgz",
+ "integrity": "sha512-rKbg8c9ePst3w2t1kxQt2H05/rUR5/pjjafhZ97s01pxH/SOJudy5d76nJGzRBYoaRnxpvDzpN+2+iA08wDY5Q==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "@jimp/plugin-gaussian": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.9.5.tgz",
+ "integrity": "sha512-8HloHpVPgSsoWekslJ5uUPK2ddoLrGXQAVOyo3BT2pVgwbL317+r96NxPGKTxrY20fqex9SQrjx3kHeSWbysEA==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "dev": true
- },
- "string.prototype.trimleft": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
- "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "@jimp/plugin-invert": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.9.5.tgz",
+ "integrity": "sha512-tqfMqQqsU4ulaif0Kk/BydqmG5UbjT67dmMjwnDL7rke+ypJ8tzq7j9QeZ9SDFB+PxUQcy/kPEw/R2Ys7HHi8A==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "string.prototype.trimright": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
- "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "@jimp/plugin-mask": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.9.5.tgz",
+ "integrity": "sha512-lIOrKb/VT1laDIA1H1nPOdtOB4TVhMRlxanXoEP8uKdE6a2goqZHXbKLn9itkm0MxtsTlT9KIXwzGxjCV38B3w==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
- }
- }
- },
- "array.prototype.map": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz",
- "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "es-array-method-boxes-properly": "^1.0.0",
- "is-string": "^1.0.4"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ },
+ "@jimp/plugin-normalize": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.9.5.tgz",
+ "integrity": "sha512-gayxgPLDp2gynu2IacvdCtqw0bdcC2feUqYOBjTtCpAwIz1KP2Qd6qKjV1dAVGiLO9ESW5maMa0vIBiBkYOovg==",
"dev": true,
"requires": {
- "object-keys": "^1.0.12"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "es-abstract": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
- "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "@jimp/plugin-print": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.9.5.tgz",
+ "integrity": "sha512-/BUSyCfvVhuFdf+rBdH1wbuY8r9J0qhn4Icy7HqO58By7I+V7q7jayoeiLk+zEBsAXpCUbWiZG3KWNtZhLWeQg==",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- },
- "dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1",
+ "load-bmfont": "^1.4.0"
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "@jimp/plugin-resize": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.5.tgz",
+ "integrity": "sha512-vIMleLPbEv0qTE1Mnc7mg5HSFc4l4FxlbDniVUvpi8ZMFa8IkigcTeAgXUKacevNL7uZ66MrnpQ49J3tNE28dQ==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
- "dev": true
+ "@jimp/plugin-rotate": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.9.5.tgz",
+ "integrity": "sha512-BHlhwUruHNQkOpsfzTE2uuSfmkj5eiIDRSAC8whupUGGXNgS67tZJB6u0qDRIeSP/gWV5tGGwXQNMn3AahwR1Q==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
+ }
},
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "@jimp/plugin-scale": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.9.5.tgz",
+ "integrity": "sha512-PDU8F77EPFTcLBVDcJtGUvPXA2acG4KqJMZauHwZLZxuiDEvt9qsDQm4aTKcN/ku8oWZjfGBSOamhx/QNUqV5Q==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1"
}
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "@jimp/plugins": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.9.5.tgz",
+ "integrity": "sha512-3hvuXeRLj36ifpwE7I7g5Da9bKl/0y62t90ZN0hdQwhLBjRRF4u1e1JZpyu6EK98Bp+W/c8fJ2iuOsHadJOusg==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/plugin-blit": "^0.9.5",
+ "@jimp/plugin-blur": "^0.9.5",
+ "@jimp/plugin-color": "^0.9.5",
+ "@jimp/plugin-contain": "^0.9.5",
+ "@jimp/plugin-cover": "^0.9.5",
+ "@jimp/plugin-crop": "^0.9.5",
+ "@jimp/plugin-displace": "^0.9.5",
+ "@jimp/plugin-dither": "^0.9.5",
+ "@jimp/plugin-flip": "^0.9.5",
+ "@jimp/plugin-gaussian": "^0.9.5",
+ "@jimp/plugin-invert": "^0.9.5",
+ "@jimp/plugin-mask": "^0.9.5",
+ "@jimp/plugin-normalize": "^0.9.5",
+ "@jimp/plugin-print": "^0.9.5",
+ "@jimp/plugin-resize": "^0.9.5",
+ "@jimp/plugin-rotate": "^0.9.5",
+ "@jimp/plugin-scale": "^0.9.5",
+ "core-js": "^3.4.1",
+ "timm": "^1.6.1"
+ }
+ },
+ "@jimp/png": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.9.5.tgz",
+ "integrity": "sha512-0GPq/XixXcuWIA3gpMCUUj6rhxT78Hu9oDC9reaHUCcC/5cRTd5Eh7wLafZL8EfOZWV3mh2FZtWiY1xaNHHlBQ==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "@jimp/utils": "^0.9.5",
+ "core-js": "^3.4.1",
+ "pngjs": "^3.3.3"
}
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "dev": true
+ "@jimp/tiff": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.5.tgz",
+ "integrity": "sha512-EcRtiHsAQ9aygRRMWhGTVfitfHwllgt93GE1L8d/iwSlu3e3IIV38MDINdluQUQMU5jcFBcX6eyVVvsgCleGiQ==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "core-js": "^3.4.1",
+ "utif": "^2.0.1"
+ }
},
- "string.prototype.trimleft": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
- "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "@jimp/types": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.9.5.tgz",
+ "integrity": "sha512-62inaxx8zy24WMP+bsg6ZmgsL49oyoGUIGcjDKzvyAY/O6opD+UMNlArhl0xvCCdzriQxbljtSv/8uyHxz4Xbw==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/bmp": "^0.9.5",
+ "@jimp/gif": "^0.9.5",
+ "@jimp/jpeg": "^0.9.5",
+ "@jimp/png": "^0.9.5",
+ "@jimp/tiff": "^0.9.5",
+ "core-js": "^3.4.1",
+ "timm": "^1.6.1"
}
},
- "string.prototype.trimright": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
- "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "@jimp/utils": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.5.tgz",
+ "integrity": "sha512-W9vse4/1AYmOjtIVACoBMdc/2te1zcPURhMYNEyiezCU7hWMdj/Z1mwiWFq3AYCgOG8GPVx0ZQzrgqUfUxfTHQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "@babel/runtime": "^7.7.2",
+ "core-js": "^3.4.1"
}
- }
- }
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
- "dev": true
- },
- "art": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/art/-/art-0.10.3.tgz",
- "integrity": "sha512-HXwbdofRTiJT6qZX/FnchtldzJjS3vkLJxQilc3Xj+ma2MXjY4UAyQ0ls1XZYVnDvVIBiFZbC6QsvtW86TD6tQ=="
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
- },
- "asn1.js": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
- "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
- "requires": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
- "requires": {
- "object-assign": "^4.1.1",
- "util": "0.10.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
},
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "13.9.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.0.tgz",
+ "integrity": "sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@wdio/config": {
+ "version": "5.18.4",
+ "resolved": "https://registry.npmjs.org/@wdio/config/-/config-5.18.4.tgz",
+ "integrity": "sha512-HQugjG+BABDYG/1dPR6KA+IQilsg1MSQ/NVIg8R6I8ER9MA2JNIoaxvXZ+CnDfgY/QpyIHEeqJhfgw8GElaPdw==",
+ "dev": true,
"requires": {
- "inherits": "2.0.1"
+ "@wdio/logger": "5.16.10",
+ "deepmerge": "^4.0.0",
+ "glob": "^7.1.2"
}
- }
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
- },
- "ast-types": {
- "version": "0.12.4",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.4.tgz",
- "integrity": "sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==",
- "dev": true
- },
- "ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
- "dev": true
- },
- "astral-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
- },
- "async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
- "requires": {
- "lodash": "^4.17.10"
- }
- },
- "async-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
- "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
- "dev": true
- },
- "async-foreach": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
- "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
- "dev": true
- },
- "async-limiter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
- },
- "atob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
- "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio="
- },
- "atob-lite": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz",
- "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=",
- "dev": true
- },
- "autoprefixer": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
- "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
- "dev": true,
- "requires": {
- "browserslist": "^4.6.3",
- "caniuse-lite": "^1.0.30000980",
- "chalk": "^2.4.2",
- "normalize-range": "^0.1.2",
- "num2fraction": "^1.2.2",
- "postcss": "^7.0.17",
- "postcss-value-parser": "^4.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ },
+ "@wdio/logger": {
+ "version": "5.16.10",
+ "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-5.16.10.tgz",
+ "integrity": "sha512-hRKhxgd9uB48Dtj2xe2ckxU4KwI/RO8IwguySuaI2SLFj6EDbdonwzpVkq111/fjBuq7R1NauAaNcm3AMEbIFA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "chalk": "^3.0.0",
+ "loglevel": "^1.6.0",
+ "loglevel-plugin-prefix": "^0.8.4",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "ansi-regex": "^5.0.0"
}
}
}
},
- "postcss": {
- "version": "7.0.26",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
- "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
+ "@wdio/protocols": {
+ "version": "5.19.0",
+ "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-5.19.0.tgz",
+ "integrity": "sha512-6DTSZKJd/UwtiTuQ2GgfQV/LTnjVmAn6uNzUz2j5cdFxCI63vaRQ4AnaPFjjT3VuN+rJXnmRF8FKoT02jBCQrg==",
+ "dev": true
+ },
+ "@wdio/repl": {
+ "version": "5.18.6",
+ "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-5.18.6.tgz",
+ "integrity": "sha512-z9UPBk/Uee0l9g0ijnOatU3WP7TcpIyNtRj9AGsJVbYZFwqMWBqPkO4nblldyNQIuqdgXAPsDo8lPGDno12/oA==",
"dev": true,
"requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
+ "@wdio/utils": "5.18.6"
}
},
- "postcss-value-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
- "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
- "dev": true
+ "@wdio/utils": {
+ "version": "5.18.6",
+ "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-5.18.6.tgz",
+ "integrity": "sha512-OVdK7P9Gne9tR6dl1GEKucwX4mtS47F26g4lH8r0HURvMegZLGtcchI1cqF6hjK7EpP737b+C3q4ooZSBdH9XQ==",
+ "dev": true,
+ "requires": {
+ "@wdio/logger": "5.16.10",
+ "deepmerge": "^4.0.0"
+ }
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
},
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "adbkit-apkreader": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/adbkit-apkreader/-/adbkit-apkreader-3.2.0.tgz",
+ "integrity": "sha512-QwsxPYCqWSmCAiW/A4gq0eytb4jtZc7WNbECIhLCRfGEB38oXzIV/YkTpkOTQFKSg3S4Svb6y///qOUH7UrWWw==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "bluebird": "^3.4.7",
+ "debug": "~4.1.1",
+ "yauzl": "^2.7.0"
}
- }
- }
- },
- "autosize": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.2.tgz",
- "integrity": "sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA=="
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "dev": true
- },
- "aws4": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
- "dev": true
- },
- "axe-core": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.3.tgz",
- "integrity": "sha512-HZpLE7xu05+8AbpqXITGdxp1Xwk8ysAXrg7MiKRY27py3DAyEJpoJQo1727pWF3F+O79V3r+cTWhOzfB49P89w==",
- "dev": true
- },
- "axe-puppeteer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/axe-puppeteer/-/axe-puppeteer-1.1.0.tgz",
- "integrity": "sha512-VS17Y1rDQe6A0PdeTPxwOSBfmOdj6efgxyre9cN1du1snnVilczSDtQsgifBKBlzoL/3DKfGpgIi+N+zrzODOg==",
- "dev": true,
- "requires": {
- "axe-core": "^3.5.3"
- }
- },
- "axobject-query": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
- "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==",
- "dev": true,
- "requires": {
- "ast-types-flow": "0.0.7"
- }
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "dev": true,
- "requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
- },
- "dependencies": {
+ },
+ "aggregate-error": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
+ "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-gray": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
+ "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
+ "dev": true,
+ "requires": {
+ "ansi-wrap": "0.1.0"
+ }
+ },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -14665,1408 +14243,2319 @@
"dev": true
},
"ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "ansi-wrap": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
+ "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
"dev": true
},
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "any-base": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz",
+ "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==",
+ "dev": true
+ },
+ "appium-adb": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/appium-adb/-/appium-adb-7.26.0.tgz",
+ "integrity": "sha512-EWVj2kaPmbnGTrr9sX+XqMmYKKdFlo94M106fEfLbb41PxJTn/e6bwJ6qwXjGMpJhlpgbjUwFGhnUkaut6lD+w==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "adbkit-apkreader": "^3.1.2",
+ "appium-support": "^2.37.0",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.4.7",
+ "lodash": "^4.0.0",
+ "lru-cache": "^5.0.0",
+ "semver": "^7.0.0",
+ "shell-quote": "^1.6.1",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.11.0",
+ "utf7": "^1.0.2"
+ }
+ },
+ "appium-android-driver": {
+ "version": "4.26.1",
+ "resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-4.26.1.tgz",
+ "integrity": "sha512-vczjhG0DOToBDV/++0iMdx4wXvTD/CaICH4F9IbTPa0APOTSGsL+k113vmD2Alsquvq/F/Kj5MFIq2DlpPjhgw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-adb": "^7.22.0",
+ "appium-base-driver": "^5.1.0",
+ "appium-chromedriver": "^4.13.0",
+ "appium-support": "^2.37.0",
+ "asyncbox": "^2.0.4",
+ "bluebird": "^3.4.7",
+ "io.appium.settings": "^3.1.0",
+ "jimp": "^0.9.3",
+ "lodash": "^4.17.4",
+ "moment": "^2.24.0",
+ "moment-timezone": "^0.5.26",
+ "portfinder": "^1.0.6",
+ "portscanner": "2.2.0",
+ "semver": "^7.0.0",
+ "shared-preferences-builder": "^0.0.4",
+ "shell-quote": "^1.6.1",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.9.0",
+ "ws": "^7.0.0",
+ "yargs": "^15.0.1"
+ }
+ },
+ "appium-base-driver": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/appium-base-driver/-/appium-base-driver-5.3.1.tgz",
+ "integrity": "sha512-IQpmGI3+CzBzbW34x1eGRIkOuMYqJ1uHvJwmThFJBLoaYZNDPRlO37g0np2TjESwOBYpD1DSEWLxzkKQusU1rA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.39.0",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.3",
+ "body-parser": "^1.18.2",
+ "colors": "^1.1.2",
+ "es6-error": "^4.1.1",
+ "express": "^4.16.2",
+ "http-status-codes": "^1.3.0",
+ "lodash": "^4.0.0",
+ "lru-cache": "^5.0.0",
+ "method-override": "^3.0.0",
+ "morgan": "^1.9.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "sanitize-filename": "^1.6.1",
+ "serve-favicon": "^2.4.5",
+ "source-map-support": "^0.5.5",
+ "uuid-js": "^0.7.5",
+ "validate.js": "^0.13.0",
+ "webdriverio": "^5.10.9",
+ "ws": "^7.0.0"
+ }
+ },
+ "appium-chromedriver": {
+ "version": "4.21.0",
+ "resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-4.21.0.tgz",
+ "integrity": "sha512-93LmpeC7sCqjHzMhk+1JR8VM9rNwLJ/mNWjjG26ngqfSY/xNn5fzq9ff+TUKXYVlyPqE64ODi+5UifKUZ9QZ7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-support": "^2.39.0",
+ "asyncbox": "^2.0.2",
+ "bluebird": "^3.5.1",
+ "compare-versions": "^3.4.0",
+ "fancy-log": "^1.3.2",
+ "lodash": "^4.17.4",
+ "request": "^2.57.0",
+ "request-promise": "^4.2.2",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.15.0",
+ "xmldom": "^0.2.0",
+ "xpath": "^0.0.27"
+ },
+ "dependencies": {
+ "xmldom": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.2.1.tgz",
+ "integrity": "sha512-kXXiYvmblIgEemGeB75y97FyaZavx6SQhGppLw5TKWAD2Wd0KAly0g23eVLh17YcpxZpnFym1Qk/eaRjy1APPg==",
+ "dev": true
+ }
+ }
+ },
+ "appium-espresso-driver": {
+ "version": "1.23.2",
+ "resolved": "https://registry.npmjs.org/appium-espresso-driver/-/appium-espresso-driver-1.23.2.tgz",
+ "integrity": "sha512-NY5AXM1Mo5iFOih8iXinLkuT00w3P+k0qWtkBphVc1z1u0x9dBW6CMdH9a1W25g3u/4yJZIAAdY7A4dyrCIpyw==",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "@babel/runtime": "^7.4.3",
+ "appium-adb": "^7.19.1",
+ "appium-android-driver": "^4.25.3",
+ "appium-base-driver": "^5.0.0",
+ "appium-support": "^2.20.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.0",
+ "lodash": "^4.17.11",
+ "portscanner": "^2.1.1",
+ "request": "^2.88.0",
+ "request-promise": "^4.2.1",
+ "source-map-support": "^0.5.8",
+ "validate.js": "^0.13.0",
+ "yargs": "^15.0.1"
}
},
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
- }
- },
- "babel-core": {
- "version": "7.0.0-bridge.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
- "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
- "dev": true
- },
- "babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
- },
- "dependencies": {
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
- "dev": true
+ "appium-fake-driver": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/appium-fake-driver/-/appium-fake-driver-0.9.0.tgz",
+ "integrity": "sha512-MwCqt1vz+bRidl9NRNcToJZostKEJQAzBizh9QyZ+5n3/N+OTBYCp5AD/pJw/MjF4Wl1u1Jhu2jFxsu+XaQpqA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-support": "^2.11.1",
+ "asyncbox": "^2.3.2",
+ "bluebird": "^3.5.1",
+ "lodash": "^4.17.4",
+ "source-map-support": "^0.5.5",
+ "xmldom": "^0.1.19",
+ "xpath": "0.0.27",
+ "yargs": "^15.0.1"
+ }
},
- "resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "appium-flutter-driver": {
+ "version": "0.0.23",
+ "resolved": "https://registry.npmjs.org/appium-flutter-driver/-/appium-flutter-driver-0.0.23.tgz",
+ "integrity": "sha512-yRZwfioaMpE2s9Av8pgv6hQkArsQ36KkrEgHaOk5uRRuTXbHSg0OB51Bm8xKdXvWYmA4DI6Oz4xWSTNjfdrJhw==",
"dev": true,
"requires": {
- "path-parse": "^1.0.6"
- }
- }
- }
- },
- "babel-helper-evaluate-path": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz",
- "integrity": "sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA==",
- "dev": true
- },
- "babel-helper-flip-expressions": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz",
- "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=",
- "dev": true
- },
- "babel-helper-is-nodes-equiv": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz",
- "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=",
- "dev": true
- },
- "babel-helper-is-void-0": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz",
- "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=",
- "dev": true
- },
- "babel-helper-mark-eval-scopes": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz",
- "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=",
- "dev": true
- },
- "babel-helper-remove-or-void": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz",
- "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=",
- "dev": true
- },
- "babel-helper-to-multiple-sequence-expressions": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz",
- "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==",
- "dev": true
- },
- "babel-jest": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
- "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
- "dev": true,
- "requires": {
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/babel__core": "^7.1.0",
- "babel-plugin-istanbul": "^5.1.0",
- "babel-preset-jest": "^24.9.0",
- "chalk": "^2.4.2",
- "slash": "^2.0.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
- },
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
- "dev": true
- }
- }
- },
- "babel-loader": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
- "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
- "dev": true,
- "requires": {
- "find-cache-dir": "^2.1.0",
- "loader-utils": "^1.4.0",
- "mkdirp": "^0.5.3",
- "pify": "^4.0.1",
- "schema-utils": "^2.6.5"
- },
- "dependencies": {
- "ajv": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
- "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true
- },
- "emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
- "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
- "dev": true
- },
- "find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- }
- },
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
+ "appium-base-driver": "^5.0.0",
+ "appium-uiautomator2-driver": "^1.35.1",
+ "appium-xcuitest-driver": "^3.0.0",
+ "rpc-websockets": "^4.5.1"
}
},
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
+ "appium-idb": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/appium-idb/-/appium-idb-0.4.1.tgz",
+ "integrity": "sha512-gMuZC/ndo4lGL2t/9sL+yyCGQVUV0rdpxgjvnuEdADA3GYCUFV/rUj2czJUhajUOhADGUP1Pibn0h3qtZuaBbQ==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.41.0",
+ "asyncbox": "^2.5.2",
+ "bluebird": "^3.1.1",
+ "lodash": "^4.0.0",
+ "shell-quote": "^1.6.1",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.11.0"
},
"dependencies": {
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "appium-support": {
+ "version": "2.43.0",
+ "resolved": "https://registry.npmjs.org/appium-support/-/appium-support-2.43.0.tgz",
+ "integrity": "sha512-HELlIM6J0CI/ALHKbr8Z8TNjrnyw1QVdzLKCUX/l4Gw/MmaS4QvHNpuy3Bdd0MCxX/aw76q2F58HmCiwzHtAkg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "archiver": "^3.1.1",
+ "base64-stream": "^1.0.0",
+ "bluebird": "^3.5.1",
+ "bplist-creator": "^0",
+ "bplist-parser": "^0.2",
+ "extract-zip": "^1.6.0",
+ "glob": "^7.1.2",
+ "jimp": "^0.9.0",
+ "jsftp": "^2.1.2",
+ "klaw": "^3.0.0",
+ "lodash": "^4.2.1",
+ "md5-file": "^4.0.0",
+ "mjpeg-server": "^0.3.0",
+ "mkdirp": "^1.0.0",
+ "moment": "^2.24.0",
+ "mv": "^2.1.1",
+ "ncp": "^2.0.0",
+ "npmlog": "^4.1.2",
+ "plist": "^3.0.1",
+ "pluralize": "^8.0.0",
+ "pngjs": "^3.0.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "rimraf": "^3.0.0",
+ "sanitize-filename": "^1.6.1",
+ "semver": "^7.0.0",
+ "shell-quote": "^1.7.2",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1",
+ "uuid": "^7.0.2",
+ "which": "^2.0.0",
+ "yauzl": "^2.7.0"
+ }
+ },
+ "archiver": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
+ "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "async": "^2.6.3",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.1.4",
+ "readable-stream": "^3.4.0",
+ "tar-stream": "^2.1.0",
+ "zip-stream": "^2.1.2"
+ }
+ },
+ "archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "bl": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
+ "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "compress-commons": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
+ "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^3.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.3.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "crc32-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
+ "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
+ "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "dev": true,
+ "requires": {
+ "bl": "^4.0.1",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
"dev": true
+ },
+ "zip-stream": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz",
+ "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "compress-commons": "^2.1.1",
+ "readable-stream": "^3.4.0"
+ }
}
}
},
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "appium-ios-device": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-1.5.0.tgz",
+ "integrity": "sha512-s05omp42+ObeyTI6SQ2HcommWiX3Y5Bfpvn1D1ftyl01u/qr9QLyDzBn47myYB80MeDcwaR/iRADDLlXkpR4Dg==",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.35.0",
+ "bluebird": "^3.1.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5"
+ }
+ },
+ "appium-ios-driver": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/appium-ios-driver/-/appium-ios-driver-4.6.0.tgz",
+ "integrity": "sha512-pEE8ZJYcmB3CLs+EqlAsFOJCsJ6v6K1m//UXIU8r29w2PHs9d4LmFXvOESUBK7CIrlJmwCcr6eAZhtsr0H1fuw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-ios-simulator": "^3.9.0",
+ "appium-remote-debugger": "^4.1.0",
+ "appium-support": "^2.25.0",
+ "appium-xcode": "^3.1.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.1",
+ "colors": "^1.1.2",
+ "js2xmlparser2": "^0.2.0",
+ "lodash": "^4.13.1",
+ "moment": "^2.24.0",
+ "moment-timezone": "^0.5.26",
+ "node-idevice": "^0.1.6",
+ "node-simctl": "^5.0.0",
+ "pem": "^1.8.3",
+ "portfinder": "^1.0.13",
+ "request": "^2.79.0",
+ "request-promise": "^4.1.1",
+ "safari-launcher": "^2.0.5",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.6.0",
+ "through": "^2.3.8",
+ "uuid-js": "^0.7.5",
+ "xmldom": "^0.2.0",
+ "xpath": "^0.0.24",
+ "yargs": "^15.0.1"
+ },
+ "dependencies": {
+ "appium-remote-debugger": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-4.5.0.tgz",
+ "integrity": "sha512-8UhFOQJvSCHSuWloGe+FOeIObIp6wzc5oaXV8vVRANn8rqZlQl2j4dgelQcA1DoE54Lphy00Bo99M7qDsKkF7w==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^4.0.0",
+ "appium-support": "^2.28.0",
+ "asyncbox": "^2.5.2",
+ "bluebird": "^3.4.7",
+ "bufferpack": "0.0.6",
+ "es6-error": "^4.1.1",
+ "lodash": "^4.17.11",
+ "request": "^2.79.0",
+ "request-promise": "^4.1.1",
+ "source-map-support": "^0.5.5",
+ "ws": "^7.0.0"
+ },
+ "dependencies": {
+ "appium-base-driver": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/appium-base-driver/-/appium-base-driver-4.5.1.tgz",
+ "integrity": "sha512-g7sI5mzmGdZhIFg3+A5f9ewtihYKS0b33wZWbN6R/PYYTEmXbNhFPGfVqzoAzFANuLjlTlvEEsqGcUtjrMO2Bw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.33.1",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.3",
+ "body-parser": "^1.18.2",
+ "colors": "^1.1.2",
+ "es6-error": "^4.1.1",
+ "express": "^4.16.2",
+ "http-status-codes": "^1.3.0",
+ "lodash": "^4.0.0",
+ "lru-cache": "^5.0.0",
+ "method-override": "^3.0.0",
+ "morgan": "^1.9.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "sanitize-filename": "^1.6.1",
+ "serve-favicon": "^2.4.5",
+ "source-map-support": "^0.5.5",
+ "uuid-js": "^0.7.5",
+ "validate.js": "^0.13.0",
+ "webdriverio": "^5.10.9",
+ "ws": "^7.0.0"
+ }
+ }
+ }
+ },
+ "node-simctl": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-5.3.0.tgz",
+ "integrity": "sha512-5EJPsorg+ZLxeLk6Cc5Q3hI4WcWkWSWkqQnJEJf3DrM9UekGvpgOUE8uZtr8dTtY/GZCsI30Ksusqm+zGq3NsA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.37.0",
+ "appium-xcode": "^3.8.0",
+ "asyncbox": "^2.3.1",
+ "lodash": "^4.2.1",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1"
+ }
+ },
+ "xmldom": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.2.1.tgz",
+ "integrity": "sha512-kXXiYvmblIgEemGeB75y97FyaZavx6SQhGppLw5TKWAD2Wd0KAly0g23eVLh17YcpxZpnFym1Qk/eaRjy1APPg==",
+ "dev": true
+ },
+ "xpath": {
+ "version": "0.0.24",
+ "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.24.tgz",
+ "integrity": "sha1-Gt4WLhzFI8jTn8fQavwW6iFvKfs=",
+ "dev": true
+ }
}
},
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
+ "appium-ios-simulator": {
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-3.20.0.tgz",
+ "integrity": "sha512-RbnQrlCeRNhkftXkt97pQARfVNeCxp6v2v6RaZV1ZU5D2HrY5lEaw7I65wqUxn75w6hywiz23+y//6+OaLnfog==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.39.0",
+ "appium-xcode": "^3.1.0",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.1",
+ "fkill": "^7.0.0",
+ "lodash": "^4.2.1",
+ "node-simctl": "^6.1.0",
+ "openssl-wrapper": "^0.3.4",
+ "semver": "^7.0.0",
+ "shell-quote": "^1.6.1",
+ "source-map-support": "^0.5.3",
+ "teen_process": "^1.3.0"
+ }
+ },
+ "appium-mac-driver": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/appium-mac-driver/-/appium-mac-driver-1.10.0.tgz",
+ "integrity": "sha512-+isEfxtE7FQJr418udxfHBp9OU/S/tEjG8BbMgGjcHi8TE/4B78KzQZxgewGPRKraNLFo/58by8PqgWsS6sLtA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-support": "^2.36.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.1",
+ "lodash": "^4.17.4",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.15.0",
+ "yargs": "^15.0.1"
+ }
+ },
+ "appium-remote-debugger": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/appium-remote-debugger/-/appium-remote-debugger-8.9.0.tgz",
+ "integrity": "sha512-GSq6luI9Us6urS7K8c90R13/MU1T95GGKNBV4t+IPw7cvDcm5fpsnqKX77xrf+7z/n4claUk/8m6yce9sSskqQ==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-ios-device": "^1.2.1",
+ "appium-support": "^2.41.0",
+ "async-lock": "^1.2.2",
+ "asyncbox": "^2.6.0",
+ "bluebird": "^3.4.7",
+ "lodash": "^4.17.11",
+ "source-map-support": "^0.5.5"
+ },
+ "dependencies": {
+ "appium-support": {
+ "version": "2.43.0",
+ "resolved": "https://registry.npmjs.org/appium-support/-/appium-support-2.43.0.tgz",
+ "integrity": "sha512-HELlIM6J0CI/ALHKbr8Z8TNjrnyw1QVdzLKCUX/l4Gw/MmaS4QvHNpuy3Bdd0MCxX/aw76q2F58HmCiwzHtAkg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "archiver": "^3.1.1",
+ "base64-stream": "^1.0.0",
+ "bluebird": "^3.5.1",
+ "bplist-creator": "^0",
+ "bplist-parser": "^0.2",
+ "extract-zip": "^1.6.0",
+ "glob": "^7.1.2",
+ "jimp": "^0.9.0",
+ "jsftp": "^2.1.2",
+ "klaw": "^3.0.0",
+ "lodash": "^4.2.1",
+ "md5-file": "^4.0.0",
+ "mjpeg-server": "^0.3.0",
+ "mkdirp": "^1.0.0",
+ "moment": "^2.24.0",
+ "mv": "^2.1.1",
+ "ncp": "^2.0.0",
+ "npmlog": "^4.1.2",
+ "plist": "^3.0.1",
+ "pluralize": "^8.0.0",
+ "pngjs": "^3.0.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "rimraf": "^3.0.0",
+ "sanitize-filename": "^1.6.1",
+ "semver": "^7.0.0",
+ "shell-quote": "^1.7.2",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1",
+ "uuid": "^7.0.2",
+ "which": "^2.0.0",
+ "yauzl": "^2.7.0"
+ }
+ },
+ "archiver": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
+ "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "async": "^2.6.3",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.1.4",
+ "readable-stream": "^3.4.0",
+ "tar-stream": "^2.1.0",
+ "zip-stream": "^2.1.2"
+ }
+ },
+ "archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "bl": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
+ "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "compress-commons": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
+ "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^3.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.3.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "crc32-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
+ "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
+ "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "dev": true,
+ "requires": {
+ "bl": "^4.0.1",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "dev": true
+ },
+ "zip-stream": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz",
+ "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "compress-commons": "^2.1.1",
+ "readable-stream": "^3.4.0"
+ }
+ }
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "appium-sdb": {
+ "version": "1.0.1-beta",
+ "resolved": "https://registry.npmjs.org/appium-sdb/-/appium-sdb-1.0.1-beta.tgz",
+ "integrity": "sha512-vTQv52JjlKLc/D/iJuJeFeZW0DYxSo9whF2DXu5UC3+Y1qUIHX91h2UBmNzs5NSbvIJ63lGWi7vMVnu6IhMdsQ==",
"dev": true,
"requires": {
- "find-up": "^3.0.0"
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.4.0",
+ "asyncbox": "^2.3.1",
+ "lodash": "^4.17.11",
+ "source-map-support": "^0.5.9",
+ "teen_process": "^1.3.1"
}
},
- "schema-utils": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
- "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+ "appium-support": {
+ "version": "2.39.1",
+ "resolved": "https://registry.npmjs.org/appium-support/-/appium-support-2.39.1.tgz",
+ "integrity": "sha512-FKDvP4pkt9N2KRzf5V+w8nNquoEIdNreOzM1OuSj4TxtG7S6Ix2LbXqjXjN4/nZKC5VEz1Vh+IQrSZ2uQv6MZg==",
"dev": true,
"requires": {
- "ajv": "^6.12.0",
- "ajv-keywords": "^3.4.1"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "babel-plugin-add-react-displayname": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz",
- "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=",
- "dev": true
- },
- "babel-plugin-apply-mdx-type-prop": {
- "version": "1.5.8",
- "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.8.tgz",
- "integrity": "sha512-xYp5F9mAnZdDRFSd1vF3XQ0GQUbIulCpnuht2jCmK30GAHL8szVL7TgzwhEGamQ6yJmP/gEyYNM9OR5D2n26eA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "7.8.3",
- "@mdx-js/util": "^1.5.8"
- },
- "dependencies": {
- "@mdx-js/util": {
- "version": "1.5.8",
- "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.8.tgz",
- "integrity": "sha512-a7Gjjw8bfBSertA/pTWBA/9WKEhgaSxvQE2NTSUzaknrzGFOhs4alZSHh3RHmSFdSWv5pUuzAgsWseMLhWEVkQ==",
- "dev": true
- }
- }
- },
- "babel-plugin-dynamic-import-node": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
- "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
- "requires": {
- "object.assign": "^4.1.0"
- }
- },
- "babel-plugin-emotion": {
- "version": "10.0.33",
- "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz",
- "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==",
- "requires": {
- "@babel/helper-module-imports": "^7.0.0",
- "@emotion/hash": "0.8.0",
- "@emotion/memoize": "0.7.4",
- "@emotion/serialize": "^0.11.16",
- "babel-plugin-macros": "^2.0.0",
- "babel-plugin-syntax-jsx": "^6.18.0",
- "convert-source-map": "^1.5.0",
- "escape-string-regexp": "^1.0.5",
- "find-root": "^1.1.0",
- "source-map": "^0.5.7"
- },
- "dependencies": {
- "@emotion/hash": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
- "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
- },
- "@emotion/memoize": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
- "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
- },
- "@emotion/serialize": {
- "version": "0.11.16",
- "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz",
- "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==",
- "requires": {
- "@emotion/hash": "0.8.0",
- "@emotion/memoize": "0.7.4",
- "@emotion/unitless": "0.7.5",
- "@emotion/utils": "0.11.3",
- "csstype": "^2.5.7"
- }
- },
- "@emotion/unitless": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
- "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
- },
- "@emotion/utils": {
- "version": "0.11.3",
- "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz",
- "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw=="
- }
- }
- },
- "babel-plugin-extract-import-names": {
- "version": "1.5.8",
- "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.8.tgz",
- "integrity": "sha512-LcLfP8ZRBZMdMAXHLugyvvd5PY0gMmLMWFogWAUsG32X6TYW2Eavx+il2bw73KDbW+UdCC1bAJ3NuU25T1MI3g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "7.8.3"
- }
- },
- "babel-plugin-inline-json-import": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-inline-json-import/-/babel-plugin-inline-json-import-0.3.2.tgz",
- "integrity": "sha512-QNNJx08KjmMT25Cw7rAPQ6dlREDPiZGDyApHL8KQ9vrQHbrr4PTi7W8g1tMMZPz0jEMd39nx/eH7xjnDNxq5sA==",
- "dev": true,
- "requires": {
- "decache": "^4.5.1"
- }
- },
- "babel-plugin-istanbul": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
- "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "find-up": "^3.0.0",
- "istanbul-lib-instrument": "^3.3.0",
- "test-exclude": "^5.2.3"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
+ "@babel/runtime": "^7.0.0",
+ "archiver": "^1.3.0",
+ "bluebird": "^3.5.1",
+ "bplist-creator": "^0",
+ "bplist-parser": "^0.2",
+ "extract-zip": "^1.6.0",
+ "glob": "^7.1.2",
+ "jimp": "^0.9.0",
+ "jsftp": "^2.1.2",
+ "klaw": "^3.0.0",
+ "lodash": "^4.2.1",
+ "md5-file": "^4.0.0",
+ "mjpeg-server": "^0.3.0",
+ "mkdirp": "^1.0.0",
+ "moment": "^2.24.0",
+ "mv": "^2.1.1",
+ "ncp": "^2.0.0",
+ "npmlog": "^4.1.2",
+ "plist": "^3.0.1",
+ "pluralize": "^8.0.0",
+ "pngjs": "^3.0.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "rimraf": "^3.0.0",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1",
+ "which": "^2.0.0",
+ "yauzl": "^2.7.0"
+ }
+ },
+ "appium-tizen-driver": {
+ "version": "1.1.1-beta.4",
+ "resolved": "https://registry.npmjs.org/appium-tizen-driver/-/appium-tizen-driver-1.1.1-beta.4.tgz",
+ "integrity": "sha512-lDOxwEAXUaoYwVMznFwYkHodceDahBNj2ImIGVDwSefEmEfR+1pZKvp1+SIeLRJfelsqVjnX8HQj8zRIP6lhKg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^3.0.0",
+ "appium-sdb": "^1.0.1-beta",
+ "appium-support": "^2.8.0",
+ "asyncbox": "^2.0.4",
+ "bluebird": "^3.4.7",
+ "fancy-log": "^1.3.2",
+ "jimp": "^0.5.3",
+ "lodash": "^4.17.9",
+ "source-map-support": "^0.5.9",
+ "teen_process": "^1.9.0",
+ "yargs": "^12.0.2"
+ },
+ "dependencies": {
+ "@jimp/bmp": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.5.4.tgz",
+ "integrity": "sha512-P/ezH1FuoM3FwS0Dm2ZGkph4x5/rPBzFLEZor7KQkmGUnYEIEG4o0BUcAWFmJOp2HgzbT6O2SfrpJNBOcVACzQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "bmp-js": "^0.1.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/core": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.5.4.tgz",
+ "integrity": "sha512-n3uvHy2ndUKItmbhnRO8xmU8J6KR+v6CQxO9sbeUDpSc3VXc1PkqrA8ZsCVFCjnDFcGBXL+MJeCTyQzq5W9Crw==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "any-base": "^1.1.0",
+ "buffer": "^5.2.0",
+ "core-js": "^2.5.7",
+ "exif-parser": "^0.1.12",
+ "file-type": "^9.0.0",
+ "load-bmfont": "^1.3.1",
+ "mkdirp": "0.5.1",
+ "phin": "^2.9.1",
+ "pixelmatch": "^4.0.2",
+ "tinycolor2": "^1.4.1"
+ }
+ },
+ "@jimp/custom": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.5.4.tgz",
+ "integrity": "sha512-tLfyJoyouDl2J3RPFGfDzTtE+4S8ljqJUmLzy/cmx1n7+xS5TpLPdPskp7UaeAfNTqdF4CNAm94KYoxTZdj2mg==",
+ "dev": true,
+ "requires": {
+ "@jimp/core": "^0.5.4",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/gif": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.5.0.tgz",
+ "integrity": "sha512-HVB4c7b8r/yCpjhCjVNPRFLuujTav5UPmcQcFJjU6aIxmne6e29rAjRJEv3UMamHDGSu/96PzOsPZBO5U+ZGww==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7",
+ "omggif": "^1.0.9"
+ }
+ },
+ "@jimp/jpeg": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.5.4.tgz",
+ "integrity": "sha512-YaPWm+YSGCThNE/jLMckM3Qs6uaMxd/VsHOnEaqu5tGA4GFbfVaWHjKqkNGAFuiNV+HdgKlNcCOF3of+elvzqQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7",
+ "jpeg-js": "^0.3.4"
+ }
+ },
+ "@jimp/plugin-blit": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.5.4.tgz",
+ "integrity": "sha512-WqDYOugv76hF1wnKy7+xPGf9PUbcm9vPW28/jHWn1hjbb2GnusJ2fVEFad76J/1SPfhrQ2Uebf2QCWJuLmOqZg==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-blur": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.5.0.tgz",
+ "integrity": "sha512-5k0PXCA1RTJdITL7yMAyZ5tGQjKLHqFvwdXj/PCoBo5PuMyr0x6qfxmQEySixGk/ZHdDxMi80vYxHdKHjNNgjg==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-color": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.5.5.tgz",
+ "integrity": "sha512-hWeOqNCmLguGYLhSvBrpfCvlijsMEVaLZAOod62s1rzWnujozyKOzm2eZe+W3To6mHbp5RGJNVrIwHBWMab4ug==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7",
+ "tinycolor2": "^1.4.1"
+ }
+ },
+ "@jimp/plugin-contain": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.5.4.tgz",
+ "integrity": "sha512-8YJh4FI3S69unri0nJsWeqVLeVGA77N2R0Ws16iSuCCD/5UnWd9FeWRrSbKuidBG6TdMBaG2KUqSYZeHeH9GOQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-cover": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.5.4.tgz",
+ "integrity": "sha512-2Rur7b44WiDDgizUI2M2uYWc1RmfhU5KjKS1xXruobjQ0tXkf5xlrPXSushq0hB6Ne0Ss6wv0+/6eQ8WeGHU2w==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-crop": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.5.4.tgz",
+ "integrity": "sha512-6t0rqn4VazquGk48tO6hFBrQ+nkvC+A1RnR6UM/m8ZtG2/yjpwF0MXcpgJI1Fb+a4Ug7BY1fu2GPcZOhnAVK/g==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-displace": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.5.0.tgz",
+ "integrity": "sha512-Bec7SQvnmKia4hOXEDjeNVx7vo/1bWqjuV6NO8xbNQcAO3gaCl91c9FjMDhsfAVb0Ou6imhbIuFPrLxorXsecQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-dither": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.5.0.tgz",
+ "integrity": "sha512-We2WJQsD/Lm8oqBFp/vUv9/5r2avyenL+wNNu/s2b1HqA5O4sPGrjHy9K6vIov0NroQGCQ3bNznLkTmjiHKBcg==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-flip": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.5.0.tgz",
+ "integrity": "sha512-D/ehBQxLMNR7oNd80KXo4tnSET5zEm5mR70khYOTtTlfti/DlLp3qOdjPOzfLyAdqO7Ly4qCaXrIsnia+pfPrA==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-gaussian": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.5.0.tgz",
+ "integrity": "sha512-Ln4kgxblv0/YzLBDb/J8DYPLhDzKH87Y8yHh5UKv3H+LPKnLaEG3L4iKTE9ivvdocnjmrtTFMYcWv2ERSPeHcg==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-invert": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.5.0.tgz",
+ "integrity": "sha512-/vyKeIi3T7puf+8ruWovTjzDC585EnTwJ+lGOOUYiNPsdn4JDFe1B3xd+Ayv9aCQbXDIlPElZaM9vd/+wqDiIQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-mask": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.5.4.tgz",
+ "integrity": "sha512-mUJ04pCrUWaJGXPjgoVbzhIQB8cVobj2ZEFlGO3BEAjyylYMrdJlNlsER8dd7UuJ2L/a4ocWtFDdsnuicnBghQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-normalize": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.5.4.tgz",
+ "integrity": "sha512-Q5W0oEz9wxsjuhvHAJynI/OqXZcmqEAuRONQId7Aw5ulCXSOg9C4y2a67EO7aZAt55T+zMVxI9UpVUpzVvO6hw==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-print": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.5.4.tgz",
+ "integrity": "sha512-DOZr5TY9WyMWFBD37oz7KpTEBVioFIHQF/gH5b3O5jjFyj4JPMkw7k3kVBve9lIrzIYrvLqe0wH59vyAwpeEFg==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7",
+ "load-bmfont": "^1.4.0"
+ }
+ },
+ "@jimp/plugin-resize": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.5.4.tgz",
+ "integrity": "sha512-lXNprNAT0QY1D1vG/1x6urUTlWuZe2dfL29P81ApW2Yfcio471+oqo45moX5FLS0q24xU600g7cHGf2/TzqSfA==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-rotate": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.5.4.tgz",
+ "integrity": "sha512-SIdUpMc8clObMchy8TnjgHgcXEQM992z5KavgiuOnCuBlsmSHtE3MrXTOyMW0Dn3gqapV9Y5vygrLm/BVtCCsg==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugin-scale": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.5.0.tgz",
+ "integrity": "sha512-5InIOr3cNtrS5aQ/uaosNf28qLLc0InpNGKFmGFTv8oqZqLch6PtDTjDBZ1GGWsPdA/ljy4Qyy7mJO1QBmgQeQ==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7"
+ }
+ },
+ "@jimp/plugins": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.5.5.tgz",
+ "integrity": "sha512-9oF6LbSM/K7YkFCcxaPaD8NUkL/ZY8vT8NIGfQ/NpX+tKQtcsLHcRavHpUC+M1xXShv/QGx9OdBV/jgiu82QYg==",
+ "dev": true,
+ "requires": {
+ "@jimp/plugin-blit": "^0.5.4",
+ "@jimp/plugin-blur": "^0.5.0",
+ "@jimp/plugin-color": "^0.5.5",
+ "@jimp/plugin-contain": "^0.5.4",
+ "@jimp/plugin-cover": "^0.5.4",
+ "@jimp/plugin-crop": "^0.5.4",
+ "@jimp/plugin-displace": "^0.5.0",
+ "@jimp/plugin-dither": "^0.5.0",
+ "@jimp/plugin-flip": "^0.5.0",
+ "@jimp/plugin-gaussian": "^0.5.0",
+ "@jimp/plugin-invert": "^0.5.0",
+ "@jimp/plugin-mask": "^0.5.4",
+ "@jimp/plugin-normalize": "^0.5.4",
+ "@jimp/plugin-print": "^0.5.4",
+ "@jimp/plugin-resize": "^0.5.4",
+ "@jimp/plugin-rotate": "^0.5.4",
+ "@jimp/plugin-scale": "^0.5.0",
+ "core-js": "^2.5.7",
+ "timm": "^1.6.1"
+ }
+ },
+ "@jimp/png": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.5.4.tgz",
+ "integrity": "sha512-J2NU7368zihF1HUZdmpXsL/Hhyf+I3ubmK+6Uz3Uoyvtk1VS7dO3L0io6fJQutfWmPZ4bvu6Ry022oHjbi6QCA==",
+ "dev": true,
+ "requires": {
+ "@jimp/utils": "^0.5.0",
+ "core-js": "^2.5.7",
+ "pngjs": "^3.3.3"
+ }
+ },
+ "@jimp/tiff": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.5.4.tgz",
+ "integrity": "sha512-hr7Zq3eWjAZ+itSwuAObIWMRNv7oHVM3xuEDC2ouP7HfE7woBtyhCyfA7u12KlgtM57gKWeogXqTlewRGVzx6g==",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.5.7",
+ "utif": "^2.0.1"
+ }
+ },
+ "@jimp/types": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.5.4.tgz",
+ "integrity": "sha512-nbZXM6TsdpnYHIBd8ZuoxGpvmxc2SqiggY30/bhOP/VJQoDBzm2v/20Ywz5M0snpIK2SdYG52eZPNjfjqUP39w==",
+ "dev": true,
+ "requires": {
+ "@jimp/bmp": "^0.5.4",
+ "@jimp/gif": "^0.5.0",
+ "@jimp/jpeg": "^0.5.4",
+ "@jimp/png": "^0.5.4",
+ "@jimp/tiff": "^0.5.4",
+ "core-js": "^2.5.7",
+ "timm": "^1.6.1"
+ }
+ },
+ "@jimp/utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.5.0.tgz",
+ "integrity": "sha512-7H9RFVU+Li2XmEko0GGyzy7m7JjSc7qa+m8l3fUzYg2GtwASApjKF/LSG2AUQCUmDKFLdfIEVjxvKvZUJFEmpw==",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.5.7"
+ }
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "appium-base-driver": {
+ "version": "3.21.2",
+ "resolved": "https://registry.npmjs.org/appium-base-driver/-/appium-base-driver-3.21.2.tgz",
+ "integrity": "sha512-cA7adQK63OiZzCvuHfQ4jKcT3tFogo8dfbgbgS4xpcmIEXgUZd/6MHicQG4NdfzbJpojQXNSeeCkRvlpksQrOQ==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.24.0",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.3",
+ "body-parser": "^1.18.2",
+ "colors": "^1.1.2",
+ "es6-error": "^4.1.1",
+ "express": "^4.16.2",
+ "http-status-codes": "^1.3.0",
+ "lodash": "^4.0.0",
+ "lru-cache": "^5.0.0",
+ "method-override": "^3.0.0",
+ "morgan": "^1.9.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "sanitize-filename": "^1.6.1",
+ "serve-favicon": "^2.4.5",
+ "source-map-support": "^0.5.5",
+ "uuid-js": "^0.7.5",
+ "validate.js": "^0.13.0",
+ "webdriverio": "^5.10.9",
+ "ws": "^7.0.0"
+ }
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "jimp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.5.6.tgz",
+ "integrity": "sha512-H0nHTu6KgAgQzDxa38ew2dXbnRzKm1w5uEyhMIxqwCQVjwgarOjjkV/avbNLxfxRHAFaNp4rGIc/qm8P+uhX9A==",
+ "dev": true,
+ "requires": {
+ "@babel/polyfill": "^7.0.0",
+ "@jimp/custom": "^0.5.4",
+ "@jimp/plugins": "^0.5.5",
+ "@jimp/types": "^0.5.4",
+ "core-js": "^2.5.7"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "yargs": {
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.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": "^11.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
}
},
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "appium-uiautomator2-driver": {
+ "version": "1.44.2",
+ "resolved": "https://registry.npmjs.org/appium-uiautomator2-driver/-/appium-uiautomator2-driver-1.44.2.tgz",
+ "integrity": "sha512-xnfuQjXLjZP8XzUfTpnFk6nd6Qo5ixCLWK9wD10lPcmsYiqdHT8gSySaS5RglqYyCKC5mfQPwqKUMzSpCHKbig==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-adb": "^7.20.0",
+ "appium-android-driver": "^4.25.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-support": "^2.37.0",
+ "appium-uiautomator2-server": "^4.4.0",
+ "async-lock": "^1.2.2",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.1",
+ "lodash": "^4.17.4",
+ "portscanner": "2.2.0",
+ "request": "^2.81.0",
+ "request-promise": "^4.1.1",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.3.1",
+ "yargs": "^14.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "yargs": {
+ "version": "14.2.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz",
+ "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
}
},
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+ "appium-uiautomator2-server": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/appium-uiautomator2-server/-/appium-uiautomator2-server-4.5.5.tgz",
+ "integrity": "sha512-VtgdvOoC7jElOV5b+j0A3pB8c8D3Kll7b0EW2UR0+3Qs3gi0Xkzgouj/rtYv51elGeo/4NgmQ0hrQGqsEwIcfw==",
"dev": true
},
- "istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+ "appium-webdriveragent": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-2.14.2.tgz",
+ "integrity": "sha512-C5/0Gh7rRPuvzYIqa2eVZX5RNP8wUzc4JdUhADS034rRCQQuShJghf3ZRSepottDGmPR3vMSau5sh0umtLWcaA==",
"dev": true,
"requires": {
- "@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"
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.2",
+ "appium-ios-simulator": "^3.14.0",
+ "appium-support": "^2.37.0",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.5.3",
+ "bluebird": "^3.5.5",
+ "lodash": "^4.17.11",
+ "node-simctl": "^6.0.2",
+ "request": "^2.79.0",
+ "request-promise": "^4.1.1",
+ "source-map-support": "^0.5.12",
+ "stream-equal": "^1.1.1",
+ "teen_process": "^1.14.1"
}
},
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "appium-windows-driver": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/appium-windows-driver/-/appium-windows-driver-1.8.0.tgz",
+ "integrity": "sha512-z1orUQK60Pi4he+5CJ9gj3WTUYXenyk39NEsLxiuqp9uxb3DikgZ399chRmYkqg/dIQuIUKRhZmFz+VtV2Gj1g==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.0.0",
+ "appium-support": "^2.5.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.1",
+ "lodash": "^4.6.1",
+ "request-promise": "^4.2.2",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.7.0",
+ "yargs": "^15.0.1"
}
},
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "appium-xcode": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/appium-xcode/-/appium-xcode-3.10.0.tgz",
+ "integrity": "sha512-6Db49w2UjcdMn96nUMS/EGKE/6r/sgIPcw8mr9+e4Oeb5rvROAm/VeIWmwnov3uk2JG3SGkLTQRB9tROKKRDgw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.4.0",
+ "asyncbox": "^2.3.0",
+ "lodash": "^4.17.4",
+ "plist": "^3.0.1",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.3.0"
+ }
+ },
+ "appium-xcuitest-driver": {
+ "version": "3.22.0",
+ "resolved": "https://registry.npmjs.org/appium-xcuitest-driver/-/appium-xcuitest-driver-3.22.0.tgz",
+ "integrity": "sha512-hhjRz8EwUBBu1V0k9CwRN5CmQwreckEjnx7DFDjX3XQd/jfCBdNp5yKxqhjYveivvhiazPLTi3uoDy/aSs7Kpw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-base-driver": "^5.1.0",
+ "appium-idb": "^0",
+ "appium-ios-device": "^1.5.0",
+ "appium-ios-driver": "^4.6.0",
+ "appium-ios-simulator": "^3.20.0",
+ "appium-remote-debugger": "^8.8.1",
+ "appium-support": "^2.41.0",
+ "appium-webdriveragent": "^2.14.1",
+ "appium-xcode": "^3.8.0",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.1.1",
+ "js2xmlparser2": "^0.2.0",
+ "lodash": "^4.17.10",
+ "moment": "^2.24.0",
+ "moment-timezone": "0.5.28",
+ "node-simctl": "^6.1.0",
+ "portscanner": "2.2.0",
+ "request": "^2.79.0",
+ "request-promise": "^4.1.1",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.14.0",
+ "ws": "^7.0.0",
+ "xmldom": "^0.3.0",
+ "yargs": "^15.0.1"
+ },
+ "dependencies": {
+ "appium-support": {
+ "version": "2.43.0",
+ "resolved": "https://registry.npmjs.org/appium-support/-/appium-support-2.43.0.tgz",
+ "integrity": "sha512-HELlIM6J0CI/ALHKbr8Z8TNjrnyw1QVdzLKCUX/l4Gw/MmaS4QvHNpuy3Bdd0MCxX/aw76q2F58HmCiwzHtAkg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "archiver": "^3.1.1",
+ "base64-stream": "^1.0.0",
+ "bluebird": "^3.5.1",
+ "bplist-creator": "^0",
+ "bplist-parser": "^0.2",
+ "extract-zip": "^1.6.0",
+ "glob": "^7.1.2",
+ "jimp": "^0.9.0",
+ "jsftp": "^2.1.2",
+ "klaw": "^3.0.0",
+ "lodash": "^4.2.1",
+ "md5-file": "^4.0.0",
+ "mjpeg-server": "^0.3.0",
+ "mkdirp": "^1.0.0",
+ "moment": "^2.24.0",
+ "mv": "^2.1.1",
+ "ncp": "^2.0.0",
+ "npmlog": "^4.1.2",
+ "plist": "^3.0.1",
+ "pluralize": "^8.0.0",
+ "pngjs": "^3.0.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "rimraf": "^3.0.0",
+ "sanitize-filename": "^1.6.1",
+ "semver": "^7.0.0",
+ "shell-quote": "^1.7.2",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1",
+ "uuid": "^7.0.2",
+ "which": "^2.0.0",
+ "yauzl": "^2.7.0"
+ }
+ },
+ "archiver": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
+ "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "async": "^2.6.3",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.1.4",
+ "readable-stream": "^3.4.0",
+ "tar-stream": "^2.1.0",
+ "zip-stream": "^2.1.2"
+ }
+ },
+ "archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "bl": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
+ "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "compress-commons": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
+ "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^3.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.3.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "crc32-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
+ "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
+ "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "dev": true,
+ "requires": {
+ "bl": "^4.0.1",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "uuid": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
+ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
+ "dev": true
+ },
+ "xmldom": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz",
+ "integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==",
+ "dev": true
+ },
+ "zip-stream": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz",
+ "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "compress-commons": "^2.1.1",
+ "readable-stream": "^3.4.0"
+ }
+ }
+ }
+ },
+ "appium-youiengine-driver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/appium-youiengine-driver/-/appium-youiengine-driver-1.2.3.tgz",
+ "integrity": "sha512-N0isiXzcGn1RCHjQPDDewrXHgBurweaGRD0pGIAU9aIt94YsXBs3V8VYtRasx1iYjD/wem8YCLpX8ZOT87MkGg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-android-driver": "^4.0.0",
+ "appium-base-driver": "^4.x",
+ "appium-ios-driver": "^4.3.0",
+ "appium-ios-simulator": "3.x",
+ "appium-mac-driver": "1.x",
+ "appium-support": "2.x",
+ "appium-xcuitest-driver": "^3.0.0",
+ "asyncbox": "2.x",
+ "bluebird": "3.x",
+ "lodash": "^4.17.11",
+ "node-simctl": "^5.0.2",
+ "selenium-webdriver": "3.x",
+ "shelljs": "0.8.x",
+ "source-map-support": "^0.5.12",
+ "teen_process": "^1.15.0"
+ },
+ "dependencies": {
+ "appium-base-driver": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/appium-base-driver/-/appium-base-driver-4.5.1.tgz",
+ "integrity": "sha512-g7sI5mzmGdZhIFg3+A5f9ewtihYKS0b33wZWbN6R/PYYTEmXbNhFPGfVqzoAzFANuLjlTlvEEsqGcUtjrMO2Bw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.33.1",
+ "async-lock": "^1.0.0",
+ "asyncbox": "^2.3.1",
+ "bluebird": "^3.5.3",
+ "body-parser": "^1.18.2",
+ "colors": "^1.1.2",
+ "es6-error": "^4.1.1",
+ "express": "^4.16.2",
+ "http-status-codes": "^1.3.0",
+ "lodash": "^4.0.0",
+ "lru-cache": "^5.0.0",
+ "method-override": "^3.0.0",
+ "morgan": "^1.9.0",
+ "request": "^2.83.0",
+ "request-promise": "^4.2.2",
+ "sanitize-filename": "^1.6.1",
+ "serve-favicon": "^2.4.5",
+ "source-map-support": "^0.5.5",
+ "uuid-js": "^0.7.5",
+ "validate.js": "^0.13.0",
+ "webdriverio": "^5.10.9",
+ "ws": "^7.0.0"
+ }
+ },
+ "node-simctl": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-5.3.0.tgz",
+ "integrity": "sha512-5EJPsorg+ZLxeLk6Cc5Q3hI4WcWkWSWkqQnJEJf3DrM9UekGvpgOUE8uZtr8dTtY/GZCsI30Ksusqm+zGq3NsA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.37.0",
+ "appium-xcode": "^3.8.0",
+ "asyncbox": "^2.3.1",
+ "lodash": "^4.2.1",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1"
+ }
+ }
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "archiver": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
+ "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
"dev": true,
"requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "archiver-utils": "^1.3.0",
+ "async": "^2.0.0",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.0.0",
+ "lodash": "^4.8.0",
+ "readable-stream": "^2.0.0",
+ "tar-stream": "^1.5.0",
+ "walkdir": "^0.0.11",
+ "zip-stream": "^1.1.0"
}
},
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "archiver-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
+ "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "glob": "^7.0.0",
+ "graceful-fs": "^4.1.0",
+ "lazystream": "^1.0.0",
+ "lodash": "^4.8.0",
+ "normalize-path": "^2.0.0",
+ "readable-stream": "^2.0.0"
}
},
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"dev": true,
"requires": {
- "p-limit": "^2.0.0"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "sprintf-js": "~1.0.2"
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
"dev": true
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"dev": true,
"requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "safer-buffer": "~2.1.0"
}
},
- "read-pkg-up": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
+ "assert-args": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/assert-args/-/assert-args-1.2.1.tgz",
+ "integrity": "sha1-QEEDoUUqMv53iYgR5U5ZCoqTc70=",
"dev": true,
"requires": {
- "find-up": "^3.0.0",
- "read-pkg": "^3.0.0"
+ "101": "^1.2.0",
+ "compound-subject": "0.0.1",
+ "debug": "^2.2.0",
+ "get-prototype-of": "0.0.0",
+ "is-capitalized": "^1.0.0",
+ "is-class": "0.0.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
},
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
"dev": true
},
- "test-exclude": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
- "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+ "async-listener": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz",
+ "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==",
"dev": true,
"requires": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "read-pkg-up": "^4.0.0",
- "require-main-filename": "^2.0.0"
- }
- }
- }
- },
- "babel-plugin-jest-hoist": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
- "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
- "dev": true,
- "requires": {
- "@types/babel__traverse": "^7.0.6"
- }
- },
- "babel-plugin-macros": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
- "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
- "requires": {
- "@babel/runtime": "^7.7.2",
- "cosmiconfig": "^6.0.0",
- "resolve": "^1.12.0"
- },
- "dependencies": {
- "cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
- "requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.7.2"
+ "semver": "^5.3.0",
+ "shimmer": "^1.1.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
}
},
- "parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "async-lock": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz",
+ "integrity": "sha512-uczz62z2fMWOFbyo6rG4NlV2SdxugJT6sZA2QcfB1XaSjEiOh8CuOb/TttyMnYQCda6nkWecJe465tGQDPJiKw==",
+ "dev": true
+ },
+ "asyncbox": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/asyncbox/-/asyncbox-2.6.0.tgz",
+ "integrity": "sha512-x9RDH0Dk4qZIGHQc9KbnDrUnaEbtWJW2DbuSElOFOQ2ppGsT1eFEDsiconZPpRGMW6+Uv724FYaBc8SUvyWVzA==",
+ "dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1",
- "lines-and-columns": "^1.1.6"
+ "@babel/runtime": "^7.0.0",
+ "bluebird": "^3.5.1",
+ "es6-mapify": "^1.1.0",
+ "lodash": "^4.17.4",
+ "source-map-support": "^0.5.5"
}
},
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
},
- "resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
- "requires": {
- "path-parse": "^1.0.6"
- }
- }
- }
- },
- "babel-plugin-minify-builtins": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz",
- "integrity": "sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag==",
- "dev": true
- },
- "babel-plugin-minify-constant-folding": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz",
- "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==",
- "dev": true,
- "requires": {
- "babel-helper-evaluate-path": "^0.5.0"
- }
- },
- "babel-plugin-minify-dead-code-elimination": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz",
- "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==",
- "dev": true,
- "requires": {
- "babel-helper-evaluate-path": "^0.5.0",
- "babel-helper-mark-eval-scopes": "^0.4.3",
- "babel-helper-remove-or-void": "^0.4.3",
- "lodash": "^4.17.11"
- }
- },
- "babel-plugin-minify-flip-comparisons": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz",
- "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=",
- "dev": true,
- "requires": {
- "babel-helper-is-void-0": "^0.4.3"
- }
- },
- "babel-plugin-minify-guarded-expressions": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz",
- "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==",
- "dev": true,
- "requires": {
- "babel-helper-evaluate-path": "^0.5.0",
- "babel-helper-flip-expressions": "^0.4.3"
- }
- },
- "babel-plugin-minify-infinity": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz",
- "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=",
- "dev": true
- },
- "babel-plugin-minify-mangle-names": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz",
- "integrity": "sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw==",
- "dev": true,
- "requires": {
- "babel-helper-mark-eval-scopes": "^0.4.3"
- }
- },
- "babel-plugin-minify-numeric-literals": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz",
- "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=",
- "dev": true
- },
- "babel-plugin-minify-replace": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz",
- "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==",
- "dev": true
- },
- "babel-plugin-minify-simplify": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz",
- "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==",
- "dev": true,
- "requires": {
- "babel-helper-evaluate-path": "^0.5.0",
- "babel-helper-flip-expressions": "^0.4.3",
- "babel-helper-is-nodes-equiv": "^0.0.1",
- "babel-helper-to-multiple-sequence-expressions": "^0.5.0"
- }
- },
- "babel-plugin-minify-type-constructors": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz",
- "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=",
- "dev": true,
- "requires": {
- "babel-helper-is-void-0": "^0.4.3"
- }
- },
- "babel-plugin-named-asset-import": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz",
- "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==",
- "dev": true
- },
- "babel-plugin-react-docgen": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz",
- "integrity": "sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.15",
- "react-docgen": "^5.0.0",
- "recast": "^0.14.7"
- },
- "dependencies": {
- "ast-types": {
- "version": "0.11.3",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz",
- "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==",
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
"dev": true
},
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "aws4": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",
"dev": true
},
- "recast": {
- "version": "0.14.7",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz",
- "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==",
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "ast-types": "0.11.3",
- "esprima": "~4.0.0",
- "private": "~0.1.5",
- "source-map": "~0.6.1"
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ }
}
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "babel-plugin-react-native-classname-to-style": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-classname-to-style/-/babel-plugin-react-native-classname-to-style-1.2.2.tgz",
- "integrity": "sha512-kavZRZ56YoYmrwuCRMY0UuCYfMPszoN7v0DLST1D+rTqkl+cFWVW3W8l//AfWsyMNHkY+UTX+RrB5K7GY9mq3w==",
- "dev": true
- },
- "babel-plugin-react-native-platform-specific-extensions": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-platform-specific-extensions/-/babel-plugin-react-native-platform-specific-extensions-1.1.1.tgz",
- "integrity": "sha512-ZNN2ImlUlcaPMfzaCw9fWmTc/Ht5ARI0n9RUqiyCdK7LalPJ7yKc+F60BcSHvMHcmA2BgVO8TpSot+dpeZPAMQ==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.0.0-beta.49"
- }
- },
- "babel-plugin-require-context-hook": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.0.tgz",
- "integrity": "sha512-EMZD1563QUqLhzrqcThk759RhuNVX/ZJdrtGK6drwzgvnR+ARjWyXIHPbu+tUNaMGtPz/gQeAM2M6VUw2UiUeA==",
- "dev": true
- },
- "babel-plugin-syntax-jsx": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
- "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
- },
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "7.0.0-beta.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
- "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
- },
- "babel-plugin-transform-inline-consecutive-adds": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz",
- "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=",
- "dev": true
- },
- "babel-plugin-transform-member-expression-literals": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz",
- "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=",
- "dev": true
- },
- "babel-plugin-transform-merge-sibling-variables": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz",
- "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=",
- "dev": true
- },
- "babel-plugin-transform-minify-booleans": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz",
- "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=",
- "dev": true
- },
- "babel-plugin-transform-property-literals": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz",
- "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "babel-plugin-transform-regexp-constructors": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz",
- "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=",
- "dev": true
- },
- "babel-plugin-transform-remove-console": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz",
- "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=",
- "dev": true
- },
- "babel-plugin-transform-remove-debugger": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz",
- "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=",
- "dev": true
- },
- "babel-plugin-transform-remove-undefined": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz",
- "integrity": "sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ==",
- "dev": true,
- "requires": {
- "babel-helper-evaluate-path": "^0.5.0"
- }
- },
- "babel-plugin-transform-simplify-comparison-operators": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz",
- "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=",
- "dev": true
- },
- "babel-plugin-transform-undefined-to-void": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz",
- "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=",
- "dev": true
- },
- "babel-preset-current-node-syntax": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz",
- "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==",
- "dev": true,
- "requires": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.8.3",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- }
- },
- "babel-preset-fbjs": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz",
- "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==",
- "requires": {
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-syntax-class-properties": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.0.0",
- "@babel/plugin-syntax-jsx": "^7.0.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-for-of": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-member-expression-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-object-super": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-property-literals": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
- }
- },
- "babel-preset-jest": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
- "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
- "dev": true,
- "requires": {
- "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
- "babel-plugin-jest-hoist": "^24.9.0"
- }
- },
- "babel-preset-minify": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz",
- "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==",
- "dev": true,
- "requires": {
- "babel-plugin-minify-builtins": "^0.5.0",
- "babel-plugin-minify-constant-folding": "^0.5.0",
- "babel-plugin-minify-dead-code-elimination": "^0.5.1",
- "babel-plugin-minify-flip-comparisons": "^0.4.3",
- "babel-plugin-minify-guarded-expressions": "^0.4.4",
- "babel-plugin-minify-infinity": "^0.4.3",
- "babel-plugin-minify-mangle-names": "^0.5.0",
- "babel-plugin-minify-numeric-literals": "^0.4.3",
- "babel-plugin-minify-replace": "^0.5.0",
- "babel-plugin-minify-simplify": "^0.5.1",
- "babel-plugin-minify-type-constructors": "^0.4.3",
- "babel-plugin-transform-inline-consecutive-adds": "^0.4.3",
- "babel-plugin-transform-member-expression-literals": "^6.9.4",
- "babel-plugin-transform-merge-sibling-variables": "^6.9.4",
- "babel-plugin-transform-minify-booleans": "^6.9.4",
- "babel-plugin-transform-property-literals": "^6.9.4",
- "babel-plugin-transform-regexp-constructors": "^0.4.3",
- "babel-plugin-transform-remove-console": "^6.9.4",
- "babel-plugin-transform-remove-debugger": "^6.9.4",
- "babel-plugin-transform-remove-undefined": "^0.5.0",
- "babel-plugin-transform-simplify-comparison-operators": "^6.9.4",
- "babel-plugin-transform-undefined-to-void": "^6.9.4",
- "lodash": "^4.17.11"
- }
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
- "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
- }
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
- },
- "dependencies": {
- "to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
"dev": true
- }
- }
- },
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
- "bail": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz",
- "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==",
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
+ },
+ "base64-stream": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "resolved": "https://registry.npmjs.org/base64-stream/-/base64-stream-1.0.0.tgz",
+ "integrity": "sha512-BQQZftaO48FcE1Kof9CmXMFaAdqkcNorgc8CxesZv9nMbbTF1EFyQe89UOuh//QMmdtfUDXyO8rgUalemL5ODA==",
+ "dev": true
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "dev": true,
"requires": {
- "is-descriptor": "^1.0.0"
+ "safe-buffer": "5.1.2"
}
},
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "tweetnacl": "^0.14.3"
}
},
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
+ "big-integer": {
+ "version": "1.6.48",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
+ "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
+ "dev": true
},
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
}
- }
- }
- },
- "base-64": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
- "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs="
- },
- "base64-js": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
- "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
- },
- "basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
- "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
- "requires": {
- "safe-buffer": "5.1.2"
- }
- },
- "batch-processor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz",
- "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "dev": true,
- "optional": true,
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "before-after-hook": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz",
- "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==",
- "dev": true
- },
- "benchmark": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz",
- "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=",
- "dev": true,
- "requires": {
- "lodash": "^4.17.4",
- "platform": "^1.3.3"
- }
- },
- "bfj": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz",
- "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==",
- "dev": true,
- "requires": {
- "bluebird": "^3.5.5",
- "check-types": "^8.0.3",
- "hoopy": "^0.1.4",
- "tryer": "^1.0.1"
- },
- "dependencies": {
+ },
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"dev": true
- }
- }
- },
- "big-integer": {
- "version": "1.6.48",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
- "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
- },
- "big.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
- "dev": true
- },
- "binary": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
- "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
- "dev": true,
- "requires": {
- "buffers": "~0.1.1",
- "chainsaw": "~0.1.0"
- }
- },
- "binary-extensions": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz",
- "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==",
- "dev": true
- },
- "bl": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
- "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
- "dev": true,
- "requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "block-stream": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
- "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
- "dev": true,
- "requires": {
- "inherits": "~2.0.0"
- }
- },
- "bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
- "dev": true
- },
- "bn.js": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
- "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
- },
- "body": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
- "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
- "dev": true,
- "requires": {
- "continuable-cache": "^0.3.1",
- "error": "^7.0.0",
- "raw-body": "~1.1.0",
- "safe-json-parse": "~1.0.1"
- },
- "dependencies": {
- "bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
- "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
+ },
+ "bmp-js": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
+ "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=",
"dev": true
},
- "raw-body": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
- "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"dev": true,
"requires": {
- "bytes": "1",
- "string_decoder": "0.10"
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ }
}
},
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "dev": true,
- "requires": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "bplist-creator": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
+ "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "stream-buffers": "~2.2.0"
}
},
- "http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "bplist-parser": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+ "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
"dev": true,
"requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
+ "big-integer": "^1.6.44"
}
},
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "buffer": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz",
+ "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
"dev": true
},
- "setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
"dev": true
},
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "buffer-equal": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
+ "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=",
"dev": true
- }
- }
- },
- "body-scroll-lock": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-2.7.1.tgz",
- "integrity": "sha512-hS53SQ8RhM0e4DsQ3PKz6Gr2O7Kpdh59TWU98GHjaQznL7y4dFycEPk7pFQAikqBaUSCArkc5E3pe7CWIt2fZA=="
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
- },
- "boxen": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
- "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
- "dev": true,
- "requires": {
- "ansi-align": "^3.0.0",
- "camelcase": "^5.3.1",
- "chalk": "^3.0.0",
- "cli-boxes": "^2.2.0",
- "string-width": "^4.1.0",
- "term-size": "^2.1.0",
- "type-fest": "^0.8.1",
- "widest-line": "^3.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
"dev": true
},
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "bufferpack": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/bufferpack/-/bufferpack-0.0.6.tgz",
+ "integrity": "sha1-+z2HOKDh5OA7z/mfmnX57Bip1z4=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
},
"camelcase": {
"version": "5.3.1",
@@ -16074,6 +16563,12 @@
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
"chalk": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
@@ -16084,6 +16579,108 @@
"supports-color": "^7.1.0"
}
},
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
+ "dev": true
+ },
+ "circular-json": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
+ "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
+ "dev": true
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "color": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
+ "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ }
+ }
+ },
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -16099,4642 +16696,3955 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "dev": true,
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "colornames": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
+ "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
},
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "colorspace": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
+ "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
"dev": true,
"requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
+ "color": "3.0.x",
+ "text-hex": "1.0.x"
}
},
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"requires": {
- "ansi-regex": "^5.0.0"
+ "delayed-stream": "~1.0.0"
}
},
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
+ "compound-subject": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/compound-subject/-/compound-subject-0.0.1.tgz",
+ "integrity": "sha1-JxVUaYoVrmCLHfyv0wt7oeqJLEs=",
+ "dev": true
+ },
+ "compress-commons": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
+ "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
"dev": true,
"requires": {
- "has-flag": "^4.0.0"
+ "buffer-crc32": "^0.2.1",
+ "crc32-stream": "^2.0.0",
+ "normalize-path": "^2.0.0",
+ "readable-stream": "^2.0.0"
}
},
- "term-size": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz",
- "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- }
- }
- },
- "bplist-creator": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
- "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==",
- "requires": {
- "stream-buffers": "~2.2.0"
- }
- },
- "bplist-parser": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
- "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
- "requires": {
- "big-integer": "^1.6.44"
- }
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
"requires": {
- "is-extendable": "^0.1.0"
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
- }
- }
- },
- "brcast": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brcast/-/brcast-2.0.2.tgz",
- "integrity": "sha512-Tfn5JSE7hrUlFcOoaLzVvkbgIemIorMIyoMr3TgvszWW7jFt2C9PdeMLtysYD9RU0MmU17b69+XJG1eRY2OBRg=="
- },
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
- },
- "browser-process-hrtime": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
- "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=",
- "dev": true
- },
- "browser-resolve": {
- "version": "1.11.3",
- "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
- "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
- "dev": true,
- "requires": {
- "resolve": "1.1.7"
- },
- "dependencies": {
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true
- }
- }
- },
- "browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
- "requires": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "requires": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "browserify-rsa": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
- "requires": {
- "bn.js": "^4.1.0",
- "randombytes": "^2.0.1"
- }
- },
- "browserify-sign": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
- "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
- "requires": {
- "bn.js": "^4.1.1",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.2",
- "elliptic": "^6.0.0",
- "inherits": "^2.0.1",
- "parse-asn1": "^5.0.0"
- }
- },
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "requires": {
- "pako": "~1.0.5"
- }
- },
- "browserslist": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz",
- "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001030",
- "electron-to-chromium": "^1.3.363",
- "node-releases": "^1.1.50"
- },
- "dependencies": {
- "caniuse-lite": {
- "version": "1.0.30001032",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001032.tgz",
- "integrity": "sha512-8joOm7BwcpEN4BfVHtfh0hBXSAPVYk+eUIcNntGtMkUWy/6AKRCDZINCLe3kB1vHhT2vBxBF85Hh9VlPXi/qjA==",
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
- "node-releases": {
- "version": "1.1.51",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.51.tgz",
- "integrity": "sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw==",
+ "continuation-local-storage": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
+ "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
"dev": true,
"requires": {
- "semver": "^6.3.0"
+ "async-listener": "^0.6.0",
+ "emitter-listener": "^1.1.1"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
"dev": true
- }
- }
- },
- "bser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
- "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
- "requires": {
- "node-int64": "^0.4.0"
- }
- },
- "btoa-lite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
- "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=",
- "dev": true
- },
- "buffer": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
- "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "buffer-alloc": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
- "dev": true,
- "requires": {
- "buffer-alloc-unsafe": "^1.1.0",
- "buffer-fill": "^1.0.0"
- }
- },
- "buffer-alloc-unsafe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
- "dev": true
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
- },
- "buffer-fill": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
- "dev": true
- },
- "buffer-from": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
- "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ=="
- },
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
- },
- "buffers": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
- "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
- "dev": true
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
- },
- "builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
- },
- "builtins": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
- "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
- "dev": true
- },
- "byline": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
- "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
- "dev": true
- },
- "byte-size": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz",
- "integrity": "sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==",
- "dev": true
- },
- "bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
- "dev": true
- },
- "cacache": {
- "version": "10.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
- "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
- "dev": true,
- "requires": {
- "bluebird": "^3.5.1",
- "chownr": "^1.0.1",
- "glob": "^7.1.2",
- "graceful-fs": "^4.1.11",
- "lru-cache": "^4.1.1",
- "mississippi": "^2.0.0",
- "mkdirp": "^0.5.1",
- "move-concurrently": "^1.0.1",
- "promise-inflight": "^1.0.1",
- "rimraf": "^2.6.2",
- "ssri": "^5.2.4",
- "unique-filename": "^1.1.0",
- "y18n": "^4.0.0"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
+ "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
"dev": true,
"requires": {
- "glob": "^7.1.3"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
+ "buffer": "^5.1.0"
}
},
- "y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "crc32-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
+ "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
+ "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
"dev": true
- }
- }
- },
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- }
- },
- "cacheable-lookup": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz",
- "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==",
- "dev": true,
- "requires": {
- "@types/keyv": "^3.1.1",
- "keyv": "^4.0.0"
- }
- },
- "cacheable-request": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz",
- "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==",
- "dev": true,
- "requires": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^2.0.0"
- },
- "dependencies": {
- "get-stream": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
- "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ },
+ "css-value": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz",
+ "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=",
+ "dev": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "assert-plus": "^1.0.0"
}
},
- "http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
"dev": true
},
- "normalize-url": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
- "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "deep-eql": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+ "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "type-detect": "0.1.1"
}
- }
- }
- },
- "call-me-maybe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
- "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
- "dev": true
- },
- "caller-callsite": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
- "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
- "requires": {
- "callsites": "^2.0.0"
- },
- "dependencies": {
- "callsites": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
- }
- }
- },
- "caller-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
- "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
- "requires": {
- "caller-callsite": "^2.0.0"
- }
- },
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
- "dev": true
- },
- "callsites": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz",
- "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw=="
- },
- "camel-case": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
- "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
- "dev": true,
- "requires": {
- "no-case": "^2.2.0",
- "upper-case": "^1.1.1"
- }
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
- },
- "camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true
- },
- "camelcase-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
- "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
- "dev": true,
- "requires": {
- "camelcase": "^4.1.0",
- "map-obj": "^2.0.0",
- "quick-lru": "^1.0.0"
- }
- },
- "camelize": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
- "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
- },
- "can-use-dom": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz",
- "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=",
- "dev": true
- },
- "caniuse-api": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
- "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
- "dev": true,
- "requires": {
- "browserslist": "^4.0.0",
- "caniuse-lite": "^1.0.0",
- "lodash.memoize": "^4.1.2",
- "lodash.uniq": "^4.5.0"
- }
- },
- "caniuse-lite": {
- "version": "1.0.30000998",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000998.tgz",
- "integrity": "sha512-8Tj5sPZR9kMHeDD9SZXIVr5m9ofufLLCG2Y4QwQrH18GIwG+kCc+zYdlR036ZRkuKjVVetyxeAgGA1xF7XdmzQ==",
- "dev": true
- },
- "capture-exit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
- "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
- "requires": {
- "rsvp": "^4.8.4"
- }
- },
- "case-sensitive-paths-webpack-plugin": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
- "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==",
- "dev": true
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
- },
- "ccount": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz",
- "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==",
- "dev": true
- },
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dev": true,
- "requires": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
- }
- },
- "chainsaw": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
- "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
- "dev": true,
- "requires": {
- "traverse": ">=0.3.0 <0.4"
- },
- "dependencies": {
- "traverse": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
- "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
"dev": true
- }
- }
- },
- "chalk": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
- "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "diagnostics": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
+ "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
"dev": true,
"requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
+ "colorspace": "1.1.x",
+ "enabled": "1.0.x",
+ "kuler": "1.0.x"
}
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dom-walk": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
+ "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=",
+ "dev": true
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true,
"requires": {
- "color-name": "~1.1.4"
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
"dev": true
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "emitter-listener": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
+ "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
+ "dev": true,
+ "requires": {
+ "shimmer": "^1.2.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "enabled": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
+ "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
"dev": true,
"requires": {
- "has-flag": "^4.0.0"
+ "env-variable": "0.0.x"
}
- }
- }
- },
- "character-entities": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz",
- "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==",
- "dev": true
- },
- "character-entities-html4": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz",
- "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==",
- "dev": true
- },
- "character-entities-legacy": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz",
- "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==",
- "dev": true
- },
- "character-parser": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
- "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
- "dev": true,
- "requires": {
- "is-regex": "^1.0.3"
- }
- },
- "character-reference-invalid": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz",
- "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==",
- "dev": true
- },
- "chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
- },
- "check-node-version": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-3.2.0.tgz",
- "integrity": "sha512-mJu4dADRf+NUeOyGgFTXaLtjyyffD3Eej2RA9IEk1CdHmoVurErLD++e/Ps6uKfsB273ky+0Z9NlOiuplxuNdw==",
- "dev": true,
- "requires": {
- "chalk": "^2.3.0",
- "map-values": "^1.0.1",
- "minimist": "^1.2.0",
- "object-filter": "^1.0.2",
- "object.assign": "^4.0.4",
- "run-parallel": "^1.1.4",
- "semver": "^5.0.3"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "once": "^1.4.0"
}
},
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "env-variable": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
+ "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==",
"dev": true
- }
- }
- },
- "check-types": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
- "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==",
- "dev": true
- },
- "chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "dev": true,
- "requires": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "fsevents": "^1.2.7",
- "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"
- },
- "dependencies": {
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ },
+ "es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
"dev": true
},
- "upath": {
+ "es6-mapify": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "resolved": "https://registry.npmjs.org/es6-mapify/-/es6-mapify-1.2.0.tgz",
+ "integrity": "sha512-b4QYXTO1HD0MMFs+JtYrQEaynlyuEInBF3anGQK11rQ45akiIBs+3YUyTBq9FLzM7rD5P2xAglEOXz9gcdmdIw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0"
+ }
+ },
+ "es6-promisify": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.2.tgz",
+ "integrity": "sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg==",
"dev": true
- }
- }
- },
- "chownr": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
- "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
- "dev": true
- },
- "chrome-trace-event": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
- "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
- },
- "cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+ "dev": true
+ },
+ "execa": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz",
+ "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==",
+ "dev": true,
"requires": {
- "is-descriptor": "^0.1.0"
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
}
- }
- }
- },
- "classnames": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz",
- "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0="
- },
- "clean-css": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
- "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
- "dev": true,
- "requires": {
- "source-map": "~0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ },
+ "exif-parser": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz",
+ "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=",
"dev": true
- }
- }
- },
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
- "cli-boxes": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz",
- "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==",
- "dev": true
- },
- "cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "requires": {
- "restore-cursor": "^2.0.0"
- }
- },
- "cli-spinners": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz",
- "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ=="
- },
- "cli-table3": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
- "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
- "dev": true,
- "requires": {
- "colors": "^1.1.2",
- "object-assign": "^4.1.0",
- "string-width": "^2.1.1"
- },
- "dependencies": {
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"dev": true,
- "optional": true
- }
- }
- },
- "cli-truncate": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
- "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
- "dev": true,
- "requires": {
- "slice-ansi": "0.0.4",
- "string-width": "^1.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "requires": {
+ "fd-slicer": "~1.0.1"
+ }
+ }
}
},
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
"dev": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
}
},
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fast-safe-stringify": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
+ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
+ "dev": true
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "pend": "~1.2.0"
}
- }
- }
- },
- "cli-width": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
- "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
- },
- "clipboard": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz",
- "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==",
- "requires": {
- "good-listener": "^1.2.2",
- "select": "^1.1.2",
- "tiny-emitter": "^2.0.0"
- }
- },
- "cliui": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
- "requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
- }
- },
- "clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
- },
- "clone-deep": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
- "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
- "dev": true,
- "requires": {
- "for-own": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.0",
- "shallow-clone": "^1.0.0"
- },
- "dependencies": {
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
- "dev": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- }
- }
- },
- "clone-regexp": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz",
- "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==",
- "dev": true,
- "requires": {
- "is-regexp": "^1.0.0",
- "is-supported-regexp-flag": "^1.0.0"
- }
- },
- "clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
- "dev": true,
- "requires": {
- "mimic-response": "^1.0.0"
- },
- "dependencies": {
- "mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ },
+ "fecha": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
+ "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==",
"dev": true
- }
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "coa": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
- "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
- "dev": true,
- "requires": {
- "@types/q": "^1.5.1",
- "chalk": "^2.4.1",
- "q": "^1.1.2"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ },
+ "file-type": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz",
+ "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
+ "dev": true
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
- }
- }
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
- },
- "collapse-white-space": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz",
- "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==",
- "dev": true
- },
- "collect-v8-coverage": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz",
- "integrity": "sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ==",
- "dev": true
- },
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
- "color": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
- "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
- "dev": true,
- "requires": {
- "clone": "^1.0.2",
- "color-convert": "^1.3.0",
- "color-string": "^0.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
- "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
- "requires": {
- "color-name": "1.1.1"
- }
- },
- "color-name": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
- "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok="
- },
- "color-string": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
- "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
- "dev": true,
- "requires": {
- "color-name": "^1.0.0"
- }
- },
- "color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
- },
- "colorette": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz",
- "integrity": "sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg=="
- },
- "colors": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
- },
- "columnify": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz",
- "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
- "dev": true,
- "requires": {
- "strip-ansi": "^3.0.0",
- "wcwidth": "^1.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ },
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
"dev": true
},
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
}
- }
- }
- },
- "combined-stream": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
- "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
- "dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "comma-separated-tokens": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz",
- "integrity": "sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ==",
- "dev": true
- },
- "command-exists": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz",
- "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw=="
- },
- "commander": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz",
- "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==",
- "dev": true
- },
- "comment-parser": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.2.tgz",
- "integrity": "sha512-4Rjb1FnxtOcv9qsfuaNuVsmmVn4ooVoBHzYfyKteiXwIU84PClyGA5jASoFMwPV93+FPh9spwueXauxFJZkGAg==",
- "dev": true
- },
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
- },
- "compare-func": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
- "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
- "dev": true,
- "requires": {
- "array-ify": "^1.0.0",
- "dot-prop": "^3.0.0"
- },
- "dependencies": {
- "dot-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
- "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
+ },
+ "fkill": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/fkill/-/fkill-7.0.0.tgz",
+ "integrity": "sha512-i61SqvPdfCxl1/VQulh9SXrC+4dudCtINzTHbKaEx3Jr0kD9SvxKDeXzej7Saurnj3al/jMJwQnsUc62VrBMHQ==",
"dev": true,
"requires": {
- "is-obj": "^1.0.0"
+ "aggregate-error": "^3.0.0",
+ "arrify": "^2.0.1",
+ "execa": "^4.0.0",
+ "pid-from-port": "^1.1.3",
+ "process-exists": "^4.0.0",
+ "ps-list": "^7.0.0",
+ "taskkill": "^3.0.0"
}
- }
- }
- },
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
- },
- "compress-commons": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
- "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
- "dev": true,
- "requires": {
- "buffer-crc32": "^0.2.13",
- "crc32-stream": "^3.0.1",
- "normalize-path": "^3.0.0",
- "readable-stream": "^2.3.6"
- },
- "dependencies": {
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"dev": true
- }
- }
- },
- "compressible": {
- "version": "2.0.17",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
- "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
- "requires": {
- "mime-db": ">= 1.40.0 < 2"
- },
- "dependencies": {
- "mime-db": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
- "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
- }
- }
- },
- "compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "requires": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
"requires": {
- "ms": "2.0.0"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
}
- }
- }
- },
- "compute-scroll-into-view": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz",
- "integrity": "sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A=="
- },
- "computed-style": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz",
- "integrity": "sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ="
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "concurrently": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.0.tgz",
- "integrity": "sha1-jPG3cHppFqeKT/W3e7BN7FSzebI=",
- "dev": true,
- "requires": {
- "chalk": "0.5.1",
- "commander": "2.6.0",
- "date-fns": "^1.23.0",
- "lodash": "^4.5.1",
- "rx": "2.3.24",
- "spawn-command": "^0.0.2-1",
- "supports-color": "^3.2.3",
- "tree-kill": "^1.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
- "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
"dev": true
},
- "ansi-styles": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
- "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"dev": true
},
- "chalk": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
- "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "ftp-response-parser": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ftp-response-parser/-/ftp-response-parser-1.0.1.tgz",
+ "integrity": "sha1-O50z+O3V+45HALj3eMRi5bFYH4k=",
"dev": true,
"requires": {
- "ansi-styles": "^1.1.0",
- "escape-string-regexp": "^1.0.0",
- "has-ansi": "^0.1.0",
- "strip-ansi": "^0.3.0",
- "supports-color": "^0.2.0"
+ "readable-stream": "^1.0.31"
},
"dependencies": {
- "supports-color": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
- "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true
}
}
},
- "commander": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
- "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=",
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
- "has-ansi": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
- "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "get-prototype-of": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/get-prototype-of/-/get-prototype-of-0.0.0.tgz",
+ "integrity": "sha1-mHcr0QcW0W3rSzIlFsRp78oorEQ=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
"dev": true,
"requires": {
- "ansi-regex": "^0.2.0"
+ "pump": "^3.0.0"
}
},
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
},
- "strip-ansi": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
- "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
- "ansi-regex": "^0.2.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "global": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
+ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
"dev": true,
"requires": {
- "has-flag": "^1.0.0"
- }
- }
- }
- },
- "config-chain": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
- "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
- "dev": true,
- "requires": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
+ "min-document": "^2.19.0",
+ "process": "~0.5.1"
}
},
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- }
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
},
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
},
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
- }
- }
- },
- "console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
- },
- "consolidated-events": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz",
- "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ=="
- },
- "constantinople": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
- "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
- "dev": true,
- "requires": {
- "@types/babel-types": "^7.0.0",
- "@types/babylon": "^6.16.2",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0"
- }
- },
- "constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
- },
- "contains-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
- "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
- "dev": true
- },
- "content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
- "dev": true,
- "requires": {
- "safe-buffer": "5.1.2"
- }
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "dev": true
- },
- "continuable-cache": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
- "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
- "dev": true
- },
- "conventional-changelog-angular": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.5.tgz",
- "integrity": "sha512-RrkdWnL/TVyWV1ayWmSsrWorsTDqjL/VwG5ZSEneBQrd65ONcfeA1cW7FLtNweQyMiKOyriCMTKRSlk18DjTrw==",
- "dev": true,
- "requires": {
- "compare-func": "^1.3.1",
- "q": "^1.5.1"
- }
- },
- "conventional-changelog-core": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz",
- "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==",
- "dev": true,
- "requires": {
- "conventional-changelog-writer": "^4.0.6",
- "conventional-commits-parser": "^3.0.3",
- "dateformat": "^3.0.0",
- "get-pkg-repo": "^1.0.0",
- "git-raw-commits": "2.0.0",
- "git-remote-origin-url": "^2.0.0",
- "git-semver-tags": "^2.0.3",
- "lodash": "^4.2.1",
- "normalize-package-data": "^2.3.5",
- "q": "^1.5.1",
- "read-pkg": "^3.0.0",
- "read-pkg-up": "^3.0.0",
- "through2": "^3.0.0"
- },
- "dependencies": {
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
}
},
- "parse-json": {
+ "has-flag": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"dev": true,
"requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
}
},
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "http-status-codes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-1.4.0.tgz",
+ "integrity": "sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ==",
"dev": true
},
- "through2": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
- "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
- "readable-stream": "2 || 3"
+ "safer-buffer": ">= 2.1.2 < 3"
}
- }
- }
- },
- "conventional-changelog-preset-loader": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz",
- "integrity": "sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ==",
- "dev": true
- },
- "conventional-changelog-writer": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.9.tgz",
- "integrity": "sha512-2Y3QfiAM37WvDMjkVNaRtZgxVzWKj73HE61YQ/95T53yle+CRwTVSl6Gbv/lWVKXeZcM5af9n9TDVf0k7Xh+cw==",
- "dev": true,
- "requires": {
- "compare-func": "^1.3.1",
- "conventional-commits-filter": "^2.0.2",
- "dateformat": "^3.0.0",
- "handlebars": "^4.4.0",
- "json-stringify-safe": "^5.0.1",
- "lodash": "^4.2.1",
- "meow": "^4.0.0",
- "semver": "^6.0.0",
- "split": "^1.0.0",
- "through2": "^3.0.0"
- },
- "dependencies": {
- "load-json-file": {
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+ "dev": true
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
+ "dev": true
+ },
+ "indent-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "meow": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "interpret": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+ "dev": true
+ },
+ "invert-kv": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "dev": true
+ },
+ "io.appium.settings": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/io.appium.settings/-/io.appium.settings-3.1.0.tgz",
+ "integrity": "sha512-s3OqMAD1CMTvYLLTijH/u36DLR6neqPxL7q9cD7qzEYycj8E7UzmvYg2amLf//xPSeCNjGpPbuVlk+ug29jSnQ==",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-capitalized": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-capitalized/-/is-capitalized-1.0.0.tgz",
+ "integrity": "sha1-TIRktNkdPk7rRIid0s2PGwrEwTY=",
+ "dev": true
+ },
+ "is-class": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.4.tgz",
+ "integrity": "sha1-4FdFFwW7NOOePjNZjJOpg3KWtzY=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "camelcase-keys": "^4.0.0",
- "decamelize-keys": "^1.0.0",
- "loud-rejection": "^1.0.0",
- "minimist": "^1.1.3",
- "minimist-options": "^3.0.1",
- "normalize-package-data": "^2.3.4",
- "read-pkg-up": "^3.0.0",
- "redent": "^2.0.0",
- "trim-newlines": "^2.0.0"
+ "number-is-nan": "^1.0.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "is-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
+ "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=",
+ "dev": true
+ },
+ "is-number-like": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
+ "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "lodash.isfinite": "^3.3.2"
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
"dev": true
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "jimp": {
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.9.5.tgz",
+ "integrity": "sha512-gjrzz+lT4In7shmP4LV1o/dfL0btnh4W9F5jPCXA6Qw4uEAF8+8GDwAR69hbUQCZH7R5KoCtq81tpfzydoJtSQ==",
"dev": true,
"requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "@babel/runtime": "^7.7.2",
+ "@jimp/custom": "^0.9.5",
+ "@jimp/plugins": "^0.9.5",
+ "@jimp/types": "^0.9.5",
+ "core-js": "^3.4.1",
+ "regenerator-runtime": "^0.13.3"
}
},
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "jpeg-js": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz",
+ "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==",
+ "dev": true
+ },
+ "js2xmlparser2": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/js2xmlparser2/-/js2xmlparser2-0.2.0.tgz",
+ "integrity": "sha1-p8ogibg9AjMdYxiS3WdDhkElAz8=",
+ "dev": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jsftp": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/jsftp/-/jsftp-2.1.3.tgz",
+ "integrity": "sha512-r79EVB8jaNAZbq8hvanL8e8JGu2ZNr2bXdHC4ZdQhRImpSPpnWwm5DYVzQ5QxJmtGtKhNNuvqGgbNaFl604fEQ==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "debug": "^3.1.0",
+ "ftp-response-parser": "^1.0.1",
+ "once": "^1.4.0",
+ "parse-listing": "^1.1.3",
+ "stream-combiner": "^0.2.2",
+ "unorm": "^1.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true
},
- "through2": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
- "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"dev": true,
"requires": {
- "readable-stream": "2 || 3"
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
}
- }
- }
- },
- "conventional-commits-filter": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz",
- "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==",
- "dev": true,
- "requires": {
- "lodash.ismatch": "^4.4.0",
- "modify-values": "^1.0.0"
- }
- },
- "conventional-commits-parser": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.5.tgz",
- "integrity": "sha512-qVz9+5JwdJzsbt7JbJ6P7NOXBGt8CyLFJYSjKAuPSgO+5UGfcsbk9EMR+lI8Unlvx6qwIc2YDJlrGIfay2ehNA==",
- "dev": true,
- "requires": {
- "JSONStream": "^1.0.4",
- "is-text-path": "^2.0.0",
- "lodash": "^4.2.1",
- "meow": "^4.0.0",
- "split2": "^2.0.0",
- "through2": "^3.0.0",
- "trim-off-newlines": "^1.0.0"
- },
- "dependencies": {
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ },
+ "jszip": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz",
+ "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "set-immediate-shim": "~1.0.1"
}
},
- "meow": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "keypather": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz",
+ "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=",
"dev": true,
"requires": {
- "camelcase-keys": "^4.0.0",
- "decamelize-keys": "^1.0.0",
- "loud-rejection": "^1.0.0",
- "minimist": "^1.1.3",
- "minimist-options": "^3.0.1",
- "normalize-package-data": "^2.3.4",
- "read-pkg-up": "^3.0.0",
- "redent": "^2.0.0",
- "trim-newlines": "^2.0.0"
+ "101": "^1.0.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "klaw": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
+ "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "graceful-fs": "^4.1.9"
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
+ "kuler": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
+ "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
+ "dev": true,
+ "requires": {
+ "colornames": "^1.1.1"
+ }
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
"dev": true,
"requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "readable-stream": "^2.0.5"
}
},
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "invert-kv": "^2.0.0"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
+ "lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "dev": true,
+ "requires": {
+ "immediate": "~3.0.5"
+ }
},
- "through2": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
- "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "load-bmfont": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz",
+ "integrity": "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==",
"dev": true,
"requires": {
- "readable-stream": "2 || 3"
+ "buffer-equal": "0.0.1",
+ "mime": "^1.3.4",
+ "parse-bmfont-ascii": "^1.0.3",
+ "parse-bmfont-binary": "^1.0.5",
+ "parse-bmfont-xml": "^1.1.4",
+ "phin": "^2.9.1",
+ "xhr": "^2.0.1",
+ "xtend": "^4.0.0"
}
- }
- }
- },
- "conventional-recommended-bump": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz",
- "integrity": "sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==",
- "dev": true,
- "requires": {
- "concat-stream": "^2.0.0",
- "conventional-changelog-preset-loader": "^2.1.1",
- "conventional-commits-filter": "^2.0.2",
- "conventional-commits-parser": "^3.0.3",
- "git-raw-commits": "2.0.0",
- "git-semver-tags": "^2.0.3",
- "meow": "^4.0.0",
- "q": "^1.5.1"
- },
- "dependencies": {
- "concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
+ "p-locate": "^4.1.0"
}
},
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
+ "dev": true
+ },
+ "lodash.difference": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
+ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
+ "dev": true
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
+ "dev": true
+ },
+ "lodash.isfinite": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
+ "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=",
+ "dev": true
+ },
+ "lodash.isobject": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz",
+ "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=",
+ "dev": true
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "lodash.union": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
+ "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=",
+ "dev": true
+ },
+ "lodash.zip": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
+ "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=",
+ "dev": true
+ },
+ "logform": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz",
+ "integrity": "sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "colors": "^1.2.1",
+ "fast-safe-stringify": "^2.0.4",
+ "fecha": "^2.3.3",
+ "ms": "^2.1.1",
+ "triple-beam": "^1.3.0"
}
},
- "meow": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "loglevel": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz",
+ "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==",
+ "dev": true
+ },
+ "loglevel-plugin-prefix": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz",
+ "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==",
+ "dev": true
+ },
+ "longjohn": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/longjohn/-/longjohn-0.2.12.tgz",
+ "integrity": "sha1-fKdEawg2VcN351EiE9x1TVKmSn4=",
"dev": true,
"requires": {
- "camelcase-keys": "^4.0.0",
- "decamelize-keys": "^1.0.0",
- "loud-rejection": "^1.0.0",
- "minimist": "^1.1.3",
- "minimist-options": "^3.0.1",
- "normalize-package-data": "^2.3.4",
- "read-pkg-up": "^3.0.0",
- "redent": "^2.0.0",
- "trim-newlines": "^2.0.0"
+ "source-map-support": "0.3.2 - 1.0.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "yallist": "^3.0.2"
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
+ "dev": true,
+ "requires": {
+ "charenc": "~0.0.1",
+ "crypt": "~0.0.1",
+ "is-buffer": "~1.1.1"
+ }
+ },
+ "md5-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-4.0.0.tgz",
+ "integrity": "sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==",
"dev": true
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
"dev": true,
"requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
}
},
- "read-pkg-up": {
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "method-override": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz",
+ "integrity": "sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "debug": "3.1.0",
+ "methods": "~1.1.2",
+ "parseurl": "~1.3.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
},
- "readable-stream": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
- "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
"dev": true,
"requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "mime-db": "1.43.0"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
- }
- }
- },
- "convert-source-map": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
- "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
- },
- "cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
- "dev": true
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
- "dev": true
- },
- "copy-concurrently": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
- "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
- "dev": true,
- "requires": {
- "aproba": "^1.1.1",
- "fs-write-stream-atomic": "^1.0.8",
- "iferr": "^0.1.5",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ },
+ "min-document": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "dom-walk": "^0.1.0"
}
},
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "glob": "^7.1.3"
+ "brace-expansion": "^1.1.7"
}
- }
- }
- },
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
- },
- "copy-dir": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.2.0.tgz",
- "integrity": "sha512-UeaUFUIHqGV4brjQ9bY2mHll/hoxyCak2emgmYG72LkGKABHBdBDKFw0H5nTKt5OzVBkBhkxCwnniJBAE7EGEw==",
- "dev": true
- },
- "copy-to-clipboard": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz",
- "integrity": "sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w==",
- "dev": true,
- "requires": {
- "toggle-selection": "^1.0.6"
- }
- },
- "copy-webpack-plugin": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz",
- "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==",
- "dev": true,
- "requires": {
- "cacache": "^10.0.4",
- "find-cache-dir": "^1.0.0",
- "globby": "^7.1.1",
- "is-glob": "^4.0.0",
- "loader-utils": "^1.1.0",
- "minimatch": "^3.0.4",
- "p-limit": "^1.0.0",
- "serialize-javascript": "^1.4.0"
- },
- "dependencies": {
- "globby": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
- "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mjpeg-server": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mjpeg-server/-/mjpeg-server-0.3.0.tgz",
+ "integrity": "sha1-rx3hP3VkJwi6bsFw36xAi9xdlzc=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz",
+ "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==",
+ "dev": true
+ },
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
+ "dev": true
+ },
+ "moment-timezone": {
+ "version": "0.5.28",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz",
+ "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==",
"dev": true,
"requires": {
- "array-union": "^1.0.1",
- "dir-glob": "^2.0.0",
- "glob": "^7.1.2",
- "ignore": "^3.3.5",
- "pify": "^3.0.0",
- "slash": "^1.0.0"
+ "moment": ">= 2.9.0"
+ }
+ },
+ "morgan": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
+ "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+ "dev": true,
+ "requires": {
+ "basic-auth": "~2.0.0",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "on-headers": "~1.0.1"
},
"dependencies": {
- "dir-glob": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
- "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
- "path-type": "^3.0.0"
+ "ms": "2.0.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "is-glob": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
- "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "mv": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+ "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
"dev": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "mkdirp": "~0.5.1",
+ "ncp": "~2.0.0",
+ "rimraf": "~2.4.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "dev": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "rimraf": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+ "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
+ "dev": true,
+ "requires": {
+ "glob": "^6.0.1"
+ }
+ }
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
"dev": true
- }
- }
- },
- "core-js": {
- "version": "3.6.4",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
- "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
- "dev": true
- },
- "core-js-compat": {
- "version": "3.6.4",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz",
- "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==",
- "dev": true,
- "requires": {
- "browserslist": "^4.8.3",
- "semver": "7.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
"dev": true
- }
- }
- },
- "core-js-pure": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.2.1.tgz",
- "integrity": "sha512-+qpvnYrsi/JDeQTArB7NnNc2VoMYLE1YSkziCDHgjexC2KH7OFiGhLUd3urxfyWmNjSwSW7NYXPWHMhuIJx9Ow==",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "corejs-upgrade-webpack-plugin": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz",
- "integrity": "sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ==",
- "dev": true,
- "requires": {
- "resolve-from": "^5.0.0",
- "webpack": "^4.38.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
- }
- }
- },
- "cosmiconfig": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz",
- "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==",
- "requires": {
- "is-directory": "^0.3.1",
- "js-yaml": "^3.9.0",
- "parse-json": "^4.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ },
+ "node-idevice": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/node-idevice/-/node-idevice-0.1.6.tgz",
+ "integrity": "sha1-lBGqdotEv7fNJezlyKHItLbx+kQ=",
+ "dev": true
+ },
+ "node-simctl": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-6.1.0.tgz",
+ "integrity": "sha512-Ec+KDabRtxP4ul3wkmyVJa0/cWbznl4JGKdpbXAaM/DM8VPSoUVwJPyZoeYKvkKeke9Ee2meDlVRIL/gidz2TA==",
+ "dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "@babel/runtime": "^7.0.0",
+ "appium-support": "^2.37.0",
+ "appium-xcode": "^3.8.0",
+ "asyncbox": "^2.3.1",
+ "lodash": "^4.2.1",
+ "semver": "^7.0.0",
+ "source-map-support": "^0.5.5",
+ "teen_process": "^1.5.1"
}
- }
- }
- },
- "crc": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
- "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
- "dev": true,
- "requires": {
- "buffer": "^5.1.0"
- },
- "dependencies": {
- "buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
+ "remove-trailing-separator": "^1.0.1"
}
- }
- }
- },
- "crc32-stream": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
- "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
- "dev": true,
- "requires": {
- "crc": "^3.4.4",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "path-key": "^3.0.0"
}
- }
- }
- },
- "create-ecdh": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
- "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
- "requires": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.0.0"
- }
- },
- "create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "create-react-class": {
- "version": "15.6.3",
- "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
- "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
- "requires": {
- "fbjs": "^0.8.9",
- "loose-envify": "^1.3.1",
- "object-assign": "^4.1.1"
- }
- },
- "create-react-context": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz",
- "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==",
- "dev": true,
- "requires": {
- "fbjs": "^0.8.0",
- "gud": "^1.0.0"
- }
- },
- "cross-env": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.2.4.tgz",
- "integrity": "sha1-ngWF8neGTtQhznVvgamA/w1piro=",
- "dev": true,
- "requires": {
- "cross-spawn": "^5.1.0",
- "is-windows": "^1.0.0"
- }
- },
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
- "dependencies": {
- "lru-cache": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
- "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
"requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
- }
- }
- },
- "crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
- "dev": true,
- "requires": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- }
- },
- "css": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
- "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
- "requires": {
- "inherits": "^2.0.3",
- "source-map": "^0.6.1",
- "source-map-resolve": "^0.5.2",
- "urix": "^0.1.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "css-color-function": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz",
- "integrity": "sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=",
- "dev": true,
- "requires": {
- "balanced-match": "0.1.0",
- "color": "^0.11.0",
- "debug": "^3.1.0",
- "rgb": "~0.1.0"
- },
- "dependencies": {
- "balanced-match": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz",
- "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=",
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true
- }
- }
- },
- "css-color-keywords": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
- "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU="
- },
- "css-color-names": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
- "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
- "dev": true
- },
- "css-declaration-sorter": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
- "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
- "dev": true,
- "requires": {
- "postcss": "^7.0.1",
- "timsort": "^0.3.0"
- }
- },
- "css-loader": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.2.0.tgz",
- "integrity": "sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.3.1",
- "cssesc": "^3.0.0",
- "icss-utils": "^4.1.1",
- "loader-utils": "^1.2.3",
- "normalize-path": "^3.0.0",
- "postcss": "^7.0.17",
- "postcss-modules-extract-imports": "^2.0.0",
- "postcss-modules-local-by-default": "^3.0.2",
- "postcss-modules-scope": "^2.1.0",
- "postcss-modules-values": "^3.0.0",
- "postcss-value-parser": "^4.0.0",
- "schema-utils": "^2.0.0"
- },
- "dependencies": {
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
- "cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "omggif": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
+ "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==",
"dev": true
},
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"dev": true,
"requires": {
- "minimist": "^1.2.0"
+ "ee-first": "1.1.1"
}
},
- "loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^2.0.0",
- "json5": "^1.0.1"
+ "wrappy": "1"
}
},
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "one-time": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
+ "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=",
"dev": true
},
- "postcss": {
- "version": "7.0.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
- "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
"dev": true,
"requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "openssl-wrapper": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/openssl-wrapper/-/openssl-wrapper-0.3.4.tgz",
+ "integrity": "sha1-wB7Jjk3NK13+C2k/MYJyAOO4Gwc=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
}
}
}
},
- "postcss-modules-extract-imports": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
- "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"dev": true,
"requires": {
- "postcss": "^7.0.5"
+ "p-try": "^2.0.0"
}
},
- "postcss-modules-local-by-default": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz",
- "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==",
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
- "icss-utils": "^4.1.1",
- "postcss": "^7.0.16",
- "postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.0.0"
+ "p-limit": "^2.2.0"
}
},
- "postcss-modules-scope": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz",
- "integrity": "sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==",
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
+ },
+ "parse-bmfont-ascii": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
+ "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=",
+ "dev": true
+ },
+ "parse-bmfont-binary": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
+ "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=",
+ "dev": true
+ },
+ "parse-bmfont-xml": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
+ "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
"dev": true,
"requires": {
- "postcss": "^7.0.6",
- "postcss-selector-parser": "^6.0.0"
+ "xml-parse-from-string": "^1.0.0",
+ "xml2js": "^0.4.5"
}
},
- "postcss-modules-values": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
- "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+ "parse-headers": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz",
+ "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==",
+ "dev": true
+ },
+ "parse-listing": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/parse-listing/-/parse-listing-1.1.3.tgz",
+ "integrity": "sha1-qlRvV/3BKc+/mUXNS3V7FLBhgt0=",
+ "dev": true
+ },
+ "parse-node-version": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
+ "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "pem": {
+ "version": "1.14.4",
+ "resolved": "https://registry.npmjs.org/pem/-/pem-1.14.4.tgz",
+ "integrity": "sha512-v8lH3NpirgiEmbOqhx0vwQTxwi0ExsiWBGYh0jYNq7K6mQuO4gI6UEFlr6fLAdv9TPXRt6GqiwE37puQdIDS8g==",
"dev": true,
"requires": {
- "icss-utils": "^4.0.0",
- "postcss": "^7.0.6"
+ "es6-promisify": "^6.0.0",
+ "md5": "^2.2.1",
+ "os-tmpdir": "^1.0.1",
+ "which": "^2.0.2"
}
},
- "postcss-value-parser": {
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "phin": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
+ "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==",
+ "dev": true
+ },
+ "pid-from-port": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/pid-from-port/-/pid-from-port-1.1.3.tgz",
+ "integrity": "sha512-OlE82n3yMOE5dY9RMOwxhoWefeMlxwk5IVxoj0sSzSFIlmvhN4obzTvO3s/d/b5JhcgXikjaspsy/HuUDTqbBg==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.9.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz",
+ "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "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"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "pixelmatch": {
"version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
- "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
+ "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
+ "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
+ "dev": true,
+ "requires": {
+ "pngjs": "^3.0.0"
+ }
+ },
+ "plist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
+ "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^9.0.7",
+ "xmldom": "0.1.x"
+ },
+ "dependencies": {
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "dev": true
+ }
+ }
+ },
+ "pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
"dev": true
},
- "schema-utils": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz",
- "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==",
+ "pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "dev": true
+ },
+ "portfinder": {
+ "version": "1.0.25",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",
+ "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==",
"dev": true,
"requires": {
- "ajv": "^6.10.2",
- "ajv-keywords": "^3.4.1"
+ "async": "^2.6.2",
+ "debug": "^3.1.1",
+ "mkdirp": "^0.5.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ }
}
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "portscanner": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz",
+ "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.0",
+ "is-number-like": "^1.0.3"
+ }
+ },
+ "process": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
+ "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=",
"dev": true
},
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "process-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/process-exists/-/process-exists-4.0.0.tgz",
+ "integrity": "sha512-BnlcYPiZjSW+fye12g9B7UeCzMAOdMkxuTz3zcytJ2BHwYZf2RoKvuuwUcJLeXlGj58x9YQrvhT21PmKhUc4UQ==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "ps-list": "^6.3.0"
+ },
+ "dependencies": {
+ "ps-list": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz",
+ "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==",
+ "dev": true
+ }
}
- }
- }
- },
- "css-mediaquery": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
- "integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA="
- },
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
- "dev": true,
- "requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
- }
- },
- "css-select-base-adapter": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
- "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
- "dev": true
- },
- "css-to-react-native": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz",
- "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==",
- "requires": {
- "camelize": "^1.0.0",
- "css-color-keywords": "^1.0.0",
- "postcss-value-parser": "^3.3.0"
- }
- },
- "css-to-react-native-transform": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/css-to-react-native-transform/-/css-to-react-native-transform-1.9.0.tgz",
- "integrity": "sha512-darzotx5xx+Q0bzASkvNBasztLCssNerzf9jpMZx0H4CTY6J/y2Wh50ZtYAJ3FmESEux1bJcGa6T0zfISTuFqw==",
- "requires": {
- "css": "^2.2.4",
- "css-mediaquery": "^0.1.2",
- "css-to-react-native": "^2.3.0"
- }
- },
- "css-tree": {
- "version": "1.0.0-alpha.28",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz",
- "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==",
- "dev": true,
- "requires": {
- "mdn-data": "~1.1.0",
- "source-map": "^0.5.3"
- }
- },
- "css-unit-converter": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
- "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
- "dev": true
- },
- "css-url-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz",
- "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=",
- "dev": true
- },
- "css-what": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
- },
- "cssesc": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-1.0.1.tgz",
- "integrity": "sha512-S2hzrpWvE6G/rW7i7IxJfWBYn27QWfOIncUW++8Rbo1VB5zsJDSVPcnI+Q8z7rhxT6/yZeLOCja4cZnghJrNGA==",
- "dev": true
- },
- "cssnano": {
- "version": "4.1.10",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz",
- "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==",
- "dev": true,
- "requires": {
- "cosmiconfig": "^5.0.0",
- "cssnano-preset-default": "^4.0.7",
- "is-resolvable": "^1.0.0",
- "postcss": "^7.0.0"
- }
- },
- "cssnano-preset-default": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz",
- "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==",
- "dev": true,
- "requires": {
- "css-declaration-sorter": "^4.0.1",
- "cssnano-util-raw-cache": "^4.0.1",
- "postcss": "^7.0.0",
- "postcss-calc": "^7.0.1",
- "postcss-colormin": "^4.0.3",
- "postcss-convert-values": "^4.0.1",
- "postcss-discard-comments": "^4.0.2",
- "postcss-discard-duplicates": "^4.0.2",
- "postcss-discard-empty": "^4.0.1",
- "postcss-discard-overridden": "^4.0.1",
- "postcss-merge-longhand": "^4.0.11",
- "postcss-merge-rules": "^4.0.3",
- "postcss-minify-font-values": "^4.0.2",
- "postcss-minify-gradients": "^4.0.2",
- "postcss-minify-params": "^4.0.2",
- "postcss-minify-selectors": "^4.0.2",
- "postcss-normalize-charset": "^4.0.1",
- "postcss-normalize-display-values": "^4.0.2",
- "postcss-normalize-positions": "^4.0.2",
- "postcss-normalize-repeat-style": "^4.0.2",
- "postcss-normalize-string": "^4.0.2",
- "postcss-normalize-timing-functions": "^4.0.2",
- "postcss-normalize-unicode": "^4.0.1",
- "postcss-normalize-url": "^4.0.1",
- "postcss-normalize-whitespace": "^4.0.2",
- "postcss-ordered-values": "^4.1.2",
- "postcss-reduce-initial": "^4.0.3",
- "postcss-reduce-transforms": "^4.0.2",
- "postcss-svgo": "^4.0.2",
- "postcss-unique-selectors": "^4.0.1"
- }
- },
- "cssnano-util-get-arguments": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
- "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
- "dev": true
- },
- "cssnano-util-get-match": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
- "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
- "dev": true
- },
- "cssnano-util-raw-cache": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
- "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
- "dev": true,
- "requires": {
- "postcss": "^7.0.0"
- }
- },
- "cssnano-util-same-parent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
- "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
- "dev": true
- },
- "csso": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz",
- "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==",
- "dev": true,
- "requires": {
- "css-tree": "1.0.0-alpha.29"
- },
- "dependencies": {
- "css-tree": {
- "version": "1.0.0-alpha.29",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
- "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==",
- "dev": true,
- "requires": {
- "mdn-data": "~1.1.0",
- "source-map": "^0.5.3"
- }
- }
- }
- },
- "cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
- },
- "cssstyle": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz",
- "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==",
- "dev": true,
- "requires": {
- "cssom": "~0.3.6"
- },
- "dependencies": {
- "cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true
- }
- }
- },
- "csstype": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz",
- "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ=="
- },
- "currently-unhandled": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
- "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
- "dev": true,
- "requires": {
- "array-find-index": "^1.0.1"
- }
- },
- "cwd": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
- "integrity": "sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc=",
- "dev": true,
- "requires": {
- "find-pkg": "^0.1.2",
- "fs-exists-sync": "^0.1.0"
- }
- },
- "cyclist": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
- "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
- "dev": true
- },
- "damerau-levenshtein": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz",
- "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==",
- "dev": true
- },
- "dargs": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
- "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "data-urls": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
- "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
- "dev": true,
- "requires": {
- "abab": "^2.0.0",
- "whatwg-mimetype": "^2.2.0",
- "whatwg-url": "^7.0.0"
- },
- "dependencies": {
- "whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ },
+ "proxy-addr": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
"dev": true,
"requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
}
- }
- }
- },
- "date-fns": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
- "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
- "dev": true
- },
- "dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
- "dev": true
- },
- "dayjs": {
- "version": "1.8.18",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.18.tgz",
- "integrity": "sha512-JBMJZghNK8TtuoPnKNIzW9xavVVigld/zmZNpZSyQbkb2Opp55YIfZUpE4OEqPF/iyUVQTKcn1bC2HtC8B7s3g=="
- },
- "de-indent": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
- "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
- "dev": true
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "debuglog": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
- "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
- "dev": true
- },
- "decache": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/decache/-/decache-4.5.1.tgz",
- "integrity": "sha512-5J37nATc6FmOTLbcsr9qx7Nm28qQyg1SK4xyEHqM0IBkNhWFp0Sm+vKoWYHD8wq+OUEb9jLyaKFfzzd1A9hcoA==",
- "dev": true,
- "requires": {
- "callsite": "^1.0.0"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
- "dev": true,
- "requires": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "dependencies": {
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ },
+ "ps-list": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.0.0.tgz",
+ "integrity": "sha512-ZDhdxqb+kE895BAvqIdGnWwfvB43h7KHMIcJC0hw7xLbbiJoprS+bqZxuGZ0jWdDxZEvB3jpnfgJyOn3lmsH+Q==",
"dev": true
- }
- }
- },
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
- },
- "decompress-response": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz",
- "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==",
- "dev": true,
- "requires": {
- "mimic-response": "^2.0.0"
- }
- },
- "decompress-zip": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.2.2.tgz",
- "integrity": "sha512-v+Na3Ck86Px7s2ix+f77pMQC3GlkxHHN+YyvnkEW7+xX5F39pcDpIV/VFvGYk8MznTFcMoPjL3XNWEJLXWoSPw==",
- "dev": true,
- "requires": {
- "binary": "^0.3.0",
- "graceful-fs": "^4.1.3",
- "mkpath": "^0.1.0",
- "nopt": "^3.0.1",
- "q": "^1.1.2",
- "readable-stream": "^1.1.8",
- "touch": "0.0.3"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true
},
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "psl": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
- }
- }
- },
- "dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
- "dev": true
- },
- "deep-equal": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
- "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
- "dev": true,
- "requires": {
- "is-arguments": "^1.0.4",
- "is-date-object": "^1.0.1",
- "is-regex": "^1.0.4",
- "object-is": "^1.0.1",
- "object-keys": "^1.1.1",
- "regexp.prototype.flags": "^1.2.0"
- },
- "dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
- }
- }
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
- },
- "deep-freeze": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
- "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
- "dev": true
- },
- "deep-object-diff": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz",
- "integrity": "sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==",
- "dev": true
- },
- "deepmerge": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
- "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
- },
- "defaults": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
- "requires": {
- "clone": "^1.0.2"
- }
- },
- "defer-to-connect": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz",
- "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==",
- "dev": true
- },
- "define-properties": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
- "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
- "requires": {
- "foreach": "^2.0.5",
- "object-keys": "^1.0.8"
- }
- },
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
}
},
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
"requires": {
- "kind-of": "^6.0.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "resolve": "^1.1.6"
}
- }
- }
- },
- "del": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz",
- "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==",
- "dev": true,
- "requires": {
- "globby": "^10.0.1",
- "graceful-fs": "^4.2.2",
- "is-glob": "^4.0.1",
- "is-path-cwd": "^2.2.0",
- "is-path-inside": "^3.0.1",
- "p-map": "^3.0.0",
- "rimraf": "^3.0.0",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "@nodelib/fs.stat": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz",
- "integrity": "sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw==",
+ },
+ "regenerator-runtime": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz",
+ "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==",
"dev": true
},
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
"dev": true
},
- "braces": {
+ "request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "request-promise": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz",
+ "integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "request-promise-core": "1.1.3",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
+ "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resq": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/resq/-/resq-1.7.1.tgz",
+ "integrity": "sha512-09u9Q5SAuJfAW5UoVAmvRtLvCOMaKP+djiixTXsZvPaojGKhuvc0Nfvp84U1rIfopJWEOXi5ywpCFwCk7mj8Xw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1"
+ },
+ "dependencies": {
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ }
+ }
+ },
+ "rgb2hex": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.10.tgz",
+ "integrity": "sha512-vKz+kzolWbL3rke/xeTE2+6vHmZnNxGyDnaVW4OckntAIcc7DcZzWkQSfxMDwqHS8vhgySnIFyBUH7lIk6PxvQ==",
+ "dev": true
+ },
+ "rimraf": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"requires": {
- "fill-range": "^7.0.1"
+ "glob": "^7.1.3"
}
},
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "rpc-websockets": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-4.6.1.tgz",
+ "integrity": "sha512-xyQC6+95hOFQJBuMRIYi2E3/ddKEMMKuql5Sd49r4578CcthP0N9nHHFkVtvrsAgz4OQH6j7zsLurLNY0nOU6g==",
"dev": true,
"requires": {
- "path-type": "^4.0.0"
+ "@babel/runtime": "^7.4.5",
+ "assert-args": "^1.2.1",
+ "babel-runtime": "^6.26.0",
+ "circular-json": "^0.5.9",
+ "eventemitter3": "^3.1.2",
+ "uuid": "^3.3.2",
+ "ws": "^5.2.2"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
}
},
- "fast-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.0.4.tgz",
- "integrity": "sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg==",
+ "safari-launcher": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/safari-launcher/-/safari-launcher-2.0.5.tgz",
+ "integrity": "sha1-pO/6nqUS0dVB5HuAOdhScBXyre0=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sanitize-filename": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
"dev": true,
"requires": {
- "@nodelib/fs.stat": "^2.0.1",
- "@nodelib/fs.walk": "^1.2.1",
- "glob-parent": "^5.0.0",
- "is-glob": "^4.0.1",
- "merge2": "^1.2.3",
- "micromatch": "^4.0.2"
+ "truncate-utf8-bytes": "^1.0.0"
}
},
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "selenium-webdriver": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
+ "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
"dev": true,
"requires": {
- "to-regex-range": "^5.0.1"
+ "jszip": "^3.1.3",
+ "rimraf": "^2.5.4",
+ "tmp": "0.0.30",
+ "xml2js": "^0.4.17"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
}
},
- "glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "semver": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+ "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
}
},
- "glob-parent": {
+ "serialize-error": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
- "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz",
+ "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==",
"dev": true,
"requires": {
- "is-glob": "^4.0.1"
+ "type-fest": "^0.8.0"
}
},
- "globby": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
- "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
+ "serve-favicon": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz",
+ "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=",
"dev": true,
"requires": {
- "@types/glob": "^7.1.1",
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.0.3",
- "glob": "^7.1.3",
- "ignore": "^5.1.1",
- "merge2": "^1.2.3",
- "slash": "^3.0.0"
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "ms": "2.1.1",
+ "parseurl": "~1.3.2",
+ "safe-buffer": "5.1.1"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
+ }
}
},
- "graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
- "ignore": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
- "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
"dev": true
},
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ },
+ "shared-preferences-builder": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/shared-preferences-builder/-/shared-preferences-builder-0.0.4.tgz",
+ "integrity": "sha512-6yy1O1zVAY8HWVjsaJzFzkmvmktlSvqnjsYZpWJ0dUrFS5Rfn1a8P7h+7zyl9MTqUfSXeaE7De6Yymx3OszxlQ==",
"dev": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "lodash": "^4.17.4",
+ "xmlbuilder": "^9.0.1"
+ },
+ "dependencies": {
+ "xmlbuilder": {
+ "version": "9.0.7",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+ "dev": true
+ }
}
},
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
- "is-path-inside": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.1.tgz",
- "integrity": "sha512-CKstxrctq1kUesU6WhtZDbYKzzYBuRH0UYInAVrkc/EYdB9ltbfE0gOoayG9nhohG6447sOOVGhHqsdmBvkbNg==",
+ "shell-quote": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
+ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
"dev": true
},
- "micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "shelljs": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
+ "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
"dev": true,
"requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
}
},
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
"dev": true
},
- "rimraf": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
- "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"dev": true,
"requires": {
- "glob": "^7.1.3"
+ "is-arrayish": "^0.3.1"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "source-map-support": {
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
+ "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
"dev": true,
"requires": {
- "is-number": "^7.0.0"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
- }
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
- },
- "delegate": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
- "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
- },
- "denodeify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
- "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE="
- },
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
- },
- "deprecation": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.0.0.tgz",
- "integrity": "sha512-lbQN037mB3VfA2JFuguM5GCJ+zPinMeCrFe+AfSZ6eqrnJA/Fs+EYMnd6Nb2mn9lf2jO9xwEd9o9lic+D4vkcw==",
- "dev": true
- },
- "des.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
- "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
- "requires": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "detab": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.2.tgz",
- "integrity": "sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ==",
- "dev": true,
- "requires": {
- "repeat-string": "^1.5.4"
- }
- },
- "detect-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
- "dev": true
- },
- "detect-indent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
- "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50="
- },
- "detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
- },
- "detect-newline": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
- "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
- "dev": true
- },
- "detect-node": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
- "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
- "dev": true
- },
- "detect-port": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz",
- "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==",
- "dev": true,
- "requires": {
- "address": "^1.0.1",
- "debug": "^2.6.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
}
- }
- }
- },
- "dezalgo": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
- "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
- "dev": true,
- "requires": {
- "asap": "^2.0.0",
- "wrappy": "1"
- }
- },
- "diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
- },
- "diff-sequences": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
- "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
- "dev": true
- },
- "diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "requires": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- },
- "dependencies": {
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ },
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
"dev": true
- }
- }
- },
- "direction": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.2.tgz",
- "integrity": "sha512-hSKoz5FBn+zhP9vWKkVQaaxnRDg3/MoPdcg2au54HIUDR8MrP8Ah1jXSJwCXel6SV3Afh5DSzc8Uqv2r1UoQwQ=="
- },
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
- },
- "docker-compose": {
- "version": "0.22.2",
- "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.22.2.tgz",
- "integrity": "sha512-iXWb5+LiYmylIMFXvGTYsjI1F+Xyx78Jm/uj1dxwwZLbWkUdH6yOXY5Nr3RjbYX15EgbGJCq78d29CmWQQQMPg==",
- "dev": true
- },
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "doctypes": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
- "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
- "dev": true
- },
- "dom-accessibility-api": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.4.3.tgz",
- "integrity": "sha512-JZ8iPuEHDQzq6q0k7PKMGbrIdsgBB7TRrtVOUm4nSMCExlg5qQG4KXWTH2k90yggjM4tTumRGwTKJSldMzKyLA==",
- "dev": true
- },
- "dom-converter": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
- "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
- "dev": true,
- "requires": {
- "utila": "~0.4"
- }
- },
- "dom-helpers": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
- "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.1.2"
- }
- },
- "dom-scroll-into-view": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz",
- "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4="
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
- "requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
- },
- "dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
- }
- }
- },
- "dom-walk": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
- "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=",
- "dev": true
- },
- "domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
- },
- "domelementtype": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
- },
- "domexception": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
- "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
- "dev": true,
- "requires": {
- "webidl-conversions": "^4.0.2"
- }
- },
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "dot-prop": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
- "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
- "dev": true,
- "requires": {
- "is-obj": "^1.0.0"
- }
- },
- "dotenv": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
- "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==",
- "dev": true
- },
- "dotenv-defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-1.1.0.tgz",
- "integrity": "sha512-MoWCnFZ1G6ZLww0TFmXx+CFs2X3ZFhIN5AptQBNPOmrHnvqjlzZPsiAbbISDEk4RUKCVgPF8HmvixuxnaVuNZQ==",
- "dev": true,
- "requires": {
- "dotenv": "^6.2.0"
- }
- },
- "dotenv-expand": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
- "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
- "dev": true
- },
- "dotenv-webpack": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.7.0.tgz",
- "integrity": "sha512-wwNtOBW/6gLQSkb8p43y0Wts970A3xtNiG/mpwj9MLUhtPCQG6i+/DSXXoNN7fbPCU/vQ7JjwGmgOeGZSSZnsw==",
- "dev": true,
- "requires": {
- "dotenv-defaults": "^1.0.2"
- }
- },
- "downshift": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/downshift/-/downshift-4.0.7.tgz",
- "integrity": "sha512-w6KFbpnMZrO53Lcbh21lRTSokEvz+FCdv7fAtN8+Oxvst+qUTIy/2FQCX6AQUncRb/gOqG4aBqm2fGgbsmAiGg==",
- "requires": {
- "@babel/runtime": "^7.4.5",
- "compute-scroll-into-view": "^1.0.9",
- "prop-types": "^15.7.2",
- "react-is": "^16.9.0"
- },
- "dependencies": {
- "react-is": {
- "version": "16.12.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
- "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q=="
- }
- }
- },
- "duplexer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
- "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
- "dev": true
- },
- "duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
- "dev": true
- },
- "duplexify": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
- "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- }
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "~0.1.0"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "ejs": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
- "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
- "dev": true
- },
- "electron-to-chromium": {
- "version": "1.3.372",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.372.tgz",
- "integrity": "sha512-77a4jYC52OdisHM+Tne7dgWEvQT1FoNu/jYl279pP88ZtG4ZRIPyhQwAKxj6C2rzsyC1OwsOds9JlZtNncSz6g==",
- "dev": true
- },
- "elegant-spinner": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
- "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
- "dev": true
- },
- "element-resize-detector": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz",
- "integrity": "sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw==",
- "dev": true,
- "requires": {
- "batch-processor": "1.0.0"
- }
- },
- "elliptic": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
- "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
- "requires": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
- }
- },
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "emojis-list": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
- "dev": true
- },
- "emotion-theming": {
- "version": "10.0.27",
- "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz",
- "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.5.5",
- "@emotion/weak-memoize": "0.2.5",
- "hoist-non-react-statics": "^3.3.0"
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
},
- "@emotion/weak-memoize": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
- "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==",
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
"dev": true
},
- "hoist-non-react-statics": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
- "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==",
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+ "dev": true
+ },
+ "stream-buffers": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
+ "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=",
+ "dev": true
+ },
+ "stream-combiner": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
+ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
"dev": true,
"requires": {
- "react-is": "^16.7.0"
+ "duplexer": "~0.1.1",
+ "through": "~2.3.4"
}
- }
- }
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
- },
- "encoding": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
- "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
- "requires": {
- "iconv-lite": "~0.4.13"
- }
- },
- "end-of-stream": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "enhanced-resolve": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
- "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.5.0",
- "tapable": "^1.0.0"
- },
- "dependencies": {
- "memory-fs": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
- "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ },
+ "stream-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-equal/-/stream-equal-1.1.1.tgz",
+ "integrity": "sha512-SaZxkvxujYBR6NTumhRTg/yztw2p30fzZ/jvSgQtlZFEGI7tdSNDaPbvT47QF92hx6Tar8hAhpr7ErpTNvtuCQ==",
"dev": true,
"requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
+ "@types/node": "*"
}
- }
- }
- },
- "entities": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
- },
- "env-paths": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
- "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=",
- "dev": true
- },
- "envinfo": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.0.tgz",
- "integrity": "sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ=="
- },
- "enzyme": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz",
- "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==",
- "dev": true,
- "requires": {
- "array.prototype.flat": "^1.2.3",
- "cheerio": "^1.0.0-rc.3",
- "enzyme-shallow-equal": "^1.0.1",
- "function.prototype.name": "^1.1.2",
- "has": "^1.0.3",
- "html-element-map": "^1.2.0",
- "is-boolean-object": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-number-object": "^1.0.4",
- "is-regex": "^1.0.5",
- "is-string": "^1.0.5",
- "is-subset": "^0.1.1",
- "lodash.escape": "^4.0.1",
- "lodash.isequal": "^4.5.0",
- "object-inspect": "^1.7.0",
- "object-is": "^1.0.2",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.1",
- "object.values": "^1.1.1",
- "raf": "^3.4.1",
- "rst-selector-parser": "^2.2.3",
- "string.prototype.trim": "^1.2.1"
- },
- "dependencies": {
- "array.prototype.flat": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
- "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
- "cheerio": {
- "version": "1.0.0-rc.3",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
- "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.1",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
+ "safe-buffer": "~5.1.0"
}
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "object-keys": "^1.0.12"
+ "ansi-regex": "^2.0.0"
}
},
- "dom-serializer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
- "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "domelementtype": "^1.3.0",
- "entities": "^1.1.1"
+ "has-flag": "^4.0.0"
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "tar-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.2.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.1",
+ "xtend": "^4.0.0"
}
},
- "function.prototype.name": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz",
- "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==",
+ "taskkill": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/taskkill/-/taskkill-3.1.0.tgz",
+ "integrity": "sha512-5KcOFzPvd1nGFVrmB7H4+QAWVjYOf//+QTbOj0GpXbqtqbKGWVczG+rq6VhXAtdtlKLTs16NAmHRyF5vbggQ2w==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "functions-have-names": "^1.2.0"
+ "arrify": "^2.0.1",
+ "execa": "^3.3.0"
},
"dependencies": {
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "execa": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+ "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "p-finally": "^2.0.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
}
},
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "p-finally": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
+ "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
"dev": true
}
}
},
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "teen_process": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/teen_process/-/teen_process-1.15.0.tgz",
+ "integrity": "sha512-E8DdTeffAselFMtcE56jNiof7jt+X+KJPpCn4xvbLFy0YVAT24Y9O5jSIzOFfAKIAirKkK0M9YfmQfmxmUdgGA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "bluebird": "^3.5.1",
+ "lodash": "^4.17.4",
+ "shell-quote": "^1.4.3",
+ "source-map-support": "^0.5.3"
+ }
+ },
+ "text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==",
"dev": true
},
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "time-stamp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
+ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
+ "dev": true
+ },
+ "timm": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz",
+ "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==",
+ "dev": true
+ },
+ "tinycolor2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz",
+ "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
+ "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "os-tmpdir": "~1.0.1"
}
},
- "is-string": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
- "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
+ "to-buffer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
"dev": true
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.1"
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
}
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "triple-beam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==",
"dev": true
},
- "object-is": {
+ "truncate-utf8-bytes": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
- "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
- "dev": true
- },
- "object.entries": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
- "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "utf8-byte-length": "^1.0.1"
}
},
- "object.values": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
- "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "safe-buffer": "^5.0.1"
}
},
- "react-is": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
- "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
},
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ "type-detect": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
+ "dev": true
},
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
- }
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
},
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
}
- }
- }
- },
- "enzyme-adapter-react-16": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz",
- "integrity": "sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==",
- "dev": true,
- "requires": {
- "enzyme-adapter-utils": "^1.13.0",
- "enzyme-shallow-equal": "^1.0.1",
- "has": "^1.0.3",
- "object.assign": "^4.1.0",
- "object.values": "^1.1.1",
- "prop-types": "^15.7.2",
- "react-is": "^16.12.0",
- "react-test-renderer": "^16.0.0-0",
- "semver": "^5.7.0"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "unorm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
+ "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"dev": true,
"requires": {
- "object-keys": "^1.0.12"
+ "punycode": "^2.1.0"
}
},
- "es-abstract": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
- "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "utf7": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz",
+ "integrity": "sha1-lV9JCq5lO6IguUVqCod2wZk2CZE=",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "semver": "~5.3.0"
},
"dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
"dev": true
}
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "utf8-byte-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+ "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
+ "dev": true
+ },
+ "utif": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
+ "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "pako": "^1.0.5"
}
},
- "has-symbols": {
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "utils-merge": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true
},
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
},
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
+ "uuid-js": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/uuid-js/-/uuid-js-0.7.5.tgz",
+ "integrity": "sha1-bIhtAqU9LUDc8l2RoXC0p7JblNA=",
+ "dev": true
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
+ "validate.js": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.13.1.tgz",
+ "integrity": "sha512-PnFM3xiZ+kYmLyTiMgTYmU7ZHkjBZz2/+F0DaALc/uUtVzdCt1wAosvYJ5hFQi/hz8O4zb52FQhHZRC+uVkJ+g==",
+ "dev": true
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
"dev": true
},
- "object.values": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
- "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
}
},
- "react-is": {
- "version": "16.13.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
- "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
- "dev": true
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "walkdir": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
+ "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
"dev": true
},
- "string.prototype.trimleft": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
- "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "webdriver": {
+ "version": "5.19.0",
+ "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-5.19.0.tgz",
+ "integrity": "sha512-lPHhLqySiwEQr61R+/UD4KjImCxPEQTgipU5nIFUJFJxo97dIBolTHpXVcGazsrQc3nSPjiHY9CrKjuxl2MjCQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "@wdio/config": "5.18.4",
+ "@wdio/logger": "5.16.10",
+ "@wdio/protocols": "5.19.0",
+ "@wdio/utils": "5.18.6",
+ "lodash.merge": "^4.6.1",
+ "request": "^2.83.0"
}
},
- "string.prototype.trimright": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
- "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "webdriverio": {
+ "version": "5.19.0",
+ "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-5.19.0.tgz",
+ "integrity": "sha512-0HFKkE9RqfTGlJbZ2XyxpHDH+Seya5x9wHs8USL5PSrxxnEljcrVc6qya85o6zFlcTgGzC5WM6UDycXkfa1cLg==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "@wdio/config": "5.18.4",
+ "@wdio/logger": "5.16.10",
+ "@wdio/repl": "5.18.6",
+ "@wdio/utils": "5.18.6",
+ "archiver": "^3.0.0",
+ "css-value": "^0.0.1",
+ "grapheme-splitter": "^1.0.2",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.isobject": "^3.0.2",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.zip": "^4.2.0",
+ "resq": "^1.6.0",
+ "rgb2hex": "^0.1.0",
+ "serialize-error": "^5.0.0",
+ "webdriver": "5.19.0"
+ },
+ "dependencies": {
+ "archiver": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
+ "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "async": "^2.6.3",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.1.4",
+ "readable-stream": "^3.4.0",
+ "tar-stream": "^2.1.0",
+ "zip-stream": "^2.1.2"
+ }
+ },
+ "archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "bl": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.1.tgz",
+ "integrity": "sha512-FL/TdvchukRCuWVxT0YMO/7+L5TNeNrVFvRU2IY63aUyv9mpt8splf2NEr6qXtPo5fya5a66YohQKvGNmLrWNA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "compress-commons": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
+ "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^3.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.3.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ }
+ }
+ },
+ "crc32-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
+ "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
+ "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "dev": true,
+ "requires": {
+ "bl": "^4.0.1",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "zip-stream": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz",
+ "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "compress-commons": "^2.1.1",
+ "readable-stream": "^3.4.0"
+ }
+ }
}
- }
- }
- },
- "enzyme-adapter-utils": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz",
- "integrity": "sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==",
- "dev": true,
- "requires": {
- "airbnb-prop-types": "^2.15.0",
- "function.prototype.name": "^1.1.2",
- "object.assign": "^4.1.0",
- "object.fromentries": "^2.0.2",
- "prop-types": "^15.7.2",
- "semver": "^5.7.1"
- },
- "dependencies": {
- "airbnb-prop-types": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz",
- "integrity": "sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA==",
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
- "array.prototype.find": "^2.1.0",
- "function.prototype.name": "^1.1.1",
- "has": "^1.0.3",
- "is-regex": "^1.0.4",
- "object-is": "^1.0.1",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.0",
- "prop-types": "^15.7.2",
- "prop-types-exact": "^1.2.0",
- "react-is": "^16.9.0"
+ "isexe": "^2.0.0"
}
},
- "define-properties": {
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wide-align": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true,
"requires": {
- "object-keys": "^1.0.12"
+ "string-width": "^1.0.2 || 2"
}
},
- "es-abstract": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
- "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "winston": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
+ "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "async": "^2.6.1",
+ "diagnostics": "^1.1.1",
+ "is-stream": "^1.1.0",
+ "logform": "^2.1.1",
+ "one-time": "0.0.4",
+ "readable-stream": "^3.1.1",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.3.0"
},
"dependencies": {
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
}
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
}
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "winston-transport": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz",
+ "integrity": "sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "readable-stream": "^2.3.6",
+ "triple-beam": "^1.2.0"
}
},
- "function.prototype.name": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz",
- "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==",
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "functions-have-names": "^1.2.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
}
},
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "ws": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
+ "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
"dev": true
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "xhr": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz",
+ "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.1"
+ "global": "~4.3.0",
+ "is-function": "^1.0.1",
+ "parse-headers": "^2.0.0",
+ "xtend": "^4.0.0"
}
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "xml-parse-from-string": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
+ "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=",
"dev": true
},
- "object.entries": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
- "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+ "xml2js": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
+ "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
}
},
- "object.fromentries": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
- "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
- }
+ "xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "dev": true
},
- "react-is": {
- "version": "16.13.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
- "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
+ "xmldom": {
+ "version": "0.1.31",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
+ "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
"dev": true
},
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "xpath": {
+ "version": "0.0.27",
+ "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz",
+ "integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==",
"dev": true
},
- "string.prototype.trimleft": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
- "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz",
+ "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
}
},
- "string.prototype.trimright": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
- "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "yargs-parser": {
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.0.tgz",
+ "integrity": "sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "zip-stream": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
+ "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^1.3.0",
+ "compress-commons": "^1.2.0",
+ "lodash": "^4.8.0",
+ "readable-stream": "^2.0.0"
}
}
}
},
- "enzyme-shallow-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz",
- "integrity": "sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==",
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "archiver": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
+ "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
"dev": true,
"requires": {
- "has": "^1.0.3",
- "object-is": "^1.0.2"
+ "archiver-utils": "^2.1.0",
+ "async": "^2.6.3",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.1.4",
+ "readable-stream": "^3.4.0",
+ "tar-stream": "^2.1.0",
+ "zip-stream": "^2.1.2"
},
"dependencies": {
- "object-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
- "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
- "dev": true
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "bl": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz",
+ "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ }
+ }
+ },
+ "buffer": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
+ "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
+ "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "dev": true,
+ "requires": {
+ "bl": "^4.0.1",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
}
}
},
- "enzyme-to-json": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.4.4.tgz",
- "integrity": "sha512-50LELP/SCPJJGic5rAARvU7pgE3m1YaNj7JLM+Qkhl5t7PAs6fiyc8xzc50RnkKPFQCv0EeFVjEWdIFRGPWMsA==",
+ "archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
"dev": true,
"requires": {
- "lodash": "^4.17.15",
- "react-is": "^16.12.0"
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
},
"dependencies": {
- "react-is": {
- "version": "16.13.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
- "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
}
}
},
- "equivalent-key-map": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz",
- "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew=="
- },
- "err-code": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
- "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
- "dev": true
- },
- "errno": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
- "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
- "dev": true,
- "requires": {
- "prr": "~1.0.1"
- }
- },
- "error": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
- "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
- "dev": true,
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"requires": {
- "string-template": "~0.2.1",
- "xtend": "~4.0.0"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
- "is-arrayish": "^0.2.1"
+ "sprintf-js": "~1.0.2"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ }
}
},
- "errorhandler": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
- "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "aria-query": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
+ "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
+ "dev": true,
"requires": {
- "accepts": "~1.3.7",
- "escape-html": "~1.0.3"
+ "ast-types-flow": "0.0.7",
+ "commander": "^2.11.0"
},
"dependencies": {
- "accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
- "requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- }
- },
- "mime-db": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
- "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
- },
- "mime-types": {
- "version": "2.1.25",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
- "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
- "requires": {
- "mime-db": "1.42.0"
- }
- },
- "negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
}
}
},
- "es-abstract": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
- "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-differ": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz",
+ "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==",
+ "dev": true
+ },
+ "array-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
+ "dev": true
+ },
+ "array-filter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
+ "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
"requires": {
- "es-to-primitive": "^1.1.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.1",
- "is-callable": "^1.1.3",
- "is-regex": "^1.0.4"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.7.0"
}
},
- "es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "array-iterate": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.2.tgz",
+ "integrity": "sha512-1hWSHTIlG/8wtYD+PPX5AOBtKWngpDFjrsrHgZpe+JdgNGz0udYu6ZIkAa/xuenIUEqFv7DvE2Yr60jxweJSrQ==",
"dev": true
},
- "es-get-iterator": {
+ "array-map": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="
+ },
+ "array-slice": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+ "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU="
+ },
+ "array-union": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.0.2.tgz",
- "integrity": "sha512-ZHb4fuNK3HKHEOvDGyHPKf5cSWh/OvAMskeM/+21NMnTuvqFvz8uHatolu+7Kf6b6oK9C+3Uo1T37pSGPWv0MA==",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"dev": true,
"requires": {
- "es-abstract": "^1.17.0-next.1",
- "has-symbols": "^1.0.1",
- "is-arguments": "^1.0.4",
- "is-map": "^2.0.0",
- "is-set": "^2.0.0",
- "is-string": "^1.0.4",
- "isarray": "^2.0.5"
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "array.prototype.find": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.0.tgz",
+ "integrity": "sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.13.0"
},
"dependencies": {
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
"requires": {
"object-keys": "^1.0.12"
}
},
"es-abstract": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
- "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
- "dev": true,
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
+ "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
"requires": {
- "es-to-primitive": "^1.2.1",
+ "es-to-primitive": "^1.2.0",
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
+ "has-symbols": "^1.0.0",
"is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.6.0",
+ "object-keys": "^1.1.1",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ }
+ }
+ },
+ "array.prototype.flat": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz",
+ "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.10.0",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
+ "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1"
+ },
+ "dependencies": {
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
"is-symbol": "^1.0.2"
}
},
@@ -20768,24 +20678,12 @@
"has-symbols": "^1.0.1"
}
},
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
- },
"object-inspect": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
"dev": true
},
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
"string.prototype.trimleft": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
@@ -20808,616 +20706,450 @@
}
}
},
- "es-to-primitive": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
- "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
- "requires": {
- "is-callable": "^1.1.1",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.1"
- }
- },
- "es5-shim": {
- "version": "4.5.13",
- "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.13.tgz",
- "integrity": "sha512-xi6hh6gsvDE0MaW4Vp1lgNEBpVcCXRWfPXj5egDvtgLz4L9MEvNwYEMdJH+JJinWkwa8c3c3o5HduV7dB/e1Hw==",
- "dev": true
- },
- "es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
- "dev": true
- },
- "es6-promisify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "dev": true,
- "requires": {
- "es6-promise": "^4.0.3"
- }
- },
- "es6-shim": {
- "version": "0.35.5",
- "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz",
- "integrity": "sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==",
- "dev": true
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "escodegen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
- "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
- "dev": true,
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "optional": true
- }
- }
- },
- "eslint": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
- "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "array.prototype.map": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz",
+ "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "ajv": "^6.10.0",
- "chalk": "^2.1.0",
- "cross-spawn": "^6.0.5",
- "debug": "^4.0.1",
- "doctrine": "^3.0.0",
- "eslint-scope": "^5.0.0",
- "eslint-utils": "^1.4.3",
- "eslint-visitor-keys": "^1.1.0",
- "espree": "^6.1.2",
- "esquery": "^1.0.1",
- "esutils": "^2.0.2",
- "file-entry-cache": "^5.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^5.0.0",
- "globals": "^12.1.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "inquirer": "^7.0.0",
- "is-glob": "^4.0.0",
- "js-yaml": "^3.13.1",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.3.0",
- "lodash": "^4.17.14",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.1",
- "natural-compare": "^1.4.0",
- "optionator": "^0.8.3",
- "progress": "^2.0.0",
- "regexpp": "^2.0.1",
- "semver": "^6.1.2",
- "strip-ansi": "^5.2.0",
- "strip-json-comments": "^3.0.1",
- "table": "^5.2.3",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.4"
},
"dependencies": {
- "acorn": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
- "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
- "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
- "dev": true
- },
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "object-keys": "^1.0.12"
}
},
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
"dev": true,
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
},
"dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true
}
}
},
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "eslint-scope": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
- "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
- },
- "eslint-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
- "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
- "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
- "dev": true
- },
- "espree": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
- "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
- "dev": true,
- "requires": {
- "acorn": "^7.1.1",
- "acorn-jsx": "^5.2.0",
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
- "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- },
- "dependencies": {
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- }
- }
- },
- "globals": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
- "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"dev": true,
"requires": {
- "type-fest": "^0.8.1"
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
}
},
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
"dev": true
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
"dev": true
},
- "optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"dev": true,
"requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
+ "has": "^1.0.3"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
- "slice-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
- "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.0",
- "astral-regex": "^1.0.0",
- "is-fullwidth-code-point": "^2.0.0"
+ "has-symbols": "^1.0.1"
}
},
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
},
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
}
},
- "strip-json-comments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
- "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
- "dev": true
- },
- "table": {
- "version": "5.4.6",
- "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
- "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
"dev": true,
"requires": {
- "ajv": "^6.10.2",
- "lodash": "^4.17.14",
- "slice-ansi": "^2.1.0",
- "string-width": "^3.0.0"
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
}
- },
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
}
}
},
- "eslint-config-prettier": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz",
- "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==",
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "art": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/art/-/art-0.10.3.tgz",
+ "integrity": "sha512-HXwbdofRTiJT6qZX/FnchtldzJjS3vkLJxQilc3Xj+ma2MXjY4UAyQ0ls1XZYVnDvVIBiFZbC6QsvtW86TD6tQ=="
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
"dev": true,
"requires": {
- "get-stdin": "^6.0.0"
- },
- "dependencies": {
- "get-stdin": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
- "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
- "dev": true
- }
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
}
},
- "eslint-import-resolver-node": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
- "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
"dev": true,
"requires": {
- "debug": "^2.6.9",
- "resolve": "^1.13.1"
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
"dev": true
},
- "resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
"dev": true,
"requires": {
- "path-parse": "^1.0.6"
+ "inherits": "2.0.1"
}
}
}
},
- "eslint-module-utils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
- "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
- "dev": true,
- "requires": {
- "debug": "^2.6.9",
- "pkg-dir": "^2.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
},
- "eslint-plugin-eslint-comments": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz",
- "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==",
- "dev": true,
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ },
+ "ast-types": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.4.tgz",
+ "integrity": "sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==",
+ "dev": true
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ },
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"requires": {
- "escape-string-regexp": "^1.0.5",
- "ignore": "^5.0.5"
- },
- "dependencies": {
- "ignore": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz",
- "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==",
- "dev": true
- }
+ "lodash": "^4.17.10"
}
},
- "eslint-plugin-import": {
- "version": "2.20.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz",
- "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==",
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "dev": true
+ },
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
+ "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio="
+ },
+ "atob-lite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz",
+ "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
+ "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
"dev": true,
"requires": {
- "array-includes": "^3.0.3",
- "array.prototype.flat": "^1.2.1",
- "contains-path": "^0.1.0",
- "debug": "^2.6.9",
- "doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.2",
- "eslint-module-utils": "^2.4.1",
- "has": "^1.0.3",
- "minimatch": "^3.0.4",
- "object.values": "^1.1.0",
- "read-pkg-up": "^2.0.0",
- "resolve": "^1.12.0"
+ "browserslist": "^4.6.3",
+ "caniuse-lite": "^1.0.30000980",
+ "chalk": "^2.4.2",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.17",
+ "postcss-value-parser": "^4.0.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
- "doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "isarray": "^1.0.0"
- }
- },
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
},
"dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "postcss": {
+ "version": "7.0.26",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
+ "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
}
},
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "postcss-value-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
+ "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
"dev": true
},
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "has-flag": "^3.0.0"
}
+ }
+ }
+ },
+ "autosize": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.2.tgz",
+ "integrity": "sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA=="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+ "dev": true
+ },
+ "axe-core": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.3.tgz",
+ "integrity": "sha512-HZpLE7xu05+8AbpqXITGdxp1Xwk8ysAXrg7MiKRY27py3DAyEJpoJQo1727pWF3F+O79V3r+cTWhOzfB49P89w==",
+ "dev": true
+ },
+ "axe-puppeteer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/axe-puppeteer/-/axe-puppeteer-1.1.0.tgz",
+ "integrity": "sha512-VS17Y1rDQe6A0PdeTPxwOSBfmOdj6efgxyre9cN1du1snnVilczSDtQsgifBKBlzoL/3DKfGpgIi+N+zrzODOg==",
+ "dev": true,
+ "requires": {
+ "axe-core": "^3.5.3"
+ }
+ },
+ "axobject-query": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
+ "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
},
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
}
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"dev": true
},
- "object.values": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
- "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
+ "ansi-regex": "^2.0.0"
}
},
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-core": {
+ "version": "7.0.0-bridge.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+ "dev": true
+ },
+ "babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ },
+ "dependencies": {
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "^2.0.0"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- }
- },
"resolve": {
"version": "1.15.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
@@ -21426,1023 +21158,1016 @@
"requires": {
"path-parse": "^1.0.6"
}
- },
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
}
}
},
- "eslint-plugin-jest": {
- "version": "23.8.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz",
- "integrity": "sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/experimental-utils": "^2.5.0"
- }
+ "babel-helper-evaluate-path": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz",
+ "integrity": "sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA==",
+ "dev": true
},
- "eslint-plugin-jsdoc": {
- "version": "22.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-22.1.0.tgz",
- "integrity": "sha512-54NdbICM7KrxsGUqQsev9aIMqPXyvyBx2218Qcm0TQ16P9CtBI+YY4hayJR6adrxlq4Ej0JLpgfUXWaQVFqmQg==",
- "dev": true,
- "requires": {
- "comment-parser": "^0.7.2",
- "debug": "^4.1.1",
- "jsdoctypeparser": "^6.1.0",
- "lodash": "^4.17.15",
- "regextras": "^0.7.0",
- "semver": "^6.3.0",
- "spdx-expression-parse": "^3.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
+ "babel-helper-flip-expressions": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz",
+ "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=",
+ "dev": true
},
- "eslint-plugin-jsx-a11y": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
- "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.4.5",
- "aria-query": "^3.0.0",
- "array-includes": "^3.0.3",
- "ast-types-flow": "^0.0.7",
- "axobject-query": "^2.0.2",
- "damerau-levenshtein": "^1.0.4",
- "emoji-regex": "^7.0.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^2.2.1"
- }
+ "babel-helper-is-nodes-equiv": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz",
+ "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=",
+ "dev": true
},
- "eslint-plugin-markdown": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz",
- "integrity": "sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw==",
+ "babel-helper-is-void-0": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz",
+ "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=",
+ "dev": true
+ },
+ "babel-helper-mark-eval-scopes": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz",
+ "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=",
+ "dev": true
+ },
+ "babel-helper-remove-or-void": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz",
+ "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=",
+ "dev": true
+ },
+ "babel-helper-to-multiple-sequence-expressions": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz",
+ "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==",
+ "dev": true
+ },
+ "babel-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
+ "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
"dev": true,
"requires": {
- "object-assign": "^4.0.1",
- "remark-parse": "^5.0.0",
- "unified": "^6.1.2"
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/babel__core": "^7.1.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "babel-preset-jest": "^24.9.0",
+ "chalk": "^2.4.2",
+ "slash": "^2.0.0"
},
"dependencies": {
- "remark-parse": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz",
- "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==",
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
"dev": true,
"requires": {
- "collapse-white-space": "^1.0.2",
- "is-alphabetical": "^1.0.0",
- "is-decimal": "^1.0.0",
- "is-whitespace-character": "^1.0.0",
- "is-word-character": "^1.0.0",
- "markdown-escapes": "^1.0.0",
- "parse-entities": "^1.1.0",
- "repeat-string": "^1.5.4",
- "state-toggle": "^1.0.0",
- "trim": "0.0.1",
- "trim-trailing-lines": "^1.0.0",
- "unherit": "^1.0.4",
- "unist-util-remove-position": "^1.0.0",
- "vfile-location": "^2.0.0",
- "xtend": "^4.0.1"
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
}
},
- "unified": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz",
- "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==",
+ "@types/yargs": {
+ "version": "13.0.9",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz",
+ "integrity": "sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==",
"dev": true,
"requires": {
- "bail": "^1.0.0",
- "extend": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "trough": "^1.0.0",
- "vfile": "^2.0.0",
- "x-is-string": "^0.1.0"
+ "@types/yargs-parser": "*"
}
},
- "vfile": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
- "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "is-buffer": "^1.1.4",
- "replace-ext": "1.0.0",
- "unist-util-stringify-position": "^1.0.0",
- "vfile-message": "^1.0.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
}
}
},
- "eslint-plugin-prettier": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz",
- "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==",
- "dev": true,
- "requires": {
- "prettier-linter-helpers": "^1.0.0"
- }
- },
- "eslint-plugin-react": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
- "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
+ "babel-loader": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+ "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
"dev": true,
"requires": {
- "array-includes": "^3.1.1",
- "doctrine": "^2.1.0",
- "has": "^1.0.3",
- "jsx-ast-utils": "^2.2.3",
- "object.entries": "^1.1.1",
- "object.fromentries": "^2.0.2",
- "object.values": "^1.1.1",
- "prop-types": "^15.7.2",
- "resolve": "^1.15.1",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.2",
- "xregexp": "^4.3.0"
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "mkdirp": "^0.5.3",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
},
"dependencies": {
- "array-includes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
- "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
+ "ajv": {
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0",
- "is-string": "^1.0.5"
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
- "requires": {
- "object-keys": "^1.0.12"
- }
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
},
- "es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+ "dev": true
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
"dev": true,
"requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- },
- "dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "locate-path": "^3.0.0"
}
},
- "has-symbols": {
+ "json5": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
- "dev": true
- },
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "minimist": "^1.2.0"
}
},
- "is-string": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
- "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
- "dev": true
- },
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.1"
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
}
},
- "jsx-ast-utils": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz",
- "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==",
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "array-includes": "^3.0.3",
- "object.assign": "^4.1.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "dev": true
- },
- "object.entries": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
- "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
}
},
- "object.fromentries": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
- "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
+ "minimist": "^1.2.5"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ }
}
},
- "object.values": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
- "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3"
+ "p-try": "^2.0.0"
}
},
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
- "dev": true
- },
- "resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "path-parse": "^1.0.6"
+ "p-limit": "^2.0.0"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
+ "find-up": "^3.0.0"
}
},
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
+ "schema-utils": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
+ "ajv": "^6.12.0",
+ "ajv-keywords": "^3.4.1"
}
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
}
}
},
- "eslint-plugin-react-hooks": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz",
- "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==",
+ "babel-plugin-add-react-displayname": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz",
+ "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=",
"dev": true
},
- "eslint-scope": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
- "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
- },
- "eslint-utils": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
- "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
+ "babel-plugin-apply-mdx-type-prop": {
+ "version": "1.5.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.8.tgz",
+ "integrity": "sha512-xYp5F9mAnZdDRFSd1vF3XQ0GQUbIulCpnuht2jCmK30GAHL8szVL7TgzwhEGamQ6yJmP/gEyYNM9OR5D2n26eA==",
"dev": true,
"requires": {
- "eslint-visitor-keys": "^1.1.0"
+ "@babel/helper-plugin-utils": "7.8.3",
+ "@mdx-js/util": "^1.5.8"
},
"dependencies": {
- "eslint-visitor-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
- "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "@mdx-js/util": {
+ "version": "1.5.8",
+ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.8.tgz",
+ "integrity": "sha512-a7Gjjw8bfBSertA/pTWBA/9WKEhgaSxvQE2NTSUzaknrzGFOhs4alZSHh3RHmSFdSWv5pUuzAgsWseMLhWEVkQ==",
"dev": true
}
}
},
- "eslint-visitor-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
- "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
- "dev": true
- },
- "espree": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz",
- "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==",
- "dev": true,
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
"requires": {
- "acorn": "^5.6.0",
- "acorn-jsx": "^4.1.1"
+ "object.assign": "^4.1.0"
}
},
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
- "esquery": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz",
- "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==",
- "dev": true,
+ "babel-plugin-emotion": {
+ "version": "10.0.33",
+ "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz",
+ "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==",
"requires": {
- "estraverse": "^5.0.0"
+ "@babel/helper-module-imports": "^7.0.0",
+ "@emotion/hash": "0.8.0",
+ "@emotion/memoize": "0.7.4",
+ "@emotion/serialize": "^0.11.16",
+ "babel-plugin-macros": "^2.0.0",
+ "babel-plugin-syntax-jsx": "^6.18.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^1.0.5",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7"
},
"dependencies": {
- "estraverse": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz",
- "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==",
- "dev": true
- }
- }
- },
- "esrecurse": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
- "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
- "dev": true,
- "requires": {
- "estraverse": "^4.1.0"
- }
- },
- "estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
- "dev": true
- },
- "esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
- },
- "event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
- },
- "eventemitter2": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-1.0.5.tgz",
- "integrity": "sha1-+YNhBRexc3wLncZDvsqTiTwE3xg="
- },
- "eventemitter3": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
- "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
- },
- "events": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
- "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
- "dev": true
+ "@emotion/hash": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
+ },
+ "@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
+ },
+ "@emotion/serialize": {
+ "version": "0.11.16",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz",
+ "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==",
+ "requires": {
+ "@emotion/hash": "0.8.0",
+ "@emotion/memoize": "0.7.4",
+ "@emotion/unitless": "0.7.5",
+ "@emotion/utils": "0.11.3",
+ "csstype": "^2.5.7"
+ }
+ },
+ "@emotion/unitless": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
+ "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
+ },
+ "@emotion/utils": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz",
+ "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw=="
+ }
+ }
},
- "eventsource": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
- "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+ "babel-plugin-extract-import-names": {
+ "version": "1.5.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.8.tgz",
+ "integrity": "sha512-LcLfP8ZRBZMdMAXHLugyvvd5PY0gMmLMWFogWAUsG32X6TYW2Eavx+il2bw73KDbW+UdCC1bAJ3NuU25T1MI3g==",
"dev": true,
"requires": {
- "original": "^1.0.0"
+ "@babel/helper-plugin-utils": "7.8.3"
}
},
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "babel-plugin-inline-json-import": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-inline-json-import/-/babel-plugin-inline-json-import-0.3.2.tgz",
+ "integrity": "sha512-QNNJx08KjmMT25Cw7rAPQ6dlREDPiZGDyApHL8KQ9vrQHbrr4PTi7W8g1tMMZPz0jEMd39nx/eH7xjnDNxq5sA==",
+ "dev": true,
"requires": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
+ "decache": "^4.5.1"
}
},
- "exec-sh": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz",
- "integrity": "sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg=="
- },
- "execa": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz",
- "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==",
+ "babel-plugin-istanbul": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
"dev": true,
"requires": {
- "cross-spawn": "^7.0.0",
- "get-stream": "^5.0.0",
- "human-signals": "^1.1.1",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.0",
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2",
- "strip-final-newline": "^2.0.0"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "find-up": "^3.0.0",
+ "istanbul-lib-instrument": "^3.3.0",
+ "test-exclude": "^5.2.3"
},
"dependencies": {
- "cross-spawn": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
- "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "locate-path": "^3.0.0"
}
},
- "get-stream": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
- "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
- "is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+ "istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
"dev": true
},
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
+ "istanbul-lib-instrument": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+ "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+ "dev": true,
+ "requires": {
+ "@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"
+ }
},
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
},
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "path-key": "^3.0.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
- "onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
- "mimic-fn": "^2.1.0"
+ "p-try": "^2.0.0"
}
},
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "pump": {
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
}
},
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "read-pkg-up": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
+ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
"dev": true,
"requires": {
- "shebang-regex": "^3.0.0"
+ "find-up": "^3.0.0",
+ "read-pkg": "^3.0.0"
}
},
- "shebang-regex": {
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "strip-bom": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "test-exclude": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
+ "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
"dev": true,
"requires": {
- "isexe": "^2.0.0"
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^4.0.0",
+ "require-main-filename": "^2.0.0"
}
}
}
},
- "execall": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz",
- "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
+ "babel-plugin-jest-hoist": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
+ "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
"dev": true,
"requires": {
- "clone-regexp": "^1.0.0"
+ "@types/babel__traverse": "^7.0.6"
}
},
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "dev": true
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "babel-plugin-macros": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+ "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
"requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
"requires": {
- "ms": "2.0.0"
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
}
},
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
"requires": {
- "is-descriptor": "^0.1.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
}
},
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
"requires": {
- "is-extendable": "^0.1.0"
+ "path-parse": "^1.0.6"
}
}
}
},
- "expand-tilde": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
- "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+ "babel-plugin-minify-builtins": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz",
+ "integrity": "sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag==",
+ "dev": true
+ },
+ "babel-plugin-minify-constant-folding": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz",
+ "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==",
"dev": true,
"requires": {
- "os-homedir": "^1.0.1"
+ "babel-helper-evaluate-path": "^0.5.0"
}
},
- "expect": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz",
- "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==",
+ "babel-plugin-minify-dead-code-elimination": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz",
+ "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-styles": "^3.2.0",
- "jest-get-type": "^24.9.0",
- "jest-matcher-utils": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-regex-util": "^24.9.0"
+ "babel-helper-evaluate-path": "^0.5.0",
+ "babel-helper-mark-eval-scopes": "^0.4.3",
+ "babel-helper-remove-or-void": "^0.4.3",
+ "lodash": "^4.17.11"
+ }
+ },
+ "babel-plugin-minify-flip-comparisons": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz",
+ "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-is-void-0": "^0.4.3"
+ }
+ },
+ "babel-plugin-minify-guarded-expressions": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz",
+ "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==",
+ "dev": true,
+ "requires": {
+ "babel-helper-evaluate-path": "^0.5.0",
+ "babel-helper-flip-expressions": "^0.4.3"
+ }
+ },
+ "babel-plugin-minify-infinity": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz",
+ "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=",
+ "dev": true
+ },
+ "babel-plugin-minify-mangle-names": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz",
+ "integrity": "sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw==",
+ "dev": true,
+ "requires": {
+ "babel-helper-mark-eval-scopes": "^0.4.3"
+ }
+ },
+ "babel-plugin-minify-numeric-literals": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz",
+ "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=",
+ "dev": true
+ },
+ "babel-plugin-minify-replace": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz",
+ "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==",
+ "dev": true
+ },
+ "babel-plugin-minify-simplify": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz",
+ "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==",
+ "dev": true,
+ "requires": {
+ "babel-helper-evaluate-path": "^0.5.0",
+ "babel-helper-flip-expressions": "^0.4.3",
+ "babel-helper-is-nodes-equiv": "^0.0.1",
+ "babel-helper-to-multiple-sequence-expressions": "^0.5.0"
+ }
+ },
+ "babel-plugin-minify-type-constructors": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz",
+ "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=",
+ "dev": true,
+ "requires": {
+ "babel-helper-is-void-0": "^0.4.3"
+ }
+ },
+ "babel-plugin-named-asset-import": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz",
+ "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==",
+ "dev": true
+ },
+ "babel-plugin-react-docgen": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz",
+ "integrity": "sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15",
+ "react-docgen": "^5.0.0",
+ "recast": "^0.14.7"
},
"dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
+ "ast-types": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz",
+ "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==",
+ "dev": true
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "recast": {
+ "version": "0.14.7",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz",
+ "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "ast-types": "0.11.3",
+ "esprima": "~4.0.0",
+ "private": "~0.1.5",
+ "source-map": "~0.6.1"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "jest-matcher-utils": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
- "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.1",
- "jest-diff": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
- }
- },
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
- "dev": true,
- "requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
- }
}
}
},
- "expect-puppeteer": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz",
- "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==",
+ "babel-plugin-react-native-classname-to-style": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-classname-to-style/-/babel-plugin-react-native-classname-to-style-1.2.2.tgz",
+ "integrity": "sha512-kavZRZ56YoYmrwuCRMY0UuCYfMPszoN7v0DLST1D+rTqkl+cFWVW3W8l//AfWsyMNHkY+UTX+RrB5K7GY9mq3w==",
"dev": true
},
- "express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "babel-plugin-react-native-platform-specific-extensions": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-platform-specific-extensions/-/babel-plugin-react-native-platform-specific-extensions-1.1.1.tgz",
+ "integrity": "sha512-ZNN2ImlUlcaPMfzaCw9fWmTc/Ht5ARI0n9RUqiyCdK7LalPJ7yKc+F60BcSHvMHcmA2BgVO8TpSot+dpeZPAMQ==",
"dev": true,
"requires": {
- "accepts": "~1.3.7",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
- "content-type": "~1.0.4",
- "cookie": "0.4.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
- "dev": true,
- "requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "http-errors": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
- "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
- "dev": true,
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true
- },
- "mime-db": {
- "version": "1.43.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
- "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.26",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
- "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
- "dev": true,
- "requires": {
- "mime-db": "1.43.0"
- }
- },
- "negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
- "dev": true
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true
- },
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
- "dev": true
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true
- },
- "send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
- "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.7.2",
- "mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
- }
- }
- },
- "serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
- "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
- "dev": true,
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.1"
- }
- },
- "setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
- "dev": true
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
- "dev": true
- }
+ "@babel/template": "^7.0.0-beta.49"
}
},
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "babel-plugin-require-context-hook": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.0.tgz",
+ "integrity": "sha512-EMZD1563QUqLhzrqcThk759RhuNVX/ZJdrtGK6drwzgvnR+ARjWyXIHPbu+tUNaMGtPz/gQeAM2M6VUw2UiUeA==",
"dev": true
},
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ },
+ "babel-plugin-transform-inline-consecutive-adds": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz",
+ "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=",
+ "dev": true
+ },
+ "babel-plugin-transform-member-expression-literals": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz",
+ "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=",
+ "dev": true
+ },
+ "babel-plugin-transform-merge-sibling-variables": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz",
+ "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=",
+ "dev": true
+ },
+ "babel-plugin-transform-minify-booleans": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz",
+ "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=",
+ "dev": true
+ },
+ "babel-plugin-transform-property-literals": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz",
+ "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=",
+ "dev": true,
"requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "esutils": "^2.0.2"
+ }
+ },
+ "babel-plugin-transform-regexp-constructors": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz",
+ "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=",
+ "dev": true
+ },
+ "babel-plugin-transform-remove-console": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz",
+ "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=",
+ "dev": true
+ },
+ "babel-plugin-transform-remove-debugger": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz",
+ "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=",
+ "dev": true
+ },
+ "babel-plugin-transform-remove-undefined": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz",
+ "integrity": "sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ==",
+ "dev": true,
+ "requires": {
+ "babel-helper-evaluate-path": "^0.5.0"
+ }
+ },
+ "babel-plugin-transform-simplify-comparison-operators": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz",
+ "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=",
+ "dev": true
+ },
+ "babel-plugin-transform-undefined-to-void": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz",
+ "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=",
+ "dev": true
+ },
+ "babel-preset-current-node-syntax": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz",
+ "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "babel-preset-fbjs": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz",
+ "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==",
+ "requires": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
+ "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "babel-plugin-jest-hoist": "^24.9.0"
+ }
+ },
+ "babel-preset-minify": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz",
+ "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-minify-builtins": "^0.5.0",
+ "babel-plugin-minify-constant-folding": "^0.5.0",
+ "babel-plugin-minify-dead-code-elimination": "^0.5.1",
+ "babel-plugin-minify-flip-comparisons": "^0.4.3",
+ "babel-plugin-minify-guarded-expressions": "^0.4.4",
+ "babel-plugin-minify-infinity": "^0.4.3",
+ "babel-plugin-minify-mangle-names": "^0.5.0",
+ "babel-plugin-minify-numeric-literals": "^0.4.3",
+ "babel-plugin-minify-replace": "^0.5.0",
+ "babel-plugin-minify-simplify": "^0.5.1",
+ "babel-plugin-minify-type-constructors": "^0.4.3",
+ "babel-plugin-transform-inline-consecutive-adds": "^0.4.3",
+ "babel-plugin-transform-member-expression-literals": "^6.9.4",
+ "babel-plugin-transform-merge-sibling-variables": "^6.9.4",
+ "babel-plugin-transform-minify-booleans": "^6.9.4",
+ "babel-plugin-transform-property-literals": "^6.9.4",
+ "babel-plugin-transform-regexp-constructors": "^0.4.3",
+ "babel-plugin-transform-remove-console": "^6.9.4",
+ "babel-plugin-transform-remove-debugger": "^6.9.4",
+ "babel-plugin-transform-remove-undefined": "^0.5.0",
+ "babel-plugin-transform-simplify-comparison-operators": "^6.9.4",
+ "babel-plugin-transform-undefined-to-void": "^6.9.4",
+ "lodash": "^4.17.11"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
},
"dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
}
}
},
- "external-editor": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
- "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"dev": true,
"requires": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
},
"dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
}
}
},
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "bail": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz",
+ "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"requires": {
- "array-unique": "^0.3.2",
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
"define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
},
"dependencies": {
"define-property": {
@@ -22453,14 +22178,6 @@
"is-descriptor": "^1.0.0"
}
},
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
"is-accessor-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
@@ -22489,395 +22206,224 @@
}
}
},
- "extract-zip": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
- "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
- "dev": true,
- "requires": {
- "concat-stream": "1.6.2",
- "debug": "2.6.9",
- "mkdirp": "0.5.1",
- "yauzl": "2.4.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
- "extsprintf": {
+ "base64-js": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
},
- "fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
"requires": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
+ "safe-buffer": "5.1.2"
}
},
- "fast-average-color": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-4.3.0.tgz",
- "integrity": "sha512-k8FXd6+JeXoItmdNqB3hMwFgArryjdYBLuzEM8fRY/oztd/051yhSHU6GUrMOfIQU9dDHyFDcIAkGrQKlYtpDA=="
- },
- "fast-base64-decode": {
+ "batch-processor": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz",
- "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q=="
- },
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
- "dev": true
- },
- "fast-diff": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
- "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz",
+ "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=",
"dev": true
},
- "fast-glob": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
- "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dev": true,
+ "optional": true,
"requires": {
- "@mrmlnc/readdir-enhanced": "^2.2.1",
- "@nodelib/fs.stat": "^1.1.2",
- "glob-parent": "^3.1.0",
- "is-glob": "^4.0.0",
- "merge2": "^1.2.3",
- "micromatch": "^3.1.10"
+ "tweetnacl": "^0.14.3"
}
},
- "fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "before-after-hook": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz",
+ "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==",
"dev": true
},
- "fast-memoize": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.1.tgz",
- "integrity": "sha512-xdmw296PCL01tMOXx9mdJSmWY29jQgxyuZdq0rEHMu+Tpe1eOEtCycoG6chzlcrWsNgpZP7oL8RiQr7+G6Bl6g=="
- },
- "fastq": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz",
- "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.0"
- }
- },
- "fault": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz",
- "integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==",
+ "benchmark": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz",
+ "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=",
"dev": true,
"requires": {
- "format": "^0.2.2"
+ "lodash": "^4.17.4",
+ "platform": "^1.3.3"
}
},
- "faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "bfj": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz",
+ "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==",
"dev": true,
"requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "fb-watchman": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
- "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
- "requires": {
- "bser": "^2.0.0"
- }
- },
- "fbjs": {
- "version": "0.8.17",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
- "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
- "requires": {
- "core-js": "^1.0.0",
- "isomorphic-fetch": "^2.1.1",
- "loose-envify": "^1.0.0",
- "object-assign": "^4.1.0",
- "promise": "^7.1.1",
- "setimmediate": "^1.0.5",
- "ua-parser-js": "^0.7.18"
+ "bluebird": "^3.5.5",
+ "check-types": "^8.0.3",
+ "hoopy": "^0.1.4",
+ "tryer": "^1.0.1"
},
"dependencies": {
- "core-js": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
- "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
}
}
},
- "fbjs-css-vars": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
- "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ "big-integer": {
+ "version": "1.6.48",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
+ "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
},
- "fbjs-scripts": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz",
- "integrity": "sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ==",
- "requires": {
- "@babel/core": "^7.0.0",
- "ansi-colors": "^1.0.1",
- "babel-preset-fbjs": "^3.2.0",
- "core-js": "^2.4.1",
- "cross-spawn": "^5.1.0",
- "fancy-log": "^1.3.2",
- "object-assign": "^4.0.1",
- "plugin-error": "^0.1.2",
- "semver": "^5.1.0",
- "through2": "^2.0.0"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
- "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- }
- }
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
},
- "fd-slicer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
- "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "binary": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
"dev": true,
"requires": {
- "pend": "~1.2.0"
+ "buffers": "~0.1.1",
+ "chainsaw": "~0.1.0"
}
},
- "figgy-pudding": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
- "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+ "binary-extensions": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz",
+ "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==",
"dev": true
},
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
"requires": {
- "escape-string-regexp": "^1.0.5"
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
}
},
- "file-entry-cache": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
- "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true,
"requires": {
- "flat-cache": "^2.0.1"
+ "inherits": "~2.0.0"
}
},
- "file-loader": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
- "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==",
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
+ "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
"dev": true,
"requires": {
- "loader-utils": "^1.2.3",
- "schema-utils": "^2.5.0"
+ "continuable-cache": "^0.3.1",
+ "error": "^7.0.0",
+ "raw-body": "~1.1.0",
+ "safe-json-parse": "~1.0.1"
},
"dependencies": {
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
"dev": true
},
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
"dev": true,
"requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^2.0.0",
- "json5": "^1.0.1"
+ "bytes": "1",
+ "string_decoder": "0.10"
}
},
- "schema-utils": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
- "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
- "dev": true,
- "requires": {
- "ajv": "^6.10.2",
- "ajv-keywords": "^3.4.1"
- }
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
}
}
},
- "file-saver": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
- "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
- },
- "file-system-cache": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz",
- "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=",
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"dev": true,
"requires": {
- "bluebird": "^3.3.5",
- "fs-extra": "^0.30.0",
- "ramda": "^0.21.0"
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
},
"dependencies": {
- "fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0",
- "path-is-absolute": "^1.0.0",
- "rimraf": "^2.2.8"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
+ "ms": "2.0.0"
}
},
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
}
},
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.6"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
- "ramda": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz",
- "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=",
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
"dev": true
- }
- }
- },
- "filesize": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
- "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
- "dev": true
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
},
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
"dev": true
},
"statuses": {
@@ -22888,2058 +22434,1875 @@
}
}
},
- "find-cache-dir": {
+ "body-scroll-lock": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-3.0.2.tgz",
+ "integrity": "sha512-PtItUun94iIupKry8J/h6SfRCLWZnly77KbPsTSKALmxfR282L8R0Ujkv7bydSZvLxAJS4sBJ3y/E6X8gYkGrQ=="
+ },
+ "boolbase": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
- "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "boxen": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
+ "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
"dev": true,
"requires": {
- "commondir": "^1.0.1",
- "make-dir": "^1.0.0",
- "pkg-dir": "^2.0.0"
+ "ansi-align": "^3.0.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "cli-boxes": "^2.2.0",
+ "string-width": "^4.1.0",
+ "term-size": "^2.1.0",
+ "type-fest": "^0.8.1",
+ "widest-line": "^3.1.0"
},
"dependencies": {
- "make-dir": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
- "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "pify": "^3.0.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
- }
- },
- "find-file-up": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
- "integrity": "sha1-z2gJG8+fMApA2kEbN9pczlovvqA=",
- "dev": true,
- "requires": {
- "fs-exists-sync": "^0.1.0",
- "resolve-dir": "^0.1.0"
- }
- },
- "find-parent-dir": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz",
- "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=",
- "dev": true
- },
- "find-pkg": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
- "integrity": "sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=",
- "dev": true,
- "requires": {
- "find-file-up": "^0.1.2"
- }
- },
- "find-process": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.3.tgz",
- "integrity": "sha512-+IA+AUsQCf3uucawyTwMWcY+2M3FXq3BRvw3S+j5Jvydjk31f/+NPWpYZOJs+JUs2GvxH4Yfr6Wham0ZtRLlPA==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.1",
- "commander": "^2.11.0",
- "debug": "^2.6.8"
- },
- "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
"chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "color-name": "~1.1.4"
}
- }
- }
- },
- "find-root": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
- "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "findup": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz",
- "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=",
- "dev": true,
- "requires": {
- "colors": "~0.6.0-1",
- "commander": "~2.1.0"
- },
- "dependencies": {
- "colors": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
- "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "commander": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
- "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=",
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
- }
- }
- },
- "findup-sync": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
- "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
- "dev": true,
- "requires": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
- },
- "dependencies": {
- "expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
},
- "global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
}
},
- "global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
+ "ansi-regex": "^5.0.0"
}
},
- "resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
+ "has-flag": "^4.0.0"
}
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
}
}
},
- "flat-cache": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
- "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
- "dev": true,
+ "bplist-creator": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
+ "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==",
"requires": {
- "flatted": "^2.0.0",
- "rimraf": "2.6.3",
- "write": "1.0.3"
+ "stream-buffers": "~2.2.0"
+ }
+ },
+ "bplist-parser": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+ "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+ "requires": {
+ "big-integer": "^1.6.44"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
},
"dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "dev": true,
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
- "glob": "^7.1.3"
+ "is-extendable": "^0.1.0"
}
}
}
},
- "flatted": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
- "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
+ "brcast": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brcast/-/brcast-2.0.2.tgz",
+ "integrity": "sha512-Tfn5JSE7hrUlFcOoaLzVvkbgIemIorMIyoMr3TgvszWW7jFt2C9PdeMLtysYD9RU0MmU17b69+XJG1eRY2OBRg=="
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
"dev": true
},
- "flow-parser": {
- "version": "0.116.1",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.116.1.tgz",
- "integrity": "sha512-uMbaTjiMhBKa/il1esHyWyVVWfrWdG/eLmG62MQulZ59Yghpa30H1tmukFZLptsBafZ8ddiPyf7I+SiA+euZ6A==",
+ "browser-process-hrtime": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
+ "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=",
"dev": true
},
- "flush-write-stream": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
- "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "browser-resolve": {
+ "version": "1.11.3",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
+ "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
+ "dev": true,
+ "requires": {
+ "resolve": "1.1.7"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
"dev": true,
"requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
"inherits": "^2.0.1",
- "readable-stream": "^2.0.4"
+ "safe-buffer": "^5.0.1"
}
},
- "focus-lock": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.6.tgz",
- "integrity": "sha512-Dx69IXGCq1qsUExWuG+5wkiMqVM/zGx/reXSJSLogECwp3x6KeNQZ+NAetgxEFpnC41rD8U3+jRCW68+LNzdtw==",
- "dev": true
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
},
- "for-in": {
+ "browserify-des": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
},
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
"dev": true,
"requires": {
- "for-in": "^1.0.1"
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
}
},
- "foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
},
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
},
- "fork-ts-checker-webpack-plugin": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz",
- "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==",
+ "browserslist": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz",
+ "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==",
"dev": true,
"requires": {
- "babel-code-frame": "^6.22.0",
- "chalk": "^2.4.1",
- "chokidar": "^2.0.4",
- "micromatch": "^3.1.10",
- "minimatch": "^3.0.4",
- "semver": "^5.6.0",
- "tapable": "^1.0.0",
- "worker-rpc": "^0.1.0"
+ "caniuse-lite": "^1.0.30001030",
+ "electron-to-chromium": "^1.3.363",
+ "node-releases": "^1.1.50"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "caniuse-lite": {
+ "version": "1.0.30001032",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001032.tgz",
+ "integrity": "sha512-8joOm7BwcpEN4BfVHtfh0hBXSAPVYk+eUIcNntGtMkUWy/6AKRCDZINCLe3kB1vHhT2vBxBF85Hh9VlPXi/qjA==",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "1.1.51",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.51.tgz",
+ "integrity": "sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "semver": "^6.3.0"
}
},
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
},
- "form-data": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
- "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
- "dev": true,
+ "bser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
+ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
"requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "1.0.6",
- "mime-types": "^2.1.12"
+ "node-int64": "^0.4.0"
}
},
- "format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=",
- "dev": true
- },
- "forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=",
"dev": true
},
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
"requires": {
- "map-cache": "^0.2.2"
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
}
},
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
- },
- "from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
"dev": true,
"requires": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
}
},
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
"dev": true
},
- "fs-exists-sync": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
- "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
"dev": true
},
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "dev": true
- }
- }
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ=="
},
- "fs-minipass": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
- "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
- "requires": {
- "minipass": "^2.2.1"
- }
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
},
- "fs-write-stream-atomic": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
- "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "iferr": "^0.1.5",
- "imurmurhash": "^0.1.4",
- "readable-stream": "1 || 2"
- }
+ "buffers": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
+ "dev": true
},
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
},
- "fsevents": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
- "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
- "optional": true,
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
+ "dev": true
+ },
+ "byline": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
+ "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
+ "dev": true
+ },
+ "byte-size": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz",
+ "integrity": "sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
+ },
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "dev": true,
"requires": {
- "nan": "^2.12.1",
- "node-pre-gyp": "^0.12.0"
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
},
"dependencies": {
- "chownr": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
- "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
- "optional": true
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "optional": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "optional": true,
- "requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node-pre-gyp": {
- "version": "0.12.0",
- "resolved": false,
- "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
- "optional": true,
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
"requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.1",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.2.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
+ "glob": "^7.1.3"
},
"dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "optional": true,
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
"requires": {
- "glob": "^7.1.3"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
},
- "nopt": {
- "version": "4.0.1",
- "resolved": false,
- "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
- "optional": true,
- "requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "optional": true
- },
- "tar": {
- "version": "4.4.13",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
- "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
- "optional": true,
- "requires": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.8.6",
- "minizlib": "^1.2.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.3"
- }
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "optional": true
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
}
}
},
- "fstream": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
- "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "cacheable-lookup": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz",
+ "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "inherits": "~2.0.0",
- "mkdirp": ">=0.5 0",
- "rimraf": "2"
+ "@types/keyv": "^3.1.1",
+ "keyv": "^4.0.0"
+ }
+ },
+ "cacheable-request": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz",
+ "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^2.0.0"
},
"dependencies": {
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "pump": "^3.0.0"
}
},
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": {
- "glob": "^7.1.3"
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
}
}
},
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
},
- "function.prototype.name": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz",
- "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==",
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
"requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "is-callable": "^1.1.3"
+ "callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
+ }
}
},
- "functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
- "dev": true
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
},
- "functions-have-names": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz",
- "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==",
+ "callsite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+ "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
"dev": true
},
- "fuse.js": {
- "version": "3.4.6",
- "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.4.6.tgz",
- "integrity": "sha512-H6aJY4UpLFwxj1+5nAvufom5b2BT2v45P1MkPvdGIK8fWjQx/7o6tTT1+ALV0yawQvbmvCF0ufl2et8eJ7v7Cg==",
+ "callsites": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz",
+ "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw=="
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
+ },
+ "camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
"dev": true
},
- "gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "dev": true,
"requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
}
},
- "gaze": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
- "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "camelize": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
+ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
+ },
+ "can-use-dom": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz",
+ "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=",
+ "dev": true
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
"dev": true,
"requires": {
- "globule": "^1.0.0"
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
}
},
- "genfun": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
- "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==",
+ "caniuse-lite": {
+ "version": "1.0.30000998",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000998.tgz",
+ "integrity": "sha512-8Tj5sPZR9kMHeDD9SZXIVr5m9ofufLLCG2Y4QwQrH18GIwG+kCc+zYdlR036ZRkuKjVVetyxeAgGA1xF7XdmzQ==",
"dev": true
},
- "gensync": {
- "version": "1.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
- "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="
+ "capture-exit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
+ "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
+ "requires": {
+ "rsvp": "^4.8.4"
+ }
},
- "get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
+ "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==",
+ "dev": true
},
- "get-own-enumerable-property-symbols": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz",
- "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==",
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
- "get-pkg-repo": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz",
- "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=",
+ "ccount": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz",
+ "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==",
+ "dev": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"dev": true,
"requires": {
- "hosted-git-info": "^2.1.4",
- "meow": "^3.3.0",
- "normalize-package-data": "^2.3.0",
- "parse-github-repo-url": "^1.3.0",
- "through2": "^2.0.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "dev": true
- },
- "camelcase-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chainsaw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
+ "dev": true,
+ "requires": {
+ "traverse": ">=0.3.0 <0.4"
+ },
+ "dependencies": {
+ "traverse": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
+ "dev": true
+ }
+ }
+ },
+ "chalk": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+ "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "camelcase": "^2.0.0",
- "map-obj": "^1.0.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "indent-string": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
- "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "repeating": "^2.0.0"
+ "color-name": "~1.1.4"
}
},
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "meow": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
- "dev": true,
- "requires": {
- "camelcase-keys": "^2.0.0",
- "decamelize": "^1.1.2",
- "loud-rejection": "^1.0.0",
- "map-obj": "^1.0.1",
- "minimist": "^1.1.3",
- "normalize-package-data": "^2.3.4",
- "object-assign": "^4.0.1",
- "read-pkg-up": "^1.0.1",
- "redent": "^1.0.0",
- "trim-newlines": "^1.0.0"
- }
- },
- "redent": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
- "dev": true,
- "requires": {
- "indent-string": "^2.1.0",
- "strip-indent": "^1.0.1"
- }
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
},
- "strip-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "get-stdin": "^4.0.1"
+ "has-flag": "^4.0.0"
}
- },
- "trim-newlines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
- "dev": true
}
}
},
- "get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "character-entities": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz",
+ "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==",
"dev": true
},
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ "character-entities-html4": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz",
+ "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==",
+ "dev": true
},
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ "character-entities-legacy": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz",
+ "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==",
+ "dev": true
},
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "character-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
+ "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
"dev": true,
"requires": {
- "assert-plus": "^1.0.0"
+ "is-regex": "^1.0.3"
}
},
- "gettext-parser": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
- "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
- "requires": {
- "encoding": "^0.1.12",
- "safe-buffer": "^5.1.1"
- }
+ "character-reference-invalid": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz",
+ "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==",
+ "dev": true
},
- "git-raw-commits": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz",
- "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==",
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "check-node-version": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-3.2.0.tgz",
+ "integrity": "sha512-mJu4dADRf+NUeOyGgFTXaLtjyyffD3Eej2RA9IEk1CdHmoVurErLD++e/Ps6uKfsB273ky+0Z9NlOiuplxuNdw==",
"dev": true,
"requires": {
- "dargs": "^4.0.1",
- "lodash.template": "^4.0.2",
- "meow": "^4.0.0",
- "split2": "^2.0.0",
- "through2": "^2.0.0"
+ "chalk": "^2.3.0",
+ "map-values": "^1.0.1",
+ "minimist": "^1.2.0",
+ "object-filter": "^1.0.2",
+ "object.assign": "^4.0.4",
+ "run-parallel": "^1.1.4",
+ "semver": "^5.0.3"
},
"dependencies": {
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "meow": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
- "dev": true,
- "requires": {
- "camelcase-keys": "^4.0.0",
- "decamelize-keys": "^1.0.0",
- "loud-rejection": "^1.0.0",
- "minimist": "^1.1.3",
- "minimist-options": "^3.0.1",
- "normalize-package-data": "^2.3.4",
- "read-pkg-up": "^3.0.0",
- "redent": "^2.0.0",
- "trim-newlines": "^2.0.0"
- }
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- }
- },
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
}
},
- "git-remote-origin-url": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
- "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=",
- "dev": true,
- "requires": {
- "gitconfiglocal": "^1.0.0",
- "pify": "^2.3.0"
- }
+ "check-types": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
+ "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==",
+ "dev": true
},
- "git-semver-tags": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz",
- "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==",
+ "cheerio": {
+ "version": "1.0.0-rc.3",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
+ "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
"dev": true,
"requires": {
- "meow": "^4.0.0",
- "semver": "^6.0.0"
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.1",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash": "^4.15.0",
+ "parse5": "^3.0.1"
},
"dependencies": {
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "meow": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
- "dev": true,
- "requires": {
- "camelcase-keys": "^4.0.0",
- "decamelize-keys": "^1.0.0",
- "loud-rejection": "^1.0.0",
- "minimist": "^1.1.3",
- "minimist-options": "^3.0.1",
- "normalize-package-data": "^2.3.4",
- "read-pkg-up": "^3.0.0",
- "redent": "^2.0.0",
- "trim-newlines": "^2.0.0"
- }
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- }
- },
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
}
- },
- "strip-bom": {
+ }
+ }
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "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"
+ },
+ "dependencies": {
+ "normalize-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
}
}
},
- "git-up": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz",
- "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==",
+ "chownr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
+ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+ "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
"dev": true,
"requires": {
- "is-ssh": "^1.3.0",
- "parse-url": "^5.0.0"
+ "tslib": "^1.9.0"
}
},
- "git-url-parse": {
- "version": "11.1.2",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz",
- "integrity": "sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==",
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"dev": true,
"requires": {
- "git-up": "^4.0.0"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "gitconfiglocal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
- "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=",
- "dev": true,
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"requires": {
- "ini": "^1.3.2"
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
}
},
- "github-slugger": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.2.1.tgz",
- "integrity": "sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ==",
+ "classnames": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz",
+ "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0="
+ },
+ "clean-css": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
"dev": true,
"requires": {
- "emoji-regex": ">=6.0.0 <=6.1.1"
+ "source-map": "~0.6.0"
},
"dependencies": {
- "emoji-regex": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz",
- "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=",
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
}
}
},
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true
+ },
+ "cli-boxes": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz",
+ "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "restore-cursor": "^2.0.0"
}
},
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "cli-spinners": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz",
+ "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ=="
+ },
+ "cli-table3": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
+ "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
"dev": true,
"requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
+ "colors": "^1.1.2",
+ "object-assign": "^4.1.0",
+ "string-width": "^2.1.1"
},
"dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true,
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
+ "optional": true
}
}
},
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "cli-truncate": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+ "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
"dev": true,
"requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
+ "slice-ansi": "0.0.4",
+ "string-width": "^1.0.1"
},
"dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "is-extglob": "^2.1.0"
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
}
}
}
},
- "glob-to-regexp": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
- "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
- "dev": true
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
},
- "global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dev": true,
+ "clipboard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz",
+ "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==",
"requires": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
+ "good-listener": "^1.2.2",
+ "select": "^1.1.2",
+ "tiny-emitter": "^2.0.0"
}
},
- "global-cache": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/global-cache/-/global-cache-1.2.1.tgz",
- "integrity": "sha512-EOeUaup5DgWKlCMhA9YFqNRIlZwoxt731jCh47WBV9fQqHgXhr3Fa55hfgIUqilIcPsfdNKN7LHjrNY+Km40KA==",
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
"requires": {
- "define-properties": "^1.1.2",
- "is-symbol": "^1.0.1"
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
}
},
- "global-modules": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
- "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
+ },
+ "clone-deep": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
"dev": true,
"requires": {
- "global-prefix": "^3.0.0"
+ "for-own": "^1.0.0",
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.0",
+ "shallow-clone": "^1.0.0"
+ },
+ "dependencies": {
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ }
}
},
- "global-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
- "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "clone-regexp": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz",
+ "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==",
"dev": true,
"requires": {
- "ini": "^1.3.5",
- "kind-of": "^6.0.2",
- "which": "^1.3.1"
+ "is-regexp": "^1.0.0",
+ "is-supported-regexp-flag": "^1.0.0"
}
},
- "globals": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.0.0.tgz",
- "integrity": "sha512-c9xoi32iDwlETiyYfO0pd3M8GcEuytJinSoqq7k3fz4H8p2p31NyfKr7JVd7Y0QvmtWcWXcwqW4L33eeDYgh1A==",
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"dev": true,
"requires": {
- "type-fest": "^0.6.0"
+ "mimic-response": "^1.0.0"
},
"dependencies": {
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
}
}
},
- "globalthis": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz",
- "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
- "requires": {
- "object-keys": "^1.0.12"
- }
- }
- }
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
},
- "globby": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
- "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+ "coa": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
+ "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
"dev": true,
"requires": {
- "@types/glob": "^7.1.1",
- "array-union": "^1.0.2",
- "dir-glob": "^2.2.2",
- "fast-glob": "^2.2.6",
- "glob": "^7.1.3",
- "ignore": "^4.0.3",
- "pify": "^4.0.1",
- "slash": "^2.0.0"
+ "@types/q": "^1.5.1",
+ "chalk": "^2.4.1",
+ "q": "^1.1.2"
},
"dependencies": {
- "dir-glob": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
- "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
- "dev": true,
- "requires": {
- "path-type": "^3.0.0"
- }
- },
- "glob": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
- "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
- },
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
- "dev": true
}
}
},
- "globjoin": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
- "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "collapse-white-space": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz",
+ "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==",
"dev": true
},
- "globule": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
- "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
- "dev": true,
+ "collect-v8-coverage": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz",
+ "integrity": "sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ==",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
"requires": {
- "glob": "~7.1.1",
- "lodash": "~4.17.10",
- "minimatch": "~3.0.2"
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
}
},
- "gonzales-pe": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz",
- "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==",
+ "color": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
"dev": true,
"requires": {
- "minimist": "1.1.x"
- },
- "dependencies": {
- "minimist": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
- "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
- "dev": true
- }
+ "clone": "^1.0.2",
+ "color-convert": "^1.3.0",
+ "color-string": "^0.3.0"
}
},
- "good-listener": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
- "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
+ "color-convert": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
+ "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
"requires": {
- "delegate": "^3.1.2"
+ "color-name": "1.1.1"
}
},
- "got": {
- "version": "10.7.0",
- "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz",
- "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==",
+ "color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok="
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
"dev": true,
"requires": {
- "@sindresorhus/is": "^2.0.0",
- "@szmarczak/http-timer": "^4.0.0",
- "@types/cacheable-request": "^6.0.1",
- "cacheable-lookup": "^2.0.0",
- "cacheable-request": "^7.0.1",
- "decompress-response": "^5.0.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^5.0.0",
- "lowercase-keys": "^2.0.0",
- "mimic-response": "^2.1.0",
- "p-cancelable": "^2.0.0",
- "p-event": "^4.0.0",
- "responselike": "^2.0.0",
- "to-readable-stream": "^2.0.0",
- "type-fest": "^0.10.0"
+ "color-name": "^1.0.0"
+ }
+ },
+ "color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
+ },
+ "colorette": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz",
+ "integrity": "sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg=="
+ },
+ "colors": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
+ "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
+ "dev": true
+ },
+ "columnify": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz",
+ "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "^3.0.0",
+ "wcwidth": "^1.0.0"
},
"dependencies": {
- "get-stream": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
- "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
},
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "ansi-regex": "^2.0.0"
}
- },
- "type-fest": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz",
- "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==",
- "dev": true
}
}
},
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
},
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "comma-separated-tokens": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz",
+ "integrity": "sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ==",
"dev": true
},
- "gradient-parser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-0.1.5.tgz",
- "integrity": "sha1-DH4heVWeXOfY1x9EI6+TcQCyJIw="
+ "command-exists": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz",
+ "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw=="
},
- "growly": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
- "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="
+ "commander": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz",
+ "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==",
+ "dev": true
},
- "gud": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
- "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==",
+ "comment-parser": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.2.tgz",
+ "integrity": "sha512-4Rjb1FnxtOcv9qsfuaNuVsmmVn4ooVoBHzYfyKteiXwIU84PClyGA5jASoFMwPV93+FPh9spwueXauxFJZkGAg==",
"dev": true
},
- "gzip-size": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
- "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ },
+ "compare-func": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
+ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
"dev": true,
"requires": {
- "duplexer": "^0.1.1",
- "pify": "^4.0.1"
+ "array-ify": "^1.0.0",
+ "dot-prop": "^3.0.0"
},
"dependencies": {
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
+ "dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
}
}
},
- "handlebars": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.0.tgz",
- "integrity": "sha512-xkRtOt3/3DzTKMOt3xahj2M/EqNhY988T+imYSlMgs5fVhLN2fmKVVj0LtEGmb+3UUYV5Qmm1052Mm3dIQxOvw==",
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "compress-commons": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
+ "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
"dev": true,
"requires": {
- "neo-async": "^2.6.0",
- "optimist": "^0.6.1",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4"
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^3.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.3.6"
},
"dependencies": {
- "neo-async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
- "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
}
}
},
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "dev": true
- },
- "har-validator": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
- "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
- "dev": true,
- "requires": {
- "ajv": "^6.5.5",
- "har-schema": "^2.0.0"
- }
- },
- "hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "dev": true
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
+ "compressible": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
+ "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
"requires": {
- "ansi-regex": "^2.0.0"
+ "mime-db": ">= 1.40.0 < 2"
},
"dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
+ "mime-db": {
+ "version": "1.42.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
+ "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
}
}
},
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
- },
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- }
- },
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
"requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
},
"dependencies": {
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
- "is-buffer": "^1.1.5"
+ "ms": "2.0.0"
}
}
}
},
- "hash-base": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
- "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
+ "compute-scroll-into-view": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz",
+ "integrity": "sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A=="
},
- "hash-sum": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
- "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
- "dev": true
+ "computed-style": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz",
+ "integrity": "sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ="
},
- "hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
+ "buffer-from": "^1.0.0",
"inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
},
- "hast-to-hyperscript": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz",
- "integrity": "sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==",
+ "concurrently": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.0.tgz",
+ "integrity": "sha1-jPG3cHppFqeKT/W3e7BN7FSzebI=",
"dev": true,
"requires": {
- "comma-separated-tokens": "^1.0.0",
- "property-information": "^5.3.0",
- "space-separated-tokens": "^1.0.0",
- "style-to-object": "^0.2.1",
- "unist-util-is": "^3.0.0",
- "web-namespaces": "^1.1.2"
+ "chalk": "0.5.1",
+ "commander": "2.6.0",
+ "date-fns": "^1.23.0",
+ "lodash": "^4.5.1",
+ "rx": "2.3.24",
+ "spawn-command": "^0.0.2-1",
+ "supports-color": "^3.2.3",
+ "tree-kill": "^1.1.0"
},
"dependencies": {
- "style-to-object": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz",
- "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==",
+ "ansi-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
"dev": true,
"requires": {
- "inline-style-parser": "0.1.1"
+ "ansi-styles": "^1.1.0",
+ "escape-string-regexp": "^1.0.0",
+ "has-ansi": "^0.1.0",
+ "strip-ansi": "^0.3.0",
+ "supports-color": "^0.2.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
+ "dev": true
+ }
}
},
- "unist-util-is": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "commander": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
+ "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=",
+ "dev": true
+ },
+ "has-ansi": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^0.2.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
+ },
+ "strip-ansi": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^0.2.1"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
}
}
},
- "hast-util-from-parse5": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.2.tgz",
- "integrity": "sha512-YXFjoRS7ES7PEoLx6uihtSfKTO1s3z/tzGiV5cVpsUiihduogFXubNRCzTIW3yOOGO1nws9CxPq4MbwD39Uo+w==",
+ "config-chain": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
+ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
"dev": true,
"requires": {
- "ccount": "^1.0.3",
- "hastscript": "^5.0.0",
- "property-information": "^5.0.0",
- "web-namespaces": "^1.1.2",
- "xtend": "^4.0.1"
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
}
},
- "hast-util-parse-selector": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz",
- "integrity": "sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==",
- "dev": true
- },
- "hast-util-raw": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-5.0.1.tgz",
- "integrity": "sha512-iHo7G6BjRc/GU1Yun5CIEXjil0wVnIbz11C6k0JdDichSDMtYi2+NNtk6YN7EOP0JfPstX30d3pRLfaJv5CkdA==",
- "dev": true,
+ "connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
"requires": {
- "hast-util-from-parse5": "^5.0.0",
- "hast-util-to-parse5": "^5.0.0",
- "html-void-elements": "^1.0.1",
- "parse5": "^5.0.0",
- "unist-util-position": "^3.0.0",
- "web-namespaces": "^1.0.0",
- "xtend": "^4.0.1",
- "zwitch": "^1.0.0"
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
},
"dependencies": {
- "parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "dev": true
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "statuses": {
+ "version": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
}
}
},
- "hast-util-to-parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-5.1.1.tgz",
- "integrity": "sha512-ivCeAd5FCXr7bapJIVsWMnx/EmbjkkW2TU2hd1prq+jGwiaUoK+FcpjyPNwsC5ogzCwWO669tOqIovGeLc/ntg==",
- "dev": true,
- "requires": {
- "hast-to-hyperscript": "^7.0.0",
- "property-information": "^5.0.0",
- "web-namespaces": "^1.0.0",
- "xtend": "^4.0.1",
- "zwitch": "^1.0.0"
- }
- },
- "hastscript": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.1.tgz",
- "integrity": "sha512-xHo1Hkcqd0LlWNuDL3/BxwhgAGp3d7uEvCMgCTrBY+zsOooPPH+8KAvW8PCgl+GB8H3H44nfSaF0A4BQ+4xlYg==",
- "dev": true,
- "requires": {
- "comma-separated-tokens": "^1.0.0",
- "hast-util-parse-selector": "^2.0.0",
- "property-information": "^5.0.0",
- "space-separated-tokens": "^1.0.0"
- }
- },
- "he": {
+ "console-browserify": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
"dev": true
},
- "hermes-engine": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.2.1.tgz",
- "integrity": "sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ=="
- },
- "hex-color-regex": {
+ "console-control-strings": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
- "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
- "dev": true
- },
- "highlight.js": {
- "version": "9.13.1",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz",
- "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==",
- "dev": true
- },
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "requires": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
- "hoist-non-react-statics": {
- "version": "2.5.5",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
- "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
+ "consolidated-events": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz",
+ "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ=="
},
- "homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "constantinople": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
+ "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
"dev": true,
"requires": {
- "parse-passwd": "^1.0.0"
+ "@types/babel-types": "^7.0.0",
+ "@types/babylon": "^6.16.2",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0"
}
},
- "hoopy": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
- "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
- },
- "hpq": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.3.0.tgz",
- "integrity": "sha512-fvYTvdCFOWQupGxqkahrkA+ERBuMdzkxwtUdKrxR6rmMd4Pfl+iZ1QiQYoaZ0B/v0y59MOMnz3XFUWbT50/NWA=="
- },
- "hsl-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
- "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
- "dev": true
- },
- "hsla-regex": {
+ "constants-browserify": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
- "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
"dev": true
},
- "html-comment-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
- "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "contains-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
"dev": true
},
- "html-element-map": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.2.0.tgz",
- "integrity": "sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw==",
- "dev": true,
- "requires": {
- "array-filter": "^1.0.0"
- }
- },
- "html-encoding-sniffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
- "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
"dev": true,
"requires": {
- "whatwg-encoding": "^1.0.1"
+ "safe-buffer": "5.1.2"
}
},
- "html-entities": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
- "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
- "html-escaper": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz",
- "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==",
+ "continuable-cache": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
+ "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
"dev": true
},
- "html-minifier-terser": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz",
- "integrity": "sha512-VAaitmbBuHaPKv9bj47XKypRhgDxT/cDLvsPiiF7w+omrN3K0eQhpigV9Z1ilrmHa9e0rOYcD6R/+LCDADGcnQ==",
+ "conventional-changelog-angular": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.5.tgz",
+ "integrity": "sha512-RrkdWnL/TVyWV1ayWmSsrWorsTDqjL/VwG5ZSEneBQrd65ONcfeA1cW7FLtNweQyMiKOyriCMTKRSlk18DjTrw==",
"dev": true,
"requires": {
- "camel-case": "^3.0.0",
- "clean-css": "^4.2.1",
- "commander": "^4.0.0",
- "he": "^1.2.0",
- "param-case": "^2.1.1",
- "relateurl": "^0.2.7",
- "terser": "^4.3.9"
- },
- "dependencies": {
- "commander": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz",
- "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==",
- "dev": true
- }
+ "compare-func": "^1.3.1",
+ "q": "^1.5.1"
}
},
- "html-tags": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
- "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
- "dev": true
- },
- "html-void-elements": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.4.tgz",
- "integrity": "sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ==",
- "dev": true
- },
- "html-webpack-plugin": {
- "version": "4.0.0-beta.11",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz",
- "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==",
+ "conventional-changelog-core": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz",
+ "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==",
"dev": true,
"requires": {
- "html-minifier-terser": "^5.0.1",
- "loader-utils": "^1.2.3",
- "lodash": "^4.17.15",
- "pretty-error": "^2.1.1",
- "tapable": "^1.1.3",
- "util.promisify": "1.0.0"
+ "conventional-changelog-writer": "^4.0.6",
+ "conventional-commits-parser": "^3.0.3",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^1.0.0",
+ "git-raw-commits": "2.0.0",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^2.0.3",
+ "lodash": "^4.2.1",
+ "normalize-package-data": "^2.3.5",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^3.0.0"
},
"dependencies": {
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
},
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true,
"requires": {
- "minimist": "^1.2.0"
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
}
},
- "loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
"dev": true,
"requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^2.0.0",
- "json5": "^1.0.1"
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
}
},
- "tapable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
- "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
+ },
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2 || 3"
+ }
}
}
},
- "htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "htmlparser2-without-node-native": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2-without-node-native/-/htmlparser2-without-node-native-3.9.2.tgz",
- "integrity": "sha1-s+0FDYd9D/NGWWnjOYd7f59mMfY=",
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "eventemitter2": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "http-cache-semantics": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
- "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
- "dev": true
- },
- "http-errors": {
- "version": "1.6.3",
- "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- }
- },
- "http-parser-js": {
- "version": "0.4.13",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
- "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
- "dev": true
- },
- "http-proxy-agent": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
- "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
- "dev": true,
- "requires": {
- "agent-base": "4",
- "debug": "3.1.0"
- }
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
- },
- "https-proxy-agent": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.3.tgz",
- "integrity": "sha512-Ytgnz23gm2DVftnzqRRz2dOXZbGd2uiajSw/95bPp6v53zPRspQjLm/AfBgqbJ2qfeRXWIOMVLpp86+/5yX39Q==",
- "dev": true,
- "requires": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
- }
- },
- "human-signals": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
- "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "conventional-changelog-preset-loader": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz",
+ "integrity": "sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ==",
"dev": true
},
- "humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
- "dev": true,
- "requires": {
- "ms": "^2.0.0"
- }
- },
- "husky": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/husky/-/husky-3.0.5.tgz",
- "integrity": "sha512-cKd09Jy9cDyNIvAdN2QQAP/oA21sle4FWXjIMDttailpLAYZuBE7WaPmhrkj+afS8Sj9isghAtFvWSQ0JiwOHg==",
+ "conventional-changelog-writer": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.9.tgz",
+ "integrity": "sha512-2Y3QfiAM37WvDMjkVNaRtZgxVzWKj73HE61YQ/95T53yle+CRwTVSl6Gbv/lWVKXeZcM5af9n9TDVf0k7Xh+cw==",
"dev": true,
"requires": {
- "chalk": "^2.4.2",
- "cosmiconfig": "^5.2.1",
- "execa": "^1.0.0",
- "get-stdin": "^7.0.0",
- "is-ci": "^2.0.0",
- "opencollective-postinstall": "^2.0.2",
- "pkg-dir": "^4.2.0",
- "please-upgrade-node": "^3.2.0",
- "read-pkg": "^5.1.1",
- "run-node": "^1.0.0",
- "slash": "^3.0.0"
+ "compare-func": "^1.3.1",
+ "conventional-commits-filter": "^2.0.2",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.4.0",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.2.1",
+ "meow": "^4.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^3.0.0"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "cosmiconfig": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
- "dev": true,
- "requires": {
- "import-fresh": "^2.0.0",
- "is-directory": "^0.3.1",
- "js-yaml": "^3.13.1",
- "parse-json": "^4.0.0"
- }
- },
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
}
},
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
"dev": true,
"requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.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"
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
}
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
"dev": true,
"requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
- "get-stdin": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz",
- "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==",
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
}
},
- "import-fresh": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
"dev": true,
"requires": {
- "caller-path": "^2.0.0",
- "resolve-from": "^3.0.0"
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
}
},
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
"dev": true,
"requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "readable-stream": "2 || 3"
}
- },
- "p-limit": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
- "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ }
+ }
+ },
+ "conventional-commits-filter": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz",
+ "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==",
+ "dev": true,
+ "requires": {
+ "lodash.ismatch": "^4.4.0",
+ "modify-values": "^1.0.0"
+ }
+ },
+ "conventional-commits-parser": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.5.tgz",
+ "integrity": "sha512-qVz9+5JwdJzsbt7JbJ6P7NOXBGt8CyLFJYSjKAuPSgO+5UGfcsbk9EMR+lI8Unlvx6qwIc2YDJlrGIfay2ehNA==",
+ "dev": true,
+ "requires": {
+ "JSONStream": "^1.0.4",
+ "is-text-path": "^2.0.0",
+ "lodash": "^4.2.1",
+ "meow": "^4.0.0",
+ "split2": "^2.0.0",
+ "through2": "^3.0.0",
+ "trim-off-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
}
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
"dev": true,
"requires": {
- "p-limit": "^2.2.0"
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -24950,1262 +24313,10296 @@
"json-parse-better-errors": "^1.0.1"
}
},
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
},
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true,
"requires": {
- "find-up": "^4.0.0"
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
}
},
- "pump": {
+ "read-pkg-up": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
}
},
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1",
- "lines-and-columns": "^1.1.6"
- }
- }
- }
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
- "resolve": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz",
- "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==",
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
"dev": true,
"requires": {
- "path-parse": "^1.0.6"
+ "readable-stream": "2 || 3"
}
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
}
}
},
- "iconv-lite": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
- "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "icss-utils": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
- "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "conventional-recommended-bump": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz",
+ "integrity": "sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==",
"dev": true,
"requires": {
- "postcss": "^7.0.14"
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.1.1",
+ "conventional-commits-filter": "^2.0.2",
+ "conventional-commits-parser": "^3.0.3",
+ "git-raw-commits": "2.0.0",
+ "git-semver-tags": "^2.0.3",
+ "meow": "^4.0.0",
+ "q": "^1.5.1"
},
"dependencies": {
- "postcss": {
- "version": "7.0.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
- "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"dev": true,
"requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- }
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
}
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
},
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
}
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
}
}
},
- "ieee754": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
- "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA=="
- },
- "iferr": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
- "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
- "dev": true
+ "convert-source-map": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
},
- "ignore": {
- "version": "3.3.10",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
- "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
"dev": true
},
- "ignore-walk": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
- "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
- "image-size": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz",
- "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA=="
- },
- "immediate": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
- },
- "immer": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz",
- "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==",
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
"dev": true
},
- "import-cwd": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
- "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
"dev": true,
"requires": {
- "import-from": "^2.1.0"
- }
- },
- "import-fresh": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
- "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
},
"dependencies": {
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
}
}
},
- "import-from": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
- "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ },
+ "copy-dir": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.2.0.tgz",
+ "integrity": "sha512-UeaUFUIHqGV4brjQ9bY2mHll/hoxyCak2emgmYG72LkGKABHBdBDKFw0H5nTKt5OzVBkBhkxCwnniJBAE7EGEw==",
+ "dev": true
+ },
+ "copy-to-clipboard": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz",
+ "integrity": "sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w==",
"dev": true,
"requires": {
- "resolve-from": "^3.0.0"
+ "toggle-selection": "^1.0.6"
}
},
- "import-lazy": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
- "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==",
- "dev": true
- },
- "import-local": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
- "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "copy-webpack-plugin": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz",
+ "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==",
"dev": true,
"requires": {
- "pkg-dir": "^3.0.0",
- "resolve-cwd": "^2.0.0"
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
},
"dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
- "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "dev": true,
+ "requires": {
+ "path-type": "^3.0.0"
+ }
+ }
}
},
- "p-locate": {
+ "pify": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
- },
- "pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0"
- }
}
}
},
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
- },
- "in-publish": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
- "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
- "dev": true
- },
- "indent-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
- "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
- "dev": true
- },
- "indexes-of": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
- "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
- "dev": true
- },
- "infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "core-js": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
+ "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
"dev": true
},
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "core-js-compat": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz",
+ "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==",
+ "dev": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "browserslist": "^4.8.3",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true
+ }
}
},
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "core-js-pure": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.2.1.tgz",
+ "integrity": "sha512-+qpvnYrsi/JDeQTArB7NnNc2VoMYLE1YSkziCDHgjexC2KH7OFiGhLUd3urxfyWmNjSwSW7NYXPWHMhuIJx9Ow==",
+ "dev": true
},
- "ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "init-package-json": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz",
- "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==",
+ "corejs-upgrade-webpack-plugin": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz",
+ "integrity": "sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ==",
"dev": true,
"requires": {
- "glob": "^7.1.1",
- "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
- "promzard": "^0.3.0",
- "read": "~1.0.1",
- "read-package-json": "1 || 2",
- "semver": "2.x || 3.x || 4 || 5",
- "validate-npm-package-license": "^3.0.1",
- "validate-npm-package-name": "^3.0.0"
+ "resolve-from": "^5.0.0",
+ "webpack": "^4.38.0"
},
"dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
}
}
},
- "inline-style-parser": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
- "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==",
- "dev": true
+ "cosmiconfig": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz",
+ "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==",
+ "requires": {
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.9.0",
+ "parse-json": "^4.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ }
+ }
},
- "inquirer": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
- "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
+ "crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
"dev": true,
"requires": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^3.0.0",
- "cli-cursor": "^3.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.15",
- "mute-stream": "0.0.8",
- "run-async": "^2.4.0",
- "rxjs": "^6.5.3",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6"
+ "buffer": "^5.1.0"
},
"dependencies": {
- "ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "buffer": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
+ "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
"dev": true,
"requires": {
- "type-fest": "^0.11.0"
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
}
- },
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "requires": {
- "restore-cursor": "^3.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
- },
- "onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
- "dev": true,
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "requires": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- }
- },
- "run-async": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
- "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
- "dev": true,
- "requires": {
- "is-promise": "^2.1.0"
- }
- },
- "rxjs": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
- "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
- "dev": true
}
}
},
- "internal-slot": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz",
- "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==",
+ "crc32-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
+ "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
"dev": true,
"requires": {
- "es-abstract": "^1.17.0-next.1",
- "has": "^1.0.3",
- "side-channel": "^1.0.2"
+ "crc": "^3.4.4",
+ "readable-stream": "^3.4.0"
},
"dependencies": {
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
- "es-abstract": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
- "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
- "object-inspect": "^1.7.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
- "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
- "dev": true
- },
- "is-regex": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
- "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "dev": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "string.prototype.trimleft": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
- "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
- "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "function-bind": "^1.1.1"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
}
}
}
},
- "interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
- "dev": true
- },
- "invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "dev": true,
"requires": {
- "loose-envify": "^1.0.0"
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
}
},
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
- },
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
- "dev": true
- },
- "ip-regex": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
- "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
- "dev": true
- },
- "ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true
- },
- "is-absolute-url": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
- "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
- "dev": true
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
"requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
}
},
- "is-alphabetical": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz",
- "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==",
- "dev": true
- },
- "is-alphanumeric": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz",
- "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
- "dev": true
- },
- "is-alphanumerical": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz",
- "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==",
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"dev": true,
"requires": {
- "is-alphabetical": "^1.0.0",
- "is-decimal": "^1.0.0"
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
}
},
- "is-arguments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
- "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ "create-react-class": {
+ "version": "15.6.3",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
+ "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
+ "requires": {
+ "fbjs": "^0.8.9",
+ "loose-envify": "^1.3.1",
+ "object-assign": "^4.1.1"
+ }
},
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "create-react-context": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz",
+ "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==",
"dev": true,
"requires": {
- "binary-extensions": "^1.0.0"
+ "fbjs": "^0.8.0",
+ "gud": "^1.0.0"
}
},
- "is-boolean-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz",
- "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==",
- "dev": true
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "cross-env": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.2.4.tgz",
+ "integrity": "sha1-ngWF8neGTtQhznVvgamA/w1piro=",
+ "dev": true,
"requires": {
- "builtin-modules": "^1.0.0"
+ "cross-spawn": "^5.1.0",
+ "is-windows": "^1.0.0"
}
},
- "is-callable": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
- "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
- },
- "is-ci": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"requires": {
- "ci-info": "^2.0.0"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
- "is-color-stop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
- "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
"dev": true,
"requires": {
- "css-color-names": "^0.0.4",
- "hex-color-regex": "^1.1.0",
- "hsl-regex": "^1.0.0",
- "hsla-regex": "^1.0.0",
- "rgb-regex": "^1.0.1",
- "rgba-regex": "^1.0.0"
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
}
},
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"requires": {
- "kind-of": "^3.0.2"
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
},
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
- "is-date-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
- },
- "is-decimal": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz",
- "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==",
- "dev": true
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "css-color-function": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz",
+ "integrity": "sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=",
+ "dev": true,
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "balanced-match": "0.1.0",
+ "color": "^0.11.0",
+ "debug": "^3.1.0",
+ "rgb": "~0.1.0"
},
"dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ "balanced-match": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz",
+ "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=",
+ "dev": true
}
}
},
- "is-directory": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
- "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
+ "css-color-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
+ "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU="
},
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ },
+ "css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
"dev": true,
"requires": {
- "is-primitive": "^2.0.0"
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
}
},
- "is-expression": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
- "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
+ "css-loader": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.2.0.tgz",
+ "integrity": "sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ==",
"dev": true,
"requires": {
- "acorn": "~4.0.2",
- "object-assign": "^4.0.1"
+ "camelcase": "^5.3.1",
+ "cssesc": "^3.0.0",
+ "icss-utils": "^4.1.1",
+ "loader-utils": "^1.2.3",
+ "normalize-path": "^3.0.0",
+ "postcss": "^7.0.17",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^3.0.2",
+ "postcss-modules-scope": "^2.1.0",
+ "postcss-modules-values": "^3.0.0",
+ "postcss-value-parser": "^4.0.0",
+ "schema-utils": "^2.0.0"
},
"dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
+ "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
+ "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.5.0.tgz",
+ "integrity": "sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ "css-mediaquery": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
+ "integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA="
},
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-select-base-adapter": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
+ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
"dev": true
},
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "css-to-react-native": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz",
+ "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==",
+ "requires": {
+ "camelize": "^1.0.0",
+ "css-color-keywords": "^1.0.0",
+ "postcss-value-parser": "^3.3.0"
+ }
+ },
+ "css-to-react-native-transform": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/css-to-react-native-transform/-/css-to-react-native-transform-1.9.0.tgz",
+ "integrity": "sha512-darzotx5xx+Q0bzASkvNBasztLCssNerzf9jpMZx0H4CTY6J/y2Wh50ZtYAJ3FmESEux1bJcGa6T0zfISTuFqw==",
+ "requires": {
+ "css": "^2.2.4",
+ "css-mediaquery": "^0.1.2",
+ "css-to-react-native": "^2.3.0"
+ }
+ },
+ "css-tree": {
+ "version": "1.0.0-alpha.28",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz",
+ "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==",
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "mdn-data": "~1.1.0",
+ "source-map": "^0.5.3"
}
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
},
- "is-function": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
- "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=",
+ "css-url-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz",
+ "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=",
"dev": true
},
- "is-generator-fn": {
+ "css-what": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
"dev": true
},
- "is-glob": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
- "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "cssesc": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-1.0.1.tgz",
+ "integrity": "sha512-S2hzrpWvE6G/rW7i7IxJfWBYn27QWfOIncUW++8Rbo1VB5zsJDSVPcnI+Q8z7rhxT6/yZeLOCja4cZnghJrNGA==",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "4.1.10",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz",
+ "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==",
"dev": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.7",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
}
},
- "is-hexadecimal": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz",
- "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==",
+ "cssnano-preset-default": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz",
+ "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==",
+ "dev": true,
+ "requires": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.2",
+ "postcss-unique-selectors": "^4.0.1"
+ }
+ },
+ "cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
"dev": true
},
- "is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
"dev": true
},
- "is-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz",
- "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==",
+ "cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
"dev": true
},
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "csso": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz",
+ "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==",
+ "dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "css-tree": "1.0.0-alpha.29"
},
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "css-tree": {
+ "version": "1.0.0-alpha.29",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
+ "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==",
+ "dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "mdn-data": "~1.1.0",
+ "source-map": "^0.5.3"
}
}
}
},
- "is-number-object": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
- "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
- "dev": true
- },
- "is-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
"dev": true
},
- "is-observable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
- "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
+ "cssstyle": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz",
+ "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==",
"dev": true,
"requires": {
- "symbol-observable": "^1.1.0"
+ "cssom": "~0.3.6"
}
},
- "is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "dev": true
+ "csstype": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz",
+ "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ=="
},
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
},
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "cwd": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
+ "integrity": "sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc=",
+ "dev": true,
"requires": {
- "isobject": "^3.0.1"
+ "find-pkg": "^0.1.2",
+ "fs-exists-sync": "^0.1.0"
}
},
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "cyclist": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
"dev": true
},
- "is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
- "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ "damerau-levenshtein": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz",
+ "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==",
+ "dev": true
},
- "is-regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=",
+ "dev": true,
"requires": {
- "has": "^1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
- "is-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
- "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
- "dev": true
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
},
- "is-resolvable": {
+ "data-urls": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
- "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
+ "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
+ "dev": true,
+ "requires": {
+ "abab": "^2.0.0",
+ "whatwg-mimetype": "^2.2.0",
+ "whatwg-url": "^7.0.0"
+ }
+ },
+ "date-fns": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
+ "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
"dev": true
},
- "is-root": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
- "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
+ "dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
"dev": true
},
- "is-set": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz",
- "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==",
+ "dayjs": {
+ "version": "1.8.18",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.18.tgz",
+ "integrity": "sha512-JBMJZghNK8TtuoPnKNIzW9xavVVigld/zmZNpZSyQbkb2Opp55YIfZUpE4OEqPF/iyUVQTKcn1bC2HtC8B7s3g=="
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
"dev": true
},
- "is-ssh": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz",
- "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==",
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
- "protocols": "^1.1.0"
+ "ms": "2.0.0"
}
},
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
- },
- "is-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
+ "debuglog": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
+ "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
"dev": true
},
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
+ "decache": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/decache/-/decache-4.5.1.tgz",
+ "integrity": "sha512-5J37nATc6FmOTLbcsr9qx7Nm28qQyg1SK4xyEHqM0IBkNhWFp0Sm+vKoWYHD8wq+OUEb9jLyaKFfzzd1A9hcoA==",
+ "dev": true,
+ "requires": {
+ "callsite": "^1.0.0"
+ }
},
- "is-supported-regexp-flag": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz",
- "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==",
- "dev": true
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
- "is-svg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
- "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
"dev": true,
"requires": {
- "html-comment-regex": "^1.1.0"
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ }
}
},
- "is-symbol": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
- "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI="
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
- "is-text-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
- "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
+ "decompress-response": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz",
+ "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==",
"dev": true,
"requires": {
- "text-extensions": "^2.0.0"
+ "mimic-response": "^2.0.0"
}
},
- "is-touch-device": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-touch-device/-/is-touch-device-1.0.1.tgz",
- "integrity": "sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw=="
+ "decompress-zip": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.2.2.tgz",
+ "integrity": "sha512-v+Na3Ck86Px7s2ix+f77pMQC3GlkxHHN+YyvnkEW7+xX5F39pcDpIV/VFvGYk8MznTFcMoPjL3XNWEJLXWoSPw==",
+ "dev": true,
+ "requires": {
+ "binary": "^0.3.0",
+ "graceful-fs": "^4.1.3",
+ "mkpath": "^0.1.0",
+ "nopt": "^3.0.1",
+ "q": "^1.1.2",
+ "readable-stream": "^1.1.8",
+ "touch": "0.0.3"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
},
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
"dev": true
},
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "dev": true,
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "deep-freeze": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
+ "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=",
"dev": true
},
- "is-whitespace-character": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
- "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true
},
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ "deep-object-diff": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz",
+ "integrity": "sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==",
+ "dev": true
},
- "is-word-character": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
- "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
+ "deepmerge": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+ "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "defer-to-connect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz",
+ "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==",
"dev": true
},
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "requires": {
+ "foreach": "^2.0.5",
+ "object-keys": "^1.0.8"
+ }
},
- "isarray": {
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "del": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz",
+ "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==",
+ "dev": true,
+ "requires": {
+ "globby": "^10.0.1",
+ "graceful-fs": "^4.2.2",
+ "is-glob": "^4.0.1",
+ "is-path-cwd": "^2.2.0",
+ "is-path-inside": "^3.0.1",
+ "p-map": "^3.0.0",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz",
+ "integrity": "sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "fast-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.0.4.tgz",
+ "integrity": "sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.1",
+ "@nodelib/fs.walk": "^1.2.1",
+ "glob-parent": "^5.0.0",
+ "is-glob": "^4.0.1",
+ "merge2": "^1.2.3",
+ "micromatch": "^4.0.2"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
+ "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globby": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
+ "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.0.3",
+ "glob": "^7.1.3",
+ "ignore": "^5.1.1",
+ "merge2": "^1.2.3",
+ "slash": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
+ "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "path-type": {
+ "version": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
},
- "isexe": {
+ "delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "denodeify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
+ "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "deprecation": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.0.0.tgz",
+ "integrity": "sha512-lbQN037mB3VfA2JFuguM5GCJ+zPinMeCrFe+AfSZ6eqrnJA/Fs+EYMnd6Nb2mn9lf2jO9xwEd9o9lic+D4vkcw==",
+ "dev": true
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ "des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
},
- "isomorphic-fetch": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
- "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "detab": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.2.tgz",
+ "integrity": "sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ==",
+ "dev": true,
"requires": {
- "node-fetch": "^1.0.1",
- "whatwg-fetch": ">=0.10.0"
+ "repeat-string": "^1.5.4"
+ }
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
+ "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+ },
+ "detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true
+ },
+ "detect-node": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+ "dev": true
+ },
+ "detect-port": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz",
+ "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==",
+ "dev": true,
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
},
"dependencies": {
- "node-fetch": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
- "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "dezalgo": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
+ "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
+ "dev": true,
+ "requires": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+ },
+ "diff-sequences": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz",
+ "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
+ "direction": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.2.tgz",
+ "integrity": "sha512-hSKoz5FBn+zhP9vWKkVQaaxnRDg3/MoPdcg2au54HIUDR8MrP8Ah1jXSJwCXel6SV3Afh5DSzc8Uqv2r1UoQwQ=="
+ },
+ "discontinuous-range": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
+ "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
+ "dev": true
+ },
+ "docker-compose": {
+ "version": "0.22.2",
+ "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.22.2.tgz",
+ "integrity": "sha512-iXWb5+LiYmylIMFXvGTYsjI1F+Xyx78Jm/uj1dxwwZLbWkUdH6yOXY5Nr3RjbYX15EgbGJCq78d29CmWQQQMPg==",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "doctypes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
+ "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
+ "dev": true
+ },
+ "dom-accessibility-api": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.4.3.tgz",
+ "integrity": "sha512-JZ8iPuEHDQzq6q0k7PKMGbrIdsgBB7TRrtVOUm4nSMCExlg5qQG4KXWTH2k90yggjM4tTumRGwTKJSldMzKyLA==",
+ "dev": true
+ },
+ "dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "dev": true,
+ "requires": {
+ "utila": "~0.4"
+ }
+ },
+ "dom-helpers": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
+ "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.1.2"
+ }
+ },
+ "dom-scroll-into-view": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz",
+ "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4="
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "requires": {
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
+ }
+ }
+ },
+ "dom-walk": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
+ "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=",
+ "dev": true
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
+ },
+ "domexception": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
+ "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
+ "dev": true,
+ "requires": {
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotenv": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
+ "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==",
+ "dev": true
+ },
+ "dotenv-defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-1.1.0.tgz",
+ "integrity": "sha512-MoWCnFZ1G6ZLww0TFmXx+CFs2X3ZFhIN5AptQBNPOmrHnvqjlzZPsiAbbISDEk4RUKCVgPF8HmvixuxnaVuNZQ==",
+ "dev": true,
+ "requires": {
+ "dotenv": "^6.2.0"
+ }
+ },
+ "dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+ "dev": true
+ },
+ "dotenv-webpack": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.7.0.tgz",
+ "integrity": "sha512-wwNtOBW/6gLQSkb8p43y0Wts970A3xtNiG/mpwj9MLUhtPCQG6i+/DSXXoNN7fbPCU/vQ7JjwGmgOeGZSSZnsw==",
+ "dev": true,
+ "requires": {
+ "dotenv-defaults": "^1.0.2"
+ }
+ },
+ "downshift": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/downshift/-/downshift-4.0.7.tgz",
+ "integrity": "sha512-w6KFbpnMZrO53Lcbh21lRTSokEvz+FCdv7fAtN8+Oxvst+qUTIy/2FQCX6AQUncRb/gOqG4aBqm2fGgbsmAiGg==",
+ "requires": {
+ "@babel/runtime": "^7.4.5",
+ "compute-scroll-into-view": "^1.0.9",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.9.0"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "16.12.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
+ "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q=="
+ }
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
+ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "ejs": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.372",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.372.tgz",
+ "integrity": "sha512-77a4jYC52OdisHM+Tne7dgWEvQT1FoNu/jYl279pP88ZtG4ZRIPyhQwAKxj6C2rzsyC1OwsOds9JlZtNncSz6g==",
+ "dev": true
+ },
+ "elegant-spinner": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+ "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
+ "dev": true
+ },
+ "element-resize-detector": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz",
+ "integrity": "sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw==",
+ "dev": true,
+ "requires": {
+ "batch-processor": "1.0.0"
+ }
+ },
+ "elliptic": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
+ "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "emotion-theming": {
+ "version": "10.0.27",
+ "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz",
+ "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.5.5",
+ "@emotion/weak-memoize": "0.2.5",
+ "hoist-non-react-statics": "^3.3.0"
+ },
+ "dependencies": {
+ "@emotion/weak-memoize": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
+ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==",
+ "dev": true
+ },
+ "hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==",
+ "dev": true,
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ }
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "encoding": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "requires": {
+ "iconv-lite": "~0.4.13"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
+ "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ }
+ }
+ },
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
+ },
+ "env-paths": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
+ "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=",
+ "dev": true
+ },
+ "envinfo": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.0.tgz",
+ "integrity": "sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ=="
+ },
+ "enzyme": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz",
+ "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==",
+ "dev": true,
+ "requires": {
+ "array.prototype.flat": "^1.2.3",
+ "cheerio": "^1.0.0-rc.3",
+ "enzyme-shallow-equal": "^1.0.1",
+ "function.prototype.name": "^1.1.2",
+ "has": "^1.0.3",
+ "html-element-map": "^1.2.0",
+ "is-boolean-object": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-number-object": "^1.0.4",
+ "is-regex": "^1.0.5",
+ "is-string": "^1.0.5",
+ "is-subset": "^0.1.1",
+ "lodash.escape": "^4.0.1",
+ "lodash.isequal": "^4.5.0",
+ "object-inspect": "^1.7.0",
+ "object-is": "^1.0.2",
+ "object.assign": "^4.1.0",
+ "object.entries": "^1.1.1",
+ "object.values": "^1.1.1",
+ "raf": "^3.4.1",
+ "rst-selector-parser": "^2.2.3",
+ "string.prototype.trim": "^1.2.1"
+ },
+ "dependencies": {
+ "array.prototype.flat": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
+ "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "dom-serializer": {
+ "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "function.prototype.name": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz",
+ "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "functions-have-names": "^1.2.0"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-string": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
+ "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
+ "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
+ "dev": true
+ },
+ "object.entries": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
+ "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "object.values": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "react-is": {
+ "version": "16.8.6",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
+ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
+ },
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
+ "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "string.prototype.trimstart": "^1.0.0"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
+ "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "string.prototype.trimend": "^1.0.0"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "enzyme-adapter-react-16": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz",
+ "integrity": "sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==",
+ "dev": true,
+ "requires": {
+ "enzyme-adapter-utils": "^1.13.0",
+ "enzyme-shallow-equal": "^1.0.1",
+ "has": "^1.0.3",
+ "object.assign": "^4.1.0",
+ "object.values": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.12.0",
+ "react-test-renderer": "^16.0.0-0",
+ "semver": "^5.7.0"
+ },
+ "dependencies": {
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object.values": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "react-is": {
+ "version": "16.13.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
+ "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ }
+ }
+ },
+ "enzyme-adapter-utils": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz",
+ "integrity": "sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==",
+ "dev": true,
+ "requires": {
+ "airbnb-prop-types": "^2.15.0",
+ "function.prototype.name": "^1.1.2",
+ "object.assign": "^4.1.0",
+ "object.fromentries": "^2.0.2",
+ "prop-types": "^15.7.2",
+ "semver": "^5.7.1"
+ },
+ "dependencies": {
+ "airbnb-prop-types": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz",
+ "integrity": "sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA==",
+ "dev": true,
+ "requires": {
+ "array.prototype.find": "^2.1.0",
+ "function.prototype.name": "^1.1.1",
+ "has": "^1.0.3",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object.assign": "^4.1.0",
+ "object.entries": "^1.1.0",
+ "prop-types": "^15.7.2",
+ "prop-types-exact": "^1.2.0",
+ "react-is": "^16.9.0"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "function.prototype.name": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz",
+ "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "functions-have-names": "^1.2.0"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object.entries": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
+ "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
+ "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "react-is": {
+ "version": "16.13.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
+ "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ }
+ }
+ },
+ "enzyme-shallow-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz",
+ "integrity": "sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3",
+ "object-is": "^1.0.2"
+ },
+ "dependencies": {
+ "object-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
+ "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
+ "dev": true
+ }
+ }
+ },
+ "enzyme-to-json": {
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.4.4.tgz",
+ "integrity": "sha512-50LELP/SCPJJGic5rAARvU7pgE3m1YaNj7JLM+Qkhl5t7PAs6fiyc8xzc50RnkKPFQCv0EeFVjEWdIFRGPWMsA==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15",
+ "react-is": "^16.12.0"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "16.13.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
+ "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
+ "dev": true
+ }
+ }
+ },
+ "equivalent-key-map": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz",
+ "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew=="
+ },
+ "err-code": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
+ "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
+ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
+ "dev": true,
+ "requires": {
+ "string-template": "~0.2.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ },
+ "dependencies": {
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "mime-db": {
+ "version": "1.42.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
+ "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="
+ },
+ "mime-types": {
+ "version": "2.1.25",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
+ "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
+ "requires": {
+ "mime-db": "1.42.0"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ }
+ }
+ },
+ "es-abstract": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
+ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+ "requires": {
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.1",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.4"
+ }
+ },
+ "es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true
+ },
+ "es-get-iterator": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.0.2.tgz",
+ "integrity": "sha512-ZHb4fuNK3HKHEOvDGyHPKf5cSWh/OvAMskeM/+21NMnTuvqFvz8uHatolu+7Kf6b6oK9C+3Uo1T37pSGPWv0MA==",
+ "dev": true,
+ "requires": {
+ "es-abstract": "^1.17.0-next.1",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.0.4",
+ "is-map": "^2.0.0",
+ "is-set": "^2.0.0",
+ "is-string": "^1.0.4",
+ "isarray": "^2.0.5"
+ },
+ "dependencies": {
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "requires": {
+ "is-callable": "^1.1.1",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.1"
+ }
+ },
+ "es5-shim": {
+ "version": "4.5.13",
+ "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.13.tgz",
+ "integrity": "sha512-xi6hh6gsvDE0MaW4Vp1lgNEBpVcCXRWfPXj5egDvtgLz4L9MEvNwYEMdJH+JJinWkwa8c3c3o5HduV7dB/e1Hw==",
+ "dev": true
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
+ "dev": true
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ }
+ },
+ "es6-shim": {
+ "version": "0.35.5",
+ "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz",
+ "integrity": "sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==",
+ "dev": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "escodegen": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz",
+ "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==",
+ "dev": true,
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
+ "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+ "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "eslint-scope": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
+ "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ },
+ "espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ }
+ }
+ },
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
+ "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
+ "dev": true
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz",
+ "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^6.0.0"
+ },
+ "dependencies": {
+ "get-stdin": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
+ "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
+ "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.9",
+ "resolve": "^1.13.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
+ "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.9",
+ "pkg-dir": "^2.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-eslint-comments": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz",
+ "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "ignore": "^5.0.5"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz",
+ "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.20.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz",
+ "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.0.3",
+ "array.prototype.flat": "^1.2.1",
+ "contains-path": "^0.1.0",
+ "debug": "^2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "^0.3.2",
+ "eslint-module-utils": "^2.4.1",
+ "has": "^1.0.3",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.0",
+ "read-pkg-up": "^2.0.0",
+ "resolve": "^1.12.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object.values": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "^2.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ }
+ },
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
+ "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "string.prototype.trimstart": "^1.0.0"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
+ "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "string.prototype.trimend": "^1.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-jest": {
+ "version": "23.8.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz",
+ "integrity": "sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "^2.5.0"
+ }
+ },
+ "eslint-plugin-jsdoc": {
+ "version": "22.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-22.1.0.tgz",
+ "integrity": "sha512-54NdbICM7KrxsGUqQsev9aIMqPXyvyBx2218Qcm0TQ16P9CtBI+YY4hayJR6adrxlq4Ej0JLpgfUXWaQVFqmQg==",
+ "dev": true,
+ "requires": {
+ "comment-parser": "^0.7.2",
+ "debug": "^4.1.1",
+ "jsdoctypeparser": "^6.1.0",
+ "lodash": "^4.17.15",
+ "regextras": "^0.7.0",
+ "semver": "^6.3.0",
+ "spdx-expression-parse": "^3.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
+ "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.4.5",
+ "aria-query": "^3.0.0",
+ "array-includes": "^3.0.3",
+ "ast-types-flow": "^0.0.7",
+ "axobject-query": "^2.0.2",
+ "damerau-levenshtein": "^1.0.4",
+ "emoji-regex": "^7.0.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.2.1"
+ }
+ },
+ "eslint-plugin-markdown": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz",
+ "integrity": "sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "remark-parse": "^5.0.0",
+ "unified": "^6.1.2"
+ },
+ "dependencies": {
+ "remark-parse": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz",
+ "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==",
+ "dev": true,
+ "requires": {
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^1.1.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^1.0.0",
+ "vfile-location": "^2.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "unified": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz",
+ "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==",
+ "dev": true,
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "trough": "^1.0.0",
+ "vfile": "^2.0.0",
+ "x-is-string": "^0.1.0"
+ }
+ },
+ "vfile": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
+ "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.4",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "^1.0.0",
+ "vfile-message": "^1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz",
+ "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
+ "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.1",
+ "doctrine": "^2.1.0",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.2.3",
+ "object.entries": "^1.1.1",
+ "object.fromentries": "^2.0.2",
+ "object.values": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "resolve": "^1.15.1",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.2",
+ "xregexp": "^4.3.0"
+ },
+ "dependencies": {
+ "array-includes": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
+ "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0",
+ "is-string": "^1.0.5"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-string": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
+ "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz",
+ "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.0.3",
+ "object.assign": "^4.1.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object.entries": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
+ "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
+ "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "object.values": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
+ "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "string.prototype.trimstart": "^1.0.0"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
+ "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "string.prototype.trimend": "^1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-react-hooks": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz",
+ "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
+ "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esquery": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz",
+ "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.0.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz",
+ "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
+ },
+ "eventemitter2": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-1.0.5.tgz",
+ "integrity": "sha1-+YNhBRexc3wLncZDvsqTiTwE3xg="
+ },
+ "eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
+ },
+ "events": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+ "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+ "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+ "dev": true,
+ "requires": {
+ "original": "^1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "exec-sh": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz",
+ "integrity": "sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg=="
+ },
+ "execa": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz",
+ "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
+ "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+ "dev": true
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "execall": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz",
+ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
+ "dev": true,
+ "requires": {
+ "clone-regexp": "^1.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+ "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.1"
+ }
+ },
+ "expect": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz",
+ "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-styles": "^4.0.0",
+ "jest-get-type": "^25.2.6",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-regex-util": "^25.2.6"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+ "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
+ "dev": true,
+ "requires": {
+ "chalk": "^3.0.0",
+ "diff-sequences": "^25.2.6",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
+ }
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-matcher-utils": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+ "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^3.0.0",
+ "jest-diff": "^25.5.0",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
+ }
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-regex-util": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+ "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "expect-puppeteer": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz",
+ "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==",
+ "dev": true
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "http-errors": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+ "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.43.0"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
+ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "requires": {
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
+ }
+ },
+ "fast-average-color": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-4.3.0.tgz",
+ "integrity": "sha512-k8FXd6+JeXoItmdNqB3hMwFgArryjdYBLuzEM8fRY/oztd/051yhSHU6GUrMOfIQU9dDHyFDcIAkGrQKlYtpDA=="
+ },
+ "fast-base64-decode": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz",
+ "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q=="
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
+ "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.1.2",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.3",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fast-memoize": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.1.tgz",
+ "integrity": "sha512-xdmw296PCL01tMOXx9mdJSmWY29jQgxyuZdq0rEHMu+Tpe1eOEtCycoG6chzlcrWsNgpZP7oL8RiQr7+G6Bl6g=="
+ },
+ "fastq": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz",
+ "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.0"
+ }
+ },
+ "fault": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz",
+ "integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==",
+ "dev": true,
+ "requires": {
+ "format": "^0.2.2"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fb-watchman": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
+ "requires": {
+ "bser": "^2.0.0"
+ }
+ },
+ "fbjs": {
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "requires": {
+ "core-js": "^1.0.0",
+ "isomorphic-fetch": "^2.1.1",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ }
+ }
+ },
+ "fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "fbjs-scripts": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz",
+ "integrity": "sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ==",
+ "requires": {
+ "@babel/core": "^7.0.0",
+ "ansi-colors": "^1.0.1",
+ "babel-preset-fbjs": "^3.2.0",
+ "core-js": "^2.4.1",
+ "cross-spawn": "^5.1.0",
+ "fancy-log": "^1.3.2",
+ "object-assign": "^4.0.1",
+ "plugin-error": "^0.1.2",
+ "semver": "^5.1.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figgy-pudding": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+ "dev": true
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "file-loader": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
+ "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.2.3",
+ "schema-utils": "^2.5.0"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "schema-utils": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
+ "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ }
+ }
+ },
+ "file-saver": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
+ "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
+ },
+ "file-system-cache": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz",
+ "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.3.5",
+ "fs-extra": "^0.30.0",
+ "ramda": "^0.21.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "ramda": {
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz",
+ "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=",
+ "dev": true
+ }
+ }
+ },
+ "filesize": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
+ "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "find-file-up": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
+ "integrity": "sha1-z2gJG8+fMApA2kEbN9pczlovvqA=",
+ "dev": true,
+ "requires": {
+ "fs-exists-sync": "^0.1.0",
+ "resolve-dir": "^0.1.0"
+ }
+ },
+ "find-parent-dir": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz",
+ "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=",
+ "dev": true
+ },
+ "find-pkg": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
+ "integrity": "sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=",
+ "dev": true,
+ "requires": {
+ "find-file-up": "^0.1.2"
+ }
+ },
+ "find-process": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.3.tgz",
+ "integrity": "sha512-+IA+AUsQCf3uucawyTwMWcY+2M3FXq3BRvw3S+j5Jvydjk31f/+NPWpYZOJs+JUs2GvxH4Yfr6Wham0ZtRLlPA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "commander": "^2.11.0",
+ "debug": "^2.6.8"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "findup": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz",
+ "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=",
+ "dev": true,
+ "requires": {
+ "colors": "~0.6.0-1",
+ "commander": "~2.1.0"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
+ "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=",
+ "dev": true
+ }
+ }
+ },
+ "findup-sync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+ "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ },
+ "dependencies": {
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ }
+ }
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
+ "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
+ "dev": true
+ },
+ "flow-parser": {
+ "version": "0.116.1",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.116.1.tgz",
+ "integrity": "sha512-uMbaTjiMhBKa/il1esHyWyVVWfrWdG/eLmG62MQulZ59Yghpa30H1tmukFZLptsBafZ8ddiPyf7I+SiA+euZ6A==",
+ "dev": true
+ },
+ "flush-write-stream": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
+ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ }
+ },
+ "focus-lock": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.6.tgz",
+ "integrity": "sha512-Dx69IXGCq1qsUExWuG+5wkiMqVM/zGx/reXSJSLogECwp3x6KeNQZ+NAetgxEFpnC41rD8U3+jRCW68+LNzdtw==",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz",
+ "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.4.1",
+ "chokidar": "^2.0.4",
+ "micromatch": "^3.1.10",
+ "minimatch": "^3.0.4",
+ "semver": "^5.6.0",
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=",
+ "dev": true
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true
+ },
+ "fs-exists-sync": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
+ "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "dev": true
+ }
+ }
+ },
+ "fs-minipass": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
+ "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+ "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+ "optional": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+ "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "optional": true
+ }
+ }
+ },
+ "fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "function.prototype.name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz",
+ "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "is-callable": "^1.1.3"
+ }
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "functions-have-names": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz",
+ "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==",
+ "dev": true
+ },
+ "fuse.js": {
+ "version": "3.4.6",
+ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.4.6.tgz",
+ "integrity": "sha512-H6aJY4UpLFwxj1+5nAvufom5b2BT2v45P1MkPvdGIK8fWjQx/7o6tTT1+ALV0yawQvbmvCF0ufl2et8eJ7v7Cg==",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "^1.0.0"
+ }
+ },
+ "genfun": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
+ "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==",
+ "dev": true
+ },
+ "gensync": {
+ "version": "1.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "get-own-enumerable-property-symbols": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz",
+ "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==",
+ "dev": true
+ },
+ "get-pkg-repo": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz",
+ "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "meow": "^3.3.0",
+ "normalize-package-data": "^2.3.0",
+ "parse-github-repo-url": "^1.3.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ }
+ }
+ },
+ "get-port": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
+ "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "gettext-parser": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
+ "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
+ "requires": {
+ "encoding": "^0.1.12",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "git-raw-commits": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz",
+ "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==",
+ "dev": true,
+ "requires": {
+ "dargs": "^4.0.1",
+ "lodash.template": "^4.0.2",
+ "meow": "^4.0.0",
+ "split2": "^2.0.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "git-remote-origin-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz",
+ "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=",
+ "dev": true,
+ "requires": {
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
+ }
+ },
+ "git-semver-tags": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz",
+ "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==",
+ "dev": true,
+ "requires": {
+ "meow": "^4.0.0",
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "git-up": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz",
+ "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==",
+ "dev": true,
+ "requires": {
+ "is-ssh": "^1.3.0",
+ "parse-url": "^5.0.0"
+ }
+ },
+ "git-url-parse": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz",
+ "integrity": "sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==",
+ "dev": true,
+ "requires": {
+ "git-up": "^4.0.0"
+ }
+ },
+ "gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.2"
+ }
+ },
+ "github-slugger": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.2.1.tgz",
+ "integrity": "sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": ">=6.0.0 <=6.1.1"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz",
+ "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=",
+ "dev": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
+ "global": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
+ "dev": true,
+ "requires": {
+ "min-document": "^2.19.0",
+ "process": "^0.11.10"
+ }
+ },
+ "global-cache": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/global-cache/-/global-cache-1.2.1.tgz",
+ "integrity": "sha512-EOeUaup5DgWKlCMhA9YFqNRIlZwoxt731jCh47WBV9fQqHgXhr3Fa55hfgIUqilIcPsfdNKN7LHjrNY+Km40KA==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "is-symbol": "^1.0.1"
+ }
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ }
+ },
+ "globals": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.0.0.tgz",
+ "integrity": "sha512-c9xoi32iDwlETiyYfO0pd3M8GcEuytJinSoqq7k3fz4H8p2p31NyfKr7JVd7Y0QvmtWcWXcwqW4L33eeDYgh1A==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "globalthis": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz",
+ "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ },
+ "dependencies": {
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ }
+ }
+ },
+ "globby": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
+ "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^1.0.2",
+ "dir-glob": "^2.2.2",
+ "fast-glob": "^2.2.6",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.3",
+ "pify": "^4.0.1",
+ "slash": "^2.0.0"
+ },
+ "dependencies": {
+ "dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "dev": true,
+ "requires": {
+ "path-type": "^3.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
+ "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ }
+ }
+ },
+ "globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "dev": true
+ },
+ "globule": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "dev": true,
+ "requires": {
+ "glob": "~7.1.1",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2"
+ }
+ },
+ "gonzales-pe": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz",
+ "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==",
+ "dev": true,
+ "requires": {
+ "minimist": "1.1.x"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
+ "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
+ "dev": true
+ }
+ }
+ },
+ "good-listener": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
+ "requires": {
+ "delegate": "^3.1.2"
+ }
+ },
+ "got": {
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz",
+ "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^2.0.0",
+ "@szmarczak/http-timer": "^4.0.0",
+ "@types/cacheable-request": "^6.0.1",
+ "cacheable-lookup": "^2.0.0",
+ "cacheable-request": "^7.0.1",
+ "decompress-response": "^5.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^5.0.0",
+ "lowercase-keys": "^2.0.0",
+ "mimic-response": "^2.1.0",
+ "p-cancelable": "^2.0.0",
+ "p-event": "^4.0.0",
+ "responselike": "^2.0.0",
+ "to-readable-stream": "^2.0.0",
+ "type-fest": "^0.10.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz",
+ "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "dev": true
+ },
+ "gradient-parser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-0.1.5.tgz",
+ "integrity": "sha1-DH4heVWeXOfY1x9EI6+TcQCyJIw="
+ },
+ "growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="
+ },
+ "gud": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
+ "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
+ "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+ "dev": true,
+ "requires": {
+ "duplexer": "^0.1.1",
+ "pify": "^4.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
+ "handlebars": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.0.tgz",
+ "integrity": "sha512-xkRtOt3/3DzTKMOt3xahj2M/EqNhY988T+imYSlMgs5fVhLN2fmKVVj0LtEGmb+3UUYV5Qmm1052Mm3dIQxOvw==",
+ "dev": true,
+ "requires": {
+ "neo-async": "^2.6.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4"
+ },
+ "dependencies": {
+ "neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+ "dev": true
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hast-to-hyperscript": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz",
+ "integrity": "sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==",
+ "dev": true,
+ "requires": {
+ "comma-separated-tokens": "^1.0.0",
+ "property-information": "^5.3.0",
+ "space-separated-tokens": "^1.0.0",
+ "style-to-object": "^0.2.1",
+ "unist-util-is": "^3.0.0",
+ "web-namespaces": "^1.1.2"
+ },
+ "dependencies": {
+ "style-to-object": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz",
+ "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==",
+ "dev": true,
+ "requires": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "unist-util-is": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+ "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "dev": true
+ }
+ }
+ },
+ "hast-util-from-parse5": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.2.tgz",
+ "integrity": "sha512-YXFjoRS7ES7PEoLx6uihtSfKTO1s3z/tzGiV5cVpsUiihduogFXubNRCzTIW3yOOGO1nws9CxPq4MbwD39Uo+w==",
+ "dev": true,
+ "requires": {
+ "ccount": "^1.0.3",
+ "hastscript": "^5.0.0",
+ "property-information": "^5.0.0",
+ "web-namespaces": "^1.1.2",
+ "xtend": "^4.0.1"
+ }
+ },
+ "hast-util-parse-selector": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz",
+ "integrity": "sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==",
+ "dev": true
+ },
+ "hast-util-raw": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-5.0.1.tgz",
+ "integrity": "sha512-iHo7G6BjRc/GU1Yun5CIEXjil0wVnIbz11C6k0JdDichSDMtYi2+NNtk6YN7EOP0JfPstX30d3pRLfaJv5CkdA==",
+ "dev": true,
+ "requires": {
+ "hast-util-from-parse5": "^5.0.0",
+ "hast-util-to-parse5": "^5.0.0",
+ "html-void-elements": "^1.0.1",
+ "parse5": "^5.0.0",
+ "unist-util-position": "^3.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.1",
+ "zwitch": "^1.0.0"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "dev": true
+ }
+ }
+ },
+ "hast-util-to-parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-5.1.1.tgz",
+ "integrity": "sha512-ivCeAd5FCXr7bapJIVsWMnx/EmbjkkW2TU2hd1prq+jGwiaUoK+FcpjyPNwsC5ogzCwWO669tOqIovGeLc/ntg==",
+ "dev": true,
+ "requires": {
+ "hast-to-hyperscript": "^7.0.0",
+ "property-information": "^5.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.1",
+ "zwitch": "^1.0.0"
+ }
+ },
+ "hastscript": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.1.tgz",
+ "integrity": "sha512-xHo1Hkcqd0LlWNuDL3/BxwhgAGp3d7uEvCMgCTrBY+zsOooPPH+8KAvW8PCgl+GB8H3H44nfSaF0A4BQ+4xlYg==",
+ "dev": true,
+ "requires": {
+ "comma-separated-tokens": "^1.0.0",
+ "hast-util-parse-selector": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "hermes-engine": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.2.1.tgz",
+ "integrity": "sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ=="
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "highlight.js": {
+ "version": "9.13.1",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz",
+ "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "hoist-non-react-statics": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
+ "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "hoopy": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
+ "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
+ },
+ "hpq": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.3.0.tgz",
+ "integrity": "sha512-fvYTvdCFOWQupGxqkahrkA+ERBuMdzkxwtUdKrxR6rmMd4Pfl+iZ1QiQYoaZ0B/v0y59MOMnz3XFUWbT50/NWA=="
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "html-element-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.2.0.tgz",
+ "integrity": "sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw==",
+ "dev": true,
+ "requires": {
+ "array-filter": "^1.0.0"
+ }
+ },
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "dev": true,
+ "requires": {
+ "whatwg-encoding": "^1.0.1"
+ }
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "html-escaper": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz",
+ "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==",
+ "dev": true
+ },
+ "html-minifier-terser": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz",
+ "integrity": "sha512-VAaitmbBuHaPKv9bj47XKypRhgDxT/cDLvsPiiF7w+omrN3K0eQhpigV9Z1ilrmHa9e0rOYcD6R/+LCDADGcnQ==",
+ "dev": true,
+ "requires": {
+ "camel-case": "^3.0.0",
+ "clean-css": "^4.2.1",
+ "commander": "^4.0.0",
+ "he": "^1.2.0",
+ "param-case": "^2.1.1",
+ "relateurl": "^0.2.7",
+ "terser": "^4.3.9"
+ }
+ },
+ "html-tags": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
+ "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
+ "dev": true
+ },
+ "html-void-elements": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.4.tgz",
+ "integrity": "sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ==",
+ "dev": true
+ },
+ "html-webpack-plugin": {
+ "version": "4.0.0-beta.11",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz",
+ "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==",
+ "dev": true,
+ "requires": {
+ "html-minifier-terser": "^5.0.1",
+ "loader-utils": "^1.2.3",
+ "lodash": "^4.17.15",
+ "pretty-error": "^2.1.1",
+ "tapable": "^1.1.3",
+ "util.promisify": "1.0.0"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
+ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "htmlparser2-without-node-native": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2-without-node-native/-/htmlparser2-without-node-native-3.9.2.tgz",
+ "integrity": "sha1-s+0FDYd9D/NGWWnjOYd7f59mMfY=",
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "eventemitter2": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
+ "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
+ "dev": true
+ },
+ "http-proxy-agent": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
+ "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
+ "dev": true,
+ "requires": {
+ "agent-base": "4",
+ "debug": "3.1.0"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "https-proxy-agent": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.3.tgz",
+ "integrity": "sha512-Ytgnz23gm2DVftnzqRRz2dOXZbGd2uiajSw/95bPp6v53zPRspQjLm/AfBgqbJ2qfeRXWIOMVLpp86+/5yX39Q==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ }
+ },
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ },
+ "humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
+ "dev": true,
+ "requires": {
+ "ms": "^2.0.0"
+ }
+ },
+ "husky": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-3.0.5.tgz",
+ "integrity": "sha512-cKd09Jy9cDyNIvAdN2QQAP/oA21sle4FWXjIMDttailpLAYZuBE7WaPmhrkj+afS8Sj9isghAtFvWSQ0JiwOHg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "cosmiconfig": "^5.2.1",
+ "execa": "^1.0.0",
+ "get-stdin": "^7.0.0",
+ "is-ci": "^2.0.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^4.2.0",
+ "please-upgrade-node": "^3.2.0",
+ "read-pkg": "^5.1.1",
+ "run-node": "^1.0.0",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "get-stdin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz",
+ "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ }
+ }
+ },
+ "resolve": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz",
+ "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-utils": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "7.0.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
+ "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA=="
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "image-size": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz",
+ "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA=="
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
+ },
+ "immer": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz",
+ "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==",
+ "dev": true
+ },
+ "import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "dev": true,
+ "requires": {
+ "import-from": "^2.1.0"
+ }
+ },
+ "import-fresh": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
+ "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ }
+ }
+ },
+ "import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "import-lazy": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
+ "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==",
+ "dev": true
+ },
+ "import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "in-publish": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ },
+ "init-package-json": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz",
+ "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.1",
+ "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
+ "promzard": "^0.3.0",
+ "read": "~1.0.1",
+ "read-package-json": "1 || 2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "validate-npm-package-license": "^3.0.1",
+ "validate-npm-package-name": "^3.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "inline-style-parser": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
+ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
+ "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^3.0.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.5.3",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.11.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "run-async": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
+ "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.1.0"
+ },
+ "dependencies": {
+ "is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "dev": true
+ }
+ }
+ },
+ "rxjs": {
+ "version": "6.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+ "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ }
+ }
+ },
+ "internal-slot": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz",
+ "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==",
+ "dev": true,
+ "requires": {
+ "es-abstract": "^1.17.0-next.1",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.2"
+ },
+ "dependencies": {
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ }
+ }
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true
+ },
+ "irregular-plurals": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz",
+ "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-alphabetical": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz",
+ "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==",
+ "dev": true
+ },
+ "is-alphanumeric": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz",
+ "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz",
+ "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ }
+ },
+ "is-arguments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+ "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz",
+ "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "requires": {
+ "ci-info": "^2.0.0"
+ }
+ },
+ "is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+ },
+ "is-decimal": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz",
+ "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
+ },
+ "is-docker": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
+ "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==",
+ "dev": true,
+ "optional": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-expression": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
+ "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
+ "dev": true,
+ "requires": {
+ "acorn": "~4.0.2",
+ "object-assign": "^4.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "is-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
+ "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=",
+ "dev": true
+ },
+ "is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hexadecimal": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz",
+ "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==",
+ "dev": true
+ },
+ "is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "dev": true
+ },
+ "is-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz",
+ "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-number-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
+ "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-observable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
+ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
+ "dev": true,
+ "requires": {
+ "symbol-observable": "^1.1.0"
+ }
+ },
+ "is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "dev": true
+ },
+ "is-path-inside": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.1.tgz",
+ "integrity": "sha512-CKstxrctq1kUesU6WhtZDbYKzzYBuRH0UYInAVrkc/EYdB9ltbfE0gOoayG9nhohG6447sOOVGhHqsdmBvkbNg==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-root": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
+ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
+ "dev": true
+ },
+ "is-set": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz",
+ "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==",
+ "dev": true
+ },
+ "is-ssh": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz",
+ "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==",
+ "dev": true,
+ "requires": {
+ "protocols": "^1.1.0"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-string": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
+ "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
+ "dev": true
+ },
+ "is-subset": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
+ "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
+ "dev": true
+ },
+ "is-supported-regexp-flag": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz",
+ "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
+ "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "^1.1.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI="
+ },
+ "is-text-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^2.0.0"
+ }
+ },
+ "is-touch-device": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-touch-device/-/is-touch-device-1.0.1.tgz",
+ "integrity": "sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw=="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-whitespace-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
+ "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "is-word-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
+ "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "isomorphic-fetch": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "requires": {
+ "node-fetch": "^1.0.1",
+ "whatwg-fetch": ">=0.10.0"
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
+ "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz",
+ "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.7.5",
+ "@babel/parser": "^7.7.5",
+ "@babel/template": "^7.7.4",
+ "@babel/traverse": "^7.7.4",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.0.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
+ "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
+ "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "iterate-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
+ "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==",
+ "dev": true
+ },
+ "iterate-value": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
+ "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
+ "dev": true,
+ "requires": {
+ "es-get-iterator": "^1.0.2",
+ "iterate-iterator": "^1.0.1"
+ }
+ },
+ "jed": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz",
+ "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ="
+ },
+ "jest": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-25.3.0.tgz",
+ "integrity": "sha512-iKd5ShQSHzFT5IL/6h5RZJhApgqXSoPxhp5HEi94v6OAw9QkF8T7X+liEU2eEHJ1eMFYTHmeWLrpBWulsDpaUg==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^25.3.0",
+ "import-local": "^3.0.2",
+ "jest-cli": "^25.3.0"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "import-local": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz",
+ "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-cli": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz",
+ "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^25.5.4",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "import-local": "^3.0.2",
+ "is-ci": "^2.0.0",
+ "jest-config": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "prompts": "^2.0.1",
+ "realpath-native": "^2.0.0",
+ "yargs": "^15.3.1"
+ }
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "jest-validate": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+ "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "jest-get-type": "^25.2.6",
+ "leven": "^3.1.0",
+ "pretty-format": "^25.5.0"
+ }
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^5.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "15.3.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+ "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+ "dev": true,
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "jest-changed-files": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz",
+ "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "execa": "^3.2.0",
+ "throat": "^5.0.0"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
+ "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "execa": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+ "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "p-finally": "^2.0.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+ "dev": true
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "p-finally": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
+ "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "jest-config": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz",
+ "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/test-sequencer": "^25.5.4",
+ "@jest/types": "^25.5.0",
+ "babel-jest": "^25.5.1",
+ "chalk": "^3.0.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.2.4",
+ "jest-environment-jsdom": "^25.5.0",
+ "jest-environment-node": "^25.5.0",
+ "jest-get-type": "^25.2.6",
+ "jest-jasmine2": "^25.5.4",
+ "jest-regex-util": "^25.2.6",
+ "jest-resolve": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "pretty-format": "^25.5.0",
+ "realpath-native": "^2.0.0"
+ },
+ "dependencies": {
+ "@jest/transform": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+ "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^25.5.0",
+ "babel-plugin-istanbul": "^6.0.0",
+ "chalk": "^3.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-regex-util": "^25.2.6",
+ "jest-util": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "pirates": "^4.0.1",
+ "realpath-native": "^2.0.0",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-jest": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+ "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
+ "@types/babel__core": "^7.1.7",
+ "babel-plugin-istanbul": "^6.0.0",
+ "babel-preset-jest": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "slash": "^3.0.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz",
+ "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^4.0.0",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz",
+ "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz",
+ "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "^25.5.0",
+ "babel-preset-current-node-syntax": "^0.1.2"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7",
+ "which": "^2.0.2"
+ }
+ },
+ "jest-regex-util": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+ "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "browser-resolve": "^1.11.3",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.1",
+ "read-pkg-up": "^7.0.1",
+ "realpath-native": "^2.0.0",
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "jest-serializer": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4"
+ }
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "jest-validate": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+ "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "jest-get-type": "^25.2.6",
+ "leven": "^3.1.0",
+ "pretty-format": "^25.5.0"
+ }
+ },
+ "jest-worker": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
+ "dev": true,
+ "requires": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ }
+ },
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ }
+ }
+ },
+ "jest-dev-server": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-4.4.0.tgz",
+ "integrity": "sha512-STEHJ3iPSC8HbrQ3TME0ozGX2KT28lbT4XopPxUm2WimsX3fcB3YOptRh12YphQisMhfqNSNTZUmWyT3HEXS2A==",
+ "dev": true,
+ "requires": {
+ "chalk": "^3.0.0",
+ "cwd": "^0.10.0",
+ "find-process": "^1.4.3",
+ "prompts": "^2.3.0",
+ "spawnd": "^4.4.0",
+ "tree-kill": "^1.2.2",
+ "wait-on": "^3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "dev": true
+ }
+ }
+ },
+ "jest-diff": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.3.0.tgz",
+ "integrity": "sha512-vyvs6RPoVdiwARwY4kqFWd4PirPLm2dmmkNzKqo38uZOzJvLee87yzDjIZLmY1SjM3XR5DwsUH+cdQ12vgqi1w==",
+ "dev": true,
+ "requires": {
+ "chalk": "^3.0.0",
+ "diff-sequences": "^25.2.6",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.3.0"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "25.4.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.4.0.tgz",
+ "integrity": "sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "25.4.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.4.0.tgz",
+ "integrity": "sha512-PI/2dpGjXK5HyXexLPZU/jw5T9Q6S1YVXxxVxco+LIqzUFHXIbKZKdUVt7GcX7QUCr31+3fzhi4gN4/wUYPVxQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.4.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-docblock": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz",
+ "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==",
+ "dev": true,
+ "requires": {
+ "detect-newline": "^3.0.0"
+ }
+ },
+ "jest-each": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz",
+ "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-get-type": "^25.2.6",
+ "jest-util": "^25.5.0",
+ "pretty-format": "^25.5.0"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-emotion": {
+ "version": "10.0.32",
+ "resolved": "https://registry.npmjs.org/jest-emotion/-/jest-emotion-10.0.32.tgz",
+ "integrity": "sha512-hW3IwWc47qRuxnGsWFGY6uIMX8F4YBzq+Qci3LAYUCUqUBNP+1DU1L5Nudo9Ry0NHVFOqDnDeip1p2UR0kVMwA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.5.5",
+ "@types/jest": "^23.0.2",
+ "chalk": "^2.4.1",
+ "css": "^2.2.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ }
+ }
+ },
+ "jest-environment-jsdom": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz",
+ "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^25.5.0",
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jsdom": "^15.2.1"
+ },
+ "dependencies": {
+ "@jest/fake-timers": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+ "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "lolex": "^5.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-mock": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0"
+ }
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-environment-node": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz",
+ "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^25.5.0",
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "@jest/fake-timers": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+ "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "lolex": "^5.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-mock": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0"
+ }
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
"requires": {
- "encoding": "^0.1.11",
- "is-stream": "^1.0.1"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
- }
- }
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
- },
- "istanbul-lib-coverage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
- "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
- "dev": true
- },
- "istanbul-lib-instrument": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz",
- "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.7.5",
- "@babel/parser": "^7.7.5",
- "@babel/template": "^7.7.4",
- "@babel/traverse": "^7.7.4",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "semver": "^6.3.0"
- },
- "dependencies": {
+ },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
- }
- }
- },
- "istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
},
"supports-color": {
@@ -26216,88 +34613,110 @@
"requires": {
"has-flag": "^4.0.0"
}
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
}
}
},
- "istanbul-lib-source-maps": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
- "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
+ "jest-environment-puppeteer": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-4.4.0.tgz",
+ "integrity": "sha512-iV8S8+6qkdTM6OBR/M9gKywEk8GDSOe05hspCs5D8qKSwtmlUfdtHfB4cakdc68lC6YfK3AUsLirpfgodCHjzQ==",
"dev": true,
"requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
+ "chalk": "^3.0.0",
+ "cwd": "^0.10.0",
+ "jest-dev-server": "^4.4.0",
+ "merge-deep": "^3.0.2"
},
"dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "ms": "^2.1.1"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
}
}
},
- "istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0"
- }
- },
- "iterate-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
- "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==",
- "dev": true
- },
- "iterate-value": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
- "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
- "dev": true,
- "requires": {
- "es-get-iterator": "^1.0.2",
- "iterate-iterator": "^1.0.1"
- }
- },
- "jed": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz",
- "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ="
+ "jest-get-type": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
+ "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="
},
- "jest": {
+ "jest-haste-map": {
"version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz",
- "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
+ "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
"requires": {
- "import-local": "^2.0.0",
- "jest-cli": "^24.9.0"
+ "@jest/types": "^24.9.0",
+ "anymatch": "^2.0.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^1.2.7",
+ "graceful-fs": "^4.1.15",
+ "invariant": "^2.2.4",
+ "jest-serializer": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
},
"dependencies": {
"@jest/types": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
"integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
@@ -26308,297 +34727,303 @@
"version": "13.0.8",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
"integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
"requires": {
"@types/yargs-parser": "*"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "graceful-fs": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+ }
+ }
+ },
+ "jest-jasmine2": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz",
+ "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.1.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/source-map": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "co": "^4.6.0",
+ "expect": "^25.5.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^25.5.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-runtime": "^25.5.4",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "pretty-format": "^25.5.0",
+ "throat": "^5.0.0"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "slash": "^3.0.0"
}
},
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "@jest/source-map": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz",
+ "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==",
"dev": true,
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "source-map": "^0.6.0"
}
},
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "@jest/test-result": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
"dev": true,
"requires": {
- "locate-path": "^3.0.0"
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
}
},
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "jest-cli": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz",
- "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==",
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
- "@jest/core": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "import-local": "^2.0.0",
- "is-ci": "^2.0.0",
- "jest-config": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "prompts": "^2.0.1",
- "realpath-native": "^1.1.0",
- "yargs": "^13.3.0"
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "fill-range": "^7.0.1"
}
},
- "p-locate": {
+ "chalk": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "p-limit": "^2.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "color-name": "~1.1.4"
}
},
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
- "wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "to-regex-range": "^5.0.1"
}
},
- "y18n": {
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
- "dev": true,
- "requires": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.2"
- }
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
},
- "yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "jest-diff": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+ "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
"dev": true,
"requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
+ "chalk": "^3.0.0",
+ "diff-sequences": "^25.2.6",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
}
- }
- }
- },
- "jest-changed-files": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz",
- "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==",
- "dev": true,
- "requires": {
- "@jest/types": "^24.9.0",
- "execa": "^1.0.0",
- "throat": "^4.0.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-matcher-utils": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+ "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "chalk": "^3.0.0",
+ "jest-diff": "^25.5.0",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
}
},
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
}
},
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.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"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
}
},
- "pump": {
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "slash": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "has-flag": "^4.0.0"
}
},
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
"dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
}
}
},
- "jest-config": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz",
- "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==",
+ "jest-junit": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-10.0.0.tgz",
+ "integrity": "sha512-dbOVRyxHprdSpwSAR9/YshLwmnwf+RSl5hf0kCGlhAcEeZY9aRqo4oNmaT0tLC16Zy9D0zekDjWkjHGjXlglaQ==",
"dev": true,
"requires": {
- "@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^24.9.0",
- "@jest/types": "^24.9.0",
- "babel-jest": "^24.9.0",
- "chalk": "^2.0.1",
- "glob": "^7.1.1",
- "jest-environment-jsdom": "^24.9.0",
- "jest-environment-node": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "jest-jasmine2": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.9.0",
- "jest-util": "^24.9.0",
"jest-validate": "^24.9.0",
- "micromatch": "^3.1.10",
- "pretty-format": "^24.9.0",
- "realpath-native": "^1.1.0"
+ "mkdirp": "^0.5.1",
+ "strip-ansi": "^5.2.0",
+ "uuid": "^3.3.3",
+ "xml": "^1.0.1"
},
"dependencies": {
"@jest/types": {
@@ -26627,6 +35052,12 @@
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -26638,6 +35069,26 @@
"supports-color": "^5.3.0"
}
},
+ "jest-validate": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
+ "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^2.0.1",
+ "jest-get-type": "^24.9.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^24.9.0"
+ }
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
"pretty-format": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
@@ -26649,24 +35100,52 @@
"ansi-styles": "^3.2.0",
"react-is": "^16.8.4"
}
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
}
}
},
- "jest-dev-server": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-4.4.0.tgz",
- "integrity": "sha512-STEHJ3iPSC8HbrQ3TME0ozGX2KT28lbT4XopPxUm2WimsX3fcB3YOptRh12YphQisMhfqNSNTZUmWyT3HEXS2A==",
+ "jest-leak-detector": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz",
+ "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==",
"dev": true,
"requires": {
- "chalk": "^3.0.0",
- "cwd": "^0.10.0",
- "find-process": "^1.4.3",
- "prompts": "^2.3.0",
- "spawnd": "^4.4.0",
- "tree-kill": "^1.2.2",
- "wait-on": "^3.3.0"
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
},
"dependencies": {
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"ansi-styles": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
@@ -26708,6 +35187,30 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
"supports-color": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
@@ -26716,105 +35219,122 @@
"requires": {
"has-flag": "^4.0.0"
}
- },
- "tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dev": true
}
}
},
- "jest-diff": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
- "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
+ "jest-matcher-utils": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.3.0.tgz",
+ "integrity": "sha512-ZBUJ2fchNIZt+fyzkuCFBb8SKaU//Rln45augfUtbHaGyVxCO++ANARdBK9oPGXU3hEDgyy7UHnOP/qNOJXFUg==",
"dev": true,
"requires": {
- "chalk": "^2.0.1",
- "diff-sequences": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
+ "chalk": "^3.0.0",
+ "jest-diff": "^25.3.0",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.3.0"
},
"dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.3.0.tgz",
+ "integrity": "sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@jest/types": "^25.3.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
}
},
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
+ "has-flag": "^4.0.0"
}
}
}
},
- "jest-docblock": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz",
- "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==",
- "dev": true,
- "requires": {
- "detect-newline": "^2.1.0"
- }
- },
- "jest-each": {
+ "jest-message-util": {
"version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz",
- "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
+ "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
"requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/test-result": "^24.9.0",
"@jest/types": "^24.9.0",
+ "@types/stack-utils": "^1.0.1",
"chalk": "^2.0.1",
- "jest-get-type": "^24.9.0",
- "jest-util": "^24.9.0",
- "pretty-format": "^24.9.0"
+ "micromatch": "^3.1.10",
+ "slash": "^2.0.0",
+ "stack-utils": "^1.0.1"
},
"dependencies": {
"@jest/types": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
"integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
@@ -26825,92 +35345,39 @@
"version": "13.0.8",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
"integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
"requires": {
"@types/yargs-parser": "*"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
- "dev": true,
- "requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
- }
- }
- }
- },
- "jest-emotion": {
- "version": "10.0.32",
- "resolved": "https://registry.npmjs.org/jest-emotion/-/jest-emotion-10.0.32.tgz",
- "integrity": "sha512-hW3IwWc47qRuxnGsWFGY6uIMX8F4YBzq+Qci3LAYUCUqUBNP+1DU1L5Nudo9Ry0NHVFOqDnDeip1p2UR0kVMwA==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.5.5",
- "@types/jest": "^23.0.2",
- "chalk": "^2.4.1",
- "css": "^2.2.1"
- },
- "dependencies": {
- "@types/jest": {
- "version": "23.3.14",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.14.tgz",
- "integrity": "sha512-Q5hTcfdudEL2yOmluA1zaSyPbzWPmJ3XfSWeP3RyoYvS9hnje1ZyagrZOuQ6+1nQC1Gw+7gap3pLNL3xL6UBug==",
- "dev": true
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
}
}
},
- "jest-environment-jsdom": {
+ "jest-mock": {
"version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz",
- "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
+ "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
"requires": {
- "@jest/environment": "^24.9.0",
- "@jest/fake-timers": "^24.9.0",
- "@jest/types": "^24.9.0",
- "jest-mock": "^24.9.0",
- "jest-util": "^24.9.0",
- "jsdom": "^11.5.1"
+ "@jest/types": "^24.9.0"
},
"dependencies": {
"@jest/types": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
"integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
@@ -26921,126 +35388,293 @@
"version": "13.0.8",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
"integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
"requires": {
"@types/yargs-parser": "*"
}
+ }
+ }
+ },
+ "jest-pnp-resolver": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz",
+ "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==",
+ "dev": true
+ },
+ "jest-puppeteer": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-4.4.0.tgz",
+ "integrity": "sha512-ZaiCTlPZ07B9HW0erAWNX6cyzBqbXMM7d2ugai4epBDKpKvRDpItlRQC6XjERoJELKZsPziFGS0OhhUvTvQAXA==",
+ "dev": true,
+ "requires": {
+ "expect-puppeteer": "^4.4.0",
+ "jest-environment-puppeteer": "^4.4.0"
+ }
+ },
+ "jest-regex-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
+ "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.3.0.tgz",
+ "integrity": "sha512-IHoQAAybulsJ+ZgWis+ekYKDAoFkVH5Nx/znpb41zRtpxj4fr2WNV9iDqavdSm8GIpMlsfZxbC/fV9DhW0q9VQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.3.0",
+ "browser-resolve": "^1.11.3",
+ "chalk": "^3.0.0",
+ "jest-pnp-resolver": "^1.2.1",
+ "realpath-native": "^2.0.0",
+ "resolve": "^1.15.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
},
- "cssstyle": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
- "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "cssom": "0.3.x"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "jsdom": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
- "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
- "dev": true,
- "requires": {
- "abab": "^2.0.0",
- "acorn": "^5.5.3",
- "acorn-globals": "^4.1.0",
- "array-equal": "^1.0.0",
- "cssom": ">= 0.3.2 < 0.4.0",
- "cssstyle": "^1.0.0",
- "data-urls": "^1.0.0",
- "domexception": "^1.0.1",
- "escodegen": "^1.9.1",
- "html-encoding-sniffer": "^1.0.2",
- "left-pad": "^1.3.0",
- "nwsapi": "^2.0.7",
- "parse5": "4.0.0",
- "pn": "^1.1.0",
- "request": "^2.87.0",
- "request-promise-native": "^1.0.5",
- "sax": "^1.2.4",
- "symbol-tree": "^3.2.2",
- "tough-cookie": "^2.3.4",
- "w3c-hr-time": "^1.0.1",
- "webidl-conversions": "^4.0.2",
- "whatwg-encoding": "^1.0.3",
- "whatwg-mimetype": "^2.1.0",
- "whatwg-url": "^6.4.1",
- "ws": "^5.2.0",
- "xml-name-validator": "^3.0.0"
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
}
},
- "parse5": {
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
- "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "ws": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
- "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "async-limiter": "~1.0.0"
+ "has-flag": "^4.0.0"
}
}
}
},
- "jest-environment-node": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz",
- "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==",
+ "jest-resolve-dependencies": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz",
+ "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==",
"dev": true,
"requires": {
- "@jest/environment": "^24.9.0",
- "@jest/fake-timers": "^24.9.0",
- "@jest/types": "^24.9.0",
- "jest-mock": "^24.9.0",
- "jest-util": "^24.9.0"
+ "@jest/types": "^25.5.0",
+ "jest-regex-util": "^25.2.6",
+ "jest-snapshot": "^25.5.1"
},
"dependencies": {
"@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+ "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
}
}
}
},
- "jest-environment-puppeteer": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-4.4.0.tgz",
- "integrity": "sha512-iV8S8+6qkdTM6OBR/M9gKywEk8GDSOe05hspCs5D8qKSwtmlUfdtHfB4cakdc68lC6YfK3AUsLirpfgodCHjzQ==",
+ "jest-runner": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz",
+ "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==",
"dev": true,
"requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
- "cwd": "^0.10.0",
- "jest-dev-server": "^4.4.0",
- "merge-deep": "^3.0.2"
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^25.5.4",
+ "jest-docblock": "^25.3.0",
+ "jest-haste-map": "^25.5.1",
+ "jest-jasmine2": "^25.5.4",
+ "jest-leak-detector": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-resolve": "^25.5.1",
+ "jest-runtime": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
+ "source-map-support": "^0.5.6",
+ "throat": "^5.0.0"
},
"dependencies": {
+ "@jest/console": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
"ansi-styles": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
}
},
"chalk": {
@@ -27068,342 +35702,486 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
"dev": true,
"requires": {
- "has-flag": "^4.0.0"
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7",
+ "which": "^2.0.2"
}
- }
- }
- },
- "jest-get-type": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
- "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="
- },
- "jest-haste-map": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
- "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
- "requires": {
- "@jest/types": "^24.9.0",
- "anymatch": "^2.0.0",
- "fb-watchman": "^2.0.0",
- "fsevents": "^1.2.7",
- "graceful-fs": "^4.1.15",
- "invariant": "^2.2.4",
- "jest-serializer": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-worker": "^24.9.0",
- "micromatch": "^3.1.10",
- "sane": "^4.0.3",
- "walker": "^1.0.7"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "jest-resolve": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
+ "dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@jest/types": "^25.5.0",
+ "browser-resolve": "^1.11.3",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.1",
+ "read-pkg-up": "^7.0.1",
+ "realpath-native": "^2.0.0",
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
- }
- }
- },
- "jest-jasmine2": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz",
- "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==",
- "dev": true,
- "requires": {
- "@babel/traverse": "^7.1.0",
- "@jest/environment": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "co": "^4.6.0",
- "expect": "^24.9.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^24.9.0",
- "jest-matcher-utils": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-snapshot": "^24.9.0",
- "jest-util": "^24.9.0",
- "pretty-format": "^24.9.0",
- "throat": "^4.0.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "jest-serializer": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "graceful-fs": "^4.2.4"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "jest-worker": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
+ "dev": true,
+ "requires": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "jest-matcher-utils": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
- "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
- "chalk": "^2.0.1",
- "jest-diff": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
+ "p-try": "^2.0.0"
}
- }
- }
- },
- "jest-junit": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-10.0.0.tgz",
- "integrity": "sha512-dbOVRyxHprdSpwSAR9/YshLwmnwf+RSl5hf0kCGlhAcEeZY9aRqo4oNmaT0tLC16Zy9D0zekDjWkjHGjXlglaQ==",
- "dev": true,
- "requires": {
- "jest-validate": "^24.9.0",
- "mkdirp": "^0.5.1",
- "strip-ansi": "^5.2.0",
- "uuid": "^3.3.3",
- "xml": "^1.0.1"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "p-limit": "^2.2.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true
},
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
}
},
- "jest-validate": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
- "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "camelcase": "^5.3.1",
- "chalk": "^2.0.1",
- "jest-get-type": "^24.9.0",
- "leven": "^3.1.0",
- "pretty-format": "^24.9.0"
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
}
},
- "leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
"dev": true
},
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
+ "path-parse": "^1.0.6"
}
},
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "has-flag": "^4.0.0"
}
},
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
}
}
},
- "jest-leak-detector": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz",
- "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==",
- "dev": true,
- "requires": {
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
+ "jest-runtime": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz",
+ "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/globals": "^25.5.2",
+ "@jest/source-map": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^25.5.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-regex-util": "^25.2.6",
+ "jest-resolve": "^25.5.1",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "realpath-native": "^2.0.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0",
+ "yargs": "^15.3.1"
},
"dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "@jest/console": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "slash": "^3.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "@jest/source-map": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz",
+ "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "source-map": "^0.6.0"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "@jest/test-result": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
},
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "@jest/transform": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+ "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^25.5.0",
+ "babel-plugin-istanbul": "^6.0.0",
+ "chalk": "^3.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-regex-util": "^25.2.6",
+ "jest-util": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "pirates": "^4.0.1",
+ "realpath-native": "^2.0.0",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
}
- }
- }
- },
- "jest-matcher-utils": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.3.0.tgz",
- "integrity": "sha512-ZBUJ2fchNIZt+fyzkuCFBb8SKaU//Rln45augfUtbHaGyVxCO++ANARdBK9oPGXU3hEDgyy7UHnOP/qNOJXFUg==",
- "dev": true,
- "requires": {
- "chalk": "^3.0.0",
- "jest-diff": "^25.3.0",
- "jest-get-type": "^25.2.6",
- "pretty-format": "^25.3.0"
- },
- "dependencies": {
+ },
+ "@jest/types": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
+ }
+ },
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"dev": true
},
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz",
+ "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^4.0.0",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
+ "fill-range": "^7.0.1"
}
},
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
"chalk": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
@@ -27414,6 +36192,17 @@
"supports-color": "^7.1.0"
}
},
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -27429,462 +36218,353 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "diff-sequences": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz",
- "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
- "jest-diff": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.3.0.tgz",
- "integrity": "sha512-vyvs6RPoVdiwARwY4kqFWd4PirPLm2dmmkNzKqo38uZOzJvLee87yzDjIZLmY1SjM3XR5DwsUH+cdQ12vgqi1w==",
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
- "chalk": "^3.0.0",
- "diff-sequences": "^25.2.6",
- "jest-get-type": "^25.2.6",
- "pretty-format": "^25.3.0"
+ "to-regex-range": "^5.0.1"
}
},
- "jest-get-type": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
- "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
- "dev": true
- },
- "pretty-format": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.3.0.tgz",
- "integrity": "sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA==",
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
- "ansi-regex": "^5.0.0",
- "ansi-styles": "^4.0.0",
- "react-is": "^16.12.0"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
}
},
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "jest-message-util": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
- "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/stack-utils": "^1.0.1",
- "chalk": "^2.0.1",
- "micromatch": "^3.1.10",
- "slash": "^2.0.0",
- "stack-utils": "^1.0.1"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "requires": {
- "@types/yargs-parser": "*"
- }
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
},
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
- }
- }
- },
- "jest-mock": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
- "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
- "requires": {
- "@jest/types": "^24.9.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "requires": {
- "@types/yargs-parser": "*"
- }
- }
- }
- },
- "jest-pnp-resolver": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz",
- "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==",
- "dev": true
- },
- "jest-puppeteer": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-4.4.0.tgz",
- "integrity": "sha512-ZaiCTlPZ07B9HW0erAWNX6cyzBqbXMM7d2ugai4epBDKpKvRDpItlRQC6XjERoJELKZsPziFGS0OhhUvTvQAXA==",
- "dev": true,
- "requires": {
- "expect-puppeteer": "^4.4.0",
- "jest-environment-puppeteer": "^4.4.0"
- }
- },
- "jest-regex-util": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
- "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==",
- "dev": true
- },
- "jest-resolve": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz",
- "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==",
- "dev": true,
- "requires": {
- "@jest/types": "^24.9.0",
- "browser-resolve": "^1.11.3",
- "chalk": "^2.0.1",
- "jest-pnp-resolver": "^1.2.1",
- "realpath-native": "^1.1.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.1.2",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
+ "micromatch": "^4.0.2",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7",
+ "which": "^2.0.2"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
}
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "jest-mock": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "@jest/types": "^25.5.0"
}
- }
- }
- },
- "jest-resolve-dependencies": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz",
- "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==",
- "dev": true,
- "requires": {
- "@jest/types": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-snapshot": "^24.9.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ },
+ "jest-regex-util": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+ "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@jest/types": "^25.5.0",
+ "browser-resolve": "^1.11.3",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.1",
+ "read-pkg-up": "^7.0.1",
+ "realpath-native": "^2.0.0",
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "jest-serializer": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "graceful-fs": "^4.2.4"
}
- }
- }
- },
- "jest-runner": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz",
- "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==",
- "dev": true,
- "requires": {
- "@jest/console": "^24.7.1",
- "@jest/environment": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.4.2",
- "exit": "^0.1.2",
- "graceful-fs": "^4.1.15",
- "jest-config": "^24.9.0",
- "jest-docblock": "^24.3.0",
- "jest-haste-map": "^24.9.0",
- "jest-jasmine2": "^24.9.0",
- "jest-leak-detector": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-resolve": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-worker": "^24.6.0",
- "source-map-support": "^0.5.6",
- "throat": "^4.0.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "jest-validate": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+ "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@jest/types": "^25.5.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^3.0.0",
+ "jest-get-type": "^25.2.6",
+ "leven": "^3.1.0",
+ "pretty-format": "^25.5.0"
}
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "jest-worker": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
}
},
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"dev": true
- }
- }
- },
- "jest-runtime": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz",
- "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==",
- "dev": true,
- "requires": {
- "@jest/console": "^24.7.1",
- "@jest/environment": "^24.9.0",
- "@jest/source-map": "^24.3.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/yargs": "^13.0.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.1.15",
- "jest-config": "^24.9.0",
- "jest-haste-map": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-mock": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.9.0",
- "jest-snapshot": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "realpath-native": "^1.1.0",
- "slash": "^2.0.0",
- "strip-bom": "^3.0.0",
- "yargs": "^13.3.0"
- },
- "dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "p-locate": "^4.1.0"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "find-up": {
+ "normalize-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
- "locate-path": "^3.0.0"
+ "p-try": "^2.0.0"
}
},
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
}
},
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "pretty-format": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
"dev": true,
"requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
}
},
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
"requires": {
- "p-try": "^2.0.0"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
}
},
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
"requires": {
- "p-limit": "^2.0.0"
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
}
},
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
"dev": true
},
"require-main-filename": {
@@ -27893,47 +36573,113 @@
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
"slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
}
},
"strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "ansi-regex": "^5.0.0"
}
},
"strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
},
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
"wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
},
"y18n": {
@@ -27943,27 +36689,28 @@
"dev": true
},
"yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "version": "15.3.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+ "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
"dev": true,
"requires": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
+ "string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
- "yargs-parser": "^13.1.2"
+ "yargs-parser": "^18.1.1"
}
},
"yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
@@ -28004,85 +36751,339 @@
}
},
"jest-snapshot": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz",
- "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz",
+ "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "expect": "^24.9.0",
- "jest-diff": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "jest-matcher-utils": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-resolve": "^24.9.0",
- "mkdirp": "^0.5.1",
+ "@jest/types": "^25.5.0",
+ "@types/prettier": "^1.19.0",
+ "chalk": "^3.0.0",
+ "expect": "^25.5.0",
+ "graceful-fs": "^4.2.4",
+ "jest-diff": "^25.5.0",
+ "jest-get-type": "^25.2.6",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-resolve": "^25.5.1",
+ "make-dir": "^3.0.0",
"natural-compare": "^1.4.0",
- "pretty-format": "^24.9.0",
- "semver": "^6.2.0"
+ "pretty-format": "^25.5.0",
+ "semver": "^6.3.0"
},
"dependencies": {
"@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
}
},
- "ansi-regex": {
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-diff": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+ "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "chalk": "^3.0.0",
+ "diff-sequences": "^25.2.6",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
}
},
+ "jest-get-type": {
+ "version": "25.2.6",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+ "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
+ "dev": true
+ },
"jest-matcher-utils": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
- "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+ "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
"dev": true,
"requires": {
- "chalk": "^2.0.1",
- "jest-diff": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
+ "chalk": "^3.0.0",
+ "jest-diff": "^25.5.0",
+ "jest-get-type": "^25.2.6",
+ "pretty-format": "^25.5.0"
+ }
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-resolve": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "browser-resolve": "^1.11.3",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "jest-pnp-resolver": "^1.2.1",
+ "read-pkg-up": "^7.0.1",
+ "realpath-native": "^2.0.0",
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
}
},
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
"pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
"dev": true,
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
+ "@jest/types": "^25.5.0",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^16.12.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ }
+ },
+ "realpath-native": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
}
},
"semver": {
@@ -28090,6 +37091,36 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
}
}
},
@@ -28161,7 +37192,6 @@
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
"integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
- "dev": true,
"requires": {
"@jest/types": "^24.9.0",
"camelcase": "^5.3.1",
@@ -28175,7 +37205,6 @@
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
"integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
@@ -28183,10 +37212,9 @@
}
},
"@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "dev": true,
+ "version": "13.0.9",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz",
+ "integrity": "sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -28194,20 +37222,17 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -28217,14 +37242,12 @@
"leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
},
"pretty-format": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
"integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
- "dev": true,
"requires": {
"@jest/types": "^24.9.0",
"ansi-regex": "^4.0.0",
@@ -28235,60 +37258,204 @@
}
},
"jest-watcher": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz",
- "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz",
+ "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==",
"dev": true,
"requires": {
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/yargs": "^13.0.0",
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.1",
- "jest-util": "^24.9.0",
- "string-length": "^2.0.0"
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^3.0.0",
+ "jest-util": "^25.5.0",
+ "string-length": "^3.1.0"
},
"dependencies": {
+ "@jest/console": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
"@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@types/yargs": "^15.0.0",
+ "chalk": "^3.0.0"
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
"dev": true,
"requires": {
- "@types/yargs-parser": "*"
+ "type-fest": "^0.11.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
}
},
"chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "string-length": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
- "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "astral-regex": "^1.0.0",
- "strip-ansi": "^4.0.0"
+ "color-name": "~1.1.4"
}
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/types": "^25.5.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "micromatch": "^4.0.2",
+ "slash": "^3.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-util": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "make-dir": "^3.0.0"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
}
}
},
@@ -28351,13 +37518,6 @@
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
- },
- "dependencies": {
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
- }
}
},
"jsbn": {
@@ -28410,12 +37570,6 @@
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
},
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
"recast": {
"version": "0.18.5",
"resolved": "https://registry.npmjs.org/recast/-/recast-0.18.5.tgz",
@@ -28476,41 +37630,15 @@
"xml-name-validator": "^3.0.0"
},
"dependencies": {
- "abab": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
- "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
- "dev": true
- },
"acorn": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
"integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
"dev": true
},
- "acorn-globals": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
- "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
- "dev": true,
- "requires": {
- "acorn": "^6.0.1",
- "acorn-walk": "^6.0.1"
- },
- "dependencies": {
- "acorn": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
- "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
- "dev": true
- }
- }
- },
"acorn-walk": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
- "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
- "dev": true
+ "version": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
+ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="
},
"cssom": {
"version": "0.4.4",
@@ -28518,36 +37646,6 @@
"integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
"dev": true
},
- "data-urls": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
- "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
- "dev": true,
- "requires": {
- "abab": "^2.0.0",
- "whatwg-mimetype": "^2.2.0",
- "whatwg-url": "^7.0.0"
- }
- },
- "escodegen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
- "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
- "dev": true,
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
- }
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -28596,11 +37694,8 @@
}
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "optional": true
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"tough-cookie": {
"version": "3.0.1",
@@ -28622,23 +37717,6 @@
"iconv-lite": "0.4.24"
}
},
- "whatwg-mimetype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
- "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
- "dev": true
- },
- "whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dev": true,
- "requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
- },
"ws": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
@@ -28766,6 +37844,14 @@
"requires": {
"is-promise": "^2.0.0",
"promise": "^7.0.1"
+ },
+ "dependencies": {
+ "is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "dev": true
+ }
}
},
"jsx-ast-utils": {
@@ -28867,12 +37953,6 @@
"invert-kv": "^1.0.0"
}
},
- "left-pad": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
- "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
- "dev": true
- },
"lerna": {
"version": "3.18.2",
"resolved": "https://registry.npmjs.org/lerna/-/lerna-3.18.2.tgz",
@@ -28904,6 +37984,23 @@
"integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
"dev": true
},
+ "levenary": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
+ "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
+ "dev": true,
+ "requires": {
+ "leven": "^3.1.0"
+ },
+ "dependencies": {
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ }
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -29226,6 +38323,12 @@
"rxjs": "^6.3.3"
},
"dependencies": {
+ "is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "dev": true
+ },
"p-map": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
@@ -29701,11 +38804,6 @@
"mem": "^4.0.0"
}
},
- "p-is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
- },
"p-limit": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
@@ -29836,7 +38934,6 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
"integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
- "dev": true,
"requires": {
"pseudomap": "^1.0.2",
"yallist": "^2.1.2"
@@ -29855,14 +38952,6 @@
"dev": true,
"requires": {
"semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz",
- "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==",
- "dev": true
- }
}
},
"make-fetch-happen": {
@@ -30194,6 +39283,7 @@
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
@@ -30561,41 +39651,6 @@
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
- "babel-preset-fbjs": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz",
- "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==",
- "dev": true,
- "requires": {
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-syntax-class-properties": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.0.0",
- "@babel/plugin-syntax-jsx": "^7.0.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-for-of": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-member-expression-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-object-super": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-property-literals": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
- }
- },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -30860,19 +39915,6 @@
"vlq": "^1.0.0"
}
},
- "metro-symbolicate": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz",
- "integrity": "sha512-uIVxUQC1E26qOMj13dKROhwAa2FmZk5eR0NcBqej/aXmQhpr8LjJg2sondkoLKUp827Tf/Fm9+pS4icb5XiqCw==",
- "dev": true,
- "requires": {
- "invariant": "^2.2.4",
- "metro-source-map": "0.58.0",
- "source-map": "^0.5.6",
- "through2": "^2.0.1",
- "vlq": "^1.0.0"
- }
- },
"mime-db": {
"version": "1.23.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz",
@@ -30894,16 +39936,10 @@
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
"dev": true
},
- "ob1": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.58.0.tgz",
- "integrity": "sha512-uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q==",
- "dev": true
- },
"p-limit": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
- "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -30924,12 +39960,6 @@
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "react-refresh": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.2.tgz",
- "integrity": "sha512-kv5QlFFSZWo7OlJFNYbxRtY66JImuP2LcrFgyJfQaf85gSP+byzG21UbDQEYjU7f//ny8rwiEkO6py2Y+fEgAQ==",
- "dev": true
- },
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
@@ -31445,6 +40475,11 @@
"mime-db": "~1.23.0"
}
},
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ },
"path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
@@ -31658,9 +40693,9 @@
}
},
"p-limit": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
- "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -31907,6 +40942,23 @@
"source-map": "^0.5.6",
"vlq": "^1.0.0"
}
+ },
+ "metro-symbolicate": {
+ "version": "0.56.0",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.56.0.tgz",
+ "integrity": "sha512-5gJtwdSS0eYlTYB7PXatohBknz1sWUTfMBhwjn6zbgoyR6Apkpl2t2TfZxwfDTauhcEV1gRLmuodrVENs01r8g==",
+ "requires": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.56.0",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ }
+ },
+ "ob1": {
+ "version": "0.56.0",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.56.0.tgz",
+ "integrity": "sha512-3rvepvXPw+OIkcut4MaRYIoy4thTWvWhTK+Hg4+y9fOBWVF9acpBvtm2NSbH9Vw9UBG/9v+T5euwPxUSUIDPWw=="
}
}
},
@@ -31952,27 +41004,29 @@
}
},
"metro-symbolicate": {
- "version": "0.56.0",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.56.0.tgz",
- "integrity": "sha512-5gJtwdSS0eYlTYB7PXatohBknz1sWUTfMBhwjn6zbgoyR6Apkpl2t2TfZxwfDTauhcEV1gRLmuodrVENs01r8g==",
+ "version": "0.58.0",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz",
+ "integrity": "sha512-uIVxUQC1E26qOMj13dKROhwAa2FmZk5eR0NcBqej/aXmQhpr8LjJg2sondkoLKUp827Tf/Fm9+pS4icb5XiqCw==",
+ "dev": true,
"requires": {
"invariant": "^2.2.4",
- "metro-source-map": "0.56.0",
+ "metro-source-map": "0.58.0",
"source-map": "^0.5.6",
"through2": "^2.0.1",
"vlq": "^1.0.0"
},
"dependencies": {
"metro-source-map": {
- "version": "0.56.0",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.56.0.tgz",
- "integrity": "sha512-W3c91L+CtbQTRxOrcVteCi5XlSXh+L0Zy85YBwm+FkWTKfrYjacr/yW1S9/LutpLgWE0W0VBeQeY++aRHwpx0g==",
+ "version": "0.58.0",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz",
+ "integrity": "sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==",
+ "dev": true,
"requires": {
"@babel/traverse": "^7.0.0",
"@babel/types": "^7.0.0",
"invariant": "^2.2.4",
- "metro-symbolicate": "0.56.0",
- "ob1": "0.56.0",
+ "metro-symbolicate": "0.58.0",
+ "ob1": "0.58.0",
"source-map": "^0.5.6",
"vlq": "^1.0.0"
}
@@ -32009,6 +41063,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
"integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
"requires": {
"bn.js": "^4.0.0",
"brorand": "^1.0.1"
@@ -32096,12 +41151,14 @@
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
},
"minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
},
"minimatch": {
"version": "3.0.4",
@@ -32452,8 +41509,7 @@
"nan": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
- "optional": true
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
},
"nanomatch": {
"version": "1.2.13",
@@ -32589,9 +41645,13 @@
}
},
"node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "requires": {
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
},
"node-fetch-npm": {
"version": "2.0.2",
@@ -32701,65 +41761,6 @@
}
}
},
- "node-libs-react-native": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/node-libs-react-native/-/node-libs-react-native-1.2.0.tgz",
- "integrity": "sha512-D+g8Mj9OfsOYYFWZoSz4bmr/8g/QWOwUgDmi3Ux0EPU9Q41OvGsdzAzr0IGJmtuSAfyOTfnKx1XRQR9id8/EEw==",
- "requires": {
- "assert": "^1.4.1",
- "base-64": "^0.1.0",
- "browserify-zlib": "^0.2.0",
- "buffer": "^5.0.6",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "domain-browser": "^1.1.1",
- "events": "^1.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.0",
- "process": "^0.11.0",
- "punycode": "^2.1.0",
- "querystring-es3": "^0.2.0",
- "react-native-crypto": "^2.0.1",
- "react-native-randombytes": "^3.5.1",
- "readable-stream": "^2.2.9",
- "stream-http": "^2.3.1",
- "string_decoder": "^1.0.3",
- "timers-browserify": "^2.0.2",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.10.3"
- },
- "dependencies": {
- "buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
- }
- },
- "events": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
- },
- "path-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
- "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
- },
- "util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "requires": {
- "inherits": "2.0.3"
- }
- }
- }
- },
"node-modules-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
@@ -32921,18 +41922,6 @@
"true-case-path": "^1.0.2"
},
"dependencies": {
- "ajv": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
- "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -32945,12 +41934,6 @@
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
- "aws4": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
- "dev": true
- },
"camelcase": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
@@ -32990,28 +41973,6 @@
"which": "^1.2.9"
}
},
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
- "dev": true
- },
- "har-validator": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
- "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
- "dev": true,
- "requires": {
- "ajv": "^6.5.5",
- "har-schema": "^2.0.0"
- }
- },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
@@ -33021,12 +41982,6 @@
"repeating": "^2.0.0"
}
},
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
"map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
@@ -33054,30 +42009,15 @@
"mime-db": {
"version": "1.40.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
- "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
- "dev": true
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
},
"mime-types": {
- "version": "2.1.24",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
- "dev": true,
"requires": {
"mime-db": "1.40.0"
}
},
- "nan": {
- "version": "2.13.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
- "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
- "dev": true
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true
- },
"redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
@@ -33088,42 +42028,6 @@
"strip-indent": "^1.0.1"
}
},
- "request": {
- "version": "2.88.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
- "dev": true,
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.0",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.4.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "dependencies": {
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- }
- }
- },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -33216,12 +42120,6 @@
"yallist": "^3.0.0"
}
},
- "nan": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
- "dev": true
- },
"node-gyp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz",
@@ -33681,12 +42579,6 @@
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true
},
- "irregular-plurals": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz",
- "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==",
- "dev": true
- },
"is-glob": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
@@ -33884,21 +42776,6 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true
},
- "picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true
- },
- "plur": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
- "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
- "dev": true,
- "requires": {
- "irregular-plurals": "^3.2.0"
- }
- },
"quick-lru": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
@@ -34100,9 +42977,10 @@
"dev": true
},
"ob1": {
- "version": "0.56.0",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.56.0.tgz",
- "integrity": "sha512-3rvepvXPw+OIkcut4MaRYIoy4thTWvWhTK+Hg4+y9fOBWVF9acpBvtm2NSbH9Vw9UBG/9v+T5euwPxUSUIDPWw=="
+ "version": "0.58.0",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.58.0.tgz",
+ "integrity": "sha512-uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q==",
+ "dev": true
},
"object-assign": {
"version": "4.1.1",
@@ -34431,7 +43309,8 @@
"os-browserify": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
},
"os-homedir": {
"version": "1.0.2",
@@ -34461,6 +43340,11 @@
"signal-exit": "^3.0.0",
"strip-eof": "^1.0.0"
}
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
}
}
},
@@ -34500,13 +43384,10 @@
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
},
"p-each-series": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
- "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
- "dev": true,
- "requires": {
- "p-reduce": "^1.0.0"
- }
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz",
+ "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==",
+ "dev": true
},
"p-event": {
"version": "4.1.0",
@@ -34525,8 +43406,7 @@
"p-is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
- "dev": true
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
},
"p-limit": {
"version": "1.3.0",
@@ -34643,6 +43523,7 @@
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
"integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+ "dev": true,
"requires": {
"asn1.js": "^4.0.0",
"browserify-aes": "^1.0.0",
@@ -34791,6 +43672,7 @@
"version": "3.0.17",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
"integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+ "dev": true,
"requires": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -34939,6 +43821,15 @@
}
}
},
+ "plur": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
+ "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
+ "dev": true,
+ "requires": {
+ "irregular-plurals": "^3.2.0"
+ }
+ },
"pn": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
@@ -34961,17 +43852,6 @@
"dev": true,
"requires": {
"@babel/runtime": "^7.6.3"
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
- }
}
},
"popper.js": {
@@ -35288,128 +44168,16 @@
"@babel/core": ">=7.1.0"
},
"dependencies": {
- "@babel/core": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz",
- "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.2.2",
- "@babel/helpers": "^7.2.0",
- "@babel/parser": "^7.2.2",
- "@babel/template": "^7.2.2",
- "@babel/traverse": "^7.2.2",
- "@babel/types": "^7.2.2",
- "convert-source-map": "^1.1.0",
- "debug": "^4.1.0",
- "json5": "^2.1.0",
- "lodash": "^4.17.10",
- "resolve": "^1.3.2",
- "semver": "^5.4.1",
- "source-map": "^0.5.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
- "dev": true
- }
- }
- },
- "@babel/generator": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz",
- "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.3.2",
- "jsesc": "^2.5.1",
- "lodash": "^4.17.10",
- "source-map": "^0.5.0",
- "trim-right": "^1.0.1"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz",
- "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.10",
- "to-fast-properties": "^2.0.0"
- }
- }
- }
- },
- "@babel/helpers": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz",
- "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.1.2",
- "@babel/traverse": "^7.1.5",
- "@babel/types": "^7.3.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz",
- "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.10",
- "to-fast-properties": "^2.0.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
- "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
- "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.2.2",
- "@babel/types": "^7.2.2"
- }
- },
- "@babel/types": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
- "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.10",
- "to-fast-properties": "^2.0.0"
- }
- },
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "version": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"json5": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
+ "version": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
"integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
- "dev": true,
"requires": {
"minimist": "^1.2.0"
}
@@ -35417,8 +44185,7 @@
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
@@ -35575,6 +44342,103 @@
}
}
},
+ "postcss-modules-extract-imports": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.5"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz",
+ "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==",
+ "dev": true,
+ "requires": {
+ "icss-utils": "^4.1.1",
+ "postcss": "^7.0.16",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss": {
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
+ "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz",
+ "integrity": "sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+ "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+ "dev": true,
+ "requires": {
+ "icss-utils": "^4.0.0",
+ "postcss": "^7.0.6"
+ }
+ },
"postcss-normalize-charset": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
@@ -35917,7 +44781,8 @@
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
},
"process-nextick-args": {
"version": "2.0.0",
@@ -36309,6 +45174,7 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
"integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
"requires": {
"bn.js": "^4.1.0",
"browserify-rsa": "^4.0.0",
@@ -36516,7 +45382,8 @@
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
},
"puppeteer": {
"version": "npm:puppeteer-core@3.0.0",
@@ -36609,15 +45476,6 @@
"pend": "~1.2.0"
}
},
- "get-stream": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
- "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
- },
"https-proxy-agent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
@@ -36671,9 +45529,9 @@
}
},
"tar-fs": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
- "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
+ "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
"dev": true,
"requires": {
"chownr": "^1.1.1",
@@ -36696,9 +45554,9 @@
}
},
"ws": {
- "version": "7.2.5",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz",
- "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==",
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz",
+ "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==",
"dev": true
},
"yauzl": {
@@ -36742,7 +45600,8 @@
"querystring-es3": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
},
"querystringify": {
"version": "2.1.1",
@@ -36791,6 +45650,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
"requires": {
"safe-buffer": "^5.1.0"
}
@@ -36799,6 +45659,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
"integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
"requires": {
"randombytes": "^2.0.5",
"safe-buffer": "^5.1.0"
@@ -37120,24 +45981,6 @@
}
}
},
- "gzip-size": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
- "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
- "dev": true,
- "requires": {
- "duplexer": "^0.1.1",
- "pify": "^4.0.1"
- },
- "dependencies": {
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- }
- }
- },
"inquirer": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz",
@@ -37284,168 +46127,6 @@
"strip-indent": "^3.0.0"
},
"dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/core": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz",
- "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.8.3",
- "@babel/helpers": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/traverse": "^7.8.3",
- "@babel/types": "^7.8.3",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.1",
- "json5": "^2.1.0",
- "lodash": "^4.17.13",
- "resolve": "^1.3.2",
- "semver": "^5.4.1",
- "source-map": "^0.5.0"
- }
- },
- "@babel/generator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
- "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3",
- "jsesc": "^2.5.1",
- "lodash": "^4.17.13",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
- "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
- "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
- "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helpers": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz",
- "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.8.3",
- "@babel/traverse": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/highlight": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
- "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
- "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
- "dev": true
- },
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
- },
- "@babel/template": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
- "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/traverse": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
- "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.8.3",
- "@babel/helper-function-name": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.13"
- }
- },
- "@babel/types": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
- "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.13",
- "to-fast-properties": "^2.0.0"
- }
- },
"ast-types": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz",
@@ -37459,19 +46140,15 @@
"dev": true
},
"convert-source-map": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
"integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
- "dev": true,
"requires": {
"safe-buffer": "~5.1.1"
}
},
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "version": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -37486,16 +46163,12 @@
}
},
"globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
+ "version": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
"json5": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
+ "version": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
"integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
- "dev": true,
"requires": {
"minimist": "^1.2.0"
}
@@ -37503,14 +46176,11 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
+ "version": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
"strip-indent": {
"version": "3.0.0",
@@ -37683,16 +46353,6 @@
"whatwg-fetch": "^3.0.0"
},
"dependencies": {
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
- }
- },
"@react-native-community/cli": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-3.0.4.tgz",
@@ -37752,6 +46412,329 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ }
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deepmerge": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
+ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.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"
+ }
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "requires": {
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
+ }
+ },
+ "fbjs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz",
+ "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==",
+ "requires": {
+ "core-js": "^2.4.1",
+ "fbjs-css-vars": "^1.0.0",
+ "isomorphic-fetch": "^2.1.1",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "metro": {
+ "version": "0.56.4",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.56.4.tgz",
+ "integrity": "sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==",
+ "requires": {
+ "@babel/core": "^7.0.0",
+ "@babel/generator": "^7.0.0",
+ "@babel/parser": "^7.0.0",
+ "@babel/plugin-external-helpers": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "@babel/traverse": "^7.0.0",
+ "@babel/types": "^7.0.0",
+ "absolute-path": "^0.0.0",
+ "async": "^2.4.0",
+ "babel-preset-fbjs": "^3.1.2",
+ "buffer-crc32": "^0.2.13",
+ "chalk": "^2.4.1",
+ "concat-stream": "^1.6.0",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "denodeify": "^1.2.1",
+ "eventemitter3": "^3.0.0",
+ "fbjs": "^1.0.0",
+ "fs-extra": "^1.0.0",
+ "graceful-fs": "^4.1.3",
+ "image-size": "^0.6.0",
+ "invariant": "^2.2.4",
+ "jest-haste-map": "^24.7.1",
+ "jest-worker": "^24.6.0",
+ "json-stable-stringify": "^1.0.1",
+ "lodash.throttle": "^4.1.1",
+ "merge-stream": "^1.0.1",
+ "metro-babel-register": "^0.56.4",
+ "metro-babel-transformer": "^0.56.4",
+ "metro-cache": "^0.56.4",
+ "metro-config": "^0.56.4",
+ "metro-core": "^0.56.4",
+ "metro-inspector-proxy": "^0.56.4",
+ "metro-minify-uglify": "^0.56.4",
+ "metro-react-native-babel-preset": "^0.56.4",
+ "metro-resolver": "^0.56.4",
+ "metro-source-map": "^0.56.4",
+ "metro-symbolicate": "^0.56.4",
+ "mime-types": "2.1.11",
+ "mkdirp": "^0.5.1",
+ "node-fetch": "^2.2.0",
+ "nullthrows": "^1.1.0",
+ "resolve": "^1.5.0",
+ "rimraf": "^2.5.4",
+ "serialize-error": "^2.1.0",
+ "source-map": "^0.5.6",
+ "temp": "0.8.3",
+ "throat": "^4.1.0",
+ "wordwrap": "^1.0.0",
+ "write-file-atomic": "^1.2.0",
+ "ws": "^1.1.5",
+ "xpipe": "^1.0.5",
+ "yargs": "^9.0.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0"
+ }
},
"jsonfile": {
"version": "2.4.0",
@@ -37761,102 +46744,6 @@
"graceful-fs": "^4.1.6"
}
},
- "metro": {
- "version": "0.56.4",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.56.4.tgz",
- "integrity": "sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==",
- "requires": {
- "@babel/core": "^7.0.0",
- "@babel/generator": "^7.0.0",
- "@babel/parser": "^7.0.0",
- "@babel/plugin-external-helpers": "^7.0.0",
- "@babel/template": "^7.0.0",
- "@babel/traverse": "^7.0.0",
- "@babel/types": "^7.0.0",
- "absolute-path": "^0.0.0",
- "async": "^2.4.0",
- "babel-preset-fbjs": "^3.1.2",
- "buffer-crc32": "^0.2.13",
- "chalk": "^2.4.1",
- "concat-stream": "^1.6.0",
- "connect": "^3.6.5",
- "debug": "^2.2.0",
- "denodeify": "^1.2.1",
- "eventemitter3": "^3.0.0",
- "fbjs": "^1.0.0",
- "fs-extra": "^1.0.0",
- "graceful-fs": "^4.1.3",
- "image-size": "^0.6.0",
- "invariant": "^2.2.4",
- "jest-haste-map": "^24.7.1",
- "jest-worker": "^24.6.0",
- "json-stable-stringify": "^1.0.1",
- "lodash.throttle": "^4.1.1",
- "merge-stream": "^1.0.1",
- "metro-babel-register": "^0.56.4",
- "metro-babel-transformer": "^0.56.4",
- "metro-cache": "^0.56.4",
- "metro-config": "^0.56.4",
- "metro-core": "^0.56.4",
- "metro-inspector-proxy": "^0.56.4",
- "metro-minify-uglify": "^0.56.4",
- "metro-react-native-babel-preset": "^0.56.4",
- "metro-resolver": "^0.56.4",
- "metro-source-map": "^0.56.4",
- "metro-symbolicate": "^0.56.4",
- "mime-types": "2.1.11",
- "mkdirp": "^0.5.1",
- "node-fetch": "^2.2.0",
- "nullthrows": "^1.1.0",
- "resolve": "^1.5.0",
- "rimraf": "^2.5.4",
- "serialize-error": "^2.1.0",
- "source-map": "^0.5.6",
- "temp": "0.8.3",
- "throat": "^4.1.0",
- "wordwrap": "^1.0.0",
- "write-file-atomic": "^1.2.0",
- "ws": "^1.1.5",
- "xpipe": "^1.0.5",
- "yargs": "^9.0.0"
- },
- "dependencies": {
- "fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0"
- }
- },
- "metro-config": {
- "version": "0.56.4",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.56.4.tgz",
- "integrity": "sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==",
- "requires": {
- "cosmiconfig": "^5.0.5",
- "jest-validate": "^24.7.0",
- "metro": "^0.56.4",
- "metro-cache": "^0.56.4",
- "metro-core": "^0.56.4",
- "pretty-format": "^24.7.0"
- }
- },
- "metro-core": {
- "version": "0.56.4",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.56.4.tgz",
- "integrity": "sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==",
- "requires": {
- "jest-haste-map": "^24.7.1",
- "lodash.throttle": "^4.1.1",
- "metro-resolver": "^0.56.4",
- "wordwrap": "^1.0.0"
- }
- }
- }
- },
"metro-babel-register": {
"version": "0.56.4",
"resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.56.4.tgz",
@@ -37885,6 +46772,30 @@
"metro-source-map": "^0.56.4"
}
},
+ "metro-config": {
+ "version": "0.56.4",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.56.4.tgz",
+ "integrity": "sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==",
+ "requires": {
+ "cosmiconfig": "^5.0.5",
+ "jest-validate": "^24.7.0",
+ "metro": "^0.56.4",
+ "metro-cache": "^0.56.4",
+ "metro-core": "^0.56.4",
+ "pretty-format": "^24.7.0"
+ }
+ },
+ "metro-core": {
+ "version": "0.56.4",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.56.4.tgz",
+ "integrity": "sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==",
+ "requires": {
+ "jest-haste-map": "^24.7.1",
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "^0.56.4",
+ "wordwrap": "^1.0.0"
+ }
+ },
"metro-react-native-babel-preset": {
"version": "0.56.4",
"resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz",
@@ -37943,306 +46854,6 @@
}
}
},
- "@types/yargs": {
- "version": "13.0.8",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
- "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "chardet": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
- "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
- "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
- },
- "cosmiconfig": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
- "requires": {
- "import-fresh": "^2.0.0",
- "is-directory": "^0.3.1",
- "js-yaml": "^3.13.1",
- "parse-json": "^4.0.0"
- }
- },
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- }
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "deepmerge": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
- "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
- },
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.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"
- }
- },
- "external-editor": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
- "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
- "requires": {
- "chardet": "^0.4.0",
- "iconv-lite": "^0.4.17",
- "tmp": "^0.0.33"
- }
- },
- "fbjs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz",
- "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==",
- "requires": {
- "core-js": "^2.4.1",
- "fbjs-css-vars": "^1.0.0",
- "isomorphic-fetch": "^2.1.1",
- "loose-envify": "^1.0.0",
- "object-assign": "^4.1.0",
- "promise": "^7.1.1",
- "setimmediate": "^1.0.5",
- "ua-parser-js": "^0.7.18"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "fs-extra": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "import-fresh": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
- "requires": {
- "caller-path": "^2.0.0",
- "resolve-from": "^3.0.0"
- }
- },
- "inquirer": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
- "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
- "requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.0",
- "cli-cursor": "^2.1.0",
- "cli-width": "^2.0.0",
- "external-editor": "^2.0.4",
- "figures": "^2.0.0",
- "lodash": "^4.3.0",
- "mute-stream": "0.0.7",
- "run-async": "^2.2.0",
- "rx-lite": "^4.0.8",
- "rx-lite-aggregates": "^4.0.8",
- "string-width": "^2.1.0",
- "strip-ansi": "^4.0.0",
- "through": "^2.3.6"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "jest-validate": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
- "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
- "requires": {
- "@jest/types": "^24.9.0",
- "camelcase": "^5.3.1",
- "chalk": "^2.0.1",
- "jest-get-type": "^24.9.0",
- "leven": "^3.1.0",
- "pretty-format": "^24.9.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
- },
- "pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
- "requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
- }
- }
- }
- },
- "leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "requires": {
- "error-ex": "^1.2.0"
- }
- }
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"metro-cache": {
"version": "0.56.4",
"resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.56.4.tgz",
@@ -38669,33 +47280,6 @@
"prop-types": "^15.7.2"
}
},
- "react-native-crypto": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/react-native-crypto/-/react-native-crypto-2.2.0.tgz",
- "integrity": "sha512-eZu9Y8pa8BN9FU2pIex7MLRAi+Cd1Y6bsxfiufKh7sfraAACJvjQTeW7/zcQAT93WMfM+D0OVk+bubvkrbrUkw==",
- "requires": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.4",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "3.0.8",
- "public-encrypt": "^4.0.0",
- "randomfill": "^1.0.3"
- },
- "dependencies": {
- "pbkdf2": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.8.tgz",
- "integrity": "sha1-L4q/FuvsyCJ3lF10irodeHYfYeI=",
- "requires": {
- "create-hmac": "^1.1.2"
- }
- }
- }
- },
"react-native-dark-mode": {
"version": "git+https://github.com/wordpress-mobile/react-native-dark-mode.git#f09bf1480e7b34536413ab3300f29e4375edb2c6",
"from": "git+https://github.com/wordpress-mobile/react-native-dark-mode.git#f09bf1480e7b34536413ab3300f29e4375edb2c6",
@@ -38726,6 +47310,14 @@
"version": "git+https://github.com/Riglerr/react-native-hr.git#2d01a5cf77212d100e8b99e0310cce5234f977b3",
"from": "git+https://github.com/Riglerr/react-native-hr.git#2d01a5cf77212d100e8b99e0310cce5234f977b3"
},
+ "react-native-hsv-color-picker": {
+ "version": "git+https://github.com/wordpress-mobile/react-native-hsv-color-picker.git#163e78cd4d986a28954a626213b40daee15774e8",
+ "from": "git+https://github.com/wordpress-mobile/react-native-hsv-color-picker.git",
+ "requires": {
+ "react-native-linear-gradient": "git+https://github.com/wordpress-mobile/react-native-linear-gradient.git#52bf43077171cff8714ce3e0155f3ebb7f55bc37",
+ "tinycolor2": "^1.4.1"
+ }
+ },
"react-native-iphone-x-helper": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz",
@@ -38752,15 +47344,6 @@
"react-native-animatable": "^1.2.4"
}
},
- "react-native-randombytes": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/react-native-randombytes/-/react-native-randombytes-3.5.3.tgz",
- "integrity": "sha512-n/7QwMrRJxHr+/3mt2KxqqacGylM+ssW+FfBTgXGzvwq5KzSohooEWf6Z6MTSByuJ/izP9VbSPtwomPwzvupKQ==",
- "requires": {
- "buffer": "^4.9.1",
- "sjcl": "^1.0.3"
- }
- },
"react-native-safe-area": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/react-native-safe-area/-/react-native-safe-area-0.5.1.tgz",
@@ -38869,8 +47452,8 @@
}
},
"react-native-video": {
- "version": "git+https://github.com/wordpress-mobile/react-native-video.git#6cdaddd9c81ebe2da5b28412d389cc105e156948",
- "from": "git+https://github.com/wordpress-mobile/react-native-video.git#6cdaddd9c81ebe2da5b28412d389cc105e156948",
+ "version": "git+https://github.com/wordpress-mobile/react-native-video.git#1b964b107863351ed744fc104d7952bbec3e2d4f",
+ "from": "git+https://github.com/wordpress-mobile/react-native-video.git#1b964b107863351ed744fc104d7952bbec3e2d4f",
"requires": {
"prop-types": "^15.5.10"
}
@@ -38930,17 +47513,6 @@
"requires": {
"@babel/runtime": "^7.7.4",
"react-popper": "^1.3.6"
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
- }
}
},
"react-portal": {
@@ -38965,15 +47537,6 @@
"react-is": "^16.9.0"
},
"dependencies": {
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
- },
"hoist-non-react-statics": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
@@ -39272,36 +47835,36 @@
}
},
"reakit": {
- "version": "1.0.0-rc.0",
- "resolved": "https://registry.npmjs.org/reakit/-/reakit-1.0.0-rc.0.tgz",
- "integrity": "sha512-jG9RfLE9DX3XP6xiUmindu8dJmd4rLs+ohQ2xppF9LVYQ/7Qa9B4kz8mNYbe42u8muE3nMM78T2RfXz+c/ZMsQ==",
+ "version": "1.0.0-rc.2",
+ "resolved": "https://registry.npmjs.org/reakit/-/reakit-1.0.0-rc.2.tgz",
+ "integrity": "sha512-+Snfc9Y/VMozEDXld3CJtvqgTyFCE67FXBmaDcvBuO3z2U/ZAHiAOBprF+ZN/QhsiVNMk1faj791vDBTokxS4w==",
"requires": {
- "@popperjs/core": "^2.1.0",
- "body-scroll-lock": "^2.6.4",
- "reakit-system": "^0.10.0",
- "reakit-utils": "^0.10.0",
- "reakit-warning": "^0.1.0"
+ "@popperjs/core": "^2.3.3",
+ "body-scroll-lock": "^3.0.1",
+ "reakit-system": "^0.12.0",
+ "reakit-utils": "^0.12.0",
+ "reakit-warning": "^0.3.0"
}
},
"reakit-system": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/reakit-system/-/reakit-system-0.10.0.tgz",
- "integrity": "sha512-73ZI50NB2A6WAF3OsPJEEz73fax5cFiMoGMx3KxPT/AcS39rPqlBW6QkawtZC1HUebQXlsLxwZWicoFt8UubmQ==",
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/reakit-system/-/reakit-system-0.12.0.tgz",
+ "integrity": "sha512-lqesr7jmOEDEqKtPhEilCJNfYiLCeXOeU2lpPLBzO+CB2lsfF+A/NtrSpb3kuLu2mfIUSTTBxgaKdOBbfANmWA==",
"requires": {
- "reakit-utils": "^0.10.0"
+ "reakit-utils": "^0.12.0"
}
},
"reakit-utils": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/reakit-utils/-/reakit-utils-0.10.0.tgz",
- "integrity": "sha512-s1+nqLYrHo54U38iETdY86+VD+CZBTqF9rxMmphuft1Iz1i+L+OqOVJMq5sviBkTiEz8zRMhrNLcjBERFiPnkA=="
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/reakit-utils/-/reakit-utils-0.12.0.tgz",
+ "integrity": "sha512-B0KUjRDu0GFDTi+FQApm4gynJGn18DuDdgCtcUytkN/AIJdKGaqHJ6FpeE1zMr1KAAUzZKrRqq/x93MrcQtvfQ=="
},
"reakit-warning": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/reakit-warning/-/reakit-warning-0.1.0.tgz",
- "integrity": "sha512-nfujYGWoZ1lh6eAFTVQc2aNjrAEf30PHffJw8Q8tiJJY4Knoy7eLA4jQGHTl3gOjhA9+Yd8KSmiLoOPlr6A0kA==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/reakit-warning/-/reakit-warning-0.3.0.tgz",
+ "integrity": "sha512-sJhgKQl6b4BZOo8jAXpneYFuAkx4wuftGl5KiIDAQZWg+e8YfB41QayjqM2eh0mQkG13hbc4pBOAyR5oFZxK0w==",
"requires": {
- "reakit-utils": "^0.10.0"
+ "reakit-utils": "^0.12.0"
}
},
"realpath-native": {
@@ -39325,12 +47888,6 @@
"source-map": "~0.6.1"
},
"dependencies": {
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -39668,15 +48225,6 @@
"unified": "8.4.2"
},
"dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
"@babel/core": {
"version": "7.8.0",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.0.tgz",
@@ -39700,94 +48248,12 @@
"source-map": "^0.5.0"
}
},
- "@babel/generator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
- "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3",
- "jsesc": "^2.5.1",
- "lodash": "^4.17.13",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
- "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
- "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
- },
"@babel/helper-plugin-utils": {
"version": "7.8.0",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz",
"integrity": "sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA==",
"dev": true
},
- "@babel/helper-split-export-declaration": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
- "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/helpers": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz",
- "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.8.3",
- "@babel/traverse": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/highlight": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
- "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
- "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
- "dev": true
- },
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.8.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.0.tgz",
@@ -39807,54 +48273,6 @@
"@babel/helper-plugin-utils": "^7.8.0"
}
},
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/template": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
- "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3"
- }
- },
- "@babel/traverse": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
- "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.8.3",
- "@babel/helper-function-name": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.8.3",
- "@babel/types": "^7.8.3",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.13"
- }
- },
- "@babel/types": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
- "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.13",
- "to-fast-properties": "^2.0.0"
- }
- },
"convert-source-map": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
@@ -39874,10 +48292,8 @@
}
},
"globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
+ "version": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
"is-alphabetical": {
"version": "1.0.3",
@@ -40384,6 +48800,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
@@ -40453,6 +48870,13 @@
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"requires": {
"is-promise": "^2.1.0"
+ },
+ "dependencies": {
+ "is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
+ }
}
},
"run-node": {
@@ -40934,6 +49358,7 @@
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
@@ -41024,38 +49449,139 @@
"integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="
},
"showdown": {
- "version": "1.8.6",
- "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.8.6.tgz",
- "integrity": "sha1-kepO47elRIqspoIKTifmkMatdxw=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz",
+ "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==",
"requires": {
- "yargs": "^10.0.3"
+ "yargs": "^14.2"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ },
"yargs": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz",
- "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==",
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
+ "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
"requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.1.1",
- "find-up": "^2.1.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
+ "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
+ "string-width": "^3.0.0",
"which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^8.1.0"
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.1"
}
},
"yargs-parser": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz",
- "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==",
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
+ "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
"requires": {
- "camelcase": "^4.1.0"
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
}
}
}
@@ -41096,6 +49622,14 @@
"object.assign": "^4.1.0",
"string.prototype.trimleft": "^2.1.1",
"string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
}
},
"es-to-primitive": {
@@ -41145,12 +49679,6 @@
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
"dev": true
},
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
"string.prototype.trimleft": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
@@ -41266,11 +49794,6 @@
"integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==",
"dev": true
},
- "sjcl": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.8.tgz",
- "integrity": "sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ=="
- },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -41512,10 +50035,9 @@
}
},
"source-map-support": {
- "version": "0.5.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.18.tgz",
- "integrity": "sha512-9luZr/BZ2QeU6tO2uG8N2aZpVSli4TSAOAqFOyTO51AJcD9P99c0K1h6dD6r6qo5dyT44BR5exweOaLLeldTkQ==",
- "dev": true,
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
+ "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -41524,8 +50046,7 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -41763,6 +50284,7 @@
"version": "2.8.3",
"resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
"integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
"requires": {
"builtin-status-codes": "^3.0.0",
"inherits": "^2.0.1",
@@ -43244,6 +51766,14 @@
"object.assign": "^4.1.0",
"string.prototype.trimleft": "^2.1.1",
"string.prototype.trimright": "^2.1.1"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ }
}
},
"es-to-primitive": {
@@ -43293,12 +51823,6 @@
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
"dev": true
},
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
"string.prototype.trimleft": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
@@ -43333,30 +51857,6 @@
"string-width": "^2.1.1"
},
"dependencies": {
- "ajv": {
- "version": "6.10.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
- "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
"slice-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.0.0.tgz",
@@ -43532,6 +52032,12 @@
}
}
},
+ "term-size": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz",
+ "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
+ "dev": true
+ },
"terminal-link": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.0.0.tgz",
@@ -43581,16 +52087,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
- },
- "source-map-support": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
- "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
}
}
},
@@ -43961,6 +52457,7 @@
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
"integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+ "dev": true,
"requires": {
"setimmediate": "^1.0.4"
}
@@ -44011,7 +52508,8 @@
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
},
"to-buffer": {
"version": "1.1.1",
@@ -44077,8 +52575,7 @@
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
- "dev": true
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
},
"token-stream": {
"version": "0.0.1",
@@ -44173,12 +52670,6 @@
"integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
"dev": true
},
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
- "dev": true
- },
"trim-trailing-lines": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz",
@@ -44227,8 +52718,7 @@
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "dev": true
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"tsutils": {
"version": "3.17.1",
@@ -44242,7 +52732,8 @@
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
},
"tunnel-agent": {
"version": "0.6.0",
@@ -44702,6 +53193,12 @@
}
}
},
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true
+ },
"upper-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
@@ -44726,6 +53223,7 @@
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
"requires": {
"punycode": "1.3.2",
"querystring": "0.2.0"
@@ -44734,7 +53232,8 @@
"punycode": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
}
}
},
@@ -44975,12 +53474,6 @@
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
"dev": true
- },
- "replace-ext": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
- "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
- "dev": true
}
}
},
@@ -45033,23 +53526,6 @@
"vue-template-compiler": "^2.0.0"
},
"dependencies": {
- "@babel/parser": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
- "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
- "dev": true
- },
- "@babel/types": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
- "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.17.13",
- "to-fast-properties": "^2.0.0"
- }
- },
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -45918,9 +54394,9 @@
"dev": true
},
"whatwg-url": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
- "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
"dev": true,
"requires": {
"lodash.sortby": "^4.7.0",
@@ -46378,16 +54854,6 @@
"integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
"requires": {
"@babel/runtime": "^7.6.3"
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
- "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
- "requires": {
- "regenerator-runtime": "^0.13.2"
- }
- }
}
},
"yargs": {
diff --git a/package.json b/package.json
index 67cef1e69ddbca..145cda7055b1da 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "gutenberg",
- "version": "7.9.1",
+ "version": "8.1.0-rc.1",
"private": true,
"description": "A new WordPress editor experience.",
"author": "The WordPress Contributors",
@@ -120,6 +120,7 @@
"@wordpress/prettier-config": "file:packages/prettier-config",
"@wordpress/project-management-automation": "file:packages/project-management-automation",
"@wordpress/scripts": "file:packages/scripts",
+ "appium": "1.17.1",
"babel-jest": "24.9.0",
"babel-loader": "8.1.0",
"babel-plugin-emotion": "10.0.33",
@@ -148,7 +149,7 @@
"husky": "3.0.5",
"inquirer": "7.1.0",
"is-equal-shallow": "0.1.3",
- "jest": "24.9.0",
+ "jest": "25.3.0",
"jest-emotion": "10.0.32",
"jest-junit": "10.0.0",
"jest-serializer-enzyme": "1.0.0",
@@ -192,6 +193,7 @@
"worker-farm": "1.7.0"
},
"scripts": {
+ "analyze-bundles": "cross-env WP_BUNDLE_ANALYZER=1 npm run build",
"prebuild": "npm run check-engines",
"clean:packages": "rimraf \"./packages/*/@(build|build-module|build-style)\"",
"clean:package-types": "tsc --build --clean",
@@ -199,6 +201,7 @@
"build:packages": "npm run build:package-types && node ./bin/packages/build.js",
"build:package-types": "node ./bin/packages/validate-typescript-version.js && tsc --build",
"build": "npm run build:packages && wp-scripts build",
+ "changelog": "./bin/changelog.js",
"check-engines": "wp-scripts check-engines",
"check-licenses": "concurrently \"wp-scripts check-licenses --prod --gpl2 --ignore=@react-native-community/cli,@react-native-community/cli-platform-ios\" \"wp-scripts check-licenses --dev\"",
"precheck-local-changes": "npm run docs:build",
@@ -212,33 +215,33 @@
"fixtures:generate": "npm run fixtures:server-registered && cross-env GENERATE_MISSING_FIXTURES=y npm run test-unit",
"fixtures:regenerate": "npm run fixtures:clean && npm run fixtures:generate",
"format-js": "wp-scripts format-js",
- "lint": "concurrently \"npm run lint-js\" \"npm run lint-pkg-json\" \"npm run lint-css\"",
+ "lint": "concurrently \"npm run lint-lockfile\" \"npm run lint-js\" \"npm run lint-pkg-json\" \"npm run lint-css\"",
"lint-js": "wp-scripts lint-js",
"lint-js:fix": "npm run lint-js -- --fix",
"prelint-php": "npm run wp-env run composer install -- --no-interaction",
"lint-php": "npm run wp-env run composer run-script lint",
"lint-pkg-json": "wp-scripts lint-pkg-json . 'packages/*/package.json'",
+ "lint-lockfile": "node ./bin/validate-package-lock.js",
"lint-css": "wp-scripts lint-style '**/*.scss'",
"lint-css:fix": "npm run lint-css -- --fix",
"lint:md-js": "wp-scripts lint-md-js",
"lint:md-docs": "wp-scripts lint-md-docs",
"native": "npm run --prefix packages/react-native-editor",
"react-native": "react-native --root packages/react-native-editor",
- "bundle:android": "cd packages/react-native-editor && npm run bundle:android",
- "android": "npm run react-native run-android",
- "ios": "npm run native ios",
"package-plugin": "./bin/build-plugin-zip.sh",
"pot-to-php": "./bin/pot-to-php.js",
"publish:check": "lerna updated",
"publish:dev": "npm run clean:package-types && npm run build:packages && lerna publish --dist-tag next",
- "publish:legacy": "npm run clean:package-types && npm run build:packages && lerna publish --dist-tag legacy",
+ "publish:patch": "npm run clean:package-types && npm run build:packages && lerna publish --dist-tag patch",
"publish:prod": "npm run clean:package-types && npm run build:packages && lerna publish",
"test": "npm run lint && npm run test-unit",
"test-e2e": "wp-scripts test-e2e --config packages/e2e-tests/jest.config.js",
+ "test-e2e:debug": "wp-scripts --inspect-brk test-e2e --config packages/e2e-tests/jest.config.js --puppeteer-devtools",
"test-e2e:watch": "npm run test-e2e -- --watch",
"test-performance": "wp-scripts test-e2e --config packages/e2e-tests/jest.performance.config.js",
"test-php": "npm run lint-php && npm run test-unit-php",
"test-unit": "wp-scripts test-unit-js --config test/unit/jest.config.js",
+ "test-unit:debug": "wp-scripts --inspect-brk test-unit-js --runInBand --no-cache --verbose --config test/unit/jest.config.js ",
"test-unit:update": "npm run test-unit -- --updateSnapshot",
"test-unit:watch": "npm run test-unit -- --watch",
"test-unit-php": "wp-scripts env test-php",
@@ -264,6 +267,7 @@
},
"lint-staged": {
"package-lock.json": [
+ "npm run lint-lockfile",
"node ./bin/check-latest-npm.js"
],
"packages/*/package.json": [
@@ -297,5 +301,8 @@
" `---'"
],
"welcome-build-command": "npm run dev"
+ },
+ "resolutions": {
+ "metro-config": "0.58.0"
}
}
diff --git a/packages/README.md b/packages/README.md
index 44162e64f69b23..b789ab027de384 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -10,7 +10,7 @@ When creating a new package, you need to provide at least the following:
```json
{
"name": "@wordpress/package-name",
- "version": "1.0.0-beta.0",
+ "version": "1.0.0-prerelease",
"description": "Package description.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -45,6 +45,14 @@ When creating a new package, you need to provide at least the following:
- Installation details
- Usage example
- `Code is Poetry` logo (`
`)
+4. `CHANGELOG.md` file containing at least:
+ ```
+
+
+ ## Unreleased
+
+ Initial release.
+ ```
## Managing Dependencies
@@ -106,14 +114,16 @@ This commands adds the latest version of `glob` as a development dependency to t
## Maintaining Changelogs
-In maintaining dozens of npm packages, it can be tough to keep track of changes. To simplify the release process, each package includes a `CHANGELOG.md` file which details all published releases and the unreleased ("Master") changes, if any exist.
+In maintaining dozens of npm packages, it can be tough to keep track of changes. To simplify the release process, each package includes a `CHANGELOG.md` file which details all published releases and the unreleased ("Unreleased") changes, if any exist.
-For each pull request, you should always include relevant changes in a "Master" heading at the top of the file. You should add the heading if it doesn't already exist.
+For each pull request, you should always include relevant changes in a "Unreleased" heading at the top of the file. You should add the heading if it doesn't already exist.
_Example:_
```md
-## Master
+
+
+## Unreleased
### Bug Fix
@@ -123,7 +133,7 @@ _Example:_
There are a number of common release subsections you can follow. Each is intended to align to a specific meaning in the context of the [Semantic Versioning (`semver`) specification](https://semver.org/) the project adheres to. It is important that you describe your changes accurately, since this is used in the packages release process to help determine the version of the next release.
- "Breaking Change" - A backwards-incompatible change which requires specific attention of the impacted developers to reconcile (requires a major version bump).
-- "New Feature" - The addition of a new backwards-compatible function or feature to the existing public API (requires a minor verison bump).
+- "New Feature" - The addition of a new backwards-compatible function or feature to the existing public API (requires a minor version bump).
- "Enhancement" - Backwards-compatible improvements to existing functionality (requires a minor version bump).
- "Bug Fix" - Resolutions to existing buggy behavior (requires a patch version bump).
- "Internal" - Changes which do not have an impact on the public interface or behavior of the module (requires a patch version bump).
@@ -183,10 +193,10 @@ Choose the correct version based on `CHANGELOG.md` files, confirm your choices a
To release a patch for the older major or minor version of packages, run the following command:
```bash
-npm run publish:legacy
+npm run publish:patch
```
-This is usually necessary when adding bug fixes or security patches to the earlier versions of WordPress.
+This is usually necessary when adding bug fixes or security patches to the earlier versions of WordPress. This will publish only a patch version of the built packages. This is useful for backpublishing certain packages to WordPress.
## TypeScript
diff --git a/packages/a11y/CHANGELOG.md b/packages/a11y/CHANGELOG.md
index 872d37767d1b9b..5a2ff20a24a05a 100644
--- a/packages/a11y/CHANGELOG.md
+++ b/packages/a11y/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.9.0 (2020-04-15)
diff --git a/packages/annotations/CHANGELOG.md b/packages/annotations/CHANGELOG.md
index cb15ba170bbe41..c7aa454520ff3d 100644
--- a/packages/annotations/CHANGELOG.md
+++ b/packages/annotations/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.0.5 (2019-01-03)
## 1.0.4 (2018-12-12)
diff --git a/packages/annotations/package.json b/packages/annotations/package.json
index a7613b253c69b8..290573e9ca6bc5 100644
--- a/packages/annotations/package.json
+++ b/packages/annotations/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/annotations",
- "version": "1.14.1",
+ "version": "1.15.0",
"description": "Annotate content in the Gutenberg editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/api-fetch/CHANGELOG.md b/packages/api-fetch/CHANGELOG.md
index 34d8c1b6dc521c..aaf2da2078aedc 100644
--- a/packages/api-fetch/CHANGELOG.md
+++ b/packages/api-fetch/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 3.8.1 (2019-04-22)
- Added deprecation to `useApiFetch` hook.
diff --git a/packages/api-fetch/package.json b/packages/api-fetch/package.json
index 670ee9f81ba807..9d2413478ad9c4 100644
--- a/packages/api-fetch/package.json
+++ b/packages/api-fetch/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/api-fetch",
- "version": "3.13.1",
+ "version": "3.14.0",
"description": "Utility to make WordPress REST API requests.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/autop/CHANGELOG.md b/packages/autop/CHANGELOG.md
index 23c8689b2145c7..7ff7e0640b3249 100644
--- a/packages/autop/CHANGELOG.md
+++ b/packages/autop/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.7.0 (2020-04-15)
diff --git a/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md b/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md
index 3bb5792f55c780..1a2d59e6c390e6 100644
--- a/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md
+++ b/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.2.0 (2019-05-21)
### New Feature
diff --git a/packages/babel-plugin-makepot/CHANGELOG.md b/packages/babel-plugin-makepot/CHANGELOG.md
index 1ddb1f2212294d..4946d8acf30fb8 100644
--- a/packages/babel-plugin-makepot/CHANGELOG.md
+++ b/packages/babel-plugin-makepot/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.2.0 (2019-03-06)
### Bug Fix
diff --git a/packages/babel-preset-default/CHANGELOG.md b/packages/babel-preset-default/CHANGELOG.md
index 808cc1302c123d..060cc915d5d815 100644
--- a/packages/babel-preset-default/CHANGELOG.md
+++ b/packages/babel-preset-default/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 4.12.0 (2020-04-15)
diff --git a/packages/babel-preset-default/README.md b/packages/babel-preset-default/README.md
index a83b18ae52d51b..c9bff329e5d05b 100644
--- a/packages/babel-preset-default/README.md
+++ b/packages/babel-preset-default/README.md
@@ -2,6 +2,8 @@
Default [Babel](https://babeljs.io/) preset for WordPress development.
+The preset includes configuration which enable language features and syntax extensions targeted for support by WordPress. This includes [ECMAScript proposals](https://github.com/tc39/proposals) which have reached [Stage 4 ("Finished")](https://tc39.es/process-document/), as well as the [JSX syntax extension](https://reactjs.org/docs/introducing-jsx.html). For more information, refer to the [JavaScript Coding Guidelines](https://github.com/WordPress/gutenberg/blob/master/docs/contributors/coding-guidelines.md#javascript).
+
## Installation
Install the module
@@ -12,7 +14,9 @@ npm install @wordpress/babel-preset-default --save-dev
### Usage
-#### Via .babelrc (Recommended)
+There are a number of methods to configure Babel. See [Babel's Configuration documentation](https://babeljs.io/docs/en/configuration) for more information. To use this preset, simply reference `@wordpress/default` in the `presets` option in your Babel configuration.
+
+For example, using `.babelrc`:
```json
{
@@ -20,18 +24,17 @@ npm install @wordpress/babel-preset-default --save-dev
}
```
-#### Via CLI
+#### Extending Configuration
-```bash
-babel script.js --presets @wordpress/default
-```
+This preset is an opinionated configuration. If you would like to add to or change this configuration, you can do so by expanding your Babel configuration to include plugins or presets which override those included through this preset. It may help to familiarize yourself [the implementation of the configuration](https://github.com/WordPress/gutenberg/blob/master/packages/babel-preset-default/index.js) to see which specific plugins are enabled by default through this preset.
-#### Via Node API
+For example, if you'd like to use a new language feature proposal which has not reached the stability requirements of WordPress, you can add those as additional plugins in your Babel configuration:
-```js
-require( '@babel/core' ).transform( 'code', {
- presets: [ '@wordpress/default' ]
-} );
+```json
+{
+ "presets": [ "@wordpress/babel-preset-default" ],
+ "plugins": [ "@babel/plugin-proposal-class-properties" ]
+}
```
diff --git a/packages/base-styles/CHANGELOG.md b/packages/base-styles/CHANGELOG.md
index bd22d696ef2464..7bc8b507e119dd 100644
--- a/packages/base-styles/CHANGELOG.md
+++ b/packages/base-styles/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.2.0 (2020-01-13)
### Bug Fix
diff --git a/packages/base-styles/_colors.native.scss b/packages/base-styles/_colors.native.scss
index 5c893c0a30685d..f1b08583173ee0 100644
--- a/packages/base-styles/_colors.native.scss
+++ b/packages/base-styles/_colors.native.scss
@@ -123,6 +123,7 @@ $alert-yellow: #f0b849;
$alert-red: #d94f4f;
$alert-green: #4ab866;
$alert-purple: #855da6;
+$red-40: #e65054;
// Custom
$toolbar-button: #7b9ab1;
@@ -152,4 +153,19 @@ $gray-70: #3c434a;
$gray-90: #1d2327;
$gray-95: #1d2327;
$gray-100: #101517;
-$red-40: #e65054;
+
+// neutral (light) - black is a base color in light mode
+$light-primary: #000d; //rgba(0, 0, 0, 0.87);
+$light-secondary: #0009; //rgba(0, 0, 0, 0.6);
+$light-tertiary: #0000006d; //rgba(0, 0, 0, 0.43);
+$light-quaternary: #0000003f; //rgba(0, 0, 0, 0.25);
+$light-dim: #0000001e; //rgba(0, 0, 0, 0.12);
+$light-ultra-dim: #0000000a; //rgba(0, 0, 0, 0.04);
+
+// neutral (dark) - white is a base color in dark mode
+$dark-primary: #fffd; //rgba(255, 255, 255, 0.87);
+$dark-secondary: #fff9; //rgba(255, 255, 255, 0.6);
+$dark-tertiary: #ffffff6d; //rgba(255, 255, 255, 0.43);
+$dark-quaternary: #ffffff3f; //rgba(255, 255, 255, 0.25);
+$dark-dim: #ffffff26; //rgba(255, 255, 255, 0.15);
+$dark-ultra-dim: #ffffff14; //rgba(255, 255, 255, 0.08);
diff --git a/packages/base-styles/_z-index.scss b/packages/base-styles/_z-index.scss
index b0b09d483dab9f..e7cb6414121292 100644
--- a/packages/base-styles/_z-index.scss
+++ b/packages/base-styles/_z-index.scss
@@ -46,8 +46,8 @@ $z-layers: (
".components-drop-zone": 40,
".components-drop-zone__content": 50,
- // The block mover for floats should overlap the controls of adjacent blocks.
- ".block-editor-block-list__block {core/image aligned left or right}": 21,
+ // The floated blocks should be above the other blocks to allow selection.
+ "{core/image aligned left or right} .wp-block": 21,
// Small screen inner blocks overlay must be displayed above drop zone,
// settings menu, and movers.
@@ -69,7 +69,13 @@ $z-layers: (
".edit-post-layout .edit-post-post-publish-panel": 100001,
// For larger views, the wp-admin navbar dropdown should be at top of
// the Publish Post sidebar.
- ".edit-post-layout .edit-post-post-publish-panel-break-medium": 99998,
+ ".edit-post-layout .edit-post-post-publish-panel {greater than small}": 99998,
+
+ ".entities-saved-states__panel": 100001,
+ // For larger views, the wp-admin navbar dropdown should be on top of
+ // the multi-entity saving sidebar.
+ ".entities-saved-states__panel {greater than small}": 99998,
+ ".edit-site-editor__toggle-save-panel": 100000,
// Show sidebar in greater than small viewports above editor related elements
// but bellow #adminmenuback { z-index: 100 }
diff --git a/packages/base-styles/package.json b/packages/base-styles/package.json
index a5f8f21f0a621a..c3ae8d4f2906e8 100644
--- a/packages/base-styles/package.json
+++ b/packages/base-styles/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/base-styles",
- "version": "1.6.0",
+ "version": "1.7.0",
"description": "Base SCSS utilities and variables for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/blob/CHANGELOG.md b/packages/blob/CHANGELOG.md
index 6878f2dcfb709b..1f8cd68b1aaafc 100644
--- a/packages/blob/CHANGELOG.md
+++ b/packages/blob/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.8.0 (2020-04-15)
diff --git a/packages/block-directory/CHANGELOG.md b/packages/block-directory/CHANGELOG.md
index 223e630eecea7e..1d82266e5dbc4f 100644
--- a/packages/block-directory/CHANGELOG.md
+++ b/packages/block-directory/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.0.0 (2019-09-16)
- Initial release.
diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json
index a9653a267c3f31..0226ef92b47374 100644
--- a/packages/block-directory/package.json
+++ b/packages/block-directory/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/block-directory",
- "version": "1.7.1",
+ "version": "1.8.0",
"description": "Extend editor with block directory features to search, download and install blocks.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/block-directory/src/components/downloadable-block-author-info/index.js b/packages/block-directory/src/components/downloadable-block-author-info/index.js
index d848a6dc8fd310..369aee6a4f9f3f 100644
--- a/packages/block-directory/src/components/downloadable-block-author-info/index.js
+++ b/packages/block-directory/src/components/downloadable-block-author-info/index.js
@@ -19,16 +19,26 @@ function DownloadableBlockAuthorInfo( {
) }
- { sprintf(
- /* translators: 1: number of blocks. 2: average rating. */
- _n(
- 'This author has %1$d block, with an average rating of %2$d.',
- 'This author has %1$d blocks, with an average rating of %2$d.',
- authorBlockCount
- ),
- authorBlockCount,
- authorBlockRating
- ) }
+ { authorBlockRating > 0
+ ? sprintf(
+ /* translators: 1: number of blocks. 2: average rating. */
+ _n(
+ 'This author has %1$d block, with an average rating of %2$d.',
+ 'This author has %1$d blocks, with an average rating of %2$d.',
+ authorBlockCount
+ ),
+ authorBlockCount,
+ authorBlockRating
+ )
+ : sprintf(
+ /* translators: 1: number of blocks. */
+ _n(
+ 'This author has %1$d block.',
+ 'This author has %1$d blocks.',
+ authorBlockCount
+ ),
+ authorBlockCount
+ ) }
);
diff --git a/packages/block-directory/src/components/downloadable-block-author-info/style.scss b/packages/block-directory/src/components/downloadable-block-author-info/style.scss
index 5692e5d66bfecb..09cf5eb1d4b811 100644
--- a/packages/block-directory/src/components/downloadable-block-author-info/style.scss
+++ b/packages/block-directory/src/components/downloadable-block-author-info/style.scss
@@ -1,9 +1,9 @@
.block-directory-downloadable-block-author-info__content {
color: $dark-gray-400;
- margin-bottom: 4px;
+ font-size: 12px;
}
.block-directory-downloadable-block-author-info__content-author {
margin-bottom: 4px;
- font-size: 14px;
+ font-size: $default-font-size;
}
diff --git a/packages/block-directory/src/components/downloadable-block-header/index.js b/packages/block-directory/src/components/downloadable-block-header/index.js
index dc835ed3295399..0c37daef7bd65f 100644
--- a/packages/block-directory/src/components/downloadable-block-header/index.js
+++ b/packages/block-directory/src/components/downloadable-block-header/index.js
@@ -44,7 +44,7 @@ function DownloadableBlockHeader( {
{
event.preventDefault();
onClick();
diff --git a/packages/block-directory/src/components/downloadable-block-info/index.js b/packages/block-directory/src/components/downloadable-block-info/index.js
index 4c65e639554a9d..d99f99524b1e34 100644
--- a/packages/block-directory/src/components/downloadable-block-info/index.js
+++ b/packages/block-directory/src/components/downloadable-block-info/index.js
@@ -15,24 +15,28 @@ function DownloadableBlockInfo( {
{ description }
-
-
-
- { sprintf(
- /* translators: %s: number of active installations. */
- _n(
- '%d active installation',
- '%d active installations',
- activeInstalls
- ),
+
+
+ { sprintf(
+ /* translators: %s: number of active installations. */
+ _n(
+ '%d active installation',
+ '%d active installations',
activeInstalls
- ) }
-
-
-
- { // translators: %s: Humanized date of last update e.g: "2 months ago".
- sprintf( __( 'Updated %s' ), humanizedUpdated ) }
-
+ ),
+ activeInstalls
+ ) }
+
+
+
+ { // translators: %s: Humanized date of last update e.g: "2 months ago".
+ sprintf( __( 'Updated %s' ), humanizedUpdated ) }
);
diff --git a/packages/block-directory/src/components/downloadable-block-info/style.scss b/packages/block-directory/src/components/downloadable-block-info/style.scss
index d55cd030b8c10d..f21541d5296c7c 100644
--- a/packages/block-directory/src/components/downloadable-block-info/style.scss
+++ b/packages/block-directory/src/components/downloadable-block-info/style.scss
@@ -1,21 +1,21 @@
.block-directory-downloadable-block-info__content {
+ margin: 0 0 $grid-unit-20;
font-size: $default-font-size;
}
-.block-directory-downloadable-block-info__row {
+.block-directory-downloadable-block-info__meta {
display: flex;
- justify-content: space-between;
+ align-items: center;
+ margin-bottom: 2px;
color: $dark-gray-400;
- margin-top: $grid-unit-10;
font-size: 12px;
+}
- .block-directory-downloadable-block-info__column {
- display: flex;
- align-items: center;
+.block-directory-downloadable-block-info__meta:last-child {
+ margin-bottom: 0;
+}
- .dashicon {
- font-size: 16px;
- margin-right: 4px;
- }
- }
+.block-directory-downloadable-block-info__icon {
+ margin-right: 4px;
+ fill: $dark-gray-400;
}
diff --git a/packages/block-directory/src/components/downloadable-block-list-item/style.scss b/packages/block-directory/src/components/downloadable-block-list-item/style.scss
index 84521724a1da0c..b84710ac32da5e 100644
--- a/packages/block-directory/src/components/downloadable-block-list-item/style.scss
+++ b/packages/block-directory/src/components/downloadable-block-list-item/style.scss
@@ -1,7 +1,7 @@
.block-directory-downloadable-block-list-item {
width: 100%;
padding: 0;
- margin: 0 0 12px;
+ margin: 0;
display: flex;
flex-direction: row;
font-size: $default-font-size;
@@ -10,8 +10,8 @@
justify-content: center;
background: transparent;
word-break: break-word;
- border-radius: $radius-block-ui;
- border: $border-width solid $light-gray-500;
+ border-top: $border-width solid $light-gray-500;
+ border-bottom: $border-width solid $light-gray-500;
transition: all 0.05s ease-in-out;
@include reduce-motion("transition");
position: relative;
@@ -19,6 +19,10 @@
overflow: hidden;
}
+.block-directory-downloadable-block-list-item:last-child:not(:only-of-type) {
+ border-top: 0;
+}
+
.block-directory-downloadable-block-list-item__panel {
display: flex;
flex-grow: 1;
@@ -28,19 +32,19 @@
.block-directory-downloadable-block-list-item__header {
display: flex;
flex-direction: column;
- padding: 12px 12px 0;
+ padding: $grid-unit-20 $grid-unit-20 0;
}
.block-directory-downloadable-block-list-item__body {
display: flex;
flex-direction: column;
- padding: 12px;
+ padding: $grid-unit-20;
}
.block-directory-downloadable-block-list-item__footer {
display: flex;
flex-direction: column;
- padding: 12px;
+ padding: $grid-unit-20;
background-color: $light-gray-200;
}
diff --git a/packages/block-directory/src/components/downloadable-blocks-list/style.scss b/packages/block-directory/src/components/downloadable-blocks-list/style.scss
index 2324e9dda5fade..f879d3d2346d79 100644
--- a/packages/block-directory/src/components/downloadable-blocks-list/style.scss
+++ b/packages/block-directory/src/components/downloadable-blocks-list/style.scss
@@ -1,6 +1,6 @@
.block-directory-downloadable-blocks-list {
list-style: none;
- padding: 2px 0;
+ margin: 0;
overflow: hidden;
display: flex;
flex-wrap: wrap;
diff --git a/packages/block-directory/src/components/downloadable-blocks-panel/style.scss b/packages/block-directory/src/components/downloadable-blocks-panel/style.scss
index 62a6a11c0fcabe..a928b5c2d7405e 100644
--- a/packages/block-directory/src/components/downloadable-blocks-panel/style.scss
+++ b/packages/block-directory/src/components/downloadable-blocks-panel/style.scss
@@ -1,8 +1,8 @@
.block-directory-downloadable-blocks-panel__description {
font-style: italic;
- padding: 0;
- margin-top: 0;
+ padding: $grid-unit-20;
+ margin: 0;
text-align: left;
color: $dark-gray-400;
}
diff --git a/packages/block-directory/src/store/controls.js b/packages/block-directory/src/store/controls.js
index 6696a7071b08f5..247d3e5b6c6dea 100644
--- a/packages/block-directory/src/store/controls.js
+++ b/packages/block-directory/src/store/controls.js
@@ -146,15 +146,6 @@ const controls = {
loadStyle( asset );
}
} );
- } else {
- loadScript(
- assets.editor_script,
- () => {
- return resolve( 0 );
- },
- reject
- );
- loadStyle( assets.style );
}
} );
},
diff --git a/packages/block-editor/CHANGELOG.md b/packages/block-editor/CHANGELOG.md
index d681f0f85e350a..a7002b25cb7144 100644
--- a/packages/block-editor/CHANGELOG.md
+++ b/packages/block-editor/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 3.7.0 (2020-02-10)
diff --git a/packages/block-editor/README.md b/packages/block-editor/README.md
index 4c9673524d397e..48f4fad4bdff63 100644
--- a/packages/block-editor/README.md
+++ b/packages/block-editor/README.md
@@ -93,6 +93,10 @@ _Returns_
- `WPElement`: Block Breadcrumb.
+
# **BlockColorsStyleSelector**
+
+Undocumented declaration.
+
# **BlockContextProvider**
Component which merges passed value with current consumed block context.
diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json
index d5b0385d3cb3fb..eb2071b0e7a319 100644
--- a/packages/block-editor/package.json
+++ b/packages/block-editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/block-editor",
- "version": "3.9.1",
+ "version": "3.10.0",
"description": "Generic block editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -41,13 +41,14 @@
"@wordpress/keycodes": "file:../keycodes",
"@wordpress/priority-queue": "file:../priority-queue",
"@wordpress/rich-text": "file:../rich-text",
+ "@wordpress/shortcode": "file:../shortcode",
"@wordpress/token-list": "file:../token-list",
"@wordpress/url": "file:../url",
"@wordpress/viewport": "file:../viewport",
"@wordpress/wordcount": "file:../wordcount",
"classnames": "^2.2.5",
"css-mediaquery": "^0.1.2",
- "diff": "^3.5.0",
+ "diff": "^4.0.2",
"dom-scroll-into-view": "^1.2.1",
"inherits": "^2.0.3",
"lodash": "^4.17.15",
diff --git a/packages/block-editor/src/components/alignment-toolbar/index.js b/packages/block-editor/src/components/alignment-toolbar/index.js
index 2536e2e7e79b96..4136f5f7a4c9e3 100644
--- a/packages/block-editor/src/components/alignment-toolbar/index.js
+++ b/packages/block-editor/src/components/alignment-toolbar/index.js
@@ -7,7 +7,7 @@ import { find } from 'lodash';
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
-import { Toolbar } from '@wordpress/components';
+import { ToolbarGroup } from '@wordpress/components';
import { alignLeft, alignRight, alignCenter } from '@wordpress/icons';
const DEFAULT_ALIGNMENT_CONTROLS = [
@@ -40,6 +40,7 @@ export function AlignmentToolbar( props ) {
alignmentControls = DEFAULT_ALIGNMENT_CONTROLS,
label = __( 'Change text alignment' ),
isCollapsed = true,
+ isRTL,
} = props;
function applyOrUnset( align ) {
@@ -51,10 +52,15 @@ export function AlignmentToolbar( props ) {
( control ) => control.align === value
);
+ function setIcon() {
+ if ( activeAlignment ) return activeAlignment.icon;
+ return isRTL ? alignRight : alignLeft;
+ }
+
return (
-
{
diff --git a/packages/block-editor/src/components/alignment-toolbar/test/__snapshots__/index.js.snap b/packages/block-editor/src/components/alignment-toolbar/test/__snapshots__/index.js.snap
index 4c5300651aef32..f995c767f95428 100644
--- a/packages/block-editor/src/components/alignment-toolbar/test/__snapshots__/index.js.snap
+++ b/packages/block-editor/src/components/alignment-toolbar/test/__snapshots__/index.js.snap
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`AlignmentToolbar should allow custom alignment controls to be specified 1`] = `
- (
-
-
- { children }
-
-);
+function BlockControlsSlot( props ) {
+ const accessibleToolbarState = useContext( ToolbarContext );
+ return ;
+}
+
+function BlockControlsFill( { controls, children } ) {
+ return (
+
+ { ( fillProps ) => {
+ // Children passed to BlockControlsFill will not have access to any
+ // React Context whose Provider is part of the BlockControlsSlot tree.
+ // So we re-create the Provider in this subtree.
+ const value = ! isEmpty( fillProps ) ? fillProps : null;
+ return (
+
+
+ { children }
+
+ );
+ } }
+
+ );
+}
const BlockControls = ifBlockEditSelected( BlockControlsFill );
-BlockControls.Slot = Slot;
+BlockControls.Slot = BlockControlsSlot;
export default BlockControls;
diff --git a/packages/block-editor/src/components/block-format-controls/index.js b/packages/block-editor/src/components/block-format-controls/index.js
index 2ab83843846ad4..89f2df3bee260f 100644
--- a/packages/block-editor/src/components/block-format-controls/index.js
+++ b/packages/block-editor/src/components/block-format-controls/index.js
@@ -1,7 +1,16 @@
+/**
+ * External dependencies
+ */
+import { isEmpty } from 'lodash';
+
/**
* WordPress dependencies
*/
-import { createSlotFill } from '@wordpress/components';
+import { useContext } from '@wordpress/element';
+import {
+ __experimentalToolbarContext as ToolbarContext,
+ createSlotFill,
+} from '@wordpress/components';
/**
* Internal dependencies
@@ -10,8 +19,28 @@ import { ifBlockEditSelected } from '../block-edit/context';
const { Fill, Slot } = createSlotFill( 'BlockFormatControls' );
-const BlockFormatControls = ifBlockEditSelected( Fill );
+function BlockFormatControlsSlot( props ) {
+ const accessibleToolbarState = useContext( ToolbarContext );
+ return ;
+}
+
+function BlockFormatControlsFill( props ) {
+ return (
+
+ { ( fillProps ) => {
+ const value = ! isEmpty( fillProps ) ? fillProps : null;
+ return (
+
+ { props.children }
+
+ );
+ } }
+
+ );
+}
+
+const BlockFormatControls = ifBlockEditSelected( BlockFormatControlsFill );
-BlockFormatControls.Slot = Slot;
+BlockFormatControls.Slot = BlockFormatControlsSlot;
export default BlockFormatControls;
diff --git a/packages/block-editor/src/components/block-inspector/index.js b/packages/block-editor/src/components/block-inspector/index.js
index 0a0eab0784ab19..24a86350e06ff1 100644
--- a/packages/block-editor/src/components/block-inspector/index.js
+++ b/packages/block-editor/src/components/block-inspector/index.js
@@ -31,8 +31,6 @@ const BlockInspector = ( {
selectedBlockName,
showNoBlockSelectedMessage = true,
} ) => {
- const slot = useSlot( InspectorAdvancedControls.slotName );
-
if ( count > 1 ) {
return ;
}
@@ -59,8 +57,6 @@ const BlockInspector = ( {
return null;
}
- const hasFills = Boolean( slot.fills && slot.fills.length );
-
return (
@@ -80,21 +76,34 @@ const BlockInspector = ( {
) }
- { hasFills && (
-
-
-
- ) }
+
);
};
+const AdvancedControls = ( { slotName } ) => {
+ const slot = useSlot( slotName );
+ const hasFills = Boolean( slot.fills && slot.fills.length );
+
+ if ( ! hasFills ) {
+ return null;
+ }
+
+ return (
+
+
+
+ );
+};
+
export default withSelect( ( select ) => {
const {
getSelectedBlockClientId,
diff --git a/packages/block-editor/src/components/block-list/block-popover.js b/packages/block-editor/src/components/block-list/block-popover.js
index 7adf7c5ea3449f..d596d8c5b1f475 100644
--- a/packages/block-editor/src/components/block-list/block-popover.js
+++ b/packages/block-editor/src/components/block-list/block-popover.js
@@ -64,7 +64,7 @@ function BlockPopover( {
const isLargeViewport = useViewportMatch( 'medium' );
const [ isToolbarForced, setIsToolbarForced ] = useState( false );
const [ isInserterShown, setIsInserterShown ] = useState( false );
- const [ blockNodes ] = useContext( BlockNodes );
+ const blockNodes = useContext( BlockNodes );
const showEmptyBlockSideInserter =
! isNavigationMode && isEmptyDefaultBlock && isValid;
@@ -111,11 +111,6 @@ function BlockPopover( {
return null;
}
- // A block may specify a different target element for the toolbar.
- if ( node.classList.contains( 'is-block-collapsed' ) ) {
- node = node.querySelector( '.is-block-content' ) || node;
- }
-
let anchorRef = node;
if ( hasMultiSelection ) {
diff --git a/packages/block-editor/src/components/block-list/block-wrapper.js b/packages/block-editor/src/components/block-list/block-wrapper.js
index 52f353428e23f0..491382e0bc4ae9 100644
--- a/packages/block-editor/src/components/block-list/block-wrapper.js
+++ b/packages/block-editor/src/components/block-list/block-wrapper.js
@@ -8,13 +8,7 @@ import { animated } from 'react-spring/web.cjs';
/**
* WordPress dependencies
*/
-import {
- useRef,
- useEffect,
- useLayoutEffect,
- useContext,
- forwardRef,
-} from '@wordpress/element';
+import { useRef, useEffect, useContext, forwardRef } from '@wordpress/element';
import { focus, isTextField, placeCaretAtHorizontalEdge } from '@wordpress/dom';
import { BACKSPACE, DELETE, ENTER } from '@wordpress/keycodes';
import { __, sprintf } from '@wordpress/i18n';
@@ -24,15 +18,15 @@ import { useSelect, useDispatch } from '@wordpress/data';
* Internal dependencies
*/
import { isInsideRootBlock } from '../../utils/dom';
-import useMovingAnimation from './moving-animation';
-import { Context, BlockNodes } from './root-container';
-import { BlockContext } from './block';
+import useMovingAnimation from '../use-moving-animation';
+import { Context, SetBlockNodes } from './root-container';
+import { BlockListBlockContext } from './block';
import ELEMENTS from './block-elements';
const BlockComponent = forwardRef(
( { children, tagName = 'div', __unstableIsHtml, ...props }, wrapper ) => {
const onSelectionStart = useContext( Context );
- const [ , setBlockNodes ] = useContext( BlockNodes );
+ const setBlockNodes = useContext( SetBlockNodes );
const {
clientId,
rootClientId,
@@ -50,7 +44,7 @@ const BlockComponent = forwardRef(
mode,
blockTitle,
wrapperProps,
- } = useContext( BlockContext );
+ } = useContext( BlockListBlockContext );
const { initialPosition } = useSelect(
( select ) => {
if ( ! isSelected ) {
@@ -69,14 +63,14 @@ const BlockComponent = forwardRef(
'core/block-editor'
);
const fallbackRef = useRef();
-
+ const isAligned = wrapperProps && !! wrapperProps[ 'data-align' ];
wrapper = wrapper || fallbackRef;
// Provide the selected node, or the first and last nodes of a multi-
// selection, so it can be used to position the contextual block toolbar.
// We only provide what is necessary, and remove the nodes again when they
// are no longer selected.
- useLayoutEffect( () => {
+ useEffect( () => {
if ( isSelected || isFirstMultiSelected || isLastMultiSelected ) {
const node = wrapper.current;
setBlockNodes( ( nodes ) => ( {
@@ -196,19 +190,20 @@ const BlockComponent = forwardRef(
const blockElementId = `block-${ clientId }${ htmlSuffix }`;
const Animated = animated[ tagName ];
- return (
+ const blockWrapper = (
);
+
+ // For aligned blocks, provide a wrapper element so the block can be
+ // positioned relative to the block column.
+ if ( isAligned ) {
+ const alignmentWrapperProps = {
+ 'data-align': wrapperProps[ 'data-align' ],
+ };
+ return (
+
+ { blockWrapper }
+
+ );
+ }
+
+ return blockWrapper;
}
);
diff --git a/packages/block-editor/src/components/block-list/block.js b/packages/block-editor/src/components/block-list/block.js
index 448f4b74514565..6e8cb32daff44e 100644
--- a/packages/block-editor/src/components/block-list/block.js
+++ b/packages/block-editor/src/components/block-list/block.js
@@ -17,7 +17,12 @@ import {
getBlockDefaultClassName,
} from '@wordpress/blocks';
import { withFilters } from '@wordpress/components';
-import { withDispatch, withSelect, useSelect } from '@wordpress/data';
+import {
+ withDispatch,
+ withSelect,
+ useSelect,
+ useDispatch,
+} from '@wordpress/data';
import { withViewportMatch } from '@wordpress/viewport';
import { compose, pure, ifCondition } from '@wordpress/compose';
@@ -31,7 +36,7 @@ import BlockCrashBoundary from './block-crash-boundary';
import BlockHtml from './block-html';
import { Block } from './block-wrapper';
-export const BlockContext = createContext();
+export const BlockListBlockContext = createContext();
function BlockListBlock( {
mode,
@@ -39,7 +44,6 @@ function BlockListBlock( {
isLocked,
clientId,
rootClientId,
- isHighlighted,
isSelected,
isMultiSelected,
isPartOfMultiSelection,
@@ -66,11 +70,17 @@ function BlockListBlock( {
// In addition to withSelect, we should favor using useSelect in this
// component going forward to avoid leaking new props to the public API
// (editor.BlockListBlock filter)
- const { isDraggingBlocks } = useSelect( ( select ) => {
+ const { isDragging, isHighlighted } = useSelect( ( select ) => {
+ const { isDraggingBlocks, isBlockHighlighted } = select(
+ 'core/block-editor'
+ );
return {
- isDraggingBlocks: select( 'core/block-editor' ).isDraggingBlocks(),
+ isDragging: isDraggingBlocks(),
+ isHighlighted: isBlockHighlighted( clientId ),
};
}, [] );
+ const { removeBlock } = useDispatch( 'core/block-editor' );
+ const onRemove = () => removeBlock( clientId );
// Handling the error state
const [ hasError, setErrorState ] = useState( false );
@@ -83,8 +93,6 @@ function BlockListBlock( {
false
);
const isUnregisteredBlock = name === getUnregisteredTypeHandlerName();
- const isDragging =
- isDraggingBlocks && ( isSelected || isPartOfMultiSelection );
// Determine whether the block has props to apply to the wrapper.
if ( blockType.getEditWrapperProps ) {
@@ -94,7 +102,6 @@ function BlockListBlock( {
};
}
- const isAligned = wrapperProps && wrapperProps[ 'data-align' ];
const generatedClassName =
lightBlockWrapper && hasBlockSupport( blockType, 'className', true )
? getBlockDefaultClassName( name )
@@ -107,20 +114,20 @@ function BlockListBlock( {
const wrapperClassName = classnames(
generatedClassName,
customClassName,
- 'wp-block block-editor-block-list__block',
+ 'block-editor-block-list__block',
{
'has-warning': ! isValid || !! hasError || isUnregisteredBlock,
'is-selected': isSelected,
'is-highlighted': isHighlighted,
'is-multi-selected': isMultiSelected,
'is-reusable': isReusableBlock( blockType ),
- 'is-dragging': isDragging,
+ 'is-dragging':
+ isDragging && ( isSelected || isPartOfMultiSelection ),
'is-typing': isTypingWithinBlock,
'is-focused':
isFocusMode && ( isSelected || isAncestorOfSelectedBlock ),
'is-focus-mode': isFocusMode,
'has-child-selected': isAncestorOfSelectedBlock,
- 'is-block-collapsed': isAligned,
},
className
);
@@ -137,6 +144,7 @@ function BlockListBlock( {
setAttributes={ setAttributes }
insertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }
onReplace={ isLocked ? undefined : onReplace }
+ onRemove={ isLocked ? undefined : onRemove }
mergeBlocks={ isLocked ? undefined : onMerge }
clientId={ clientId }
isSelectionEnabled={ isSelectionEnabled }
@@ -144,13 +152,6 @@ function BlockListBlock( {
/>
);
- // For aligned blocks, provide a wrapper element so the block can be
- // positioned relative to the block column. This is enabled with the
- // .is-block-content className.
- if ( ! lightBlockWrapper && isAligned ) {
- blockEdit = { blockEdit }
;
- }
-
if ( mode !== 'visual' ) {
blockEdit = { blockEdit }
;
}
@@ -176,7 +177,7 @@ function BlockListBlock( {
const memoizedValue = useMemo( () => value, Object.values( value ) );
return (
-
+
{ isValid && lightBlockWrapper && (
<>
@@ -208,7 +209,7 @@ function BlockListBlock( {
) }
-
+
);
}
@@ -228,7 +229,6 @@ const applyWithSelect = withSelect(
getTemplateLock,
__unstableGetBlockWithoutInnerBlocks,
isNavigationMode,
- isBlockHighlighted,
} = select( 'core/block-editor' );
const block = __unstableGetBlockWithoutInnerBlocks( clientId );
const isSelected = isBlockSelected( clientId );
@@ -248,8 +248,9 @@ const applyWithSelect = withSelect(
// is not correct.
const { name, attributes, isValid } = block || {};
+ // Do not add new properties here, use `useSelect` instead to avoid
+ // leaking new props to the public API (editor.BlockListBlock filter).
return {
- isHighlighted: isBlockHighlighted( clientId ),
isMultiSelected: isBlockMultiSelected( clientId ),
isPartOfMultiSelection:
isBlockMultiSelected( clientId ) ||
@@ -296,6 +297,8 @@ const applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {
__unstableMarkLastChangeAsPersistent,
} = dispatch( 'core/block-editor' );
+ // Do not add new properties here, use `useDispatch` instead to avoid
+ // leaking new props to the public API (editor.BlockListBlock filter).
return {
setAttributes( newAttributes ) {
const { clientId } = ownProps;
@@ -331,14 +334,19 @@ const applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {
}
}
},
- onReplace( blocks, indexToSelect ) {
+ onReplace( blocks, indexToSelect, initialPosition ) {
if (
blocks.length &&
! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )
) {
__unstableMarkLastChangeAsPersistent();
}
- replaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );
+ replaceBlocks(
+ [ ownProps.clientId ],
+ blocks,
+ indexToSelect,
+ initialPosition
+ );
},
toggleSelection( selectionEnabled ) {
toggleSelection( selectionEnabled );
diff --git a/packages/block-editor/src/components/block-list/block.native.js b/packages/block-editor/src/components/block-list/block.native.js
index 773c6d19fb9913..c9a7eecaf25e17 100644
--- a/packages/block-editor/src/components/block-list/block.native.js
+++ b/packages/block-editor/src/components/block-list/block.native.js
@@ -7,6 +7,7 @@ import { View, Text, TouchableWithoutFeedback } from 'react-native';
* WordPress dependencies
*/
import { Component } from '@wordpress/element';
+import { GlobalStylesContext } from '@wordpress/components';
import { withDispatch, withSelect } from '@wordpress/data';
import { compose, withPreferredColorScheme } from '@wordpress/compose';
import {
@@ -48,23 +49,39 @@ class BlockListBlock extends Component {
getBlockForType() {
return (
-
+
+ { ( globalStyle ) => {
+ const mergedStyle = {
+ ...globalStyle,
+ ...this.props.wrapperProps.style,
+ };
+ return (
+
+
+
+ );
+ } }
+
);
}
@@ -252,6 +269,9 @@ export default compose( [
isAncestorSelected,
isTouchable,
isDimmed,
+ wrapperProps: blockType.getEditWrapperProps
+ ? blockType.getEditWrapperProps( attributes ) || {}
+ : {},
};
} ),
withDispatch( ( dispatch, ownProps, { select } ) => {
diff --git a/packages/block-editor/src/components/block-list/breadcrumb.native.js b/packages/block-editor/src/components/block-list/breadcrumb.native.js
index 027b93abf6b7d3..30f86d19a58d14 100644
--- a/packages/block-editor/src/components/block-list/breadcrumb.native.js
+++ b/packages/block-editor/src/components/block-list/breadcrumb.native.js
@@ -9,7 +9,7 @@ import { getBlockType } from '@wordpress/blocks';
/**
* External dependencies
*/
-import { View, Text, TouchableOpacity, I18nManager } from 'react-native';
+import { View, Text, TouchableOpacity } from 'react-native';
/**
* Internal dependencies
@@ -24,6 +24,7 @@ const BlockBreadcrumb = ( {
blockIcon,
rootClientId,
rootBlockIcon,
+ isRTL,
} ) => {
return (
,
] }
@@ -76,7 +77,7 @@ const BlockBreadcrumb = ( {
export default compose( [
withSelect( ( select, { clientId } ) => {
- const { getBlockRootClientId, getBlockName } = select(
+ const { getBlockRootClientId, getBlockName, getSettings } = select(
'core/block-editor'
);
@@ -101,6 +102,7 @@ export default compose( [
blockIcon,
rootClientId,
rootBlockIcon,
+ isRTL: getSettings().isRTL,
};
} ),
] )( BlockBreadcrumb );
diff --git a/packages/block-editor/src/components/block-list/root-container.js b/packages/block-editor/src/components/block-list/root-container.js
index 89569ab0a90444..63a94c19e3b457 100644
--- a/packages/block-editor/src/components/block-list/root-container.js
+++ b/packages/block-editor/src/components/block-list/root-container.js
@@ -21,6 +21,7 @@ import BlockPopover from './block-popover';
export const Context = createContext();
export const BlockNodes = createContext();
+export const SetBlockNodes = createContext();
function selector( select ) {
const {
@@ -79,6 +80,8 @@ function RootContainer( { children, className }, ref ) {
}
}
+ const [ blockNodes, setBlockNodes ] = useState( {} );
+
return (
-
+
-
- { children }
-
+
+
+ { children }
+
+
diff --git a/packages/block-editor/src/components/block-list/style.scss b/packages/block-editor/src/components/block-list/style.scss
index f7dc606b69cb15..89ecdfe3549e42 100644
--- a/packages/block-editor/src/components/block-list/style.scss
+++ b/packages/block-editor/src/components/block-list/style.scss
@@ -1,8 +1,3 @@
-.block-editor-block-list__block {
- margin-left: auto;
- margin-right: auto;
-}
-
.block-editor-block-list__layout .block-editor-block-list__block { // Needs specificity to override inherited styles.
// While block is being dragged, dim the slot dragged from, and hide some UI.
&.is-dragging {
@@ -22,7 +17,7 @@
// This remove the margins set here: https://github.com/WordPress/gutenberg/blob/17e5c2d870d84fb6de48dcd5bc3c38cd0c0fb0d0/packages/block-library/src/editor.scss#L56
// It removes the margins around blocks when a BlockPreview is rendered in the block style selector
-.block-editor-block-styles .editor-styles-wrapper .block-editor-block-list__block {
+.block-editor-block-styles .block-editor-block-list__block {
margin: 0;
}
@@ -143,7 +138,6 @@
right: $border-width;
}
- .is-block-content, // Floats.
&::after { // Everything else.
// 2px outside.
box-shadow: 0 0 0 $border-width-focus $blue-medium-focus;
@@ -167,12 +161,6 @@
}
}
}
-
- // Hide the focus indicator for collapsed blocks.
- // These serve as only as column containers for floated blocks.
- .block-editor-block-list__block.is-block-collapsed::after {
- content: none;
- }
}
@@ -248,17 +236,31 @@
cursor: default;
}
- .alignleft,
- .alignright {
- // Without z-index, won't be clickable as "above" adjacent content.
- z-index: z-index(".block-editor-block-list__block {core/image aligned left or right}");
+ // Clear floats.
+ &[data-clear="true"] {
+ float: none;
}
+ // This essentially duplicates the mobile styles for the appender component.
+ // It would be nice to be able to use element queries in that component instead https://github.com/tomhodgins/element-queries-spec
+ .block-editor-block-list__layout {
+ .block-editor-default-block-appender .block-editor-inserter {
+ left: auto;
+ right: $grid-unit-10;
+ }
+ }
+}
+
+// Extra specificity needed to override default element margins like lists (ul).
+.block-editor-block-list__layout .wp-block {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.wp-block {
// Alignments.
&[data-align="left"],
&[data-align="right"] {
- // Without z-index, won't be clickable as "above" adjacent content.
- z-index: z-index(".block-editor-block-list__block {core/image aligned left or right}");
width: 100%;
// When images are floated, the block itself should collapse to zero height.
@@ -269,8 +271,14 @@
}
}
+ &[data-align="left"] > *,
+ &[data-align="right"] > * {
+ // Without z-index, won't be clickable as "above" adjacent content.
+ z-index: z-index("{core/image aligned left or right} .wp-block");
+ }
+
// Left.
- &[data-align="left"] > .is-block-content {
+ &[data-align="left"] > * {
// This is in the editor only; the image should be floated on the frontend.
/*!rtl:begin:ignore*/
float: left;
@@ -279,7 +287,7 @@
}
// Right.
- &[data-align="right"] > .is-block-content {
+ &[data-align="right"] > * {
// Right: This is in the editor only; the image should be floated on the frontend.
/*!rtl:begin:ignore*/
float: right;
@@ -289,25 +297,9 @@
// Wide and full-wide.
&[data-align="full"],
- &[data-align="wide"],
- &.alignfull,
- &.alignwide {
+ &[data-align="wide"] {
clear: both;
}
-
- // Clear floats.
- &[data-clear="true"] {
- float: none;
- }
-
- // This essentially duplicates the mobile styles for the appender component.
- // It would be nice to be able to use element queries in that component instead https://github.com/tomhodgins/element-queries-spec
- .block-editor-block-list__layout {
- .block-editor-default-block-appender .block-editor-inserter {
- left: auto;
- right: $grid-unit-10;
- }
- }
}
/**
@@ -492,6 +484,7 @@
border-radius: $radius-block-ui;
background-color: $white;
+ .block-editor-block-toolbar .components-toolbar-group,
.block-editor-block-toolbar .components-toolbar {
border-right-color: $dark-gray-primary;
}
@@ -624,12 +617,8 @@
padding-right: $block-side-ui-width;
}
- // Full-wide. (to account for the padddings added above)
- // The first two rules account for the alignment wrapper div for the image block.
- > div:not(.block-editor-block-list__block) > .block-editor-block-list__block[data-align="full"],
- > div:not(.block-editor-block-list__block) > .block-editor-block-list__block.alignfull,
- > .block-editor-block-list__block[data-align="full"],
- > .block-editor-block-list__block.alignfull {
+ // Full-wide. (to account for the paddings added above)
+ > .wp-block[data-align="full"] {
margin-left: -$block-padding;
margin-right: -$block-padding;
diff --git a/packages/block-editor/src/components/block-mobile-toolbar/index.native.js b/packages/block-editor/src/components/block-mobile-toolbar/index.native.js
index 6e3fc8aaa1fdd2..0217a668d94830 100644
--- a/packages/block-editor/src/components/block-mobile-toolbar/index.native.js
+++ b/packages/block-editor/src/components/block-mobile-toolbar/index.native.js
@@ -33,7 +33,10 @@ const BlockMobileToolbar = ( {
-
+
+ { /* Render only one settings icon even if we have more than one fill - need for hooks with controls */ }
+ { ( fills = [ null ] ) => fills[ 0 ] }
+
{
+ if ( direction === 'up' ) {
+ if ( orientation === 'horizontal' ) {
+ return isRTL ? rightArrow : leftArrow;
+ }
+ return chevronUp;
+ } else if ( direction === 'down' ) {
+ if ( orientation === 'horizontal' ) {
+ return isRTL ? leftArrow : rightArrow;
+ }
+ return chevronDown;
+ }
+ return null;
+};
+
+const getMovementDirectionLabel = ( moveDirection, orientation, isRTL ) => {
+ if ( moveDirection === 'up' ) {
+ if ( orientation === 'horizontal' ) {
+ return isRTL ? __( 'Move right' ) : __( 'Move left' );
+ }
+ return __( 'Move up' );
+ } else if ( moveDirection === 'down' ) {
+ if ( orientation === 'horizontal' ) {
+ return isRTL ? __( 'Move left' ) : __( 'Move right' );
+ }
+ return __( 'Move down' );
+ }
+ return null;
+};
+
+const BlockMoverButton = forwardRef(
+ (
+ {
+ clientIds,
+ direction,
+ __experimentalOrientation: orientation,
+ ...props
+ },
+ ref
+ ) => {
+ const instanceId = useInstanceId( BlockMoverButton );
+ const blocksCount = castArray( clientIds ).length;
+
+ const {
+ blockType,
+ isDisabled,
+ rootClientId,
+ isFirst,
+ isLast,
+ firstIndex,
+ isRTL,
+ moverOrientation,
+ } = useSelect(
+ ( select ) => {
+ const {
+ getBlockIndex,
+ getBlockRootClientId,
+ getBlockOrder,
+ getBlock,
+ getSettings,
+ getBlockListSettings,
+ } = select( 'core/block-editor' );
+ const normalizedClientIds = castArray( clientIds );
+ const firstClientId = first( normalizedClientIds );
+ const blockRootClientId = getBlockRootClientId( firstClientId );
+ const firstBlockIndex = getBlockIndex(
+ firstClientId,
+ blockRootClientId
+ );
+ const lastBlockIndex = getBlockIndex(
+ last( normalizedClientIds ),
+ blockRootClientId
+ );
+ const blockOrder = getBlockOrder( blockRootClientId );
+ const block = getBlock( firstClientId );
+ const isFirstBlock = firstBlockIndex === 0;
+ const isLastBlock = lastBlockIndex === blockOrder.length - 1;
+ const { __experimentalMoverDirection = 'vertical' } =
+ getBlockListSettings( blockRootClientId ) || {};
+
+ return {
+ blockType: block ? getBlockType( block.name ) : null,
+ isDisabled: direction === 'up' ? isFirstBlock : isLastBlock,
+ rootClientId: blockRootClientId,
+ firstIndex: firstBlockIndex,
+ isFirst: isFirstBlock,
+ isLast: isLastBlock,
+ isRTL: getSettings().isRTL,
+ moverOrientation:
+ orientation || __experimentalMoverDirection,
+ };
+ },
+ [ clientIds, direction ]
+ );
+
+ const { moveBlocksDown, moveBlocksUp } = useDispatch(
+ 'core/block-editor'
+ );
+ const moverFunction =
+ direction === 'up' ? moveBlocksUp : moveBlocksDown;
+
+ const onClick = ( event ) => {
+ moverFunction( clientIds, rootClientId );
+ if ( props.onClick ) {
+ props.onClick( event );
+ }
+ };
+
+ const descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;
+
+ return (
+ <>
+
+
+ { getBlockMoverDescription(
+ blocksCount,
+ blockType && blockType.title,
+ firstIndex,
+ isFirst,
+ isLast,
+ direction === 'up' ? -1 : 1,
+ moverOrientation,
+ isRTL
+ ) }
+
+ >
+ );
+ }
+);
+
+export const BlockMoverUpButton = forwardRef( ( props, ref ) => {
+ return ;
+} );
+
+export const BlockMoverDownButton = forwardRef( ( props, ref ) => {
+ return ;
+} );
diff --git a/packages/block-editor/src/components/block-mover/index.js b/packages/block-editor/src/components/block-mover/index.js
index 71c35561e90aa2..61a579d01efea5 100644
--- a/packages/block-editor/src/components/block-mover/index.js
+++ b/packages/block-editor/src/components/block-mover/index.js
@@ -1,26 +1,25 @@
/**
* External dependencies
*/
-import { first, last, partial } from 'lodash';
+import { first, last, castArray } from 'lodash';
import classnames from 'classnames';
/**
* WordPress dependencies
*/
-import { __ } from '@wordpress/i18n';
-import { Button, ToolbarGroup } from '@wordpress/components';
+import {
+ ToolbarGroup,
+ __experimentalToolbarItem as ToolbarItem,
+} from '@wordpress/components';
import { getBlockType } from '@wordpress/blocks';
import { Component } from '@wordpress/element';
-import { withSelect, withDispatch } from '@wordpress/data';
-import { withInstanceId, compose } from '@wordpress/compose';
+import { withSelect } from '@wordpress/data';
/**
* Internal dependencies
*/
-import { getBlockMoverDescription } from './mover-description';
-import { leftArrow, rightArrow } from './icons';
-import { chevronUp, chevronDown } from '@wordpress/icons';
import BlockDraggable from '../block-draggable';
+import { BlockMoverUpButton, BlockMoverDownButton } from './button';
export class BlockMover extends Component {
constructor() {
@@ -46,57 +45,20 @@ export class BlockMover extends Component {
render() {
const {
- onMoveUp,
- onMoveDown,
- __experimentalOrientation: orientation,
- isRTL,
isFirst,
isLast,
clientIds,
- blockType,
- firstIndex,
isLocked,
- instanceId,
isHidden,
rootClientId,
hideDragHandle,
+ __experimentalOrientation: orientation,
} = this.props;
const { isFocused } = this.state;
- const blocksCount = clientIds.length;
if ( isLocked || ( isFirst && isLast && ! rootClientId ) ) {
return null;
}
- const getArrowIcon = ( moveDirection ) => {
- if ( moveDirection === 'up' ) {
- if ( orientation === 'horizontal' ) {
- return isRTL ? rightArrow : leftArrow;
- }
- return chevronUp;
- } else if ( moveDirection === 'down' ) {
- if ( orientation === 'horizontal' ) {
- return isRTL ? leftArrow : rightArrow;
- }
- return chevronDown;
- }
- return null;
- };
-
- const getMovementDirectionLabel = ( moveDirection ) => {
- if ( moveDirection === 'up' ) {
- if ( orientation === 'horizontal' ) {
- return isRTL ? __( 'Move right' ) : __( 'Move left' );
- }
- return __( 'Move up' );
- } else if ( moveDirection === 'down' ) {
- if ( orientation === 'horizontal' ) {
- return isRTL ? __( 'Move left' ) : __( 'Move right' );
- }
- return __( 'Move down' );
- }
- return null;
- };
-
// We emulate a disabled state because forcefully applying the `disabled`
// attribute on the buttons while it has focus causes the screen to change
// to an unfocused state (body as active element) without firing blur on,
@@ -114,57 +76,28 @@ export class BlockMover extends Component {
onDragEnd={ onDraggableEnd }
>
-
-
-
-
- { getBlockMoverDescription(
- blocksCount,
- blockType && blockType.title,
- firstIndex,
- isFirst,
- isLast,
- -1,
- orientation,
- isRTL
+ { ( itemProps ) => (
+
) }
-
-
+
- { getBlockMoverDescription(
- blocksCount,
- blockType && blockType.title,
- firstIndex,
- isFirst,
- isLast,
- 1,
- orientation,
- isRTL
+ { ( itemProps ) => (
+
) }
-
+
) }
@@ -173,42 +106,33 @@ export class BlockMover extends Component {
}
}
-export default compose(
- withSelect( ( select, { clientIds } ) => {
- const {
- getBlock,
- getBlockIndex,
- getTemplateLock,
- getBlockRootClientId,
- getBlockOrder,
- } = select( 'core/block-editor' );
- const firstClientId = first( clientIds );
- const block = getBlock( firstClientId );
- const rootClientId = getBlockRootClientId( first( clientIds ) );
- const blockOrder = getBlockOrder( rootClientId );
- const firstIndex = getBlockIndex( firstClientId, rootClientId );
- const lastIndex = getBlockIndex( last( clientIds ), rootClientId );
- const { getSettings } = select( 'core/block-editor' );
- const { isRTL } = getSettings();
+export default withSelect( ( select, { clientIds } ) => {
+ const {
+ getBlock,
+ getBlockIndex,
+ getTemplateLock,
+ getBlockOrder,
+ getBlockRootClientId,
+ } = select( 'core/block-editor' );
+ const normalizedClientIds = castArray( clientIds );
+ const firstClientId = first( normalizedClientIds );
+ const block = getBlock( firstClientId );
+ const rootClientId = getBlockRootClientId( first( normalizedClientIds ) );
+ const firstIndex = getBlockIndex( firstClientId, rootClientId );
+ const lastIndex = getBlockIndex(
+ last( normalizedClientIds ),
+ rootClientId
+ );
+ const blockOrder = getBlockOrder( rootClientId );
+ const isFirst = firstIndex === 0;
+ const isLast = lastIndex === blockOrder.length - 1;
- return {
- blockType: block ? getBlockType( block.name ) : null,
- isLocked: getTemplateLock( rootClientId ) === 'all',
- rootClientId,
- firstIndex,
- isRTL,
- isFirst: firstIndex === 0,
- isLast: lastIndex === blockOrder.length - 1,
- };
- } ),
- withDispatch( ( dispatch, { clientIds, rootClientId } ) => {
- const { moveBlocksDown, moveBlocksUp } = dispatch(
- 'core/block-editor'
- );
- return {
- onMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),
- onMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),
- };
- } ),
- withInstanceId
-)( BlockMover );
+ return {
+ blockType: block ? getBlockType( block.name ) : null,
+ isLocked: getTemplateLock( rootClientId ) === 'all',
+ rootClientId,
+ firstIndex,
+ isFirst,
+ isLast,
+ };
+} )( BlockMover );
diff --git a/packages/block-editor/src/components/block-mover/index.native.js b/packages/block-editor/src/components/block-mover/index.native.js
index 818d7b35f3ac23..ded902f41e2964 100644
--- a/packages/block-editor/src/components/block-mover/index.native.js
+++ b/packages/block-editor/src/components/block-mover/index.native.js
@@ -1,7 +1,6 @@
/**
* External dependencies
*/
-import { I18nManager } from 'react-native';
import { first, last, partial, castArray } from 'lodash';
/**
@@ -142,6 +141,7 @@ export default compose(
getTemplateLock,
getBlockRootClientId,
getBlockOrder,
+ getSettings,
} = select( 'core/block-editor' );
const normalizedClientIds = castArray( clientIds );
const firstClientId = first( normalizedClientIds );
@@ -157,7 +157,7 @@ export default compose(
firstIndex,
isFirst: firstIndex === 0,
isLast: lastIndex === blockOrder.length - 1,
- isRTL: I18nManager.isRTL,
+ isRTL: getSettings().isRTL,
isLocked: getTemplateLock( rootClientId ) === 'all',
rootClientId,
};
diff --git a/packages/block-editor/src/components/block-mover/style.scss b/packages/block-editor/src/components/block-mover/style.scss
index e60bbcaacdb902..427e41189c8073 100644
--- a/packages/block-editor/src/components/block-mover/style.scss
+++ b/packages/block-editor/src/components/block-mover/style.scss
@@ -3,30 +3,43 @@
flex-direction: row;
}
-.block-editor-block-mover__description {
+.block-editor-block-mover-button__description {
display: none;
}
-.block-editor-block-mover__control.has-icon {
+.block-editor-block-mover-button.has-icon {
padding: 0;
}
// Show the mover in a single button under the contextual toolbar.
.block-editor-block-mover {
+ .components-toolbar-group,
.components-toolbar {
flex-direction: column;
+ flex: 1;
}
+ &.is-horizontal .components-toolbar-group,
&.is-horizontal .components-toolbar {
flex-direction: row;
}
- .block-editor-block-mover__control {
+ .block-editor-block-mover-button {
height: $block-toolbar-height/2;
+ width: $block-toolbar-height;
+ padding: 0 !important;
+
+ // Focus style.
+ // Overrides .components-toolbar-group styles
+ &::before {
+ left: $grid-unit-10 !important;
+ right: $grid-unit-10 !important;
+ }
}
// Position the icons correctly.
- .components-toolbar .block-editor-block-mover__control-up {
+ .components-toolbar-group .block-editor-block-mover-button.is-up-button,
+ .components-toolbar .block-editor-block-mover-button.is-up-button {
svg {
margin-bottom: -$grid-unit-10;
}
@@ -38,7 +51,8 @@
}
}
- .components-toolbar .block-editor-block-mover__control-down {
+ .components-toolbar-group .block-editor-block-mover-button.is-down-button,
+ .components-toolbar .block-editor-block-mover-button.is-down-button {
svg {
margin-top: -$grid-unit-10;
}
@@ -52,10 +66,11 @@
// Mover is horizontal.
&.is-horizontal {
- .block-editor-block-mover__control.has-icon {
+ .block-editor-block-mover-button.has-icon {
height: $block-toolbar-height;
+ // Overrides .components-toolbar-group styles
width: $block-toolbar-height/2 !important;
- min-width: $grid-unit-30;
+ min-width: $grid-unit-30 !important;
padding-left: 0;
padding-right: 0;
@@ -70,7 +85,7 @@
}
// Position the icons correctly.
- .block-editor-block-mover__control-up.has-icon {
+ .block-editor-block-mover-button.is-up-button.has-icon {
svg {
margin-left: 0;
margin-right: -$grid-unit-10;
@@ -78,13 +93,14 @@
}
// Focus style.
+ // Overrides .components-toolbar-group styles
&::before {
- left: $grid-unit-10;
- right: 0;
+ left: $grid-unit-10 !important;
+ right: 0 !important;
}
}
- .block-editor-block-mover__control-down.has-icon {
+ .block-editor-block-mover-button.is-down-button.has-icon {
svg {
margin-left: -$grid-unit-10;
margin-right: 0;
@@ -92,9 +108,10 @@
}
// Focus style.
+ // Overrides .components-toolbar-group styles
&::before {
- left: 0;
- right: $grid-unit-10;
+ left: 0 !important;
+ right: $grid-unit-10 !important;
}
}
}
diff --git a/packages/block-editor/src/components/block-navigation/appender.js b/packages/block-editor/src/components/block-navigation/appender.js
new file mode 100644
index 00000000000000..f31b8e793c8a29
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/appender.js
@@ -0,0 +1,68 @@
+/**
+ * WordPress dependencies
+ */
+import { __experimentalTreeGridCell as TreeGridCell } from '@wordpress/components';
+import { useInstanceId } from '@wordpress/compose';
+import { __, sprintf } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import BlockNavigationLeaf from './leaf';
+import ButtonBlockAppender from '../button-block-appender';
+import DescenderLines from './descender-lines';
+
+export default function BlockNavigationAppender( {
+ parentBlockClientId,
+ position,
+ level,
+ rowCount,
+ terminatedLevels,
+ path,
+} ) {
+ const instanceId = useInstanceId( BlockNavigationAppender );
+ const descriptionId = `block-navigation-appender-row__description_${ instanceId }`;
+
+ const appenderPositionDescription = sprintf(
+ /* translators: 1: The numerical position of the block that will be inserted. 2: The level of nesting for the block that will be inserted. */
+ __( 'Add block at position %1$d, Level %2$d' ),
+ position,
+ level
+ );
+
+ return (
+
+
+ { ( props ) => (
+
+
+
+
+ { appenderPositionDescription }
+
+
+ ) }
+
+
+ );
+}
diff --git a/packages/block-editor/src/components/block-navigation/block-contents.js b/packages/block-editor/src/components/block-navigation/block-contents.js
new file mode 100644
index 00000000000000..e12bf981bd0de9
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/block-contents.js
@@ -0,0 +1,185 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import {
+ __experimentalGetBlockLabel as getBlockLabel,
+ getBlockType,
+} from '@wordpress/blocks';
+import { Button, Fill, Slot, VisuallyHidden } from '@wordpress/components';
+import { useInstanceId } from '@wordpress/compose';
+import {
+ Children,
+ cloneElement,
+ forwardRef,
+ useContext,
+} from '@wordpress/element';
+import { __, sprintf } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import BlockIcon from '../block-icon';
+import { BlockListBlockContext } from '../block-list/block';
+import { useBlockNavigationContext } from './context';
+
+export const BlockNavigationBlockContentWrapper = forwardRef( function(
+ {
+ as: WrapperComponent,
+ className,
+ block,
+ isSelected,
+ onClick,
+ position,
+ siblingCount,
+ level,
+ children,
+ ...props
+ },
+ ref
+) {
+ const { name, attributes } = block;
+ const instanceId = useInstanceId( BlockNavigationBlockContentWrapper );
+ const descriptionId = `block-navigation-block-select-button_${ instanceId }`;
+ const blockType = getBlockType( name );
+ const blockDisplayName = getBlockLabel( blockType, attributes );
+ const blockPositionDescription = sprintf(
+ /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */
+ __( 'Block %1$d of %2$d, Level %3$d' ),
+ position,
+ siblingCount,
+ level
+ );
+
+ return (
+ <>
+
+
+ { children ? children : blockDisplayName }
+ { isSelected && (
+
+ { __( '(selected block)' ) }
+
+ ) }
+
+
+ { blockPositionDescription }
+
+ >
+ );
+} );
+
+const BlockNavigationBlockSelectButton = forwardRef( ( props, ref ) => (
+
+) );
+
+const getSlotName = ( clientId ) => `BlockNavigationBlock-${ clientId }`;
+
+const BlockNavigationBlockSlot = forwardRef(
+ (
+ { block, isSelected, onClick, position, siblingCount, level, ...props },
+ ref
+ ) => {
+ const { clientId } = block;
+
+ return (
+
+ { ( fills ) => {
+ if ( ! fills.length ) {
+ return (
+
+ );
+ }
+
+ return (
+
+ { Children.map( fills, ( fill ) =>
+ cloneElement( fill, {
+ ...{
+ block,
+ isSelected,
+ onClick,
+ ...props,
+ },
+ ...fill.props,
+ } )
+ ) }
+
+ );
+ } }
+
+ );
+ }
+);
+
+export const BlockNavigationBlockFill = ( props ) => {
+ const { clientId } = useContext( BlockListBlockContext );
+ return ;
+};
+
+const BlockNavigationBlockContents = forwardRef(
+ (
+ { onClick, block, isSelected, position, siblingCount, level, ...props },
+ ref
+ ) => {
+ const {
+ __experimentalWithBlockNavigationSlots: withBlockNavigationSlots,
+ } = useBlockNavigationContext();
+
+ return withBlockNavigationSlots ? (
+
+ ) : (
+
+ );
+ }
+);
+
+export default BlockNavigationBlockContents;
diff --git a/packages/block-editor/src/components/block-navigation/block.js b/packages/block-editor/src/components/block-navigation/block.js
new file mode 100644
index 00000000000000..7c0fca3f285344
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/block.js
@@ -0,0 +1,110 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import { __experimentalTreeGridCell as TreeGridCell } from '@wordpress/components';
+
+import { useState } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import BlockNavigationLeaf from './leaf';
+import {
+ BlockMoverUpButton,
+ BlockMoverDownButton,
+} from '../block-mover/button';
+import DescenderLines from './descender-lines';
+import BlockNavigationBlockContents from './block-contents';
+
+export default function BlockNavigationBlock( {
+ block,
+ onClick,
+ isSelected,
+ position,
+ level,
+ rowCount,
+ showBlockMovers,
+ terminatedLevels,
+ path,
+} ) {
+ const [ isHovered, setIsHovered ] = useState( false );
+ const [ isFocused, setIsFocused ] = useState( false );
+ const { clientId } = block;
+
+ // Subtract 1 from rowCount, as it includes the block appender.
+ const siblingCount = rowCount - 1;
+ const hasSiblings = siblingCount > 1;
+ const hasRenderedMovers = showBlockMovers && hasSiblings;
+ const hasVisibleMovers = isHovered || isSelected || isFocused;
+ const moverCellClassName = classnames(
+ 'block-editor-block-navigation-block__mover-cell',
+ { 'is-visible': hasVisibleMovers }
+ );
+
+ return (
+ setIsHovered( true ) }
+ onMouseLeave={ () => setIsHovered( false ) }
+ onFocus={ () => setIsFocused( true ) }
+ onBlur={ () => setIsFocused( false ) }
+ level={ level }
+ position={ position }
+ rowCount={ rowCount }
+ path={ path }
+ >
+
+ { ( props ) => (
+
+
+
+
+ ) }
+
+ { hasRenderedMovers && (
+ <>
+
+ { ( props ) => (
+
+ ) }
+
+
+ { ( props ) => (
+
+ ) }
+
+ >
+ ) }
+
+ );
+}
diff --git a/packages/block-editor/src/components/block-navigation/branch.js b/packages/block-editor/src/components/block-navigation/branch.js
new file mode 100644
index 00000000000000..58e24890f79c9f
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/branch.js
@@ -0,0 +1,100 @@
+/**
+ * External dependencies
+ */
+import { map, compact } from 'lodash';
+
+/**
+ * WordPress dependencies
+ */
+import { Fragment } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import BlockNavigationBlock from './block';
+import BlockNavigationAppender from './appender';
+
+export default function BlockNavigationBranch( props ) {
+ const {
+ blocks,
+ selectBlock,
+ selectedBlockClientId,
+ showAppender,
+ showBlockMovers,
+ showNestedBlocks,
+ parentBlockClientId,
+ level = 1,
+ terminatedLevels = [],
+ path = [],
+ } = props;
+
+ const isTreeRoot = ! parentBlockClientId;
+ const filteredBlocks = compact( blocks );
+ // Add +1 to the rowCount to take the block appender into account.
+ const rowCount = showAppender
+ ? filteredBlocks.length + 1
+ : filteredBlocks.length;
+ const hasAppender =
+ showAppender && filteredBlocks.length > 0 && ! isTreeRoot;
+ const appenderPosition = rowCount;
+
+ return (
+ <>
+ { map( filteredBlocks, ( block, index ) => {
+ const { clientId, innerBlocks } = block;
+ const hasNestedBlocks =
+ showNestedBlocks && !! innerBlocks && !! innerBlocks.length;
+ const position = index + 1;
+ const isLastRowAtLevel = rowCount === position;
+ const updatedTerminatedLevels = isLastRowAtLevel
+ ? [ ...terminatedLevels, level ]
+ : terminatedLevels;
+ const updatedPath = [ ...path, position ];
+
+ return (
+
+ selectBlock( clientId ) }
+ isSelected={ selectedBlockClientId === clientId }
+ level={ level }
+ position={ position }
+ rowCount={ rowCount }
+ showBlockMovers={ showBlockMovers }
+ terminatedLevels={ terminatedLevels }
+ path={ updatedPath }
+ />
+ { hasNestedBlocks && (
+
+ ) }
+
+ );
+ } ) }
+ { hasAppender && (
+
+ ) }
+ >
+ );
+}
+
+BlockNavigationBranch.defaultProps = {
+ selectBlock: () => {},
+};
diff --git a/packages/block-editor/src/components/block-navigation/context.js b/packages/block-editor/src/components/block-navigation/context.js
new file mode 100644
index 00000000000000..e21075d25d0f20
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/context.js
@@ -0,0 +1,11 @@
+/**
+ * WordPress dependencies
+ */
+import { createContext, useContext } from '@wordpress/element';
+
+export const BlockNavigationContext = createContext( {
+ __experimentalWithBlockNavigationSlots: false,
+} );
+
+export const useBlockNavigationContext = () =>
+ useContext( BlockNavigationContext );
diff --git a/packages/block-editor/src/components/block-navigation/descender-lines.js b/packages/block-editor/src/components/block-navigation/descender-lines.js
new file mode 100644
index 00000000000000..58b7144bd6dd85
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/descender-lines.js
@@ -0,0 +1,31 @@
+/**
+ * External dependencies
+ */
+import { times } from 'lodash';
+import classnames from 'classnames';
+
+const lineClassName = 'block-editor-block-navigator-descender-line';
+
+export default function DescenderLines( {
+ level,
+ isLastRow,
+ terminatedLevels,
+} ) {
+ return times( level - 1, ( index ) => {
+ // The first 'level' that has a descender line is level 2.
+ // Add 2 to the zero-based index below to reflect that.
+ const currentLevel = index + 2;
+ const hasItem = currentLevel === level;
+ return (
+
+ );
+ } );
+}
diff --git a/packages/block-editor/src/components/block-navigation/dropdown.js b/packages/block-editor/src/components/block-navigation/dropdown.js
index b230aac4236add..ba0e824c3667c0 100644
--- a/packages/block-editor/src/components/block-navigation/dropdown.js
+++ b/packages/block-editor/src/components/block-navigation/dropdown.js
@@ -53,7 +53,10 @@ function BlockNavigationDropdownToggle( { isEnabled, onToggle, isOpen } ) {
);
}
-function BlockNavigationDropdown( { isDisabled } ) {
+function BlockNavigationDropdown( {
+ isDisabled,
+ __experimentalWithBlockNavigationSlots,
+} ) {
const hasBlocks = useSelect(
( select ) => !! select( 'core/block-editor' ).getBlockCount(),
[]
@@ -71,7 +74,12 @@ function BlockNavigationDropdown( { isDisabled } ) {
/>
) }
renderContent={ ( { onClose } ) => (
-
+
) }
/>
);
diff --git a/packages/block-editor/src/components/block-navigation/index.js b/packages/block-editor/src/components/block-navigation/index.js
index 4d25ffda1bb01e..9e6e99651a80c3 100644
--- a/packages/block-editor/src/components/block-navigation/index.js
+++ b/packages/block-editor/src/components/block-navigation/index.js
@@ -7,20 +7,20 @@ import { noop } from 'lodash';
* WordPress dependencies
*/
import { withSelect, withDispatch } from '@wordpress/data';
-import { NavigableMenu } from '@wordpress/components';
import { compose } from '@wordpress/compose';
import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
-import BlockNavigationList from './list';
+import BlockNavigationTree from './tree';
function BlockNavigation( {
rootBlock,
rootBlocks,
selectedBlockClientId,
selectBlock,
+ __experimentalWithBlockNavigationSlots,
} ) {
if ( ! rootBlocks || rootBlocks.length === 0 ) {
return null;
@@ -32,29 +32,32 @@ function BlockNavigation( {
( rootBlock.innerBlocks && rootBlock.innerBlocks.length !== 0 ) );
return (
-
+
{ __( 'Block navigation' ) }
{ hasHierarchy && (
-
) }
{ ! hasHierarchy && (
-
) }
-
+
);
}
diff --git a/packages/block-editor/src/components/block-navigation/leaf.js b/packages/block-editor/src/components/block-navigation/leaf.js
new file mode 100644
index 00000000000000..d80873d2c664ec
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/leaf.js
@@ -0,0 +1,58 @@
+/**
+ * External dependencies
+ */
+import { animated } from 'react-spring/web.cjs';
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';
+import { useRef } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import useMovingAnimation from '../use-moving-animation';
+
+const AnimatedTreeGridRow = animated( TreeGridRow );
+
+export default function BlockNavigationLeaf( {
+ isSelected,
+ position,
+ level,
+ rowCount,
+ children,
+ className,
+ path,
+ ...props
+} ) {
+ const wrapper = useRef( null );
+ const adjustScrolling = false;
+ const enableAnimation = true;
+ const animateOnChange = path.join( '_' );
+ const style = useMovingAnimation(
+ wrapper,
+ isSelected,
+ adjustScrolling,
+ enableAnimation,
+ animateOnChange
+ );
+
+ return (
+
+ { children }
+
+ );
+}
diff --git a/packages/block-editor/src/components/block-navigation/list-item.js b/packages/block-editor/src/components/block-navigation/list-item.js
new file mode 100644
index 00000000000000..965f2d648e8b05
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/list-item.js
@@ -0,0 +1,58 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import { Button, VisuallyHidden } from '@wordpress/components';
+import {
+ __experimentalGetBlockLabel as getBlockLabel,
+ getBlockType,
+} from '@wordpress/blocks';
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import BlockIcon from '../block-icon';
+
+export default function BlockNavigationListItem( {
+ block,
+ onClick,
+ isSelected,
+ wrapperComponent: WrapperComponent,
+ children,
+} ) {
+ const blockType = getBlockType( block.name );
+
+ return (
+
+
+
+ { children
+ ? children
+ : getBlockLabel( blockType, block.attributes ) }
+ { isSelected && (
+
+ { __( '(selected block)' ) }
+
+ ) }
+
+
+ );
+}
+
+BlockNavigationListItem.defaultProps = {
+ onClick: () => {},
+ wrapperComponent: ( props ) => ,
+};
diff --git a/packages/block-editor/src/components/block-navigation/list.js b/packages/block-editor/src/components/block-navigation/list.js
deleted file mode 100644
index 55a1b28848b9dd..00000000000000
--- a/packages/block-editor/src/components/block-navigation/list.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * External dependencies
- */
-import { isNil, map, omitBy } from 'lodash';
-import classnames from 'classnames';
-
-/**
- * WordPress dependencies
- */
-import { Button, VisuallyHidden } from '@wordpress/components';
-import {
- __experimentalGetBlockLabel as getBlockLabel,
- getBlockType,
-} from '@wordpress/blocks';
-import { __ } from '@wordpress/i18n';
-
-/**
- * Internal dependencies
- */
-import BlockIcon from '../block-icon';
-import ButtonBlockAppender from '../button-block-appender';
-
-export default function BlockNavigationList( {
- blocks,
- selectedBlockClientId,
- selectBlock,
- showAppender,
-
- // Internal use only.
- showNestedBlocks,
- parentBlockClientId,
-} ) {
- const shouldShowAppender = showAppender && !! parentBlockClientId;
-
- return (
- /*
- * Disable reason: The `list` ARIA role is redundant but
- * Safari+VoiceOver won't announce the list otherwise.
- */
- /* eslint-disable jsx-a11y/no-redundant-roles */
-
- /* eslint-enable jsx-a11y/no-redundant-roles */
- );
-}
diff --git a/packages/block-editor/src/components/block-navigation/style.scss b/packages/block-editor/src/components/block-navigation/style.scss
index abc9ad802ed08e..82d766c6a27f6d 100644
--- a/packages/block-editor/src/components/block-navigation/style.scss
+++ b/packages/block-editor/src/components/block-navigation/style.scss
@@ -10,48 +10,76 @@ $tree-item-height: 36px;
color: $dark-gray-300;
}
-.block-editor-block-navigation__list,
-.block-editor-block-navigation__paragraph {
+.block-editor-block-navigation__container {
+ padding: $grid-unit - $border-width;
+}
+
+.block-editor-block-navigation-tree {
+ width: 100%;
+ border-collapse: collapse;
padding: 0;
margin: 0;
}
-.block-editor-block-navigation__list .block-editor-button-block-appender {
- outline: none;
- background: none;
- padding: $grid-unit-10;
- padding: 6px;
- margin-left: 0.8em;
- width: calc(100% - 0.8em);
-}
+.block-editor-block-navigation-leaf {
+ // Use position relative for row animation.
+ position: relative;
-.block-editor-block-navigation__list .block-editor-block-navigation__list {
- margin-top: 2px;
- border-left: $tree-border-width solid $light-gray-900;
- margin-left: 1em;
+ .block-editor-block-navigation-block-content-wrapper {
+ display: flex;
+ align-items: center;
+ width: calc(100% - 0.8em);
+ height: auto;
+ padding: 6px;
+ text-align: left;
+ color: $dark-gray-600;
+ border-radius: 2px;
+ }
- .block-editor-block-navigation__list {
- margin-left: 1.5em;
+ &.is-visible .block-editor-block-navigation-block-content-wrapper {
+ opacity: 1;
+ @include edit-post__fade-in-animation;
}
- .block-editor-block-navigation__item {
- position: relative;
+ // .block-editor-block-navigation__list-item {
+ // position: relative;
+ // }
- &::before {
- position: absolute;
- left: 0;
- background: $light-gray-900;
- width: 0.5em;
- height: $tree-border-width;
- content: "";
- top: calc(50% - #{ $tree-border-width / 2 });
+ .block-editor-block-icon {
+ margin-right: 6px;
+ }
+
+ &.is-selected .block-editor-block-icon svg,
+ &.is-selected:focus .block-editor-block-icon svg {
+ color: $white;
+ background: $dark-gray-primary;
+ box-shadow: 0 0 0 $border-width $dark-gray-primary;
+ border-radius: $border-width;
+ }
+
+ .block-editor-block-navigation-block__mover-cell {
+ width: $button-size;
+ opacity: 0;
+ @include reduce-motion("transition");
+
+ &.is-visible {
+ opacity: 1;
+ @include edit-post__fade-in-animation;
}
}
- .block-editor-block-navigation__item-button {
+ .block-editor-block-mover-button {
+ width: $button-size;
+ height: $button-size;
+ }
+
+ .block-editor-button-block-appender {
+ outline: none;
+ background: none;
+ padding: $grid-unit-10;
+ padding: 6px;
margin-left: 0.8em;
width: calc(100% - 0.8em);
- height: auto;
}
& > li:last-child {
@@ -68,28 +96,61 @@ $tree-item-height: 36px;
}
}
-.block-editor-block-navigation__item-button {
- display: flex;
- align-items: center;
- width: 100%;
- padding: 6px;
- text-align: left;
- color: $dark-gray-600;
- border-radius: 2px;
+.block-editor-block-navigation-block-content-wrapper__description,
+.block-editor-block-navigation-appender__description {
+ display: none;
+}
- .block-editor-block-icon {
- margin-right: 6px;
+.block-editor-block-navigation-block__contents-cell,
+.block-editor-block-navigation-appender__cell {
+ .block-editor-block-navigation-block__contents-container,
+ .block-editor-block-navigation-appender__container {
+ display: flex;
}
- &.is-selected svg,
- &.is-selected:focus svg {
- color: $white;
- background: $dark-gray-primary;
- box-shadow: 0 0 0 $border-width $dark-gray-primary;
- border-radius: $border-width;
- }
-}
+ .block-editor-block-navigator-descender-line {
+ position: relative;
+ flex-shrink: 0;
+ width: ( $button-size / 2 ) + 6px;
+
+ &:first-child {
+ width: ( $button-size / 2 );
+ }
+
+ &.has-item {
+ margin-right: 6px;
+ }
-.components-popover.block-editor-block-navigation__popover {
- z-index: z-index(".components-popover.block-editor-block-navigation__popover");
+ // Draw a vertical line using border-right.
+ &::before {
+ content: "";
+ display: block;
+ position: absolute;
+ top: -1px;
+ bottom: -2px;
+ right: 0;
+ border-right: 2px solid $light-gray-900;
+ }
+
+ // If a vertical line has terminated, don't draw it.
+ &.is-terminated::before {
+ border-color: transparent;
+ }
+
+ // Make the last vertical line half-height.
+ &.has-item.is-last-row {
+ height: $grid-unit-20;
+ }
+
+ // Draw a horizontal line using border-bottom.
+ &.has-item::after {
+ content: "";
+ display: block;
+ position: absolute;
+ top: $grid-unit-20;
+ left: 100%;
+ width: 5px;
+ border-bottom: 2px solid $light-gray-900;
+ }
+ }
}
diff --git a/packages/block-editor/src/components/block-navigation/tree.js b/packages/block-editor/src/components/block-navigation/tree.js
new file mode 100644
index 00000000000000..ee7d688565c016
--- /dev/null
+++ b/packages/block-editor/src/components/block-navigation/tree.js
@@ -0,0 +1,41 @@
+/**
+ * WordPress dependencies
+ */
+
+import { __experimentalTreeGrid as TreeGrid } from '@wordpress/components';
+import { useMemo } from '@wordpress/element';
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import BlockNavigationBranch from './branch';
+import { BlockNavigationContext } from './context';
+
+/**
+ * Wrap `BlockNavigationRows` with `TreeGrid`. BlockNavigationRows is a
+ * recursive component (it renders itself), so this ensures TreeGrid is only
+ * present at the very top of the navigation grid.
+ *
+ * @param {Object} props
+ */
+export default function BlockNavigationTree( {
+ __experimentalWithBlockNavigationSlots,
+ ...props
+} ) {
+ const contextValue = useMemo(
+ () => ( { __experimentalWithBlockNavigationSlots } ),
+ [ __experimentalWithBlockNavigationSlots ]
+ );
+
+ return (
+
+
+
+
+
+ );
+}
diff --git a/packages/block-editor/src/components/block-preview/index.js b/packages/block-editor/src/components/block-preview/index.js
index d49fad67dac347..3b0658c45dcd8a 100644
--- a/packages/block-editor/src/components/block-preview/index.js
+++ b/packages/block-editor/src/components/block-preview/index.js
@@ -7,7 +7,7 @@ import { castArray } from 'lodash';
* WordPress dependencies
*/
import { useSelect } from '@wordpress/data';
-import { useMemo } from '@wordpress/element';
+import { memo, useMemo } from '@wordpress/element';
/**
* Internal dependencies
@@ -15,17 +15,6 @@ import { useMemo } from '@wordpress/element';
import BlockEditorProvider from '../provider';
import AutoHeightBlockPreview from './auto';
-/**
- * BlockPreview renders a preview of a block or array of blocks.
- *
- * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-preview/README.md
- *
- * @param {Object} preview options for how the preview should be shown
- * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.
- * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.
- *
- * @return {WPComponent} The component to be rendered.
- */
export function BlockPreview( {
blocks,
__experimentalPadding = 0,
@@ -48,4 +37,15 @@ export function BlockPreview( {
);
}
-export default BlockPreview;
+/**
+ * BlockPreview renders a preview of a block or array of blocks.
+ *
+ * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-preview/README.md
+ *
+ * @param {Object} preview options for how the preview should be shown
+ * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.
+ * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.
+ *
+ * @return {WPComponent} The component to be rendered.
+ */
+export default memo( BlockPreview );
diff --git a/packages/block-editor/src/components/block-preview/style.scss b/packages/block-editor/src/components/block-preview/style.scss
index 1d0df3962fd741..b3f344c4127c85 100644
--- a/packages/block-editor/src/components/block-preview/style.scss
+++ b/packages/block-editor/src/components/block-preview/style.scss
@@ -44,10 +44,7 @@
padding-left: 0;
padding-right: 0;
- > div:not(.block-editor-block-list__block) > .block-editor-block-list__block[data-align="full"],
- > div:not(.block-editor-block-list__block) > .block-editor-block-list__block.alignfull,
- > .block-editor-block-list__block[data-align="full"],
- > .block-editor-block-list__block.alignfull {
+ > .wp-block[data-align="full"] {
margin-left: 0;
margin-right: 0;
}
diff --git a/packages/block-editor/src/components/block-settings-menu/index.js b/packages/block-editor/src/components/block-settings-menu/index.js
index e4c2c64682a32f..ef235038e6f16a 100644
--- a/packages/block-editor/src/components/block-settings-menu/index.js
+++ b/packages/block-editor/src/components/block-settings-menu/index.js
@@ -8,13 +8,17 @@ import { castArray, flow } from 'lodash';
*/
import { __, _n } from '@wordpress/i18n';
import {
- Toolbar,
+ ToolbarGroup,
+ __experimentalToolbarItem as ToolbarItem,
DropdownMenu,
MenuGroup,
MenuItem,
+ ClipboardButton,
} from '@wordpress/components';
import { useSelect } from '@wordpress/data';
import { moreHorizontal } from '@wordpress/icons';
+import { useState } from '@wordpress/element';
+import { serialize } from '@wordpress/blocks';
/**
* Internal dependencies
@@ -55,6 +59,8 @@ export function BlockSettingsMenu( { clientIds } ) {
};
}, [] );
+ const [ hasCopied, setHasCopied ] = useState();
+
return (
{ ( {
@@ -65,99 +71,134 @@ export function BlockSettingsMenu( { clientIds } ) {
onInsertAfter,
onInsertBefore,
onRemove,
+ blocks,
} ) => (
-
-
- { ( { onClose } ) => (
- <>
-
- <__experimentalBlockSettingsMenuFirstItem.Slot
- fillProps={ { onClose } }
- />
- { count === 1 && (
-
- ) }
- { count === 1 && (
-
- ) }
- { canDuplicate && (
-
+
+ { ( toggleProps ) => (
+
+ { ( { onClose } ) => (
+ <>
+
+ <__experimentalBlockSettingsMenuFirstItem.Slot
+ fillProps={ { onClose } }
+ />
+ { count === 1 && (
+
) }
- shortcut={ shortcuts.duplicate }
- >
- { __( 'Duplicate' ) }
-
- ) }
- { canInsertDefaultBlock && (
- <>
-
+ ) }
+
+ serialize( blocks )
}
- >
- { __( 'Insert Before' ) }
-
- {
+ setHasCopied( true );
+ } }
+ onFinishCopy={ () =>
+ setHasCopied( false )
}
>
- { __( 'Insert After' ) }
-
- >
- ) }
- { count === 1 && (
-
- ) }
-
-
-
- { ! isLocked && (
-
+ { canDuplicate && (
+
+ { __( 'Duplicate' ) }
+
+ ) }
+ { canInsertDefaultBlock && (
+ <>
+
+ { __(
+ 'Insert Before'
+ ) }
+
+
+ { __( 'Insert After' ) }
+
+ >
) }
- shortcut={ shortcuts.remove }
- >
- { _n(
- 'Remove Block',
- 'Remove Blocks',
- count
+ { count === 1 && (
+
+ ) }
+
+
+
+ { ! isLocked && (
+
+ { _n(
+ 'Remove Block',
+ 'Remove Blocks',
+ count
+ ) }
+
) }
-
- ) }
-
- >
+
+ >
+ ) }
+
) }
-
-
+
+
) }
);
diff --git a/packages/block-editor/src/components/block-settings/container.native.js b/packages/block-editor/src/components/block-settings/container.native.js
index fe59d3060a29fc..9ba339b86eb551 100644
--- a/packages/block-editor/src/components/block-settings/container.native.js
+++ b/packages/block-editor/src/components/block-settings/container.native.js
@@ -1,10 +1,18 @@
/**
* WordPress dependencies
*/
-import { BottomSheet } from '@wordpress/components';
+import {
+ BottomSheet,
+ BottomSheetConsumer,
+ ColorSettings,
+ colorsUtils,
+} from '@wordpress/components';
import { withSelect, withDispatch } from '@wordpress/data';
import { compose } from '@wordpress/compose';
-import { InspectorControls } from '@wordpress/block-editor';
+import {
+ InspectorControls,
+ SETTINGS_DEFAULTS as defaultSettings,
+} from '@wordpress/block-editor';
/**
* Internal dependencies
@@ -24,7 +32,23 @@ function BottomSheetSettings( {
contentStyle={ styles.content }
{ ...props }
>
-
+
+ { ( { currentScreen, extraProps, ...bottomSheetProps } ) => {
+ switch ( currentScreen ) {
+ case colorsUtils.subsheets.color:
+ return (
+
+ );
+ case colorsUtils.subsheets.settings:
+ default:
+ return ;
+ }
+ } }
+
);
}
diff --git a/packages/block-editor/src/components/block-styles/index.js b/packages/block-editor/src/components/block-styles/index.js
index 0c4352d41530ac..510e73cd4b5ec5 100644
--- a/packages/block-editor/src/components/block-styles/index.js
+++ b/packages/block-editor/src/components/block-styles/index.js
@@ -7,8 +7,8 @@ import classnames from 'classnames';
/**
* WordPress dependencies
*/
-import { compose } from '@wordpress/compose';
-import { withSelect, withDispatch } from '@wordpress/data';
+import { useMemo } from '@wordpress/element';
+import { useSelect, useDispatch } from '@wordpress/data';
import TokenList from '@wordpress/token-list';
import { ENTER, SPACE } from '@wordpress/keycodes';
import { _x } from '@wordpress/i18n';
@@ -68,42 +68,52 @@ export function replaceActiveStyle( className, activeStyle, newStyle ) {
return list.value;
}
-function BlockStyles( {
- styles,
- className,
- onChangeClassName,
- type,
- block,
- onSwitch = noop,
- onHoverClassName = noop,
-} ) {
+const useGenericPreviewBlock = ( block, type ) =>
+ useMemo(
+ () =>
+ type.example
+ ? getBlockFromExample( block.name, {
+ attributes: type.example.attributes,
+ innerBlocks: type.example.innerBlocks,
+ } )
+ : cloneBlock( block ),
+ [ block, type ]
+ );
+
+function BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {
+ const selector = ( select ) => {
+ const { getBlock } = select( 'core/block-editor' );
+ const { getBlockStyles } = select( 'core/blocks' );
+ const block = getBlock( clientId );
+ const blockType = getBlockType( block.name );
+ return {
+ block,
+ type: blockType,
+ styles: getBlockStyles( block.name ),
+ className: block.attributes.className || '',
+ };
+ };
+
+ const { styles, block, type, className } = useSelect( selector, [
+ clientId,
+ ] );
+
+ const { updateBlockAttributes } = useDispatch( 'core/block-editor' );
+ const genericPreviewBlock = useGenericPreviewBlock( block, type );
+
if ( ! styles || styles.length === 0 ) {
return null;
}
if ( ! type.styles && ! find( styles, 'isDefault' ) ) {
- styles = [
- {
- name: 'default',
- label: _x( 'Default', 'block style' ),
- isDefault: true,
- },
- ...styles,
- ];
+ styles.unshift( {
+ name: 'default',
+ label: _x( 'Default', 'block style' ),
+ isDefault: true,
+ } );
}
const activeStyle = getActiveStyle( styles, className );
- function updateClassName( style ) {
- const updatedClassName = replaceActiveStyle(
- className,
- activeStyle,
- style
- );
- onChangeClassName( updatedClassName );
- onHoverClassName( null );
- onSwitch();
- }
-
return (
{ styles.map( ( style ) => {
@@ -113,85 +123,75 @@ function BlockStyles( {
style
);
return (
-
updateClassName( style ) }
- onKeyDown={ ( event ) => {
- if (
- ENTER === event.keyCode ||
- SPACE === event.keyCode
- ) {
- event.preventDefault();
- updateClassName( style );
- }
+ onSelect={ () => {
+ updateBlockAttributes( clientId, {
+ className: styleClassName,
+ } );
+ onHoverClassName( null );
+ onSwitch();
} }
- onMouseEnter={ () =>
- onHoverClassName( styleClassName )
- }
- onMouseLeave={ () => onHoverClassName( null ) }
- role="button"
- tabIndex="0"
- aria-label={ style.label || style.name }
- >
-
-
-
-
- { style.label || style.name }
-
-
+ onBlur={ () => onHoverClassName( null ) }
+ onHover={ () => onHoverClassName( styleClassName ) }
+ style={ style }
+ styleClassName={ styleClassName }
+ />
);
} ) }
);
}
-export default compose( [
- withSelect( ( select, { clientId } ) => {
- const { getBlock } = select( 'core/block-editor' );
- const { getBlockStyles } = select( 'core/blocks' );
- const block = getBlock( clientId );
- const blockType = getBlockType( block.name );
-
- return {
- block,
- className: block.attributes.className || '',
- styles: getBlockStyles( block.name ),
- type: blockType,
- };
- } ),
- withDispatch( ( dispatch, { clientId } ) => {
+function BlockStyleItem( {
+ genericPreviewBlock,
+ style,
+ isActive,
+ onBlur,
+ onHover,
+ onSelect,
+ styleClassName,
+} ) {
+ const previewBlocks = useMemo( () => {
return {
- onChangeClassName( newClassName ) {
- dispatch( 'core/block-editor' ).updateBlockAttributes(
- clientId,
- {
- className: newClassName,
- }
- );
+ ...genericPreviewBlock,
+ attributes: {
+ ...genericPreviewBlock.attributes,
+ className: styleClassName,
},
};
- } ),
-] )( BlockStyles );
+ }, [ genericPreviewBlock, styleClassName ] );
+
+ return (
+ onSelect() }
+ onKeyDown={ ( event ) => {
+ if ( ENTER === event.keyCode || SPACE === event.keyCode ) {
+ event.preventDefault();
+ onSelect();
+ }
+ } }
+ onMouseEnter={ onHover }
+ onMouseLeave={ onBlur }
+ role="button"
+ tabIndex="0"
+ aria-label={ style.label || style.name }
+ >
+
+
+
+
+ { style.label || style.name }
+
+
+ );
+}
+
+export default BlockStyles;
diff --git a/packages/block-editor/src/components/block-switcher/index.js b/packages/block-editor/src/components/block-switcher/index.js
index eb2f7653af4f28..cc1c1b5d8d548c 100644
--- a/packages/block-editor/src/components/block-switcher/index.js
+++ b/packages/block-editor/src/components/block-switcher/index.js
@@ -7,7 +7,12 @@ import { castArray, filter, first, mapKeys, orderBy, uniq, map } from 'lodash';
* WordPress dependencies
*/
import { __, _n, sprintf } from '@wordpress/i18n';
-import { Dropdown, Button, Toolbar, MenuGroup } from '@wordpress/components';
+import {
+ Dropdown,
+ ToolbarButton,
+ ToolbarGroup,
+ MenuGroup,
+} from '@wordpress/components';
import {
getBlockType,
getPossibleBlockTransformations,
@@ -91,14 +96,14 @@ export class BlockSwitcher extends Component {
if ( ! hasBlockStyles && ! possibleBlockTransformations.length ) {
return (
-
-
+ }
/>
-
+
);
}
@@ -129,8 +134,8 @@ export class BlockSwitcher extends Component {
);
return (
-
-
+ }
/>
-
+
);
} }
renderContent={ ( { onClose } ) => (
diff --git a/packages/block-editor/src/components/block-switcher/style.scss b/packages/block-editor/src/components/block-switcher/style.scss
index 17878a4db2963c..29bd8f1b3980f5 100644
--- a/packages/block-editor/src/components/block-switcher/style.scss
+++ b/packages/block-editor/src/components/block-switcher/style.scss
@@ -42,7 +42,8 @@
// Style this the same as the block buttons in the library.
// Needs specificiity to override the icon button.
-.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon {
+.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon,
+.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon {
padding: 0;
.block-editor-block-icon {
diff --git a/packages/block-editor/src/components/block-switcher/test/__snapshots__/index.js.snap b/packages/block-editor/src/components/block-switcher/test/__snapshots__/index.js.snap
index a7a9d6dd1bbed0..0c98e6d00431bd 100644
--- a/packages/block-editor/src/components/block-switcher/test/__snapshots__/index.js.snap
+++ b/packages/block-editor/src/components/block-switcher/test/__snapshots__/index.js.snap
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`BlockSwitcher should render disabled block switcher with multi block of different types when no transforms 1`] = `
-
-
+
-
+
`;
exports[`BlockSwitcher should render enabled block switcher with multi block when transforms exist 1`] = `
diff --git a/packages/block-editor/src/components/block-switcher/test/index.js b/packages/block-editor/src/components/block-switcher/test/index.js
index dea53770ca7d07..75755bcd561d4d 100644
--- a/packages/block-editor/src/components/block-switcher/test/index.js
+++ b/packages/block-editor/src/components/block-switcher/test/index.js
@@ -188,9 +188,7 @@ describe( 'BlockSwitcher', () => {
isOpen: false,
} )
);
- const iconButtonClosed = toggleClosed.find(
- 'ForwardRef(Button)'
- );
+ const iconButtonClosed = toggleClosed.find( 'ToolbarButton' );
iconButtonClosed.simulate( 'keydown', mockKeyDown );
@@ -206,7 +204,7 @@ describe( 'BlockSwitcher', () => {
isOpen: true,
} )
);
- const iconButtonOpen = toggleOpen.find( 'ForwardRef(Button)' );
+ const iconButtonOpen = toggleOpen.find( 'ToolbarButton' );
iconButtonOpen.simulate( 'keydown', mockKeyDown );
diff --git a/packages/block-editor/src/components/block-toolbar/style.scss b/packages/block-editor/src/components/block-toolbar/style.scss
index 6cc37f4d9309d4..e43f35d742491c 100644
--- a/packages/block-editor/src/components/block-toolbar/style.scss
+++ b/packages/block-editor/src/components/block-toolbar/style.scss
@@ -19,6 +19,7 @@
}
// Borders around toolbar segments.
+ .components-toolbar-group,
.components-toolbar {
background: none;
// IE11 has thick paddings without this.
@@ -37,6 +38,7 @@
}
> :last-child,
+ > :last-child .components-toolbar-group,
> :last-child .components-toolbar {
border-right: none;
}
diff --git a/packages/block-editor/src/components/block-toolbar/utils.js b/packages/block-editor/src/components/block-toolbar/utils.js
index 2ee4a65b0d43f5..a33c6240b2f958 100644
--- a/packages/block-editor/src/components/block-toolbar/utils.js
+++ b/packages/block-editor/src/components/block-toolbar/utils.js
@@ -8,7 +8,12 @@ import { noop } from 'lodash';
import { useDispatch } from '@wordpress/data';
import { useState, useRef, useEffect, useCallback } from '@wordpress/element';
-const { clearTimeout, requestAnimationFrame, setTimeout } = window;
+const {
+ clearTimeout,
+ requestAnimationFrame,
+ cancelAnimationFrame,
+ setTimeout,
+} = window;
const DEBOUNCE_TIMEOUT = 250;
/**
@@ -153,6 +158,8 @@ export function useShowMoversGestures( {
};
}
+let requestAnimationFrameId;
+
/**
* Hook that toggles the highlight (outline) state of a block
*
@@ -171,10 +178,16 @@ export function useToggleBlockHighlight( clientId ) {
);
useEffect( () => {
+ // On mount, we make sure to cancel any pending animation frame request
+ // that hasn't been completed yet. Components like NavigableToolbar may
+ // mount and unmount quickly.
+ if ( requestAnimationFrameId ) {
+ cancelAnimationFrame( requestAnimationFrameId );
+ }
return () => {
// Sequences state change to enable editor updates (e.g. cursor
// position) to render correctly.
- requestAnimationFrame( () => {
+ requestAnimationFrameId = requestAnimationFrame( () => {
updateBlockHighlight( false );
} );
};
diff --git a/packages/block-editor/src/components/block-vertical-alignment-toolbar/index.js b/packages/block-editor/src/components/block-vertical-alignment-toolbar/index.js
index ee48eae9ee5ede..e19de08f818292 100644
--- a/packages/block-editor/src/components/block-vertical-alignment-toolbar/index.js
+++ b/packages/block-editor/src/components/block-vertical-alignment-toolbar/index.js
@@ -2,7 +2,7 @@
* WordPress dependencies
*/
import { _x } from '@wordpress/i18n';
-import { Toolbar } from '@wordpress/components';
+import { ToolbarGroup } from '@wordpress/components';
/**
* Internal dependencies
@@ -48,7 +48,7 @@ export function BlockVerticalAlignmentToolbar( {
BLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];
return (
-
(
+
+
+
+);
+
+/**
+ * Color Selector Icon component.
+ *
+ * @param {Object} colorControlProps colorControl properties.
+ * @return {*} React Icon component.
+ */
+const ColorSelectorIcon = ( { style, className } ) => {
+ return (
+
+ );
+};
+
+/**
+ * Renders the Colors Selector Toolbar with the icon button.
+ *
+ * @param {Object} colorControlProps colorControl properties.
+ * @return {*} React toggle button component.
+ */
+const renderToggleComponent = ( { TextColor, BackgroundColor } ) => ( {
+ onToggle,
+ isOpen,
+} ) => {
+ const openOnArrowDown = ( event ) => {
+ if ( ! isOpen && event.keyCode === DOWN ) {
+ event.preventDefault();
+ event.stopPropagation();
+ onToggle();
+ }
+ };
+
+ return (
+
+
+
+
+
+
+ }
+ />
+
+ );
+};
+
+const BlockColorsStyleSelector = ( { children, ...other } ) => (
+ children }
+ />
+);
+
+export default BlockColorsStyleSelector;
diff --git a/packages/block-editor/src/components/colors-gradients/panel-color-gradient-settings.native.js b/packages/block-editor/src/components/colors-gradients/panel-color-gradient-settings.native.js
index f4ade7b5487d70..f9e7bd2950dc04 100644
--- a/packages/block-editor/src/components/colors-gradients/panel-color-gradient-settings.native.js
+++ b/packages/block-editor/src/components/colors-gradients/panel-color-gradient-settings.native.js
@@ -1,17 +1,43 @@
/**
* WordPress dependencies
*/
-import { PanelBody, UnsupportedFooterControl } from '@wordpress/components';
-import { __ } from '@wordpress/i18n';
+import {
+ ColorControl,
+ BottomSheetConsumer,
+ PanelBody,
+} from '@wordpress/components';
-const PanelColorGradientSettings = () => {
+export default function PanelColorGradientSettings( { settings, title } ) {
return (
-
-
+
+
+ { ( { onReplaceSubsheet } ) =>
+ settings.map(
+ ( {
+ onColorChange,
+ colorValue,
+ onGradientChange,
+ gradientValue,
+ label,
+ } ) => (
+ {
+ onReplaceSubsheet( 'Color', {
+ onColorChange,
+ colorValue: gradientValue || colorValue,
+ gradientValue,
+ onGradientChange,
+ label,
+ } );
+ } }
+ key={ `color-setting-${ label }` }
+ label={ label }
+ color={ gradientValue || colorValue }
+ />
+ )
+ )
+ }
+
);
-};
-export default PanelColorGradientSettings;
+}
diff --git a/packages/block-editor/src/components/copy-handler/index.js b/packages/block-editor/src/components/copy-handler/index.js
index be6e03097a4671..61c93fe36be1df 100644
--- a/packages/block-editor/src/components/copy-handler/index.js
+++ b/packages/block-editor/src/components/copy-handler/index.js
@@ -1,77 +1,88 @@
/**
* WordPress dependencies
*/
+import { useRef } from '@wordpress/element';
import { serialize, pasteHandler } from '@wordpress/blocks';
import { documentHasSelection } from '@wordpress/dom';
-import { withDispatch } from '@wordpress/data';
-import { compose } from '@wordpress/compose';
+import { useDispatch, useSelect } from '@wordpress/data';
/**
* Internal dependencies
*/
import { getPasteEventData } from '../../utils/get-paste-event-data';
-function CopyHandler( { children, handler } ) {
- return (
-
- { children }
-
- );
-}
+function CopyHandler( { children } ) {
+ const containerRef = useRef();
+
+ const {
+ getBlocksByClientId,
+ getSelectedBlockClientIds,
+ hasMultiSelection,
+ getSettings,
+ } = useSelect( ( select ) => select( 'core/block-editor' ), [] );
+
+ const { removeBlocks, replaceBlocks } = useDispatch( 'core/block-editor' );
-export default compose( [
- withDispatch( ( dispatch, ownProps, { select } ) => {
- const {
- getBlocksByClientId,
- getSelectedBlockClientIds,
- hasMultiSelection,
- getSettings,
- } = select( 'core/block-editor' );
- const { removeBlocks, replaceBlocks } = dispatch( 'core/block-editor' );
- const {
- __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,
- } = getSettings();
+ const {
+ __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,
+ } = getSettings();
- return {
- handler( event ) {
- const selectedBlockClientIds = getSelectedBlockClientIds();
+ const handler = ( event ) => {
+ const selectedBlockClientIds = getSelectedBlockClientIds();
- if ( selectedBlockClientIds.length === 0 ) {
- return;
- }
+ if ( selectedBlockClientIds.length === 0 ) {
+ return;
+ }
- // Always handle multiple selected blocks.
- // Let native copy behaviour take over in input fields.
- if ( ! hasMultiSelection() && documentHasSelection() ) {
- return;
- }
+ // Always handle multiple selected blocks.
+ // Let native copy behaviour take over in input fields.
+ if ( ! hasMultiSelection() && documentHasSelection() ) {
+ return;
+ }
- event.preventDefault();
+ if ( ! containerRef.current.contains( event.target ) ) {
+ return;
+ }
+ event.preventDefault();
- if ( event.type === 'copy' || event.type === 'cut' ) {
- const blocks = getBlocksByClientId(
- selectedBlockClientIds
- );
- const serialized = serialize( blocks );
+ if ( event.type === 'copy' || event.type === 'cut' ) {
+ const blocks = getBlocksByClientId( selectedBlockClientIds );
+ const serialized = serialize( blocks );
- event.clipboardData.setData( 'text/plain', serialized );
- event.clipboardData.setData( 'text/html', serialized );
- }
+ event.clipboardData.setData( 'text/plain', serialized );
+ event.clipboardData.setData( 'text/html', serialized );
+ }
- if ( event.type === 'cut' ) {
- removeBlocks( selectedBlockClientIds );
- } else if ( event.type === 'paste' ) {
- const { plainText, html } = getPasteEventData( event );
- const blocks = pasteHandler( {
- HTML: html,
- plainText,
- mode: 'BLOCKS',
- canUserUseUnfilteredHTML,
- } );
+ if ( event.type === 'cut' ) {
+ removeBlocks( selectedBlockClientIds );
+ } else if ( event.type === 'paste' ) {
+ const { plainText, html } = getPasteEventData( event );
+ const blocks = pasteHandler( {
+ HTML: html,
+ plainText,
+ mode: 'BLOCKS',
+ canUserUseUnfilteredHTML,
+ } );
+
+ replaceBlocks(
+ selectedBlockClientIds,
+ blocks,
+ blocks.length - 1,
+ -1
+ );
+ }
+ };
+
+ return (
+
+ { children }
+
+ );
+}
- replaceBlocks( selectedBlockClientIds, blocks );
- }
- },
- };
- } ),
-] )( CopyHandler );
+export default CopyHandler;
diff --git a/packages/block-editor/src/components/floating-toolbar/index.native.js b/packages/block-editor/src/components/floating-toolbar/index.native.js
index 3d3b49f0d9471d..fb1190a21c4161 100644
--- a/packages/block-editor/src/components/floating-toolbar/index.native.js
+++ b/packages/block-editor/src/components/floating-toolbar/index.native.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import { View, TouchableWithoutFeedback, I18nManager } from 'react-native';
+import { View, TouchableWithoutFeedback } from 'react-native';
/**
* WordPress dependencies
@@ -23,6 +23,7 @@ const FloatingToolbar = ( {
parentId,
showFloatingToolbar,
onNavigateUp,
+ isRTL,
} ) =>
!! showFloatingToolbar && (
@@ -32,9 +33,7 @@ const FloatingToolbar = ( {
onNavigateUp( parentId ) }
- icon={
-
- }
+ icon={ }
/>
@@ -51,6 +50,7 @@ export default compose( [
getBlockHierarchyRootClientId,
getBlockRootClientId,
getBlockCount,
+ getSettings,
} = select( 'core/block-editor' );
const selectedClientId = getSelectedBlockClientId();
@@ -63,6 +63,7 @@ export default compose( [
selectedClientId,
showFloatingToolbar: !! getBlockCount( rootBlockId ),
parentId: getBlockRootClientId( selectedClientId ),
+ isRTL: getSettings().isRTL,
};
} ),
withDispatch( ( dispatch ) => {
diff --git a/packages/block-editor/src/components/index.js b/packages/block-editor/src/components/index.js
index 158bdb77295b03..e0c1ecd7901617 100644
--- a/packages/block-editor/src/components/index.js
+++ b/packages/block-editor/src/components/index.js
@@ -11,11 +11,13 @@ export { default as BlockAlignmentToolbar } from './block-alignment-toolbar';
export { default as BlockBreadcrumb } from './block-breadcrumb';
export { BlockContextProvider } from './block-context';
export { default as BlockControls } from './block-controls';
+export { default as BlockColorsStyleSelector } from './color-style-selector';
export { default as BlockEdit, useBlockEditContext } from './block-edit';
export { default as BlockFormatControls } from './block-format-controls';
export { default as BlockIcon } from './block-icon';
export { default as BlockNavigationDropdown } from './block-navigation/dropdown';
-export { default as __experimentalBlockNavigationList } from './block-navigation/list';
+export { BlockNavigationBlockFill as __experimentalBlockNavigationBlockFill } from './block-navigation/block-contents';
+export { default as __experimentalBlockNavigationTree } from './block-navigation/tree';
export { default as __experimentalBlockVariationPicker } from './block-variation-picker';
export { default as BlockVerticalAlignmentToolbar } from './block-vertical-alignment-toolbar';
export { default as ButtonBlockerAppender } from './button-block-appender';
@@ -60,6 +62,8 @@ export { default as withColorContext } from './color-palette/with-color-context'
export { default as __experimentalBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';
export { default as __experimentalInserterMenuExtension } from './inserter-menu-extension';
+export { default as __experimentalPreviewOptions } from './preview-options';
+export { default as __experimentalUseResizeCanvas } from './resize-canvas';
export { default as BlockInspector } from './block-inspector';
export { default as BlockList } from './block-list';
export { Block as __experimentalBlock } from './block-list/block-wrapper';
@@ -91,3 +95,4 @@ export { default as WritingFlow } from './writing-flow';
export { default as BlockEditorProvider } from './provider';
export { default as useSimulatedMediaQuery } from './use-simulated-media-query';
+export { default as __experimentalUseEditorFeature } from './use-editor-feature';
diff --git a/packages/block-editor/src/components/index.native.js b/packages/block-editor/src/components/index.native.js
index f2e9e2ed82c688..00ab1437903245 100644
--- a/packages/block-editor/src/components/index.native.js
+++ b/packages/block-editor/src/components/index.native.js
@@ -33,6 +33,7 @@ export { default as BlockInvalidWarning } from './block-list/block-invalid-warni
export { default as BlockCaption } from './block-caption';
export { default as Caption } from './caption';
export { default as PanelColorSettings } from './panel-color-settings';
+export { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';
export { BottomSheetSettings, BlockSettingsButton } from './block-settings';
export { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player';
diff --git a/packages/block-editor/src/components/inserter/block-list.js b/packages/block-editor/src/components/inserter/block-list.js
index 9bffeef1adfca5..077a0432acdbd0 100644
--- a/packages/block-editor/src/components/inserter/block-list.js
+++ b/packages/block-editor/src/components/inserter/block-list.js
@@ -31,8 +31,9 @@ import { compose } from '@wordpress/compose';
import BlockTypesList from '../block-types-list';
import ChildBlocks from './child-blocks';
import __experimentalInserterMenuExtension from '../inserter-menu-extension';
-import { searchItems } from './search-items';
+import { searchBlockItems } from './search-items';
import InserterPanel from './panel';
+import InserterNoResults from './no-results';
// Copied over from the Columns block. It seems like it should become part of public API.
const createBlocksFromInnerBlocksTemplate = ( innerBlocksTemplate ) => {
@@ -51,7 +52,7 @@ const getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];
const MAX_SUGGESTED_ITEMS = 9;
-function InserterBlockList( {
+export function InserterBlockList( {
rootClientId,
onInsert,
onHover,
@@ -114,7 +115,7 @@ function InserterBlockList( {
};
const filteredItems = useMemo( () => {
- return searchItems( items, categories, collections, filterValue );
+ return searchBlockItems( items, categories, collections, filterValue );
}, [ filterValue, items, categories, collections ] );
const childItems = useMemo( () => {
@@ -167,22 +168,13 @@ function InserterBlockList( {
// Announce search results on change
useEffect( () => {
- const resultCount = Object.keys( itemsPerCategory ).reduce(
- ( accumulator, currentCategorySlug ) => {
- return (
- accumulator + itemsPerCategory[ currentCategorySlug ].length
- );
- },
- 0
- );
-
const resultsFoundMessage = sprintf(
/* translators: %d: number of results. */
- _n( '%d result found.', '%d results found.', resultCount ),
- resultCount
+ _n( '%d result found.', '%d results found.', filteredItems.length ),
+ filteredItems.length
);
debouncedSpeak( resultsFoundMessage );
- }, [ itemsPerCategory, debouncedSpeak ] );
+ }, [ filterValue, debouncedSpeak ] );
const hasItems = ! isEmpty( filteredItems );
const hasChildItems = childItems.length > 0;
@@ -284,11 +276,7 @@ function InserterBlockList( {
return fills;
}
if ( ! hasItems ) {
- return (
-
- { __( 'No blocks found.' ) }
-
- );
+ return ;
}
return null;
} }
diff --git a/packages/block-editor/src/components/inserter/block-patterns.js b/packages/block-editor/src/components/inserter/block-patterns.js
index 56288df4be228a..d739e5f249fda0 100644
--- a/packages/block-editor/src/components/inserter/block-patterns.js
+++ b/packages/block-editor/src/components/inserter/block-patterns.js
@@ -18,6 +18,8 @@ import { __, sprintf, _x } from '@wordpress/i18n';
import BlockPreview from '../block-preview';
import useAsyncList from './use-async-list';
import InserterPanel from './panel';
+import { searchItems } from './search-items';
+import InserterNoResults from './no-results';
function BlockPattern( { pattern, onClick } ) {
const { content } = pattern;
@@ -30,13 +32,16 @@ function BlockPattern( { pattern, onClick } ) {
onClick={ () => onClick( pattern, blocks ) }
onKeyDown={ ( event ) => {
if ( ENTER === event.keyCode || SPACE === event.keyCode ) {
- onClick( blocks );
+ onClick( pattern, blocks );
}
} }
tabIndex={ 0 }
aria-label={ pattern.title }
>
+
+ { pattern.title }
+
);
}
@@ -47,8 +52,12 @@ function BlockPatternPlaceholder() {
);
}
-function BlockPatterns( { patterns, onInsert } ) {
- const currentShownPatterns = useAsyncList( patterns );
+function BlockPatterns( { patterns, onInsert, filterValue } ) {
+ const filteredPatterns = useMemo(
+ () => searchItems( patterns, filterValue ),
+ [ filterValue, patterns ]
+ );
+ const currentShownPatterns = useAsyncList( filteredPatterns );
const { createSuccessNotice } = useDispatch( 'core/notices' );
const onClickPattern = useCallback( ( pattern, blocks ) => {
onInsert( map( blocks, ( block ) => cloneBlock( block ) ) );
@@ -64,20 +73,28 @@ function BlockPatterns( { patterns, onInsert } ) {
);
}, [] );
- return (
-
- { patterns.map( ( pattern, index ) =>
+ return !! filteredPatterns.length ? (
+
+ { filteredPatterns.map( ( pattern, index ) =>
currentShownPatterns[ index ] === pattern ? (
) : (
-
+
)
) }
+ ) : (
+
);
}
diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js
index 6e446717f37517..3d9864fc14a3e3 100644
--- a/packages/block-editor/src/components/inserter/menu.js
+++ b/packages/block-editor/src/components/inserter/menu.js
@@ -73,10 +73,7 @@ function InserterMenu( {
hideInsertionPoint,
} = useDispatch( 'core/block-editor' );
const hasPatterns =
- ! destinationRootClientId &&
- !! patterns &&
- !! patterns.length &&
- ! filterValue;
+ ! destinationRootClientId && !! patterns && !! patterns.length;
const onKeyDown = ( event ) => {
if (
includes(
@@ -165,7 +162,11 @@ function InserterMenu( {
const patternsTab = (
-
+
);
diff --git a/packages/block-editor/src/components/inserter/no-results.js b/packages/block-editor/src/components/inserter/no-results.js
new file mode 100644
index 00000000000000..3ca6569dc14ea4
--- /dev/null
+++ b/packages/block-editor/src/components/inserter/no-results.js
@@ -0,0 +1,19 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Icon, blockDefault } from '@wordpress/icons';
+
+function InserterNoResults() {
+ return (
+
+
+
{ __( 'No results found.' ) }
+
+ );
+}
+
+export default InserterNoResults;
diff --git a/packages/block-editor/src/components/inserter/search-items.js b/packages/block-editor/src/components/inserter/search-items.js
index 23bae5d9b3860d..83b4ba3364dae8 100644
--- a/packages/block-editor/src/components/inserter/search-items.js
+++ b/packages/block-editor/src/components/inserter/search-items.js
@@ -5,7 +5,6 @@ import {
deburr,
differenceWith,
find,
- get,
intersectionWith,
isEmpty,
words,
@@ -44,94 +43,98 @@ const removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {
);
};
+export const searchBlockItems = (
+ items,
+ categories,
+ collections,
+ searchTerm
+) => {
+ const normalizedSearchTerms = normalizeSearchTerm( searchTerm );
+ if ( normalizedSearchTerms.length === 0 ) {
+ return items;
+ }
+
+ return searchItems( items, searchTerm, {
+ getCategory: ( item ) =>
+ find( categories, { slug: item.category } )?.title,
+ getCollection: ( item ) =>
+ collections[ item.name.split( '/' )[ 0 ] ]?.title,
+ getVariations: ( item ) =>
+ ( item.variations || [] ).map( ( variation ) => variation.title ),
+ } ).map( ( item ) => {
+ if ( isEmpty( item.variations ) ) {
+ return item;
+ }
+
+ const matchedVariations = item.variations.filter( ( variation ) => {
+ return (
+ intersectionWith(
+ normalizedSearchTerms,
+ normalizeSearchTerm( variation.title ),
+ ( termToMatch, labelTerm ) =>
+ labelTerm.includes( termToMatch )
+ ).length > 0
+ );
+ } );
+ // When no variations matched, fallback to all variations.
+ if ( isEmpty( matchedVariations ) ) {
+ return item;
+ }
+
+ return {
+ ...item,
+ variations: matchedVariations,
+ };
+ } );
+};
+
/**
* Filters an item list given a search term.
*
* @param {Array} items Item list
- * @param {Array} categories Available categories.
- * @param {Array} collections Available collections.
* @param {string} searchTerm Search term.
- *
- * @return {Array} Filtered item list.
+ * @param {Object} config Search Config.
+ * @return {Array} Filtered item list.
*/
-export const searchItems = ( items, categories, collections, searchTerm ) => {
+export const searchItems = ( items, searchTerm, config = {} ) => {
const normalizedSearchTerms = normalizeSearchTerm( searchTerm );
-
if ( normalizedSearchTerms.length === 0 ) {
return items;
}
- return items
- .filter(
- ( { name, title, category, keywords = [], variations = [] } ) => {
- let unmatchedTerms = removeMatchingTerms(
- normalizedSearchTerms,
- title
- );
-
- if ( unmatchedTerms.length === 0 ) {
- return true;
- }
-
- unmatchedTerms = removeMatchingTerms(
- unmatchedTerms,
- keywords.join( ' ' )
- );
-
- if ( unmatchedTerms.length === 0 ) {
- return true;
- }
-
- unmatchedTerms = removeMatchingTerms(
- unmatchedTerms,
- get( find( categories, { slug: category } ), [ 'title' ] )
- );
-
- const itemCollection = collections[ name.split( '/' )[ 0 ] ];
- if ( itemCollection ) {
- unmatchedTerms = removeMatchingTerms(
- unmatchedTerms,
- itemCollection.title
- );
- }
-
- if ( unmatchedTerms.length === 0 ) {
- return true;
- }
-
- unmatchedTerms = removeMatchingTerms(
- unmatchedTerms,
- variations
- .map( ( variation ) => variation.title )
- .join( ' ' )
- );
-
- return unmatchedTerms.length === 0;
- }
- )
- .map( ( item ) => {
- if ( isEmpty( item.variations ) ) {
- return item;
- }
-
- const matchedVariations = item.variations.filter( ( variation ) => {
- return (
- intersectionWith(
- normalizedSearchTerms,
- normalizeSearchTerm( variation.title ),
- ( termToMatch, labelTerm ) =>
- labelTerm.includes( termToMatch )
- ).length > 0
- );
- } );
- // When no partterns matched, fallback to all variations.
- if ( isEmpty( matchedVariations ) ) {
- return item;
- }
-
- return {
- ...item,
- variations: matchedVariations,
- };
- } );
+ const defaultGetTitle = ( item ) => item.title;
+ const defaultGetKeywords = ( item ) => item.keywords || [];
+ const defaultGetCategory = ( item ) => item.category;
+ const defaultGetCollection = () => null;
+ const defaultGetVariations = () => [];
+ const {
+ getTitle = defaultGetTitle,
+ getKeywords = defaultGetKeywords,
+ getCategory = defaultGetCategory,
+ getCollection = defaultGetCollection,
+ getVariations = defaultGetVariations,
+ } = config;
+
+ return items.filter( ( item ) => {
+ const title = getTitle( item );
+ const keywords = getKeywords( item );
+ const category = getCategory( item );
+ const collection = getCollection( item );
+ const variations = getVariations( item );
+
+ const terms = [
+ title,
+ ...keywords,
+ category,
+ collection,
+ ...variations,
+ ].join( ' ' );
+
+ const unmatchedTerms = removeMatchingTerms(
+ normalizedSearchTerms,
+ terms
+ );
+
+ return unmatchedTerms.length === 0;
+ } );
};
diff --git a/packages/block-editor/src/components/inserter/style.scss b/packages/block-editor/src/components/inserter/style.scss
index 000f3c2cf99bd4..4815fa5866bd52 100644
--- a/packages/block-editor/src/components/inserter/style.scss
+++ b/packages/block-editor/src/components/inserter/style.scss
@@ -170,11 +170,15 @@ $block-inserter-tabs-height: 44px;
}
.block-editor-inserter__no-results {
- font-style: italic;
- padding: 24px;
+ padding: $grid-unit-40;
+ margin-top: $grid-unit-40 * 2;
text-align: center;
}
+.block-editor-inserter__no-results-icon {
+ fill: $light-gray-800;
+}
+
.block-editor-inserter__child-blocks {
padding: 0 $grid-unit-20;
}
@@ -262,3 +266,9 @@ $block-inserter-tabs-height: 44px;
min-height: 100px;
}
}
+
+.block-editor-inserter__patterns-item-title {
+ padding: $grid-unit-05;
+ font-size: 12px;
+ text-align: center;
+}
diff --git a/packages/block-editor/src/components/inserter/test/block-list.js b/packages/block-editor/src/components/inserter/test/block-list.js
index 65b70a70902100..bf27a966a0a621 100644
--- a/packages/block-editor/src/components/inserter/test/block-list.js
+++ b/packages/block-editor/src/components/inserter/test/block-list.js
@@ -1,61 +1,55 @@
/**
* External dependencies
*/
-import TestUtils, { act } from 'react-dom/test-utils';
-import ReactDOM from 'react-dom';
+import { render, fireEvent } from '@testing-library/react';
+
+/**
+ * WordPress dependencies
+ */
+import { useSelect } from '@wordpress/data';
/**
* Internal dependencies
*/
-import InserterBlockList from '../block-list';
-import useSelect from '../../../../../data/src/components/use-select';
+import { InserterBlockList as BaseInserterBlockList } from '../block-list';
import items, { categories, collections } from './fixtures';
-jest.mock( '../../../../../data/src/components/use-select', () => {
- // This allows us to tweaak the returned value on each test
+jest.mock( '@wordpress/data/src/components/use-select', () => {
+ // This allows us to tweak the returned value on each test
const mock = jest.fn();
return mock;
} );
-jest.mock( '../../../../../data/src/components/use-dispatch', () => {
+jest.mock( '@wordpress/data/src/components/use-dispatch', () => {
return {
useDispatch: () => ( {} ),
};
} );
-const getWrapperForProps = ( propOverrides ) => {
- let wrapper;
- act( () => {
- wrapper = TestUtils.renderIntoDocument(
-
- );
- } );
+const debouncedSpeak = jest.fn();
- return wrapper;
-};
-
-const initializeMenuDefaultStateAndReturnElement = ( propOverrides ) => {
- const wrapper = getWrapperForProps( propOverrides );
- // eslint-disable-next-line react/no-find-dom-node
- return ReactDOM.findDOMNode( wrapper );
-};
+function InserterBlockList( props ) {
+ return (
+
+ );
+}
-const initializeAllClosedMenuStateAndReturnElement = ( propOverrides ) => {
- const element = initializeMenuDefaultStateAndReturnElement( propOverrides );
- const activeTabs = element.querySelectorAll(
+const initializeAllClosedMenuState = ( propOverrides ) => {
+ const result = render( );
+ const activeTabs = result.container.querySelectorAll(
'.components-panel__body.is-opened button.components-panel__body-toggle'
);
activeTabs.forEach( ( tab ) => {
- TestUtils.Simulate.click( tab );
+ fireEvent.click( tab );
} );
- return element;
+ return result;
};
const assertNoResultsMessageToBePresent = ( element ) => {
const noResultsMessage = element.querySelector(
'.block-editor-inserter__no-results'
);
- expect( noResultsMessage.textContent ).toEqual( 'No blocks found.' );
+ expect( noResultsMessage.textContent ).toEqual( 'No results found.' );
};
const assertNoResultsMessageNotToBePresent = ( element ) => {
@@ -67,6 +61,8 @@ const assertNoResultsMessageNotToBePresent = ( element ) => {
describe( 'InserterMenu', () => {
beforeEach( () => {
+ debouncedSpeak.mockClear();
+
useSelect.mockImplementation( () => ( {
categories,
collections,
@@ -81,19 +77,21 @@ describe( 'InserterMenu', () => {
collections,
items: noItems,
} ) );
- const element = initializeMenuDefaultStateAndReturnElement();
- const visibleBlocks = element.querySelector(
+ const { container } = render(
+
+ );
+ const visibleBlocks = container.querySelector(
'.block-editor-block-types-list__item'
);
expect( visibleBlocks ).toBe( null );
- assertNoResultsMessageToBePresent( element );
+ assertNoResultsMessageToBePresent( container );
} );
it( 'should show only high utility items in the suggested tab', () => {
- const element = initializeMenuDefaultStateAndReturnElement();
- const firstPanel = element.querySelector(
+ const { container } = render( );
+ const firstPanel = container.querySelector(
'.block-editor-inserter__panel-content'
);
const visibleBlocks = firstPanel.querySelectorAll(
@@ -106,11 +104,11 @@ describe( 'InserterMenu', () => {
} );
it( 'should show items from the embed category in the embed tab', () => {
- const element = initializeAllClosedMenuStateAndReturnElement();
- const embedTabContent = element.querySelectorAll(
+ const { container } = initializeAllClosedMenuState();
+ const embedTabContent = container.querySelectorAll(
'.block-editor-inserter__panel-content'
)[ 4 ];
- const embedTabTitle = element.querySelectorAll(
+ const embedTabTitle = container.querySelectorAll(
'.block-editor-inserter__panel-title'
)[ 4 ];
const blocks = embedTabContent.querySelectorAll(
@@ -122,15 +120,15 @@ describe( 'InserterMenu', () => {
expect( blocks[ 0 ].textContent ).toBe( 'YouTube' );
expect( blocks[ 1 ].textContent ).toBe( 'A Text Embed' );
- assertNoResultsMessageNotToBePresent( element );
+ assertNoResultsMessageNotToBePresent( container );
} );
it( 'should show reusable items in the reusable tab', () => {
- const element = initializeAllClosedMenuStateAndReturnElement();
- const reusableTabContent = element.querySelectorAll(
+ const { container } = initializeAllClosedMenuState();
+ const reusableTabContent = container.querySelectorAll(
'.block-editor-inserter__panel-content'
)[ 6 ];
- const reusableTabTitle = element.querySelectorAll(
+ const reusableTabTitle = container.querySelectorAll(
'.block-editor-inserter__panel-title'
)[ 6 ];
const blocks = reusableTabContent.querySelectorAll(
@@ -141,15 +139,15 @@ describe( 'InserterMenu', () => {
expect( blocks ).toHaveLength( 1 );
expect( blocks[ 0 ].textContent ).toBe( 'My reusable block' );
- assertNoResultsMessageNotToBePresent( element );
+ assertNoResultsMessageNotToBePresent( container );
} );
it( 'should show the common category blocks', () => {
- const element = initializeAllClosedMenuStateAndReturnElement();
- const commonTabContent = element.querySelectorAll(
+ const { container } = initializeAllClosedMenuState();
+ const commonTabContent = container.querySelectorAll(
'.block-editor-inserter__panel-content'
)[ 1 ];
- const commonTabTitle = element.querySelectorAll(
+ const commonTabTitle = container.querySelectorAll(
'.block-editor-inserter__panel-title'
)[ 1 ];
const blocks = commonTabContent.querySelectorAll(
@@ -162,12 +160,12 @@ describe( 'InserterMenu', () => {
expect( blocks[ 1 ].textContent ).toBe( 'Advanced Text' );
expect( blocks[ 2 ].textContent ).toBe( 'Some Other Block' );
- assertNoResultsMessageNotToBePresent( element );
+ assertNoResultsMessageNotToBePresent( container );
} );
it( 'should disable items with `isDisabled`', () => {
- const element = initializeAllClosedMenuStateAndReturnElement();
- const layoutTabContent = element.querySelectorAll(
+ const { container } = initializeAllClosedMenuState();
+ const layoutTabContent = container.querySelectorAll(
'.block-editor-inserter__panel-content'
)[ 2 ];
const disabledBlocks = layoutTabContent.querySelectorAll(
@@ -179,36 +177,90 @@ describe( 'InserterMenu', () => {
} );
it( 'should allow searching for items', () => {
- const element = initializeMenuDefaultStateAndReturnElement( {
- filterValue: 'text',
- } );
+ const { container } = render(
+
+ );
- const matchingCategories = element.querySelectorAll(
+ const matchingCategories = container.querySelectorAll(
'.block-editor-inserter__panel-title'
);
expect( matchingCategories ).toHaveLength( 3 );
expect( matchingCategories[ 0 ].textContent ).toBe( 'Common blocks' );
expect( matchingCategories[ 1 ].textContent ).toBe( 'Embeds' );
+ expect( matchingCategories[ 2 ].textContent ).toBe( 'Core' ); // "Core" namespace collection
- const blocks = element.querySelectorAll(
+ const blocks = container.querySelectorAll(
'.block-editor-block-types-list__item-title'
);
+ // There are five buttons present for 3 total distinct results. The
+ // additional two account for the collection results (repeated).
expect( blocks ).toHaveLength( 5 );
+ expect( debouncedSpeak ).toHaveBeenCalledWith( '3 results found.' );
+
+ // Default block results.
expect( blocks[ 0 ].textContent ).toBe( 'Text' );
expect( blocks[ 1 ].textContent ).toBe( 'Advanced Text' );
expect( blocks[ 2 ].textContent ).toBe( 'A Text Embed' );
- assertNoResultsMessageNotToBePresent( element );
+ // Collection results.
+ expect( blocks[ 3 ].textContent ).toBe( 'Text' );
+ expect( blocks[ 4 ].textContent ).toBe( 'Advanced Text' );
+
+ assertNoResultsMessageNotToBePresent( container );
+ } );
+
+ it( 'should allow searching for reusable blocks by title', () => {
+ const { container } = render(
+
+ );
+
+ const matchingCategories = container.querySelectorAll(
+ '.block-editor-inserter__panel-title'
+ );
+
+ expect( matchingCategories ).toHaveLength( 2 );
+ expect( matchingCategories[ 0 ].textContent ).toBe( 'Core' ); // "Core" namespace collection
+ expect( matchingCategories[ 1 ].textContent ).toBe( 'Reusable' );
+
+ const blocks = container.querySelectorAll(
+ '.block-editor-block-types-list__item-title'
+ );
+
+ // There are two buttons present for 1 total distinct result. The
+ // additional one accounts for the collection result (repeated).
+ expect( blocks ).toHaveLength( 2 );
+ expect( debouncedSpeak ).toHaveBeenCalledWith( '1 result found.' );
+ expect( blocks[ 0 ].textContent ).toBe( 'My reusable block' );
+ expect( blocks[ 1 ].textContent ).toBe( 'My reusable block' );
+
+ assertNoResultsMessageNotToBePresent( container );
+ } );
+
+ it( 'should speak after any change in search term', () => {
+ // The search result count should always be announced any time the user
+ // changes the search term, even if it results in the same count.
+ //
+ // See: https://github.com/WordPress/gutenberg/pull/22279#discussion_r423317161
+ const { rerender } = render(
+
+ );
+
+ rerender( );
+ rerender( );
+
+ expect( debouncedSpeak ).toHaveBeenCalledTimes( 2 );
+ expect( debouncedSpeak.mock.calls[ 0 ][ 0 ] ).toBe( '1 result found.' );
+ expect( debouncedSpeak.mock.calls[ 1 ][ 0 ] ).toBe( '1 result found.' );
} );
it( 'should trim whitespace of search terms', () => {
- const element = initializeMenuDefaultStateAndReturnElement( {
- filterValue: ' text',
- } );
+ const { container } = render(
+
+ );
- const matchingCategories = element.querySelectorAll(
+ const matchingCategories = container.querySelectorAll(
'.block-editor-inserter__panel-title'
);
@@ -216,7 +268,7 @@ describe( 'InserterMenu', () => {
expect( matchingCategories[ 0 ].textContent ).toBe( 'Common blocks' );
expect( matchingCategories[ 1 ].textContent ).toBe( 'Embeds' );
- const blocks = element.querySelectorAll(
+ const blocks = container.querySelectorAll(
'.block-editor-block-types-list__item-title'
);
@@ -225,6 +277,6 @@ describe( 'InserterMenu', () => {
expect( blocks[ 1 ].textContent ).toBe( 'Advanced Text' );
expect( blocks[ 2 ].textContent ).toBe( 'A Text Embed' );
- assertNoResultsMessageNotToBePresent( element );
+ assertNoResultsMessageNotToBePresent( container );
} );
} );
diff --git a/packages/block-editor/src/components/inserter/test/search-items.js b/packages/block-editor/src/components/inserter/test/search-items.js
index 01c0bace323283..f4b24b14a28a46 100644
--- a/packages/block-editor/src/components/inserter/test/search-items.js
+++ b/packages/block-editor/src/components/inserter/test/search-items.js
@@ -10,7 +10,7 @@ import items, {
youtubeItem,
textEmbedItem,
} from './fixtures';
-import { normalizeSearchTerm, searchItems } from '../search-items';
+import { normalizeSearchTerm, searchBlockItems } from '../search-items';
describe( 'normalizeSearchTerm', () => {
it( 'should return an empty array when no words detected', () => {
@@ -36,45 +36,50 @@ describe( 'normalizeSearchTerm', () => {
} );
} );
-describe( 'searchItems', () => {
+describe( 'searchBlockItems', () => {
it( 'should return back all items when no terms detected', () => {
- expect( searchItems( items, categories, collections, ' - ? * ' ) ).toBe(
- items
- );
+ expect(
+ searchBlockItems( items, categories, collections, ' - ? * ' )
+ ).toBe( items );
} );
it( 'should search items using the title ignoring case', () => {
expect(
- searchItems( items, categories, collections, 'TEXT' )
+ searchBlockItems( items, categories, collections, 'TEXT' )
).toEqual( [ textItem, advancedTextItem, textEmbedItem ] );
} );
it( 'should search items using the keywords and partial terms', () => {
expect(
- searchItems( items, categories, collections, 'GOOGL' )
+ searchBlockItems( items, categories, collections, 'GOOGL' )
).toEqual( [ youtubeItem ] );
} );
it( 'should search items using the categories', () => {
expect(
- searchItems( items, categories, collections, 'LAYOUT' )
+ searchBlockItems( items, categories, collections, 'LAYOUT' )
).toEqual( [ moreItem ] );
} );
it( 'should ignore a leading slash on a search term', () => {
expect(
- searchItems( items, categories, collections, '/GOOGL' )
+ searchBlockItems( items, categories, collections, '/GOOGL' )
).toEqual( [ youtubeItem ] );
} );
it( 'should match words using the mix of the title, category and keywords', () => {
expect(
- searchItems( items, categories, collections, 'youtube embed video' )
+ searchBlockItems(
+ items,
+ categories,
+ collections,
+ 'youtube embed video'
+ )
).toEqual( [ youtubeItem ] );
} );
it( 'should match words using also variations and return all matched variations', () => {
- const filteredItems = searchItems(
+ const filteredItems = searchBlockItems(
items,
categories,
collections,
@@ -86,7 +91,7 @@ describe( 'searchItems', () => {
} );
it( 'should match words using also variations and filter out unmatched variations', () => {
- const filteredItems = searchItems(
+ const filteredItems = searchBlockItems(
items,
categories,
collections,
diff --git a/packages/block-editor/src/components/inserter/use-async-list.js b/packages/block-editor/src/components/inserter/use-async-list.js
index ab546f08b2c896..3189cd3a008684 100644
--- a/packages/block-editor/src/components/inserter/use-async-list.js
+++ b/packages/block-editor/src/components/inserter/use-async-list.js
@@ -4,9 +4,39 @@
import { useEffect, useReducer } from '@wordpress/element';
import { createQueue } from '@wordpress/priority-queue';
+/**
+ * Returns the first items from list that are present on state.
+ *
+ * @param {Array} list New array.
+ * @param {Array} state Current state.
+ * @return {Array} First items present iin state.
+ */
+function getFirstItemsPresentInState( list, state ) {
+ const firstItems = [];
+
+ for ( let i = 0; i < list.length; i++ ) {
+ const item = list[ i ];
+ if ( ! state.includes( item ) ) {
+ break;
+ }
+
+ firstItems.push( item );
+ }
+
+ return firstItems;
+}
+
+/**
+ * Reducer keeping track of a list of appended items.
+ *
+ * @param {Array} state Current state
+ * @param {Object} action Action
+ *
+ * @return {Array} update state.
+ */
function listReducer( state, action ) {
- if ( action.type === 'reset' && state.length !== 0 ) {
- return [];
+ if ( action.type === 'reset' ) {
+ return action.list;
}
if ( action.type === 'append' ) {
@@ -16,20 +46,32 @@ function listReducer( state, action ) {
return state;
}
+/**
+ * React hook returns an array which items get asynchronously appended from a source array.
+ * This behavior is useful if we want to render a list of items asynchronously for performance reasons.
+ *
+ * @param {Array} list Source array.
+ * @return {Array} Async array.
+ */
function useAsyncList( list ) {
const [ current, dispatch ] = useReducer( listReducer, [] );
useEffect( () => {
- dispatch( { type: 'reset' } );
+ // On reset, we keep the first items that were previously rendered.
+ const firstItems = getFirstItemsPresentInState( list, current );
+ dispatch( {
+ type: 'reset',
+ list: firstItems,
+ } );
const asyncQueue = createQueue();
- const append = ( index = 0 ) => () => {
+ const append = ( index ) => () => {
if ( list.length <= index ) {
return;
}
dispatch( { type: 'append', item: list[ index ] } );
asyncQueue.add( {}, append( index + 1 ) );
};
- asyncQueue.add( {}, append( 0 ) );
+ asyncQueue.add( {}, append( firstItems.length ) );
return () => asyncQueue.reset();
}, [ list ] );
diff --git a/packages/block-editor/src/components/inspector-controls/index.native.js b/packages/block-editor/src/components/inspector-controls/index.native.js
index 730dfaba5b37d3..49bc55dd5ae6b6 100644
--- a/packages/block-editor/src/components/inspector-controls/index.native.js
+++ b/packages/block-editor/src/components/inspector-controls/index.native.js
@@ -2,12 +2,11 @@
* External dependencies
*/
import React from 'react';
-
+import { View } from 'react-native';
/**
* WordPress dependencies
*/
-import { createSlotFill } from '@wordpress/components';
-
+import { createSlotFill, BottomSheetConsumer } from '@wordpress/components';
/**
* Internal dependencies
*/
@@ -19,7 +18,13 @@ const { Fill, Slot } = createSlotFill( 'InspectorControls' );
const FillWithSettingsButton = ( { children, ...props } ) => {
return (
<>
- { children }
+
+ {
+
+ { () => { children } }
+
+ }
+
{ React.Children.count( children ) > 0 && }
>
);
diff --git a/packages/block-editor/src/components/line-height-control/index.js b/packages/block-editor/src/components/line-height-control/index.js
index cb0f8ebed1f876..545b73e3e596b4 100644
--- a/packages/block-editor/src/components/line-height-control/index.js
+++ b/packages/block-editor/src/components/line-height-control/index.js
@@ -8,17 +8,19 @@ import { ZERO } from '@wordpress/keycodes';
/**
* Internal dependencies
*/
+import useEditorFeature from '../use-editor-feature';
import {
BASE_DEFAULT_VALUE,
RESET_VALUE,
STEP,
- useIsLineHeightControlsDisabled,
isLineHeightDefined,
} from './utils';
export default function LineHeightControl( { value: lineHeight, onChange } ) {
// Don't render the controls if disabled by editor settings
- const isDisabled = useIsLineHeightControlsDisabled();
+ const isDisabled = useEditorFeature(
+ '__experimentalDisableCustomLineHeight'
+ );
if ( isDisabled ) {
return null;
}
diff --git a/packages/block-editor/src/components/line-height-control/utils.js b/packages/block-editor/src/components/line-height-control/utils.js
index 351a35a66a6a0a..a232394540d2f6 100644
--- a/packages/block-editor/src/components/line-height-control/utils.js
+++ b/packages/block-editor/src/components/line-height-control/utils.js
@@ -1,8 +1,3 @@
-/**
- * WordPress dependencies
- */
-import { useSelect } from '@wordpress/data';
-
export const BASE_DEFAULT_VALUE = 1.5;
export const STEP = 0.1;
/**
@@ -17,21 +12,6 @@ export const STEP = 0.1;
*/
export const RESET_VALUE = '';
-/**
- * Retrieves whether custom lineHeight controls should be disabled from editor settings.
- *
- * @return {boolean} Whether lineHeight controls should be disabled.
- */
-export function useIsLineHeightControlsDisabled() {
- const isDisabled = useSelect( ( select ) => {
- const { getSettings } = select( 'core/block-editor' );
-
- return !! getSettings().__experimentalDisableCustomLineHeight;
- }, [] );
-
- return isDisabled;
-}
-
/**
* Determines if the lineHeight attribute has been properly defined.
*
diff --git a/packages/block-editor/src/components/link-control/index.js b/packages/block-editor/src/components/link-control/index.js
index 132f62f6145036..9fcdb05fe727ac 100644
--- a/packages/block-editor/src/components/link-control/index.js
+++ b/packages/block-editor/src/components/link-control/index.js
@@ -326,9 +326,9 @@ function LinkControl( {
* the next render, if focus was within the wrapper when editing finished.
*/
function stopEditing() {
- isEndingEditWithFocus.current =
- !! wrapperNode.current &&
- wrapperNode.current.contains( document.activeElement );
+ isEndingEditWithFocus.current = !! wrapperNode.current?.contains(
+ document.activeElement
+ );
setIsEditingLink( false );
}
diff --git a/packages/block-editor/src/components/media-placeholder/README.md b/packages/block-editor/src/components/media-placeholder/README.md
index caba06f5845c67..29e5e77a46750c 100644
--- a/packages/block-editor/src/components/media-placeholder/README.md
+++ b/packages/block-editor/src/components/media-placeholder/README.md
@@ -161,6 +161,14 @@ An object or an array of objects that contain media ID (`id` property) to be sel
- Required: No
- Platform: Web
+### onSelectURL
+
+Callback called when urls can be configured. No media insertion from url will be available if not set.
+
+- Type: `Function`
+- Required: No
+- Platform: Web
+
## Extend
diff --git a/packages/block-editor/src/components/media-placeholder/index.js b/packages/block-editor/src/components/media-placeholder/index.js
index 505464b7264b2e..5e62dfd47ea782 100644
--- a/packages/block-editor/src/components/media-placeholder/index.js
+++ b/packages/block-editor/src/components/media-placeholder/index.js
@@ -116,14 +116,50 @@ export class MediaPlaceholder extends Component {
multiple,
onError,
onSelect,
- value = [],
} = this.props;
let setMedia;
if ( multiple ) {
if ( addToGallery ) {
- const currentValue = value;
+ // To allow changes to a gallery to be made while uploads are in progress
+ // (including trigging multiple upload groups and removing already in place images),
+ // we must be able to add newMedia based on the current value of the Gallery
+ // whenever the setMedia function runs (not destructuring 'value' from props).
+ // Additionally, since the setMedia function runs multiple times per upload group
+ // and is passed newMedia containing every item in its group each time, we must
+ // also filter out whatever this upload group had previously returned to the
+ // gallery before adding and returning the image array with replacement newMedia
+ // values.
+
+ // Define an array to store urls from newMedia between subsequent function calls.
+ let lastMediaPassed = [];
setMedia = ( newMedia ) => {
- onSelect( currentValue.concat( newMedia ) );
+ // Remove any images this upload group is responsible for (lastMediaPassed).
+ // Their replacements are contained in newMedia.
+ const filteredMedia = ( this.props.value || [] ).filter(
+ ( item ) => {
+ // If Item has id, only remove it if lastMediaPassed has an item with that id.
+ if ( item.id ) {
+ return ! lastMediaPassed.some(
+ // Be sure to convert to number for comparison.
+ ( { id } ) =>
+ Number( id ) === Number( item.id )
+ );
+ }
+ // Compare transient images via .includes since gallery may append extra info onto the url.
+ return ! lastMediaPassed.some( ( { urlSlug } ) =>
+ item.url.includes( urlSlug )
+ );
+ }
+ );
+ // Return the filtered media array along with newMedia.
+ onSelect( filteredMedia.concat( newMedia ) );
+ // Reset lastMediaPassed and set it with ids and urls from newMedia.
+ lastMediaPassed = newMedia.map( ( media ) => {
+ // Add everything up to '.fileType' to compare via .includes.
+ const cutOffIndex = media.url.lastIndexOf( '.' );
+ const urlSlug = media.url.slice( 0, cutOffIndex );
+ return { id: media.id, urlSlug };
+ } );
};
} else {
setMedia = onSelect;
diff --git a/packages/block-editor/src/components/media-placeholder/styles.native.scss b/packages/block-editor/src/components/media-placeholder/styles.native.scss
index 046382a5ff9d0d..c6a8cf00eab2c0 100644
--- a/packages/block-editor/src/components/media-placeholder/styles.native.scss
+++ b/packages/block-editor/src/components/media-placeholder/styles.native.scss
@@ -32,6 +32,7 @@
}
.emptyStateDescription {
+ width: 100%;
text-align: center;
color: $blue-wordpress;
font-size: 14;
diff --git a/packages/block-editor/src/components/navigable-toolbar/index.js b/packages/block-editor/src/components/navigable-toolbar/index.js
index c79563c807a64e..fa63839248267e 100644
--- a/packages/block-editor/src/components/navigable-toolbar/index.js
+++ b/packages/block-editor/src/components/navigable-toolbar/index.js
@@ -1,28 +1,103 @@
/**
* WordPress dependencies
*/
-import { NavigableMenu } from '@wordpress/components';
-import { useRef, useEffect, useCallback } from '@wordpress/element';
+import { NavigableMenu, Toolbar } from '@wordpress/components';
+import {
+ useState,
+ useRef,
+ useLayoutEffect,
+ useEffect,
+ useCallback,
+} from '@wordpress/element';
import { focus } from '@wordpress/dom';
import { useShortcut } from '@wordpress/keyboard-shortcuts';
-function NavigableToolbar( { children, focusOnMount, ...props } ) {
- const wrapper = useRef();
- const focusToolbar = useCallback( () => {
- const tabbables = focus.tabbable.find( wrapper.current );
- if ( tabbables.length ) {
- tabbables[ 0 ].focus();
+function useUpdateLayoutEffect( effect, deps ) {
+ const mounted = useRef( false );
+ useLayoutEffect( () => {
+ if ( mounted.current ) {
+ return effect();
}
+ mounted.current = true;
+ }, deps );
+}
+
+function hasOnlyToolbarItem( elements ) {
+ const dataProp = 'experimentalToolbarItem';
+ return ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );
+}
+
+function focusFirstTabbableIn( container ) {
+ const [ firstTabbable ] = focus.tabbable.find( container );
+ if ( firstTabbable ) {
+ firstTabbable.focus();
+ }
+}
+
+function useIsAccessibleToolbar( ref ) {
+ // By default, it's gonna render NavigableMenu. If all the tabbable elements
+ // inside the toolbar are ToolbarItem components (or derived components like
+ // ToolbarButton), then we can wrap them with the accessible Toolbar
+ // component.
+ const [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState( false );
+
+ const determineIsAccessibleToolbar = useCallback( () => {
+ const tabbables = focus.tabbable.find( ref.current );
+ setIsAccessibleToolbar( hasOnlyToolbarItem( tabbables ) );
}, [] );
+
+ useLayoutEffect( determineIsAccessibleToolbar, [] );
+
+ useUpdateLayoutEffect( () => {
+ // Toolbar buttons may be rendered asynchronously, so we use
+ // MutationObserver to check if the toolbar subtree has been modified
+ const observer = new window.MutationObserver(
+ determineIsAccessibleToolbar
+ );
+ observer.observe( ref.current, { childList: true, subtree: true } );
+ return () => observer.disconnect();
+ }, [ isAccessibleToolbar ] );
+
+ return isAccessibleToolbar;
+}
+
+function useToolbarFocus( ref, focusOnMount, isAccessibleToolbar ) {
+ // Make sure we don't use modified versions of this prop
+ const [ initialFocusOnMount ] = useState( focusOnMount );
+
+ const focusToolbar = useCallback( () => {
+ focusFirstTabbableIn( ref.current );
+ }, [] );
+
useShortcut( 'core/block-editor/focus-toolbar', focusToolbar, {
bindGlobal: true,
eventName: 'keydown',
} );
+
useEffect( () => {
- if ( focusOnMount ) {
+ if ( initialFocusOnMount ) {
focusToolbar();
}
- }, [] );
+ }, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );
+}
+
+function NavigableToolbar( { children, focusOnMount, ...props } ) {
+ const wrapper = useRef();
+ const isAccessibleToolbar = useIsAccessibleToolbar( wrapper );
+
+ useToolbarFocus( wrapper, focusOnMount, isAccessibleToolbar );
+
+ if ( isAccessibleToolbar ) {
+ return (
+
+ { children }
+
+ );
+ }
return (
${ __(
- 'The way to get started is to quit talking and begin doing.'
- ) }
`,
- // translators: sample content for "About" page template
- citation: __( 'Walt Disney' ),
- },
- },
- {
- name: 'core/quote',
- attributes: {
- // translators: sample content for "About" page template
- value: `
${ __(
- 'It is our choices, Harry, that show what we truly are, far more than our abilities.'
- ) }
`,
- // translators: sample content for "About" page template
- citation: __( 'J.K. Rowling' ),
- },
- },
- {
- name: 'core/quote',
- attributes: {
- // translators: sample content for "About" page template
- value: `
${ __(
- 'Don’t cry because it’s over, smile because it happened.'
- ) }
`,
- // translators: sample content for "About" page template
- citation: __( 'Dr. Seuss' ),
- },
+ name: 'core/columns',
+ innerBlocks: [
+ {
+ name: 'core/column',
+ innerBlocks: [
+ {
+ name: 'core/quote',
+ attributes: {
+ // translators: sample content for "About" page template
+ value: `
${ __(
+ 'The way to get started is to quit talking and begin doing.'
+ ) }
`,
+ // translators: sample content for "About" page template
+ citation: __( 'Walt Disney' ),
+ },
+ },
+ ],
+ },
+ {
+ name: 'core/column',
+ innerBlocks: [
+ {
+ name: 'core/quote',
+ attributes: {
+ // translators: sample content for "About" page template
+ value: `
${ __(
+ 'It is our choices, Harry, that show what we truly are, far more than our abilities.'
+ ) }
`,
+ // translators: sample content for "About" page template
+ citation: __( 'J.K. Rowling' ),
+ },
+ },
+ ],
+ },
+ {
+ name: 'core/column',
+ innerBlocks: [
+ {
+ name: 'core/quote',
+ attributes: {
+ // translators: sample content for "About" page template
+ value: `
${ __(
+ 'Don’t cry because it’s over, smile because it happened.'
+ ) }
`,
+ // translators: sample content for "About" page template
+ citation: __( 'Dr. Seuss' ),
+ },
+ },
+ ],
+ },
+ ],
},
{
name: 'core/spacer',
@@ -94,11 +114,16 @@ const About = {
},
},
{
- name: 'core/button',
- attributes: {
- // translators: sample content for "About" page template
- text: __( 'Get in Touch' ),
- },
+ name: 'core/buttons',
+ innerBlocks: [
+ {
+ name: 'core/button',
+ attributes: {
+ // translators: sample content for "About" page template
+ text: __( 'Get in Touch' ),
+ },
+ },
+ ],
},
{
name: 'core/spacer',
diff --git a/packages/block-editor/src/components/page-template-picker/templates/blog.native.js b/packages/block-editor/src/components/page-template-picker/templates/blog.native.js
index 3ebd6173f164c7..bbf7fe6953cf37 100644
--- a/packages/block-editor/src/components/page-template-picker/templates/blog.native.js
+++ b/packages/block-editor/src/components/page-template-picker/templates/blog.native.js
@@ -10,11 +10,21 @@ const Blog = {
icon: '📰',
content: [
{
- name: 'core/image',
+ name: 'core/cover',
attributes: {
url:
'https://mgblayoutexamples.files.wordpress.com/2020/02/people-woman-coffee-meeting.jpg',
},
+ innerBlocks: [
+ {
+ name: 'core/heading',
+ attributes: {
+ // translators: sample content for "Blog" page template
+ content: __( 'Welcome to our new blog' ),
+ level: 1,
+ },
+ },
+ ],
},
{
name: 'core/spacer',
@@ -22,14 +32,6 @@ const Blog = {
height: 24,
},
},
- {
- name: 'core/heading',
- attributes: {
- // translators: sample content for "Blog" page template
- content: __( 'Latest Blog Posts' ),
- level: 2,
- },
- },
{
name: 'core/latest-posts',
attributes: {},
@@ -44,38 +46,6 @@ const Blog = {
name: 'core/separator',
attributes: {},
},
- {
- name: 'core/spacer',
- attributes: {
- height: 24,
- },
- },
- {
- name: 'core/heading',
- attributes: {
- align: 'center',
- // translators: sample content for "Blog" page template
- content: __( 'Follow our Blog' ),
- level: 2,
- },
- },
- {
- name: 'core/button',
- attributes: {
- // translators: sample content for "Blog" page template
- text: __( 'Subscribe' ),
- },
- },
- {
- name: 'core/spacer',
- attributes: {
- height: 24,
- },
- },
- {
- name: 'core/separator',
- attributes: {},
- },
],
};
diff --git a/packages/block-editor/src/components/page-template-picker/templates/portfolio.native.js b/packages/block-editor/src/components/page-template-picker/templates/portfolio.native.js
index 30e1f1b96fbc06..6bd1dedeafef3e 100644
--- a/packages/block-editor/src/components/page-template-picker/templates/portfolio.native.js
+++ b/packages/block-editor/src/components/page-template-picker/templates/portfolio.native.js
@@ -175,15 +175,20 @@ const Portfolio = {
},
},
{
- name: 'core/button',
- attributes: {
- url: '',
- // translators: sample content for "Portfolio" page template
- text: __( 'Get in touch!' ),
- linkTarget: '',
- rel: '',
- className: 'aligncenter',
- },
+ name: 'core/buttons',
+ innerBlocks: [
+ {
+ name: 'core/button',
+ attributes: {
+ url: '',
+ // translators: sample content for "Portfolio" page template
+ text: __( 'Get in touch!' ),
+ linkTarget: '',
+ rel: '',
+ className: 'aligncenter',
+ },
+ },
+ ],
},
{
name: 'core/spacer',
diff --git a/packages/block-editor/src/components/page-template-picker/templates/services.native.js b/packages/block-editor/src/components/page-template-picker/templates/services.native.js
index 3aed3918348179..01f545a6e9c6f4 100644
--- a/packages/block-editor/src/components/page-template-picker/templates/services.native.js
+++ b/packages/block-editor/src/components/page-template-picker/templates/services.native.js
@@ -25,93 +25,107 @@ const Services = {
},
},
{
- name: 'core/image',
- attributes: {
- url:
- 'https://mgblayoutexamples.files.wordpress.com/2020/02/pexels-photo-3471423.jpg',
- alt: '',
- caption: '',
- sizeSlug: 'full',
- linkDestination: 'none',
- },
- },
- {
- name: 'core/heading',
- attributes: {
- // translators: sample content for "Services" page template
- content: __( 'Inspiration' ),
- level: 2,
- },
- },
- {
- name: 'core/paragraph',
- attributes: {
- // translators: sample content for "Services" page template
- content: __( 'A short description of the services you offer.' ),
- },
- },
- {
- name: 'core/spacer',
- attributes: {
- height: 40,
- },
- },
- {
- name: 'core/image',
- attributes: {
- url:
- 'https://mgblayoutexamples.files.wordpress.com/2020/02/pexels-photo-1595385.jpeg',
- alt: '',
- caption: '',
- sizeSlug: 'full',
- linkDestination: 'none',
- },
- },
- {
- name: 'core/heading',
- attributes: {
- // translators: sample content for "Services" page template
- content: __( 'Strategy' ),
- level: 2,
- },
- },
- {
- name: 'core/paragraph',
- attributes: {
- // translators: sample content for "Services" page template
- content: __( 'A short description of the services you offer.' ),
- },
- },
- {
- name: 'core/spacer',
- attributes: {
- height: 40,
- },
- },
- {
- name: 'core/image',
- attributes: {
- url:
- 'https://mgblayoutexamples.files.wordpress.com/2020/02/pexels-photo-68562.jpg?w=1024',
- alt: '',
- caption: '',
- sizeSlug: 'large',
- linkDestination: 'none',
- },
- },
- {
- name: 'core/heading',
- attributes: {
- content: 'Focus',
- level: 2,
- },
- },
- {
- name: 'core/paragraph',
- attributes: {
- // translators: sample content for "Services" page template
- content: __( 'A short description of the services you offer.' ),
- },
+ name: 'core/columns',
+ innerBlocks: [
+ {
+ name: 'core/column',
+ innerBlocks: [
+ {
+ name: 'core/image',
+ attributes: {
+ url:
+ 'https://cldup.com/niJL8UbTZH-3000x3000.jpeg',
+ alt: '',
+ caption: '',
+ sizeSlug: 'full',
+ linkDestination: 'none',
+ },
+ },
+ {
+ name: 'core/heading',
+ attributes: {
+ // translators: sample content for "Services" page template
+ content: __( 'Inspiration' ),
+ level: 2,
+ },
+ },
+ {
+ name: 'core/paragraph',
+ attributes: {
+ // translators: sample content for "Services" page template
+ content: __(
+ 'A short description of the services you offer.'
+ ),
+ },
+ },
+ ],
+ },
+ {
+ name: 'core/column',
+ innerBlocks: [
+ {
+ name: 'core/image',
+ attributes: {
+ url:
+ 'https://cldup.com/NTV4PW_Xtw-3000x3000.jpeg',
+ alt: '',
+ caption: '',
+ sizeSlug: 'full',
+ linkDestination: 'none',
+ },
+ },
+ {
+ name: 'core/heading',
+ attributes: {
+ // translators: sample content for "Services" page template
+ content: __( 'Strategy' ),
+ level: 2,
+ },
+ },
+ {
+ name: 'core/paragraph',
+ attributes: {
+ // translators: sample content for "Services" page template
+ content: __(
+ 'A short description of the services you offer.'
+ ),
+ },
+ },
+ ],
+ },
+ {
+ name: 'core/column',
+ innerBlocks: [
+ {
+ name: 'core/image',
+ attributes: {
+ url:
+ 'https://cldup.com/CL1KK71EsH-1200x1200.jpeg',
+ alt: '',
+ caption: '',
+ sizeSlug: 'large',
+ linkDestination: 'none',
+ },
+ },
+ {
+ name: 'core/heading',
+ attributes: {
+ content: 'Focus',
+ level: 2,
+ },
+ },
+ {
+ name: 'core/paragraph',
+ attributes: {
+ // translators: sample content for "Services" page template
+ content: __(
+ 'A short description of the services you offer.'
+ ),
+ },
+ },
+ ],
+ },
+ ],
},
{
name: 'core/spacer',
@@ -139,11 +153,16 @@ const Services = {
},
},
{
- name: 'core/button',
- attributes: {
- // translators: sample content for "Services" page template
- text: __( 'Get in Touch' ),
- },
+ name: 'core/buttons',
+ innerBlocks: [
+ {
+ name: 'core/button',
+ attributes: {
+ // translators: sample content for "Services" page template
+ text: __( 'Get in Touch' ),
+ },
+ },
+ ],
},
{
name: 'core/spacer',
diff --git a/packages/block-editor/src/components/page-template-picker/templates/team.native.js b/packages/block-editor/src/components/page-template-picker/templates/team.native.js
index 2b702931b4ba76..e5de613a1e0653 100644
--- a/packages/block-editor/src/components/page-template-picker/templates/team.native.js
+++ b/packages/block-editor/src/components/page-template-picker/templates/team.native.js
@@ -225,14 +225,19 @@ const Team = {
},
},
{
- name: 'core/button',
- attributes: {
- url: '',
- // translators: sample content for "Team" page template
- text: __( 'Get in Touch!' ),
- borderRadius: 4,
- className: 'aligncenter',
- },
+ name: 'core/buttons',
+ innerBlocks: [
+ {
+ name: 'core/button',
+ attributes: {
+ url: '',
+ // translators: sample content for "Team" page template
+ text: __( 'Get in Touch!' ),
+ borderRadius: 4,
+ className: 'aligncenter',
+ },
+ },
+ ],
},
{
name: 'core/spacer',
diff --git a/packages/block-editor/src/components/preview-options/index.js b/packages/block-editor/src/components/preview-options/index.js
new file mode 100644
index 00000000000000..8a3563fbc11a9b
--- /dev/null
+++ b/packages/block-editor/src/components/preview-options/index.js
@@ -0,0 +1,70 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import { Button, Dropdown, MenuGroup, MenuItem } from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+import { Icon, check, chevronDown } from '@wordpress/icons';
+
+export default function PreviewOptions( {
+ children,
+ className,
+ isEnabled = true,
+ deviceType,
+ setDeviceType,
+} ) {
+ return (
+ (
+
+ { __( 'Preview' ) }
+
+
+ ) }
+ renderContent={ () => (
+ <>
+
+ setDeviceType( 'Desktop' ) }
+ icon={ deviceType === 'Desktop' && check }
+ >
+ { __( 'Desktop' ) }
+
+ setDeviceType( 'Tablet' ) }
+ icon={ deviceType === 'Tablet' && check }
+ >
+ { __( 'Tablet' ) }
+
+ setDeviceType( 'Mobile' ) }
+ icon={ deviceType === 'Mobile' && check }
+ >
+ { __( 'Mobile' ) }
+
+
+ { children }
+ >
+ ) }
+ />
+ );
+}
diff --git a/packages/edit-post/src/components/preview-options/style.scss b/packages/block-editor/src/components/preview-options/style.scss
similarity index 60%
rename from packages/edit-post/src/components/preview-options/style.scss
rename to packages/block-editor/src/components/preview-options/style.scss
index de88a83faa7b2b..48b44bfa091517 100644
--- a/packages/edit-post/src/components/preview-options/style.scss
+++ b/packages/block-editor/src/components/preview-options/style.scss
@@ -1,10 +1,10 @@
-.editor-post-preview__dropdown {
+.block-editor-post-preview__dropdown {
display: none;
margin-right: $grid-unit-15;
padding: 0;
}
-.editor-post-preview__button-toggle {
+.block-editor-post-preview__button-toggle {
display: flex;
justify-content: space-between;
padding: 0 $grid-unit-10 0 $grid-unit-15;
@@ -18,7 +18,7 @@
}
}
-.editor-post-preview__button-resize.editor-post-preview__button-resize {
+.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize {
padding-left: $button-size-small + $grid-unit-10 + $grid-unit-10;
&.has-icon {
@@ -26,10 +26,9 @@
}
}
-.editor-post-preview__dropdown-content {
+.block-editor-post-preview__dropdown-content {
.components-popover__content {
overflow-y: visible;
- padding-bottom: 0;
}
.components-menu-group + .components-menu-group {
@@ -40,29 +39,12 @@
}
}
-.editor-post-preview__grouping-external {
- display: flex;
- position: relative;
-}
-
-.editor-post-preview__button-external {
- padding-left: $grid-unit-10;
- margin-right: auto;
- width: 100%;
- display: flex;
- justify-content: flex-start;
-
- svg {
- margin-right: $grid-unit-10;
- }
-}
-
@include break-small() {
.editor-post-preview {
display: none;
}
- .editor-post-preview__dropdown {
+ .block-editor-post-preview__dropdown {
display: flex;
}
}
diff --git a/packages/edit-post/src/components/resize-canvas/index.js b/packages/block-editor/src/components/resize-canvas/index.js
similarity index 82%
rename from packages/edit-post/src/components/resize-canvas/index.js
rename to packages/block-editor/src/components/resize-canvas/index.js
index f09214edc8f102..2f9723d08a355c 100644
--- a/packages/edit-post/src/components/resize-canvas/index.js
+++ b/packages/block-editor/src/components/resize-canvas/index.js
@@ -1,20 +1,21 @@
/**
* WordPress dependencies
*/
-import { useSimulatedMediaQuery } from '@wordpress/block-editor';
-import { useSelect } from '@wordpress/data';
import { useEffect, useState } from '@wordpress/element';
+/**
+ * Internal dependencies
+ */
+import { default as useSimulatedMediaQuery } from '../../components/use-simulated-media-query';
+
/**
* Function to resize the editor window.
*
+ * @param {string} deviceType Used for determining the size of the container (e.g. Desktop, Tablet, Mobile)
+ *
* @return {Object} Inline styles to be added to resizable container.
*/
-export function useResizeCanvas() {
- const deviceType = useSelect( ( select ) => {
- return select( 'core/edit-post' ).__experimentalGetPreviewDeviceType();
- }, [] );
-
+export default function useResizeCanvas( deviceType ) {
const [ actualWidth, updateActualWidth ] = useState( window.innerWidth );
useEffect( () => {
diff --git a/packages/block-editor/src/components/rich-text/format-toolbar/index.js b/packages/block-editor/src/components/rich-text/format-toolbar/index.js
index 3bbc0eadd680e3..e0c35b11cdae50 100644
--- a/packages/block-editor/src/components/rich-text/format-toolbar/index.js
+++ b/packages/block-editor/src/components/rich-text/format-toolbar/index.js
@@ -9,7 +9,12 @@ import { orderBy } from 'lodash';
*/
import { __ } from '@wordpress/i18n';
-import { Toolbar, Slot, DropdownMenu } from '@wordpress/components';
+import {
+ __experimentalToolbarItem as ToolbarItem,
+ ToolbarGroup,
+ DropdownMenu,
+ Slot,
+} from '@wordpress/components';
import { chevronDown } from '@wordpress/icons';
const POPOVER_PROPS = {
@@ -20,7 +25,7 @@ const POPOVER_PROPS = {
const FormatToolbar = () => {
return (
-
+
{ [ 'bold', 'italic', 'link', 'text-color' ].map(
( format ) => (
{
{ ( fills ) =>
fills.length !== 0 && (
- props ),
- 'title'
+
+ { ( toggleProps ) => (
+ props
+ ),
+ 'title'
+ ) }
+ popoverProps={ POPOVER_PROPS }
+ />
) }
- popoverProps={ POPOVER_PROPS }
- />
+
)
}
-
+
);
};
diff --git a/packages/block-editor/src/components/rich-text/index.js b/packages/block-editor/src/components/rich-text/index.js
index 142c02e8ed9074..2d73bed67d5c8c 100644
--- a/packages/block-editor/src/components/rich-text/index.js
+++ b/packages/block-editor/src/components/rich-text/index.js
@@ -39,6 +39,7 @@ import {
} from '@wordpress/rich-text';
import deprecated from '@wordpress/deprecated';
import { isURL } from '@wordpress/url';
+import { regexp } from '@wordpress/shortcode';
/**
* Internal dependencies
@@ -93,6 +94,8 @@ function getAllowedFormats( {
getAllowedFormats.EMPTY_ARRAY = [];
+const isShortcode = ( text ) => regexp( '.*' ).test( text );
+
function RichTextWrapper(
{
children,
@@ -274,6 +277,7 @@ function RichTextWrapper(
const blocks = [];
const [ before, after ] = split( record );
const hasPastedBlocks = pastedBlocks.length > 0;
+ let lastPastedBlockIndex = -1;
// Create a block with the content before the caret if there's no pasted
// blocks, or if there are pasted blocks and the value is not empty.
@@ -288,10 +292,12 @@ function RichTextWrapper(
} )
)
);
+ lastPastedBlockIndex += 1;
}
if ( hasPastedBlocks ) {
blocks.push( ...pastedBlocks );
+ lastPastedBlockIndex += pastedBlocks.length;
} else if ( onSplitMiddle ) {
blocks.push( onSplitMiddle() );
}
@@ -313,9 +319,13 @@ function RichTextWrapper(
// If there are pasted blocks, set the selection to the last one.
// Otherwise, set the selection to the second block.
- const indexToSelect = hasPastedBlocks ? blocks.length - 1 : 1;
+ const indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;
+
+ // If there are pasted blocks, move the caret to the end of the selected block
+ // Otherwise, retain the default value.
+ const initialPosition = hasPastedBlocks ? -1 : null;
- onReplace( blocks, indexToSelect );
+ onReplace( blocks, indexToSelect, initialPosition );
},
[ onReplace, onSplit, multilineTag, onSplitMiddle ]
);
@@ -393,6 +403,18 @@ function RichTextWrapper(
let mode = onReplace && onSplit ? 'AUTO' : 'INLINE';
+ // Force the blocks mode when the user is pasting
+ // on a new line & the content resembles a shortcode.
+ // Otherwise it's going to be detected as inline
+ // and the shortcode won't be replaced.
+ if (
+ mode === 'AUTO' &&
+ isEmpty( value ) &&
+ isShortcode( plainText )
+ ) {
+ mode = 'BLOCKS';
+ }
+
if (
__unstableEmbedURLOnPaste &&
isEmpty( value ) &&
@@ -436,7 +458,7 @@ function RichTextWrapper(
onChange( insert( value, valueToInsert ) );
} else if ( content.length > 0 ) {
if ( onReplace && isEmpty( value ) ) {
- onReplace( content );
+ onReplace( content, content.length - 1, -1 );
} else {
splitValue( value, content );
}
diff --git a/packages/block-editor/src/components/rich-text/style.scss b/packages/block-editor/src/components/rich-text/style.scss
index cc5f2a1d379a3a..89433b13583e49 100644
--- a/packages/block-editor/src/components/rich-text/style.scss
+++ b/packages/block-editor/src/components/rich-text/style.scss
@@ -51,6 +51,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
background-color: $white;
}
+ .components-toolbar-group,
.components-toolbar {
// The popover already provides a border.
border: none;
diff --git a/packages/block-editor/src/components/unit-control/index.js b/packages/block-editor/src/components/unit-control/index.js
index e5a1fb3e902473..eb1bf24eb44fee 100644
--- a/packages/block-editor/src/components/unit-control/index.js
+++ b/packages/block-editor/src/components/unit-control/index.js
@@ -2,12 +2,16 @@
* WordPress dependencies
*/
import { __experimentalUnitControl as BaseUnitControl } from '@wordpress/components';
-import { useSelect } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import useEditorFeature from '../use-editor-feature';
const { __defaultUnits } = BaseUnitControl;
export default function UnitControl( { units: unitsProp, ...props } ) {
- const settings = useCustomUnitsSettings();
+ const settings = useEditorFeature( '__experimentalDisableCustomUnits' );
const isDisabled = !! settings;
// Adjust units based on add_theme_support( 'experimental-custom-units' );
@@ -34,18 +38,6 @@ export default function UnitControl( { units: unitsProp, ...props } ) {
// Hoisting statics from the BaseUnitControl
UnitControl.__defaultUnits = __defaultUnits;
-/**
- * Hook that retrieves the 'experimental-custom-units' setting from add_theme_support()
- */
-function useCustomUnitsSettings() {
- const settings = useSelect( ( select ) => {
- const { getSettings } = select( 'core/block-editor' );
- return getSettings().__experimentalDisableCustomUnits;
- }, [] );
-
- return settings;
-}
-
/**
* Filters available units based on values defined by settings.
*
diff --git a/packages/block-editor/src/components/url-input/style.scss b/packages/block-editor/src/components/url-input/style.scss
index 0237689edb4c4b..fc988577744123 100644
--- a/packages/block-editor/src/components/url-input/style.scss
+++ b/packages/block-editor/src/components/url-input/style.scss
@@ -101,6 +101,7 @@ $input-size: 300px;
}
// Toolbar button
+.components-toolbar-group > .block-editor-url-input__button,
.components-toolbar > .block-editor-url-input__button {
position: inherit; // Let the dialog position according to parent.
}
diff --git a/packages/block-editor/src/components/use-editor-feature/index.js b/packages/block-editor/src/components/use-editor-feature/index.js
new file mode 100644
index 00000000000000..6270498b0ebde4
--- /dev/null
+++ b/packages/block-editor/src/components/use-editor-feature/index.js
@@ -0,0 +1,24 @@
+/**
+ * WordPress dependencies
+ */
+import { useSelect } from '@wordpress/data';
+
+/**
+ * Hook that retrieves the setting for the given editor feature.
+ *
+ * @param {string} featureName The name of the feature.
+ *
+ * @return {any} Returns the value defined for the setting.
+ */
+export default function useEditorFeature( featureName ) {
+ const setting = useSelect(
+ ( select ) => {
+ const { getSettings } = select( 'core/block-editor' );
+
+ return getSettings()[ featureName ];
+ },
+ [ featureName ]
+ );
+
+ return setting;
+}
diff --git a/packages/block-editor/src/components/block-list/moving-animation.js b/packages/block-editor/src/components/use-moving-animation/index.js
similarity index 100%
rename from packages/block-editor/src/components/block-list/moving-animation.js
rename to packages/block-editor/src/components/use-moving-animation/index.js
diff --git a/packages/block-editor/src/components/writing-flow/index.js b/packages/block-editor/src/components/writing-flow/index.js
index 91b0dcfe274ecb..9d77ada45eba33 100644
--- a/packages/block-editor/src/components/writing-flow/index.js
+++ b/packages/block-editor/src/components/writing-flow/index.js
@@ -93,10 +93,18 @@ export function isNavigationCandidate( element, keyCode, hasModifier ) {
* @param {Element} target Currently focused text field.
* @param {boolean} isReverse True if considering as the first field.
* @param {Element} containerElement Element containing all blocks.
+ * @param {boolean} onlyVertical Wether to only consider tabbable elements
+ * that are visually above or under the
+ * target.
*
* @return {?Element} Optimal tab target, if one exists.
*/
-export function getClosestTabbable( target, isReverse, containerElement ) {
+export function getClosestTabbable(
+ target,
+ isReverse,
+ containerElement,
+ onlyVertical
+) {
// Since the current focus target is not guaranteed to be a text field,
// find all focusables. Tabbability is considered later.
let focusableNodes = focus.focusable.find( containerElement );
@@ -112,12 +120,29 @@ export function getClosestTabbable( target, isReverse, containerElement ) {
focusableNodes.indexOf( target ) + 1
);
+ let targetRect;
+
+ if ( onlyVertical ) {
+ targetRect = target.getBoundingClientRect();
+ }
+
function isTabCandidate( node, i, array ) {
// Not a candidate if the node is not tabbable.
if ( ! focus.tabbable.isTabbableIndex( node ) ) {
return false;
}
+ if ( onlyVertical ) {
+ const nodeRect = node.getBoundingClientRect();
+
+ if (
+ nodeRect.left >= targetRect.right ||
+ nodeRect.right <= targetRect.left
+ ) {
+ return false;
+ }
+ }
+
// Prefer text fields...
if ( isTextField( node ) ) {
return true;
@@ -517,7 +542,8 @@ export default function WritingFlow( { children } ) {
const closestTabbable = getClosestTabbable(
target,
isReverse,
- container.current
+ container.current,
+ true
);
if ( closestTabbable ) {
diff --git a/packages/block-editor/src/hooks/color-panel.native.js b/packages/block-editor/src/hooks/color-panel.native.js
deleted file mode 100644
index 3c505bfd0f15f4..00000000000000
--- a/packages/block-editor/src/hooks/color-panel.native.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function ColorPanel() {
- return null;
-}
diff --git a/packages/block-editor/src/hooks/color.js b/packages/block-editor/src/hooks/color.js
index c196a521b39061..b8f447b67e788a 100644
--- a/packages/block-editor/src/hooks/color.js
+++ b/packages/block-editor/src/hooks/color.js
@@ -11,7 +11,7 @@ import { addFilter } from '@wordpress/hooks';
import { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';
import { __ } from '@wordpress/i18n';
import { useSelect } from '@wordpress/data';
-import { useRef, useEffect } from '@wordpress/element';
+import { useRef, useEffect, Platform } from '@wordpress/element';
/**
* Internal dependencies
@@ -243,7 +243,10 @@ export function ColorEdit( props ) {
return (
+
+## Unreleased
+
## 2.12.0 (2020-01-13)
### Bug Fixes
diff --git a/packages/block-library/package.json b/packages/block-library/package.json
index f2fc25a0b1b398..cc4af534a119fd 100644
--- a/packages/block-library/package.json
+++ b/packages/block-library/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/block-library",
- "version": "2.16.1",
+ "version": "2.17.0",
"description": "Block library for the WordPress editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/block-library/src/audio/edit.js b/packages/block-library/src/audio/edit.js
index 0732d4812c985e..c20798c789a91a 100644
--- a/packages/block-library/src/audio/edit.js
+++ b/packages/block-library/src/audio/edit.js
@@ -17,6 +17,7 @@ import {
MediaPlaceholder,
MediaReplaceFlow,
RichText,
+ __experimentalBlock as Block,
} from '@wordpress/block-editor';
import { Component } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
@@ -114,7 +115,7 @@ class AudioEdit extends Component {
preload,
src,
} = this.props.attributes;
- const { setAttributes, isSelected, className, noticeUI } = this.props;
+ const { setAttributes, isSelected, noticeUI } = this.props;
const onSelectAudio = ( media ) => {
if ( ! media || ! media.url ) {
// in this case there was an error and we should continue in the editing state
@@ -128,17 +129,18 @@ class AudioEdit extends Component {
};
if ( ! src ) {
return (
- }
- className={ className }
- onSelect={ onSelectAudio }
- onSelectURL={ this.onSelectURL }
- accept="audio/*"
- allowedTypes={ ALLOWED_MEDIA_TYPES }
- value={ this.props.attributes }
- notices={ noticeUI }
- onError={ this.onUploadError }
- />
+
+ }
+ onSelect={ onSelectAudio }
+ onSelectURL={ this.onSelectURL }
+ accept="audio/*"
+ allowedTypes={ ALLOWED_MEDIA_TYPES }
+ value={ this.props.attributes }
+ notices={ noticeUI }
+ onError={ this.onUploadError }
+ />
+
);
}
@@ -186,7 +188,7 @@ class AudioEdit extends Component {
/>
-
+
{ /*
Disable the audio tag so the user clicking on it won't play the
file or change the position slider when the controls are enabled.
@@ -205,7 +207,7 @@ class AudioEdit extends Component {
inlineToolbar
/>
) }
-
+
>
);
}
diff --git a/packages/block-library/src/audio/index.js b/packages/block-library/src/audio/index.js
index 2946d5eca61bcd..8a10cdb2e6ed95 100644
--- a/packages/block-library/src/audio/index.js
+++ b/packages/block-library/src/audio/index.js
@@ -31,6 +31,7 @@ export const settings = {
deprecated,
supports: {
align: true,
+ lightBlockWrapper: true,
},
edit,
save,
diff --git a/packages/block-library/src/button/block.json b/packages/block-library/src/button/block.json
index 6bd96a3edd4da3..ff6b3d3390fc80 100644
--- a/packages/block-library/src/button/block.json
+++ b/packages/block-library/src/button/block.json
@@ -36,6 +36,18 @@
},
"borderRadius": {
"type": "number"
+ },
+ "style": {
+ "type": "object"
+ },
+ "backgroundColor": {
+ "type": "string"
+ },
+ "textColor": {
+ "type": "string"
+ },
+ "gradient": {
+ "type": "string"
}
}
}
diff --git a/packages/block-library/src/button/color-background.native.js b/packages/block-library/src/button/color-background.native.js
index 13fe96b00ad1ab..f61eccb389b12a 100644
--- a/packages/block-library/src/button/color-background.native.js
+++ b/packages/block-library/src/button/color-background.native.js
@@ -5,14 +5,14 @@ import { View } from 'react-native';
/**
* WordPress dependencies
*/
-import { LinearGradient } from '@wordpress/components';
-import { __experimentalUseGradient } from '@wordpress/block-editor';
+import { LinearGradient, colorsUtils } from '@wordpress/components';
/**
* Internal dependencies
*/
import styles from './editor.scss';
function ColorBackground( { children, borderRadiusValue, backgroundColor } ) {
+ const { isGradient } = colorsUtils;
const wrapperStyles = [
styles.richTextWrapper,
{
@@ -21,13 +21,11 @@ function ColorBackground( { children, borderRadiusValue, backgroundColor } ) {
},
];
- const { gradientValue } = __experimentalUseGradient();
-
return (
- { gradientValue && (
+ { isGradient( backgroundColor ) && (
{
+ if ( ! isObject( object ) ) {
+ return object;
+ }
+ const cleanedNestedObjects = pickBy(
+ mapValues( object, cleanEmptyObject ),
+ identity
+ );
+ return isEqual( cleanedNestedObjects, {} )
+ ? undefined
+ : cleanedNestedObjects;
+};
+
+function ColorPanel( { settings, clientId, enableContrastChecking = true } ) {
+ const { getComputedStyle, Node } = window;
+
+ const [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();
+ const [ detectedColor, setDetectedColor ] = useState();
+
+ useEffect( () => {
+ if ( isWebPlatform && ! enableContrastChecking ) {
+ return;
+ }
+
+ const colorsDetectionElement = getBlockDOMNode( clientId );
+ if ( ! colorsDetectionElement ) {
+ return;
+ }
+ setDetectedColor( getComputedStyle( colorsDetectionElement ).color );
+
+ let backgroundColorNode = colorsDetectionElement;
+ let backgroundColor = getComputedStyle( backgroundColorNode )
+ .backgroundColor;
+ while (
+ backgroundColor === 'rgba(0, 0, 0, 0)' &&
+ backgroundColorNode.parentNode &&
+ backgroundColorNode.parentNode.nodeType === Node.ELEMENT_NODE
+ ) {
+ backgroundColorNode = backgroundColorNode.parentNode;
+ backgroundColor = getComputedStyle( backgroundColorNode )
+ .backgroundColor;
+ }
+
+ setDetectedBackgroundColor( backgroundColor );
+ } );
+
+ return (
+
+
+ { isWebPlatform && enableContrastChecking && (
+
+ ) }
+
+
+ );
+}
+
+/**
+ * Inspector control panel containing the color related configuration
+ *
+ * @param {Object} props
+ *
+ * @return {WPElement} Color edit element.
+ */
+function ColorEdit( props ) {
+ const { attributes } = props;
+ const { colors, gradients } = useSelect( ( select ) => {
+ return select( 'core/block-editor' ).getSettings();
+ }, [] );
+ // Shouldn't be needed but right now the ColorGradientsPanel
+ // can trigger both onChangeColor and onChangeBackground
+ // synchronously causing our two callbacks to override changes
+ // from each other.
+ const localAttributes = useRef( attributes );
+ useEffect( () => {
+ localAttributes.current = attributes;
+ }, [ attributes ] );
+
+ const { style, textColor, backgroundColor, gradient } = attributes;
+ let gradientValue;
+ if ( gradient ) {
+ gradientValue = getGradientValueBySlug( gradients, gradient );
+ } else {
+ gradientValue = style?.color?.gradient;
+ }
+
+ const onChangeColor = ( name ) => ( value ) => {
+ const colorObject = getColorObjectByColorValue( colors, value );
+ const attributeName = name + 'Color';
+ const newStyle = {
+ ...localAttributes.current.style,
+ color: {
+ ...localAttributes.current?.style?.color,
+ [ name ]: colorObject?.slug ? undefined : value,
+ },
+ };
+
+ const newNamedColor = colorObject?.slug ? colorObject.slug : undefined;
+ const newAttributes = {
+ style: cleanEmptyObject( newStyle ),
+ [ attributeName ]: newNamedColor,
+ };
+
+ props.setAttributes( newAttributes );
+ localAttributes.current = {
+ ...localAttributes.current,
+ ...newAttributes,
+ };
+ };
+
+ const onChangeGradient = ( value ) => {
+ const slug = getGradientSlugByValue( gradients, value );
+ let newAttributes;
+ if ( slug ) {
+ const newStyle = {
+ ...localAttributes.current?.style,
+ color: {
+ ...localAttributes.current?.style?.color,
+ gradient: undefined,
+ },
+ };
+ newAttributes = {
+ style: cleanEmptyObject( newStyle ),
+ gradient: slug,
+ };
+ } else {
+ const newStyle = {
+ ...localAttributes.current?.style,
+ color: {
+ ...localAttributes.current?.style?.color,
+ gradient: value,
+ },
+ };
+ newAttributes = {
+ style: cleanEmptyObject( newStyle ),
+ gradient: undefined,
+ };
+ }
+ props.setAttributes( newAttributes );
+ localAttributes.current = {
+ ...localAttributes.current,
+ ...newAttributes,
+ };
+ };
+
+ return (
+
+ );
+}
+
+export default ColorEdit;
diff --git a/packages/block-library/src/button/color-props.js b/packages/block-library/src/button/color-props.js
new file mode 100644
index 00000000000000..cc96f9f78d3899
--- /dev/null
+++ b/packages/block-library/src/button/color-props.js
@@ -0,0 +1,55 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import {
+ getColorClassName,
+ __experimentalGetGradientClass,
+} from '@wordpress/block-editor';
+
+// The code in this file is copied entirely from the "color" and "style" support flags
+// The flag can't be used at the moment because of the extra wrapper around
+// the button block markup.
+
+export default function getColorAndStyleProps( attributes ) {
+ // I'd have prefered to avoid the "style" attribute usage here
+ const { backgroundColor, textColor, gradient, style } = attributes;
+
+ const backgroundClass = getColorClassName(
+ 'background-color',
+ backgroundColor
+ );
+ const gradientClass = __experimentalGetGradientClass( gradient );
+ const textClass = getColorClassName( 'color', textColor );
+ const className = classnames( textClass, gradientClass, {
+ // Don't apply the background class if there's a custom gradient
+ [ backgroundClass ]: ! style?.color?.gradient && !! backgroundClass,
+ 'has-text-color': textColor || style?.color?.text,
+ 'has-background':
+ backgroundColor ||
+ style?.color?.background ||
+ gradient ||
+ style?.color?.gradient,
+ } );
+ const styleProp =
+ style?.color?.background || style?.color?.text || style?.color?.gradient
+ ? {
+ background: style?.color?.gradient
+ ? style.color.gradient
+ : undefined,
+ backgroundColor: style?.color?.background
+ ? style.color.background
+ : undefined,
+ color: style?.color?.text ? style.color.text : undefined,
+ }
+ : {};
+
+ return {
+ className: !! className ? className : undefined,
+ style: styleProp,
+ };
+}
diff --git a/packages/block-library/src/button/deprecated.js b/packages/block-library/src/button/deprecated.js
index e0915201a0b2a3..5316e590bd50fb 100644
--- a/packages/block-library/src/button/deprecated.js
+++ b/packages/block-library/src/button/deprecated.js
@@ -81,6 +81,75 @@ const blockAttributes = {
};
const deprecated = [
+ {
+ supports: {
+ align: true,
+ alignWide: false,
+ __experimentalColor: { gradients: true },
+ },
+ attributes: {
+ ...blockAttributes,
+ linkTarget: {
+ type: 'string',
+ source: 'attribute',
+ selector: 'a',
+ attribute: 'target',
+ },
+ rel: {
+ type: 'string',
+ source: 'attribute',
+ selector: 'a',
+ attribute: 'rel',
+ },
+ placeholder: {
+ type: 'string',
+ },
+ borderRadius: {
+ type: 'number',
+ },
+ backgroundColor: {
+ type: 'string',
+ },
+ textColor: {
+ type: 'string',
+ },
+ gradient: {
+ type: 'string',
+ },
+ style: {
+ type: 'object',
+ },
+ },
+ save( { attributes } ) {
+ const {
+ borderRadius,
+ linkTarget,
+ rel,
+ text,
+ title,
+ url,
+ } = attributes;
+ const buttonClasses = classnames( 'wp-block-button__link', {
+ 'no-border-radius': borderRadius === 0,
+ } );
+ const buttonStyle = {
+ borderRadius: borderRadius ? borderRadius + 'px' : undefined,
+ };
+
+ return (
+
+ );
+ },
+ },
{
supports: {
align: true,
@@ -125,6 +194,11 @@ const deprecated = [
type: 'string',
},
},
+
+ isEligible: ( attributes ) =>
+ !! attributes.customTextColor ||
+ !! attributes.customBackgroundColor ||
+ !! attributes.customGradient,
migrate: migrateCustomColorsAndGradients,
save( { attributes } ) {
const {
diff --git a/packages/block-library/src/button/edit.js b/packages/block-library/src/button/edit.js
index 38b5b43f96d684..46c1223cfbf6ef 100644
--- a/packages/block-library/src/button/edit.js
+++ b/packages/block-library/src/button/edit.js
@@ -28,6 +28,12 @@ import {
import { rawShortcut, displayShortcut } from '@wordpress/keycodes';
import { link } from '@wordpress/icons';
+/**
+ * Internal dependencies
+ */
+import ColorEdit from './color-edit';
+import getColorAndStyleProps from './color-props';
+
const NEW_TAB_REL = 'noreferrer noopener';
const MIN_BORDER_RADIUS_VALUE = 0;
const MAX_BORDER_RADIUS_VALUE = 50;
@@ -65,6 +71,9 @@ function URLPicker( {
const [ isURLPickerOpen, setIsURLPickerOpen ] = useState( false );
const openLinkControl = () => {
setIsURLPickerOpen( true );
+
+ // prevents default behaviour for event
+ return false;
};
const linkControl = isURLPickerOpen && (
- setAttributes( { text: value } ) }
- withoutInteractiveFormatting
- className={ classnames( className, 'wp-block-button__link', {
- 'no-border-radius': borderRadius === 0,
- } ) }
- style={ {
- borderRadius: borderRadius
- ? borderRadius + 'px'
- : undefined,
- } }
- />
+
+
+ setAttributes( { text: value } ) }
+ withoutInteractiveFormatting
+ className={ classnames(
+ className,
+ 'wp-block-button__link',
+ colorProps.className,
+ {
+ 'no-border-radius': borderRadius === 0,
+ }
+ ) }
+ style={ {
+ borderRadius: borderRadius
+ ? borderRadius + 'px'
+ : undefined,
+ ...colorProps.style,
+ } }
+ />
+
defaultGradient.slug === gradient
+ ).gradient
+ );
+ }
return (
- ( style && style.color && style.color.background ) ||
+ getColorAndStyleProps( attributes ).style?.backgroundColor ||
+ // We still need the `backgroundColor.color` to support colors from the color pallete (not custom ones)
backgroundColor.color ||
- styles.fallbackButton.backgroundColor
+ styles.defaultButton.backgroundColor
);
}
getTextColor() {
const { textColor, attributes } = this.props;
- const { style } = attributes;
-
return (
- ( style && style.color && style.color.text ) ||
+ getColorAndStyleProps( attributes ).style?.color ||
+ // We still need the `textColor.color` to support colors from the color pallete (not custom ones)
textColor.color ||
- styles.fallbackButton.color
+ styles.defaultButton.color
);
}
@@ -267,7 +279,7 @@ class ButtonEdit extends Component {
onSetMaxWidth( width ) {
const { maxWidth } = this.state;
const { parentWidth } = this.props;
- const { marginRight: spacing } = styles.button;
+ const { marginRight: spacing } = styles.defaultButton;
const isParentWidthChanged = maxWidth !== parentWidth;
const isWidthChanged = maxWidth !== width;
@@ -314,9 +326,6 @@ class ButtonEdit extends Component {
autoFocus={
! isCompatibleWithSettings && Platform.OS === 'ios'
}
- separatorType={
- isCompatibleWithSettings ? 'fullWidth' : 'leftMargin'
- }
keyboardType="url"
/>
>
@@ -398,20 +401,18 @@ class ButtonEdit extends Component {
isButtonFocused,
placeholderTextWidth,
} = this.state;
+ const { paddingTop: spacing, borderWidth } = styles.defaultButton;
if ( parentWidth === 0 ) {
return null;
}
- const borderRadiusValue =
- borderRadius !== undefined
- ? borderRadius
- : styles.button.borderRadius;
+ const borderRadiusValue = Number.isInteger( borderRadius )
+ ? borderRadius
+ : styles.defaultButton.borderRadius;
const outlineBorderRadius =
borderRadiusValue > 0
- ? borderRadiusValue +
- styles.button.paddingTop +
- styles.button.borderWidth
+ ? borderRadiusValue + spacing + borderWidth
: 0;
// To achieve proper expanding and shrinking `RichText` on iOS, there is a need to set a `minWidth`
@@ -430,6 +431,14 @@ class ButtonEdit extends Component {
: placeholder || __( 'Add text…' );
const backgroundColor = this.getBackgroundColor();
+ const textColor = this.getTextColor();
+
+ const actions = [
+ {
+ label: __( 'Remove link' ),
+ onPress: this.onClearSettings,
+ },
+ ];
return (
@@ -458,7 +467,7 @@ class ButtonEdit extends Component {
onChange={ this.onChangeText }
style={ {
...richTextStyle.richText,
- color: this.getTextColor(),
+ color: textColor,
} }
textAlign="center"
placeholderTextColor={
@@ -475,11 +484,11 @@ class ButtonEdit extends Component {
this.onToggleButtonFocus( true )
}
__unstableMobileNoFocusOnMount={ ! isSelected }
+ selectionColor={ textColor }
onBlur={ () => {
this.onToggleButtonFocus( false );
this.onSetMaxWidth();
} }
- selectionColor={ this.getTextColor() }
onReplace={ onReplace }
onRemove={ this.onRemove }
onMerge={ mergeBlocks }
@@ -504,15 +513,13 @@ class ButtonEdit extends Component {
onClose={ this.onHideLinkSettings }
hideHeader
>
- { this.getLinkSettings( url, rel, linkTarget ) }
-
+
+ { this.getLinkSettings( url, rel, linkTarget ) }
+
+
+
{ this.getLinkSettings( url, rel, linkTarget, true ) }
-
-
-
);
diff --git a/packages/block-library/src/button/editor.native.scss b/packages/block-library/src/button/editor.native.scss
index 47194070090401..54d25c34eb66a1 100644
--- a/packages/block-library/src/button/editor.native.scss
+++ b/packages/block-library/src/button/editor.native.scss
@@ -25,16 +25,11 @@
bottom: 0;
}
-.button {
- border-width: $border-width;
+.defaultButton {
border-radius: $border-width * 4;
padding: $block-spacing;
- max-width: 580px;
- min-width: 108px;
+ border-width: $border-width;
margin: 2 * $panel-padding;
-}
-
-.fallbackButton {
background-color: $button-fallback-bg;
color: $white;
}
diff --git a/packages/block-library/src/button/editor.scss b/packages/block-library/src/button/editor.scss
index efed2d4910b1a1..b5b8a185731053 100644
--- a/packages/block-library/src/button/editor.scss
+++ b/packages/block-library/src/button/editor.scss
@@ -1,14 +1,12 @@
-.block-editor-block-list__block[data-type="core/button"] {
- &[data-align="center"] {
- text-align: center;
- margin-left: auto;
- margin-right: auto;
- }
+.wp-block[data-align="center"] > .wp-block-button {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
- &[data-align="right"] {
- /*!rtl:ignore*/
- text-align: right;
- }
+.wp-block[data-align="right"] > .wp-block-button {
+ /*!rtl:ignore*/
+ text-align: right;
}
.wp-block-button {
diff --git a/packages/block-library/src/button/index.js b/packages/block-library/src/button/index.js
index fab563649938fb..6f2fed0d5bea74 100644
--- a/packages/block-library/src/button/index.js
+++ b/packages/block-library/src/button/index.js
@@ -35,7 +35,6 @@ export const settings = {
alignWide: false,
reusable: false,
lightBlockWrapper: true,
- __experimentalColor: { gradients: true },
},
parent: [ 'core/buttons' ],
styles: [
diff --git a/packages/block-library/src/button/save.js b/packages/block-library/src/button/save.js
index 6a7aeb8088c1a7..3fcf98e6edb129 100644
--- a/packages/block-library/src/button/save.js
+++ b/packages/block-library/src/button/save.js
@@ -8,15 +8,24 @@ import classnames from 'classnames';
*/
import { RichText } from '@wordpress/block-editor';
+/**
+ * Internal dependencies
+ */
+import getColorAndStyleProps from './color-props';
+
export default function save( { attributes } ) {
const { borderRadius, linkTarget, rel, text, title, url } = attributes;
-
- const buttonClasses = classnames( 'wp-block-button__link', {
- 'no-border-radius': borderRadius === 0,
- } );
-
+ const colorProps = getColorAndStyleProps( attributes );
+ const buttonClasses = classnames(
+ 'wp-block-button__link',
+ colorProps.className,
+ {
+ 'no-border-radius': borderRadius === 0,
+ }
+ );
const buttonStyle = {
borderRadius: borderRadius ? borderRadius + 'px' : undefined,
+ ...colorProps.style,
};
// The use of a `title` attribute here is soft-deprecated, but still applied
@@ -24,15 +33,17 @@ export default function save( { attributes } ) {
// A title will no longer be assigned for new or updated button block links.
return (
-
+
+
+
);
}
diff --git a/packages/block-library/src/button/style.scss b/packages/block-library/src/button/style.scss
index 40f44b71ace52b..69fc1a80f85dec 100644
--- a/packages/block-library/src/button/style.scss
+++ b/packages/block-library/src/button/style.scss
@@ -11,7 +11,6 @@ $blocks-button__height: 56px;
cursor: pointer;
display: inline-block;
font-size: $big-font-size;
- margin: 0;
padding: 12px 24px;
text-align: center;
text-decoration: none;
@@ -48,7 +47,7 @@ $blocks-button__height: 56px;
border-radius: 0 !important;
}
-.wp-block-button.is-style-outline,
+.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button__link.is-style-outline {
color: $dark-gray-700;
background-color: transparent;
diff --git a/packages/block-library/src/buttons/edit.js b/packages/block-library/src/buttons/edit.js
index d9b76ed8f1bcb6..f6aa94582b3a6c 100644
--- a/packages/block-library/src/buttons/edit.js
+++ b/packages/block-library/src/buttons/edit.js
@@ -4,6 +4,7 @@
import {
__experimentalAlignmentHookSettingsProvider as AlignmentHookSettingsProvider,
InnerBlocks,
+ __experimentalBlock as Block,
} from '@wordpress/block-editor';
/**
@@ -19,9 +20,9 @@ const alignmentHooksSetting = {
isEmbedButton: true,
};
-function ButtonsEdit( { className } ) {
+function ButtonsEdit() {
return (
-
+
);
}
diff --git a/packages/block-library/src/buttons/editor.scss b/packages/block-library/src/buttons/editor.scss
index 10838d577f0743..2a07114b65ad50 100644
--- a/packages/block-library/src/buttons/editor.scss
+++ b/packages/block-library/src/buttons/editor.scss
@@ -3,20 +3,18 @@
width: auto;
}
-.wp-block-buttons {
- &[data-align="center"] .block-editor-block-list__layout {
- display: flex;
- align-items: center;
- flex-wrap: wrap;
- justify-content: center;
- }
+.wp-block[data-align="center"] > .wp-block-buttons {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ justify-content: center;
+}
- &[data-align="right"] .block-editor-block-list__layout {
- display: flex;
- justify-content: flex-end;
- }
+.wp-block[data-align="right"] > .wp-block-buttons {
+ display: flex;
+ justify-content: flex-end;
+}
- .block-editor-block-list__layout > div:last-child {
- display: inline-block;
- }
+.wp-block-buttons .block-list-appender {
+ display: inline-block;
}
diff --git a/packages/block-library/src/buttons/icon.js b/packages/block-library/src/buttons/icon.js
deleted file mode 100644
index 73208af2f03f84..00000000000000
--- a/packages/block-library/src/buttons/icon.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { G, Path, SVG } from '@wordpress/components';
-
-export default (
-
-
-
-
-
-
-);
diff --git a/packages/block-library/src/buttons/index.js b/packages/block-library/src/buttons/index.js
index 4777968dd1e710..c9b6b6a7a74f89 100644
--- a/packages/block-library/src/buttons/index.js
+++ b/packages/block-library/src/buttons/index.js
@@ -26,6 +26,7 @@ export const settings = {
supports: {
align: true,
alignWide: false,
+ lightBlockWrapper: true,
},
transforms,
edit,
diff --git a/packages/block-library/src/calendar/block.json b/packages/block-library/src/calendar/block.json
new file mode 100644
index 00000000000000..945965be1b3bde
--- /dev/null
+++ b/packages/block-library/src/calendar/block.json
@@ -0,0 +1,19 @@
+{
+ "name": "core/calendar",
+ "category": "widgets",
+ "attributes": {
+ "align": {
+ "type": "string",
+ "enum": [ "left", "center", "right", "wide", "full" ]
+ },
+ "className": {
+ "type": "string"
+ },
+ "month": {
+ "type": "integer"
+ },
+ "year": {
+ "type": "integer"
+ }
+ }
+}
diff --git a/packages/block-library/src/calendar/icon.js b/packages/block-library/src/calendar/icon.js
deleted file mode 100644
index c89c33a333ea53..00000000000000
--- a/packages/block-library/src/calendar/icon.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { G, Path, SVG } from '@wordpress/components';
-
-export default (
-
-
-
-
-
-
-);
diff --git a/packages/block-library/src/calendar/index.js b/packages/block-library/src/calendar/index.js
index e49460b0ebafe5..f04f16f409b98b 100644
--- a/packages/block-library/src/calendar/index.js
+++ b/packages/block-library/src/calendar/index.js
@@ -1,21 +1,23 @@
/**
* WordPress dependencies
*/
-import { __ } from '@wordpress/i18n';
import { calendar as icon } from '@wordpress/icons';
+import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
+import metadata from './block.json';
import edit from './edit';
-export const name = 'core/calendar';
+const { name } = metadata;
+
+export { metadata, name };
export const settings = {
title: __( 'Calendar' ),
description: __( 'A calendar of your site’s posts.' ),
icon,
- category: 'widgets',
keywords: [ __( 'posts' ), __( 'archive' ) ],
supports: {
align: true,
diff --git a/packages/block-library/src/calendar/index.php b/packages/block-library/src/calendar/index.php
index 3d2e8061ba5d69..169adf2131edad 100644
--- a/packages/block-library/src/calendar/index.php
+++ b/packages/block-library/src/calendar/index.php
@@ -52,24 +52,9 @@ function render_block_core_calendar( $attributes ) {
* Registers the `core/calendar` block on server.
*/
function register_block_core_calendar() {
- register_block_type(
- 'core/calendar',
+ register_block_type_from_metadata(
+ __DIR__ . '/calendar',
array(
- 'attributes' => array(
- 'align' => array(
- 'type' => 'string',
- 'enum' => array( 'left', 'center', 'right', 'wide', 'full' ),
- ),
- 'className' => array(
- 'type' => 'string',
- ),
- 'month' => array(
- 'type' => 'integer',
- ),
- 'year' => array(
- 'type' => 'integer',
- ),
- ),
'render_callback' => 'render_block_core_calendar',
)
);
diff --git a/packages/block-library/src/categories/block.json b/packages/block-library/src/categories/block.json
new file mode 100644
index 00000000000000..ccc12b34336b90
--- /dev/null
+++ b/packages/block-library/src/categories/block.json
@@ -0,0 +1,25 @@
+{
+ "name": "core/categories",
+ "category": "widgets",
+ "attributes": {
+ "align": {
+ "type": "string",
+ "enum": [ "left", "center", "right", "wide", "full" ]
+ },
+ "className": {
+ "type": "string"
+ },
+ "displayAsDropdown": {
+ "type": "boolean",
+ "default": false
+ },
+ "showHierarchy": {
+ "type": "boolean",
+ "default": false
+ },
+ "showPostCounts": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+}
diff --git a/packages/block-library/src/categories/index.js b/packages/block-library/src/categories/index.js
index e7b8d9310e75cd..517f348a34178e 100644
--- a/packages/block-library/src/categories/index.js
+++ b/packages/block-library/src/categories/index.js
@@ -1,21 +1,23 @@
/**
* WordPress dependencies
*/
-import { __ } from '@wordpress/i18n';
import { category as icon } from '@wordpress/icons';
+import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
+import metadata from './block.json';
import edit from './edit';
-export const name = 'core/categories';
+const { name } = metadata;
+
+export { metadata, name };
export const settings = {
title: __( 'Categories' ),
description: __( 'Display a list of all categories.' ),
icon,
- category: 'widgets',
supports: {
align: true,
html: false,
diff --git a/packages/block-library/src/categories/index.php b/packages/block-library/src/categories/index.php
index 159bb8b799c469..34dc2c959d0bf7 100644
--- a/packages/block-library/src/categories/index.php
+++ b/packages/block-library/src/categories/index.php
@@ -89,30 +89,9 @@ function onCatChange() {
* Registers the `core/categories` block on server.
*/
function register_block_core_categories() {
- register_block_type(
- 'core/categories',
+ register_block_type_from_metadata(
+ __DIR__ . '/categories',
array(
- 'attributes' => array(
- 'align' => array(
- 'type' => 'string',
- 'enum' => array( 'left', 'center', 'right', 'wide', 'full' ),
- ),
- 'className' => array(
- 'type' => 'string',
- ),
- 'displayAsDropdown' => array(
- 'type' => 'boolean',
- 'default' => false,
- ),
- 'showHierarchy' => array(
- 'type' => 'boolean',
- 'default' => false,
- ),
- 'showPostCounts' => array(
- 'type' => 'boolean',
- 'default' => false,
- ),
- ),
'render_callback' => 'render_block_core_categories',
)
);
diff --git a/packages/block-library/src/code/transforms.js b/packages/block-library/src/code/transforms.js
index 585df87c0f7fa1..88b167f420300c 100644
--- a/packages/block-library/src/code/transforms.js
+++ b/packages/block-library/src/code/transforms.js
@@ -10,6 +10,15 @@ const transforms = {
regExp: /^```$/,
transform: () => createBlock( 'core/code' ),
},
+ {
+ type: 'block',
+ blocks: [ 'core/html' ],
+ transform: ( { content } ) => {
+ return createBlock( 'core/code', {
+ content,
+ } );
+ },
+ },
{
type: 'raw',
isMatch: ( node ) =>
diff --git a/packages/block-library/src/column/index.js b/packages/block-library/src/column/index.js
index 3df7bbde1dcf66..b6416b48868ae7 100644
--- a/packages/block-library/src/column/index.js
+++ b/packages/block-library/src/column/index.js
@@ -21,7 +21,6 @@ export const settings = {
icon,
description: __( 'A single column within a columns block.' ),
supports: {
- inserter: false,
reusable: false,
html: false,
lightBlockWrapper: true,
diff --git a/packages/block-library/src/columns/edit.js b/packages/block-library/src/columns/edit.js
index 372e535a931a8f..f5f3fc619f0d5a 100644
--- a/packages/block-library/src/columns/edit.js
+++ b/packages/block-library/src/columns/edit.js
@@ -8,7 +8,7 @@ import { dropRight, get, map, times } from 'lodash';
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
-import { PanelBody, RangeControl } from '@wordpress/components';
+import { PanelBody, RangeControl, Notice } from '@wordpress/components';
import {
InspectorControls,
@@ -78,8 +78,15 @@ function ColumnsEditContainer( {
value={ count }
onChange={ ( value ) => updateColumns( count, value ) }
min={ 2 }
- max={ 6 }
+ max={ Math.max( 6, count ) }
/>
+ { count > 6 && (
+
+ { __(
+ 'This column count exceeds the recommended amount and may cause visual breakage.'
+ ) }
+
+ ) }
>
);
diff --git a/packages/block-library/src/columns/edit.native.js b/packages/block-library/src/columns/edit.native.js
index a3394d02ed9657..f7308b035dd439 100644
--- a/packages/block-library/src/columns/edit.native.js
+++ b/packages/block-library/src/columns/edit.native.js
@@ -125,7 +125,6 @@ function ColumnsEditContainer( {
}
min={ MIN_COLUMNS_NUMBER }
max={ columnCount + 1 }
- separatorType={ 'none' }
type="stepper"
/>
diff --git a/packages/block-library/src/columns/editor.scss b/packages/block-library/src/columns/editor.scss
index d4928ac611d83a..1178fcaa9566d0 100644
--- a/packages/block-library/src/columns/editor.scss
+++ b/packages/block-library/src/columns/editor.scss
@@ -19,12 +19,10 @@
}
}
-// This is the style used on the front-end, which ideally should be loaded in
-// the editor too.
-.wp-block-column > *:first-child {
- margin-top: 0 !important;
-}
-
-.wp-block-column > *:last-child {
- margin-bottom: 0 !important;
+// Individual columns do not have top and bottom margins on the frontend.
+// So we make the editor match that.
+// Needs specificity.
+.block-editor-block-list__block.wp-block-column.wp-block-column {
+ margin-top: 0;
+ margin-bottom: 0;
}
diff --git a/packages/block-library/src/columns/index.js b/packages/block-library/src/columns/index.js
index dec1d8672e6974..92f5f68f154e43 100644
--- a/packages/block-library/src/columns/index.js
+++ b/packages/block-library/src/columns/index.js
@@ -3,7 +3,7 @@
*/
import { __ } from '@wordpress/i18n';
import { columns as icon } from '@wordpress/icons';
-
+import { Platform } from '@wordpress/element';
/**
* Internal dependencies
*/
@@ -27,7 +27,7 @@ export const settings = {
align: [ 'wide', 'full' ],
html: false,
lightBlockWrapper: true,
- __experimentalColor: { gradients: true },
+ __experimentalColor: Platform.OS === 'web' && { gradients: true },
},
variations,
example: {
diff --git a/packages/block-library/src/cover/edit.native.js b/packages/block-library/src/cover/edit.native.js
index 9efe434fe5fd47..9069acfedcf33e 100644
--- a/packages/block-library/src/cover/edit.native.js
+++ b/packages/block-library/src/cover/edit.native.js
@@ -50,6 +50,7 @@ import {
IMAGE_BACKGROUND_TYPE,
VIDEO_BACKGROUND_TYPE,
} from './shared';
+import OverlayColorSettings from './overlay-color-settings';
/**
* Constants
@@ -83,6 +84,7 @@ const Cover = ( {
url,
id,
style,
+ customOverlayColor,
} = attributes;
const CONTAINER_HEIGHT = minHeight || COVER_DEFAULT_HEIGHT;
@@ -168,6 +170,7 @@ const Cover = ( {
url && { opacity: dimRatio / 100 },
! gradientValue && {
backgroundColor:
+ customOverlayColor ||
overlayColor?.color ||
style?.color?.background ||
styles.overlay.color,
@@ -197,12 +200,15 @@ const Cover = ( {
const controls = (
+
.wp-block-cover,
+[data-align="right"] > .wp-block-cover,
+[data-align="left"] > .wp-block-cover-image,
+[data-align="right"] > .wp-block-cover-image {
+ max-width: $content-width / 2;
+ width: 100%;
}
.block-library-cover__reset-button {
diff --git a/packages/block-library/src/cover/overlay-color-settings.native.js b/packages/block-library/src/cover/overlay-color-settings.native.js
new file mode 100644
index 00000000000000..1e9c6e02c80227
--- /dev/null
+++ b/packages/block-library/src/cover/overlay-color-settings.native.js
@@ -0,0 +1,93 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { useSelect } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import {
+ getColorObjectByColorValue,
+ getColorObjectByAttributeValues,
+ getGradientValueBySlug,
+ getGradientSlugByValue,
+ __experimentalPanelColorGradientSettings as PanelColorGradientSettings,
+} from '@wordpress/block-editor';
+
+function OverlayColorSettings( { attributes, setAttributes } ) {
+ const { colors, gradients } = useSelect( ( select ) => {
+ return select( 'core/block-editor' ).getSettings();
+ }, [] );
+
+ const {
+ overlayColor,
+ customOverlayColor,
+ gradient,
+ customGradient,
+ } = attributes;
+
+ const gradientValue =
+ customGradient || getGradientValueBySlug( gradients, gradient );
+
+ const colorValue = getColorObjectByAttributeValues(
+ colors,
+ overlayColor,
+ customOverlayColor
+ ).color;
+
+ const setOverlayAttribute = ( attributeName, value ) => {
+ setAttributes( {
+ // clear all related attributes (only one should be set)
+ overlayColor: undefined,
+ customOverlayColor: undefined,
+ gradient: undefined,
+ customGradient: undefined,
+ [ attributeName ]: value,
+ } );
+ };
+
+ const onColorChange = ( value ) => {
+ // do nothing for falsy values
+ if ( ! value ) {
+ return;
+ }
+ const colorObject = getColorObjectByColorValue( colors, value );
+ if ( colorObject?.slug ) {
+ setOverlayAttribute( 'overlayColor', colorObject.slug );
+ } else {
+ setOverlayAttribute( 'customOverlayColor', value );
+ }
+ };
+
+ const onGradientChange = ( value ) => {
+ // do nothing for falsy values
+ if ( ! value ) {
+ return;
+ }
+ const slug = getGradientSlugByValue( gradients, value );
+ if ( slug ) {
+ setOverlayAttribute( 'gradient', slug );
+ } else {
+ setOverlayAttribute( 'customGradient', value );
+ }
+ };
+
+ return (
+
+ );
+}
+
+export default OverlayColorSettings;
diff --git a/packages/block-library/src/editor.scss b/packages/block-library/src/editor.scss
index 6dc247b6d744a5..cc2d9174f78232 100644
--- a/packages/block-library/src/editor.scss
+++ b/packages/block-library/src/editor.scss
@@ -29,6 +29,7 @@
@import "./nextpage/editor.scss";
@import "./paragraph/editor.scss";
@import "./post-excerpt/editor.scss";
+@import "./post-author/editor.scss";
@import "./pullquote/editor.scss";
@import "./quote/editor.scss";
@import "./rss/editor.scss";
@@ -60,7 +61,7 @@
// Provide every block with a default base margin. This margin provides a consistent spacing
// between blocks in the editor.
-.editor-styles-wrapper .block-editor-block-list__block {
+.block-editor-block-list__block {
margin-top: $default-block-margin;
margin-bottom: $default-block-margin;
}
diff --git a/packages/block-library/src/embed/core-embeds.js b/packages/block-library/src/embed/core-embeds.js
index 38d114b57d5d07..4445498dd57158 100644
--- a/packages/block-library/src/embed/core-embeds.js
+++ b/packages/block-library/src/embed/core-embeds.js
@@ -315,7 +315,7 @@ export const others = [
icon: embedPhotoIcon,
description: __( 'Embed SmugMug content.' ),
},
- patterns: [ /^https?:\/\/(www\.)?smugmug\.com\/.+/i ],
+ patterns: [ /^https?:\/\/(.+\.)?smugmug\.com\/.*/i ],
},
{
// Deprecated in favour of the core-embed/speaker-deck block.
diff --git a/packages/block-library/src/embed/index.js b/packages/block-library/src/embed/index.js
index 05facf83fd1b9c..76cb6e86e8828d 100644
--- a/packages/block-library/src/embed/index.js
+++ b/packages/block-library/src/embed/index.js
@@ -4,12 +4,12 @@
import { common as commonEmbeds, others as otherEmbeds } from './core-embeds';
import { embedContentIcon } from './icons';
import { getEmbedBlockSettings } from './settings';
+import transforms from './transforms';
/**
* WordPress dependencies
*/
import { __, _x } from '@wordpress/i18n';
-import { createBlock } from '@wordpress/blocks';
export const name = 'core/embed';
@@ -21,33 +21,27 @@ export const settings = getEmbedBlockSettings( {
icon: embedContentIcon,
// Unknown embeds should not be responsive by default.
responsive: false,
- transforms: {
- from: [
- {
- type: 'raw',
- isMatch: ( node ) =>
- node.nodeName === 'P' &&
- /^\s*(https?:\/\/\S+)\s*$/i.test( node.textContent ),
- transform: ( node ) => {
- return createBlock( 'core/embed', {
- url: node.textContent.trim(),
- } );
- },
- },
- ],
- },
+ transforms,
} );
export const common = commonEmbeds.map( ( embedDefinition ) => {
+ const embedSettings = getEmbedBlockSettings( embedDefinition.settings );
return {
...embedDefinition,
- settings: getEmbedBlockSettings( embedDefinition.settings ),
+ settings: {
+ ...embedSettings,
+ transforms,
+ },
};
} );
export const others = otherEmbeds.map( ( embedDefinition ) => {
+ const embedSettings = getEmbedBlockSettings( embedDefinition.settings );
return {
...embedDefinition,
- settings: getEmbedBlockSettings( embedDefinition.settings ),
+ settings: {
+ ...embedSettings,
+ transforms,
+ },
};
} );
diff --git a/packages/block-library/src/embed/style.scss b/packages/block-library/src/embed/style.scss
index 0905f04dd8e4e8..3028e00a8bd51a 100644
--- a/packages/block-library/src/embed/style.scss
+++ b/packages/block-library/src/embed/style.scss
@@ -1,6 +1,6 @@
// Apply max-width to floated items that have no intrinsic width
-.block-editor-block-list__block[data-type*="core-embed"][data-align="left"] .is-block-content,
-.block-editor-block-list__block[data-type*="core-embed"][data-align="right"] .is-block-content,
+.wp-block[data-align="left"] > .wp-block-embed,
+.wp-block[data-align="right"] > .wp-block-embed,
.wp-block-embed.alignleft,
.wp-block-embed.alignright {
// Instagram widgets have a min-width of 326px, so go a bit beyond that.
diff --git a/packages/block-library/src/embed/transforms.js b/packages/block-library/src/embed/transforms.js
new file mode 100644
index 00000000000000..42a73167ad47b8
--- /dev/null
+++ b/packages/block-library/src/embed/transforms.js
@@ -0,0 +1,38 @@
+/**
+ * WordPress dependencies
+ */
+import { renderToString } from '@wordpress/element';
+import { createBlock } from '@wordpress/blocks';
+
+/**
+ * Default transforms for generic embeds.
+ */
+const transforms = {
+ from: [
+ {
+ type: 'raw',
+ isMatch: ( node ) =>
+ node.nodeName === 'P' &&
+ /^\s*(https?:\/\/\S+)\s*$/i.test( node.textContent ),
+ transform: ( node ) => {
+ return createBlock( 'core/embed', {
+ url: node.textContent.trim(),
+ } );
+ },
+ },
+ ],
+ to: [
+ {
+ type: 'block',
+ blocks: [ 'core/paragraph' ],
+ transform: ( { url, caption } ) => {
+ const link = { caption || url } ;
+ return createBlock( 'core/paragraph', {
+ content: renderToString( link ),
+ } );
+ },
+ },
+ ],
+};
+
+export default transforms;
diff --git a/packages/block-library/src/gallery/edit.js b/packages/block-library/src/gallery/edit.js
index 3f77212f71990a..d33ee203ea62a9 100644
--- a/packages/block-library/src/gallery/edit.js
+++ b/packages/block-library/src/gallery/edit.js
@@ -54,17 +54,6 @@ const PLACEHOLDER_TEXT = Platform.select( {
native: __( 'ADD MEDIA' ),
} );
-// currently this is needed for consistent controls UI on mobile
-// this can be removed after control components settle on consistent defaults
-const MOBILE_CONTROL_PROPS = Platform.select( {
- web: {},
- native: { separatorType: 'fullWidth' },
-} );
-const MOBILE_CONTROL_PROPS_SEPARATOR_NONE = Platform.select( {
- web: {},
- native: { separatorType: 'none' },
-} );
-
const MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {
web: {},
native: { type: 'stepper' },
@@ -355,11 +344,10 @@ class GalleryEdit extends Component {
} = attributes;
const hasImages = !! images.length;
- const hasImagesWithId = hasImages && some( images, ( { id } ) => id );
const mediaPlaceholder = (
@@ -402,7 +386,6 @@ class GalleryEdit extends Component {
onChange={ this.setColumnsNumber }
min={ 1 }
max={ Math.min( MAX_COLUMNS, images.length ) }
- { ...MOBILE_CONTROL_PROPS }
{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }
required
/>
@@ -410,14 +393,12 @@ class GalleryEdit extends Component {
{
const [ isCaptionSelected, setIsCaptionSelected ] = useState( false );
useEffect( mediaUploadSync, [] );
+ const isRTL = useSelect( ( select ) => {
+ return !! select( 'core/block-editor' ).getSettings().isRTL;
+ }, [] );
+
const {
clientId,
selectedImage,
@@ -116,6 +121,7 @@ export const Gallery = ( props ) => {
}
caption={ img.caption }
aria-label={ ariaLabel }
+ isRTL={ isRTL }
/>
);
} ) }
diff --git a/packages/block-library/src/group/editor.scss b/packages/block-library/src/group/editor.scss
index 9371d7671bb8f3..dfa00d04c619d3 100644
--- a/packages/block-library/src/group/editor.scss
+++ b/packages/block-library/src/group/editor.scss
@@ -1,7 +1,11 @@
/**
* Group: All Alignment Settings
*/
-.wp-block[data-type="core/group"] {
+
+.wp-block-group {
+ // Zero out the baseline margin that is set for every block in the editor.
+ margin-top: 0;
+ margin-bottom: 0;
// Ensure not rendering outside the element
// as -1px causes overflow-x scrollbars
@@ -48,7 +52,7 @@
/**
* Group: Full Width Alignment
*/
-.wp-block[data-type="core/group"][data-align="full"] {
+.wp-block[data-align="full"] .wp-block-group {
// First tier of InnerBlocks must act like the container of the standard canvas
> div > .wp-block-group > .wp-block-group__inner-container > .block-editor-inner-blocks {
diff --git a/packages/block-library/src/group/icon.js b/packages/block-library/src/group/icon.js
deleted file mode 100644
index 8ec4a84f778a20..00000000000000
--- a/packages/block-library/src/group/icon.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { Path, SVG } from '@wordpress/components';
-
-export default (
-
-
-
-
-);
diff --git a/packages/block-library/src/group/index.js b/packages/block-library/src/group/index.js
index d07cf54f7256d8..28fa5ca74b4844 100644
--- a/packages/block-library/src/group/index.js
+++ b/packages/block-library/src/group/index.js
@@ -4,6 +4,7 @@
import { __ } from '@wordpress/i18n';
import { createBlock } from '@wordpress/blocks';
import { group as icon } from '@wordpress/icons';
+import { Platform } from '@wordpress/element';
/**
* Internal dependencies
@@ -92,7 +93,7 @@ export const settings = {
anchor: true,
html: false,
lightBlockWrapper: true,
- __experimentalColor: { gradients: true },
+ __experimentalColor: Platform.OS === 'web' && { gradients: true },
},
transforms: {
from: [
diff --git a/packages/block-library/src/heading/edit.js b/packages/block-library/src/heading/edit.js
index 28f9a6da5be576..524eee735b57c9 100644
--- a/packages/block-library/src/heading/edit.js
+++ b/packages/block-library/src/heading/edit.js
@@ -23,18 +23,15 @@ import {
} from '@wordpress/block-editor';
import { Platform } from '@wordpress/element';
-function HeadingEdit( { attributes, setAttributes, mergeBlocks, onReplace } ) {
- const { align, content, level, placeholder, style } = attributes;
+function HeadingEdit( {
+ attributes,
+ setAttributes,
+ mergeBlocks,
+ onReplace,
+ mergedStyle,
+} ) {
+ const { align, content, level, placeholder } = attributes;
const tagName = 'h' + level;
- const isAndroid = Platform.select( {
- android: true,
- native: false,
- web: false,
- } );
-
- const styles = {
- color: style && style.color && style.color.text,
- };
return (
<>
@@ -47,14 +44,12 @@ function HeadingEdit( { attributes, setAttributes, mergeBlocks, onReplace } ) {
setAttributes( { level: newLevel } )
}
/>
- { ! isAndroid && (
- {
- setAttributes( { align: nextAlign } );
- } }
- />
- ) }
+ {
+ setAttributes( { align: nextAlign } );
+ } }
+ />
{ Platform.OS === 'web' && (
@@ -95,7 +90,7 @@ function HeadingEdit( { attributes, setAttributes, mergeBlocks, onReplace } ) {
} ) }
placeholder={ placeholder || __( 'Write heading…' ) }
textAlign={ align }
- style={ styles }
+ style={ mergedStyle }
/>
>
);
diff --git a/packages/block-library/src/heading/index.js b/packages/block-library/src/heading/index.js
index 2b9eac45e956d7..524a0bd7fb7909 100644
--- a/packages/block-library/src/heading/index.js
+++ b/packages/block-library/src/heading/index.js
@@ -8,6 +8,7 @@ import { isEmpty } from 'lodash';
*/
import { heading as icon } from '@wordpress/icons';
import { __, sprintf } from '@wordpress/i18n';
+import { Platform } from '@wordpress/element';
/**
* Internal dependencies
@@ -34,7 +35,7 @@ export const settings = {
anchor: true,
__unstablePasteTextInline: true,
lightBlockWrapper: true,
- __experimentalColor: true,
+ __experimentalColor: Platform.OS === 'web',
__experimentalLineHeight: true,
__experimentalFontSize: true,
},
diff --git a/packages/block-library/src/html/index.js b/packages/block-library/src/html/index.js
index 78abd06156f10d..d1b5facbaeb749 100644
--- a/packages/block-library/src/html/index.js
+++ b/packages/block-library/src/html/index.js
@@ -10,6 +10,7 @@ import { html as icon } from '@wordpress/icons';
import edit from './edit';
import metadata from './block.json';
import save from './save';
+import transforms from './transforms';
const { name } = metadata;
@@ -35,4 +36,5 @@ export const settings = {
},
edit,
save,
+ transforms,
};
diff --git a/packages/block-library/src/html/transforms.js b/packages/block-library/src/html/transforms.js
new file mode 100644
index 00000000000000..6265acefc8f80f
--- /dev/null
+++ b/packages/block-library/src/html/transforms.js
@@ -0,0 +1,20 @@
+/**
+ * WordPress dependencies
+ */
+import { createBlock } from '@wordpress/blocks';
+
+const transforms = {
+ from: [
+ {
+ type: 'block',
+ blocks: [ 'core/code' ],
+ transform: ( { content } ) => {
+ return createBlock( 'core/html', {
+ content,
+ } );
+ },
+ },
+ ],
+};
+
+export default transforms;
diff --git a/packages/block-library/src/image/edit.js b/packages/block-library/src/image/edit.js
index 30ddaefd89602e..10ea6dbb3a15c6 100644
--- a/packages/block-library/src/image/edit.js
+++ b/packages/block-library/src/image/edit.js
@@ -399,9 +399,6 @@ export class ImageEdit extends Component {
src={ url }
/>
);
- const needsAlignmentWrapper = [ 'center', 'left', 'right' ].includes(
- align
- );
const mediaPlaceholder = (
{ controls }
-
- { needsAlignmentWrapper ? (
-
- { mediaPlaceholder }
-
- ) : (
- mediaPlaceholder
- ) }
-
+ { mediaPlaceholder }
>
);
}
@@ -445,7 +429,6 @@ export class ImageEdit extends Component {
'is-resized': !! width || !! height,
'is-focused': isSelected,
[ `size-${ sizeSlug }` ]: sizeSlug,
- [ `align${ align }` ]: align,
} );
const isResizable =
@@ -514,198 +497,185 @@ export class ImageEdit extends Component {
return (
<>
{ controls }
-
-
-
- { ( sizes ) => {
- const {
- imageWidthWithinContainer,
- imageHeightWithinContainer,
- imageWidth,
- imageHeight,
- } = sizes;
-
- const filename = this.getFilename( url );
- let defaultedAlt;
- if ( alt ) {
- defaultedAlt = alt;
- } else if ( filename ) {
- defaultedAlt = sprintf(
- /* translators: %s: file name */
- __(
- 'This image has an empty alt attribute; its file name is %s'
- ),
- filename
- );
- } else {
- defaultedAlt = __(
- 'This image has an empty alt attribute'
- );
- }
-
- const img = (
- // Disable reason: Image itself is not meant to be interactive, but
- // should direct focus to block.
- /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
- <>
-
- this.onImageError( url )
- }
- />
- { isBlobURL( url ) && }
- >
- /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
+
+
+ { ( sizes ) => {
+ const {
+ imageWidthWithinContainer,
+ imageHeightWithinContainer,
+ imageWidth,
+ imageHeight,
+ } = sizes;
+
+ const filename = this.getFilename( url );
+ let defaultedAlt;
+ if ( alt ) {
+ defaultedAlt = alt;
+ } else if ( filename ) {
+ defaultedAlt = sprintf(
+ /* translators: %s: file name */
+ __(
+ 'This image has an empty alt attribute; its file name is %s'
+ ),
+ filename
);
+ } else {
+ defaultedAlt = __(
+ 'This image has an empty alt attribute'
+ );
+ }
- if (
- ! isResizable ||
- ! imageWidthWithinContainer
- ) {
- return (
- <>
- { getInspectorControls(
- imageWidth,
- imageHeight
- ) }
-
- { img }
-
- >
- );
- }
-
- const currentWidth =
- width || imageWidthWithinContainer;
- const currentHeight =
- height || imageHeightWithinContainer;
-
- const ratio = imageWidth / imageHeight;
- const minWidth =
- imageWidth < imageHeight
- ? MIN_SIZE
- : MIN_SIZE * ratio;
- const minHeight =
- imageHeight < imageWidth
- ? MIN_SIZE
- : MIN_SIZE / ratio;
-
- // With the current implementation of ResizableBox, an image needs an explicit pixel value for the max-width.
- // In absence of being able to set the content-width, this max-width is currently dictated by the vanilla editor style.
- // The following variable adds a buffer to this vanilla style, so 3rd party themes have some wiggleroom.
- // This does, in most cases, allow you to scale the image beyond the width of the main column, though not infinitely.
- // @todo It would be good to revisit this once a content-width variable becomes available.
- const maxWidthBuffer = maxWidth * 2.5;
-
- let showRightHandle = false;
- let showLeftHandle = false;
-
- /* eslint-disable no-lonely-if */
- // See https://github.com/WordPress/gutenberg/issues/7584.
- if ( align === 'center' ) {
- // When the image is centered, show both handles.
- showRightHandle = true;
- showLeftHandle = true;
- } else if ( isRTL ) {
- // In RTL mode the image is on the right by default.
- // Show the right handle and hide the left handle only when it is aligned left.
- // Otherwise always show the left handle.
- if ( align === 'left' ) {
- showRightHandle = true;
- } else {
- showLeftHandle = true;
- }
- } else {
- // Show the left handle and hide the right handle only when the image is aligned right.
- // Otherwise always show the right handle.
- if ( align === 'right' ) {
- showLeftHandle = true;
- } else {
- showRightHandle = true;
- }
- }
- /* eslint-enable no-lonely-if */
+ const img = (
+ // Disable reason: Image itself is not meant to be interactive, but
+ // should direct focus to block.
+ /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
+ <>
+
+ this.onImageError( url )
+ }
+ />
+ { isBlobURL( url ) && }
+ >
+ /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
+ );
+ if (
+ ! isResizable ||
+ ! imageWidthWithinContainer
+ ) {
return (
<>
{ getInspectorControls(
imageWidth,
imageHeight
) }
- {
- onResizeStop();
- setAttributes( {
- width: parseInt(
- currentWidth +
- delta.width,
- 10
- ),
- height: parseInt(
- currentHeight +
- delta.height,
- 10
- ),
- } );
- } }
- >
+
{ img }
-
+
>
);
- } }
-
- { ( ! RichText.isEmpty( caption ) || isSelected ) && (
-
- setAttributes( { caption: value } )
+ }
+
+ const currentWidth =
+ width || imageWidthWithinContainer;
+ const currentHeight =
+ height || imageHeightWithinContainer;
+
+ const ratio = imageWidth / imageHeight;
+ const minWidth =
+ imageWidth < imageHeight
+ ? MIN_SIZE
+ : MIN_SIZE * ratio;
+ const minHeight =
+ imageHeight < imageWidth
+ ? MIN_SIZE
+ : MIN_SIZE / ratio;
+
+ // With the current implementation of ResizableBox, an image needs an explicit pixel value for the max-width.
+ // In absence of being able to set the content-width, this max-width is currently dictated by the vanilla editor style.
+ // The following variable adds a buffer to this vanilla style, so 3rd party themes have some wiggleroom.
+ // This does, in most cases, allow you to scale the image beyond the width of the main column, though not infinitely.
+ // @todo It would be good to revisit this once a content-width variable becomes available.
+ const maxWidthBuffer = maxWidth * 2.5;
+
+ let showRightHandle = false;
+ let showLeftHandle = false;
+
+ /* eslint-disable no-lonely-if */
+ // See https://github.com/WordPress/gutenberg/issues/7584.
+ if ( align === 'center' ) {
+ // When the image is centered, show both handles.
+ showRightHandle = true;
+ showLeftHandle = true;
+ } else if ( isRTL ) {
+ // In RTL mode the image is on the right by default.
+ // Show the right handle and hide the left handle only when it is aligned left.
+ // Otherwise always show the left handle.
+ if ( align === 'left' ) {
+ showRightHandle = true;
+ } else {
+ showLeftHandle = true;
+ }
+ } else {
+ // Show the left handle and hide the right handle only when the image is aligned right.
+ // Otherwise always show the right handle.
+ if ( align === 'right' ) {
+ showLeftHandle = true;
+ } else {
+ showRightHandle = true;
}
- isSelected={ this.state.captionFocused }
- inlineToolbar
- />
- ) }
-
- { mediaPlaceholder }
-
-
+ }
+ /* eslint-enable no-lonely-if */
+
+ return (
+ <>
+ { getInspectorControls(
+ imageWidth,
+ imageHeight
+ ) }
+ {
+ onResizeStop();
+ setAttributes( {
+ width: parseInt(
+ currentWidth + delta.width,
+ 10
+ ),
+ height: parseInt(
+ currentHeight +
+ delta.height,
+ 10
+ ),
+ } );
+ } }
+ >
+ { img }
+
+ >
+ );
+ } }
+
+ { ( ! RichText.isEmpty( caption ) || isSelected ) && (
+
+ setAttributes( { caption: value } )
+ }
+ isSelected={ this.state.captionFocused }
+ inlineToolbar
+ />
+ ) }
+
+ { mediaPlaceholder }
+
>
);
/* eslint-enable jsx-a11y/click-events-have-key-events */
diff --git a/packages/block-library/src/image/edit.native.js b/packages/block-library/src/image/edit.native.js
index b12126e57a8253..361abff6764cde 100644
--- a/packages/block-library/src/image/edit.native.js
+++ b/packages/block-library/src/image/edit.native.js
@@ -432,7 +432,6 @@ export class ImageEdit extends React.Component {
label={ __( 'Alt Text' ) }
value={ alt || '' }
valuePlaceholder={ __( 'None' ) }
- separatorType={ 'none' }
onChangeValue={ this.updateAlt }
/>
diff --git a/packages/block-library/src/image/editor.scss b/packages/block-library/src/image/editor.scss
index db7e48edcd73d8..961941e5b6dfc0 100644
--- a/packages/block-library/src/image/editor.scss
+++ b/packages/block-library/src/image/editor.scss
@@ -1,3 +1,7 @@
+figure.wp-block-image:not(.wp-block) {
+ margin: 0;
+}
+
.wp-block-image {
position: relative;
@@ -17,19 +21,6 @@
margin-top: -9px;
margin-left: -9px;
}
-
- // These need specificity to override an inherited left/right block margin in the editor.
- &.wp-block-image.alignleft {
- margin-right: 1em;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- }
-
- &.wp-block-image.alignright {
- margin-left: 1em;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- }
}
// This is necessary for the editor resize handles to accurately work on a non-floated, non-resized, small image.
@@ -48,18 +39,6 @@
display: block;
}
-.block-editor-block-list__block[data-type="core/image"][data-align="center"] {
- .wp-block-image {
- margin-left: auto;
- margin-right: auto;
- }
-
- &[data-resized="false"] .wp-block-image > div {
- margin-left: auto;
- margin-right: auto;
- }
-}
-
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal {
position: absolute;
left: 0;
@@ -71,26 +50,29 @@
}
}
-// Although the float markup is different in the editor compared to the frontend,
-// this CSS uses the same technique to allow floats in a wide images context.
-// That is, the block retains its centering and max-width, and a child inside
-// is floated instead of the block itself.
-[data-type="core/image"][data-align="center"],
-[data-type="core/image"][data-align="left"],
-[data-type="core/image"][data-align="right"] {
- figure {
- margin: 0;
+[data-align="wide"] > .wp-block-image,
+[data-align="full"] > .wp-block-image {
+ img {
+ width: 100%;
}
}
-[data-type="core/image"][data-align="wide"],
-[data-type="core/image"][data-align="full"] {
- figure img {
- width: 100%;
- }
+.wp-block[data-align="left"] > .wp-block-image {
+ margin-right: 1em;
+ margin-left: 0;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
}
-// This is similar to above but for resized unfloated images only, where the markup is different.
-[data-type="core/image"] figure.is-resized {
- margin: 0;
+.wp-block[data-align="right"] > .wp-block-image {
+ margin-left: 1em;
+ margin-right: 0;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+.wp-block[data-align="center"] > .wp-block-image {
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
}
diff --git a/packages/block-library/src/image/image-size.js b/packages/block-library/src/image/image-size.js
index 3958aafcbb714e..b7897284b13dd1 100644
--- a/packages/block-library/src/image/image-size.js
+++ b/packages/block-library/src/image/image-size.js
@@ -1,87 +1,52 @@
-/**
- * External dependencies
- */
-import { noop } from 'lodash';
-
/**
* WordPress dependencies
*/
import { withGlobalEvents } from '@wordpress/compose';
-import { Component } from '@wordpress/element';
+import { useRef, useState, useEffect } from '@wordpress/element';
/**
* Internal dependencies
*/
import { calculatePreferedImageSize } from './utils';
-class ImageSize extends Component {
- constructor() {
- super( ...arguments );
- this.state = {
- width: undefined,
- height: undefined,
- };
- this.bindContainer = this.bindContainer.bind( this );
- this.calculateSize = this.calculateSize.bind( this );
- }
-
- bindContainer( ref ) {
- this.container = ref;
- }
-
- componentDidUpdate( prevProps ) {
- if ( this.props.src !== prevProps.src ) {
- this.setState( {
- width: undefined,
- height: undefined,
+function ImageSize( { src, dirtynessTrigger, children } ) {
+ const ref = useRef();
+ const [ state, setState ] = useState( {
+ imageWidth: null,
+ imageHeight: null,
+ containerWidth: null,
+ containerHeight: null,
+ imageWidthWithinContainer: null,
+ imageHeightWithinContainer: null,
+ } );
+
+ useEffect( () => {
+ const image = new window.Image();
+
+ image.onload = () => {
+ const { width, height } = calculatePreferedImageSize(
+ image,
+ ref.current
+ );
+
+ setState( {
+ imageWidth: image.width,
+ imageHeight: image.height,
+ containerWidth: ref.current.clientWidth,
+ containerHeight: ref.current.clientHeight,
+ imageWidthWithinContainer: width,
+ imageHeightWithinContainer: height,
} );
- this.fetchImageSize();
- }
-
- if ( this.props.dirtynessTrigger !== prevProps.dirtynessTrigger ) {
- this.calculateSize();
- }
- }
-
- componentDidMount() {
- this.fetchImageSize();
- }
-
- componentWillUnmount() {
- if ( this.image ) {
- this.image.onload = noop;
- }
- }
-
- fetchImageSize() {
- this.image = new window.Image();
- this.image.onload = this.calculateSize;
- this.image.src = this.props.src;
- }
+ };
- calculateSize() {
- const { width, height } = calculatePreferedImageSize(
- this.image,
- this.container
- );
- this.setState( { width, height } );
- }
+ image.src = src;
- render() {
- const sizes = {
- imageWidth: this.image && this.image.width,
- imageHeight: this.image && this.image.height,
- containerWidth: this.container && this.container.clientWidth,
- containerHeight: this.container && this.container.clientHeight,
- imageWidthWithinContainer: this.state.width,
- imageHeightWithinContainer: this.state.height,
+ return () => {
+ image.onload = undefined;
};
- return (
-
- { this.props.children( sizes ) }
-
- );
- }
+ }, [ src, dirtynessTrigger ] );
+
+ return { children( state ) }
;
}
export default withGlobalEvents( {
diff --git a/packages/block-library/src/image/index.js b/packages/block-library/src/image/index.js
index 4d855ca15cd107..6b0c1fcb0b9b97 100644
--- a/packages/block-library/src/image/index.js
+++ b/packages/block-library/src/image/index.js
@@ -61,6 +61,11 @@ export const settings = {
return alt + ( caption ? '. ' + caption : '' );
}
},
+ getEditWrapperProps( attributes ) {
+ return {
+ 'data-align': attributes.align,
+ };
+ },
transforms,
edit,
save,
diff --git a/packages/block-library/src/image/style.scss b/packages/block-library/src/image/style.scss
index 7ad122489aeac9..26bc158c9224ca 100644
--- a/packages/block-library/src/image/style.scss
+++ b/packages/block-library/src/image/style.scss
@@ -16,18 +16,12 @@
width: 100%;
}
- // Floats get an extra wrapping element, so the
becomes a child.
.alignleft,
.alignright,
.aligncenter,
&.is-resized {
display: table;
- // The figure is born with left and right margin.
- // We remove this by default, and then customize it for left, right, and center.
- margin-left: 0;
- margin-right: 0;
-
> figcaption {
display: table-caption;
caption-side: bottom;
@@ -38,6 +32,7 @@
/*rtl:ignore*/
float: left;
/*rtl:ignore*/
+ margin-left: 0;
margin-right: 1em;
margin-top: 0.5em;
margin-bottom: 0.5em;
@@ -47,6 +42,7 @@
/*rtl:ignore*/
float: right;
/*rtl:ignore*/
+ margin-right: 0;
margin-left: 1em;
margin-top: 0.5em;
margin-bottom: 0.5em;
diff --git a/packages/block-library/src/index.native.js b/packages/block-library/src/index.native.js
index 6f6c5049eb7662..ea4eda6549b714 100644
--- a/packages/block-library/src/index.native.js
+++ b/packages/block-library/src/index.native.js
@@ -160,7 +160,7 @@ export const registerCoreBlocks = () => {
latestPosts,
devOnly( verse ),
cover,
- devOnly( pullquote ),
+ pullquote,
].forEach( registerBlock );
setDefaultBlockName( paragraph.name );
diff --git a/packages/block-library/src/latest-comments/block.json b/packages/block-library/src/latest-comments/block.json
new file mode 100644
index 00000000000000..a9ff05c39919f6
--- /dev/null
+++ b/packages/block-library/src/latest-comments/block.json
@@ -0,0 +1,31 @@
+{
+ "name": "core/latest-comments",
+ "category": "widgets",
+ "attributes": {
+ "align": {
+ "type": "string",
+ "enum": [ "left", "center", "right", "wide", "full" ]
+ },
+ "className": {
+ "type": "string"
+ },
+ "commentsToShow": {
+ "type": "number",
+ "default": 5,
+ "minimum": 1,
+ "maximum": 100
+ },
+ "displayAvatar": {
+ "type": "boolean",
+ "default": true
+ },
+ "displayDate": {
+ "type": "boolean",
+ "default": true
+ },
+ "displayExcerpt": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+}
diff --git a/packages/block-library/src/latest-comments/index.js b/packages/block-library/src/latest-comments/index.js
index f3d3a8346baf3f..b50e9e7b075605 100644
--- a/packages/block-library/src/latest-comments/index.js
+++ b/packages/block-library/src/latest-comments/index.js
@@ -1,21 +1,23 @@
/**
* WordPress dependencies
*/
-import { __ } from '@wordpress/i18n';
import { comment as icon } from '@wordpress/icons';
+import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
+import metadata from './block.json';
import edit from './edit';
-export const name = 'core/latest-comments';
+const { name } = metadata;
+
+export { metadata, name };
export const settings = {
title: __( 'Latest Comments' ),
description: __( 'Display a list of your most recent comments.' ),
icon,
- category: 'widgets',
keywords: [ __( 'recent comments' ) ],
supports: {
align: true,
diff --git a/packages/block-library/src/latest-comments/index.php b/packages/block-library/src/latest-comments/index.php
index d68e89a152fc48..20a38627929d0c 100644
--- a/packages/block-library/src/latest-comments/index.php
+++ b/packages/block-library/src/latest-comments/index.php
@@ -152,42 +152,9 @@ function render_block_core_latest_comments( $attributes = array() ) {
* Registers the `core/latest-comments` block.
*/
function register_block_core_latest_comments() {
- register_block_type(
- 'core/latest-comments',
+ register_block_type_from_metadata(
+ __DIR__ . '/latest-comments',
array(
- 'attributes' => array(
- 'align' => array(
- 'type' => 'string',
- 'enum' => array(
- 'left',
- 'center',
- 'right',
- 'wide',
- 'full',
- ),
- ),
- 'className' => array(
- 'type' => 'string',
- ),
- 'commentsToShow' => array(
- 'type' => 'number',
- 'default' => 5,
- 'minimum' => 1,
- 'maximum' => 100,
- ),
- 'displayAvatar' => array(
- 'type' => 'boolean',
- 'default' => true,
- ),
- 'displayDate' => array(
- 'type' => 'boolean',
- 'default' => true,
- ),
- 'displayExcerpt' => array(
- 'type' => 'boolean',
- 'default' => true,
- ),
- ),
'render_callback' => 'render_block_core_latest_comments',
)
);
diff --git a/packages/block-library/src/latest-posts/edit.native.js b/packages/block-library/src/latest-posts/edit.native.js
index 37af86b2036a3f..7ebd7557e3d8da 100644
--- a/packages/block-library/src/latest-posts/edit.native.js
+++ b/packages/block-library/src/latest-posts/edit.native.js
@@ -140,18 +140,12 @@ class LatestPostsEdit extends Component {
label={ __( 'Show post content' ) }
checked={ displayPostContent }
onChange={ this.onSetDisplayPostContent }
- separatorType={
- displayPostContent ? 'fullWidth' : 'none'
- }
/>
{ displayPostContent && (
) }
{ displayPostContent && displayExcerptPostContent && (
@@ -161,7 +155,6 @@ class LatestPostsEdit extends Component {
onChange={ this.onSetExcerptLength }
min={ MIN_EXCERPT_LENGTH }
max={ MAX_EXCERPT_LENGTH }
- separatorType="none"
/>
) }
@@ -171,10 +164,8 @@ class LatestPostsEdit extends Component {
label={ __( 'Display post date' ) }
checked={ displayPostDate }
onChange={ this.onSetDisplayPostDate }
- separatorType="none"
/>
-
-
-
-);
diff --git a/packages/block-library/src/latest-posts/index.php b/packages/block-library/src/latest-posts/index.php
index ea35484569e02a..7bdc612b4039c1 100644
--- a/packages/block-library/src/latest-posts/index.php
+++ b/packages/block-library/src/latest-posts/index.php
@@ -159,16 +159,10 @@ function render_block_core_latest_posts( $attributes ) {
* Registers the `core/latest-posts` block on server.
*/
function register_block_core_latest_posts() {
- $path = __DIR__ . '/latest-posts/block.json';
- $metadata = json_decode( file_get_contents( $path ), true );
-
- register_block_type(
- $metadata['name'],
- array_merge(
- $metadata,
- array(
- 'render_callback' => 'render_block_core_latest_posts',
- )
+ register_block_type_from_metadata(
+ __DIR__ . '/latest-posts',
+ array(
+ 'render_callback' => 'render_block_core_latest_posts',
)
);
}
diff --git a/packages/block-library/src/legacy-widget/block.json b/packages/block-library/src/legacy-widget/block.json
new file mode 100644
index 00000000000000..416bb7ad60c1b7
--- /dev/null
+++ b/packages/block-library/src/legacy-widget/block.json
@@ -0,0 +1,21 @@
+{
+ "name": "core/legacy-widget",
+ "category": "widgets",
+ "attributes": {
+ "widgetClass": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "idBase": {
+ "type": "string"
+ },
+ "number": {
+ "type": "number"
+ },
+ "instance": {
+ "type": "object"
+ }
+ }
+}
diff --git a/packages/block-library/src/legacy-widget/editor.scss b/packages/block-library/src/legacy-widget/editor.scss
index 6e1fac7167bd3b..f838cfe63433cc 100644
--- a/packages/block-library/src/legacy-widget/editor.scss
+++ b/packages/block-library/src/legacy-widget/editor.scss
@@ -1,9 +1,3 @@
-.wp-block-legacy-widget__edit-container,
-.wp-block-legacy-widget__preview {
- padding-left: 2.5em;
- padding-right: 2.5em;
-}
-
.wp-block-legacy-widget__edit-container {
.widget-inside {
border: none;
@@ -25,12 +19,15 @@
overflow: auto;
}
+.wp-block-legacy-widget__preview,
+.wp-block-legacy-widget__edit-container,
+.wp-block-legacy-widget__edit-widget-title {
+ padding: $grid-unit-10 $block-padding;
+}
+
.wp-block-legacy-widget__edit-widget-title {
- margin: 0 -$block-padding 0 -$block-padding+1px 0;
background: $light-gray-100;
color: $dark-gray-500;
- top: -$block-padding+1px;
- position: relative;
font-family: $default-font;
font-size: $default-font-size;
padding: $grid-unit-10 $block-padding;
diff --git a/packages/block-library/src/legacy-widget/index.js b/packages/block-library/src/legacy-widget/index.js
index 0b070a8d9d92a6..52353cd9778c2d 100644
--- a/packages/block-library/src/legacy-widget/index.js
+++ b/packages/block-library/src/legacy-widget/index.js
@@ -1,21 +1,23 @@
/**
* WordPress dependencies
*/
-import { __ } from '@wordpress/i18n';
import { widget as icon } from '@wordpress/icons';
+import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
+import metadata from './block.json';
import edit from './edit';
-export const name = 'core/legacy-widget';
+const { name } = metadata;
+
+export { metadata, name };
export const settings = {
title: __( 'Legacy Widget (Experimental)' ),
description: __( 'Display a legacy widget.' ),
icon,
- category: 'widgets',
supports: {
html: false,
customClassName: false,
diff --git a/packages/block-library/src/legacy-widget/index.php b/packages/block-library/src/legacy-widget/index.php
index 39e88c29dc1c3c..96d0ea82029ad7 100644
--- a/packages/block-library/src/legacy-widget/index.php
+++ b/packages/block-library/src/legacy-widget/index.php
@@ -101,26 +101,9 @@ function render_block_core_legacy_widget( $attributes ) {
* Register legacy widget block.
*/
function register_block_core_legacy_widget() {
- register_block_type(
- 'core/legacy-widget',
+ register_block_type_from_metadata(
+ __DIR__ . '/legacy-widget',
array(
- 'attributes' => array(
- 'widgetClass' => array(
- 'type' => 'string',
- ),
- 'id' => array(
- 'type' => 'string',
- ),
- 'idBase' => array(
- 'type' => 'string',
- ),
- 'number' => array(
- 'type' => 'number',
- ),
- 'instance' => array(
- 'type' => 'object',
- ),
- ),
'render_callback' => 'render_block_core_legacy_widget',
)
);
diff --git a/packages/block-library/src/list/edit.js b/packages/block-library/src/list/edit.js
index d10f443e2d4f88..f8b33606235f03 100644
--- a/packages/block-library/src/list/edit.js
+++ b/packages/block-library/src/list/edit.js
@@ -21,10 +21,15 @@ import {
} from '@wordpress/rich-text';
import {
formatListBullets,
+ formatListBulletsRTL,
formatListNumbered,
+ formatListNumberedRTL,
formatIndent,
+ formatIndentRTL,
formatOutdent,
+ formatOutdentRTL,
} from '@wordpress/icons';
+import { useSelect } from '@wordpress/data';
/**
* Internal dependencies
@@ -42,6 +47,10 @@ export default function ListEdit( {
const { ordered, values, type, reversed, start } = attributes;
const tagName = ordered ? 'ol' : 'ul';
+ const isRTL = useSelect( ( select ) => {
+ return !! select( 'core/block-editor' ).getSettings().isRTL;
+ }, [] );
+
const controls = ( { value, onChange, onFocus } ) => (
<>
{ isSelected && (
@@ -84,7 +93,9 @@ export default function ListEdit( {
setAttributes( { mediaPosition: 'left' } ),
},
{
- icon: pullRight,
+ icon: isRTL ? pullLeft : pullRight,
title: __( 'Show media on right' ),
isActive: mediaPosition === 'right',
onClick: () => setAttributes( { mediaPosition: 'right' } ),
@@ -302,6 +302,7 @@ export default compose(
getSelectedBlockClientId,
getBlockRootClientId,
getBlockParents,
+ getSettings,
} = select( 'core/block-editor' );
const parents = getBlockParents( clientId, true );
@@ -317,6 +318,7 @@ export default compose(
isSelected: selectedBlockClientId === clientId,
isParentSelected,
isAncestorSelected,
+ isRTL: getSettings().isRTL,
};
} )
)( MediaTextEdit );
diff --git a/packages/block-library/src/media-text/index.js b/packages/block-library/src/media-text/index.js
index db22f30b70abf0..b50e85eaca7a57 100644
--- a/packages/block-library/src/media-text/index.js
+++ b/packages/block-library/src/media-text/index.js
@@ -3,6 +3,7 @@
*/
import { __ } from '@wordpress/i18n';
import { mediaAndText as icon } from '@wordpress/icons';
+import { Platform } from '@wordpress/element';
/**
* Internal dependencies
@@ -25,7 +26,7 @@ export const settings = {
supports: {
align: [ 'wide', 'full' ],
html: false,
- __experimentalColor: { gradients: true },
+ __experimentalColor: Platform.OS === 'web' && { gradients: true },
},
example: {
attributes: {
diff --git a/packages/block-library/src/more/icon.js b/packages/block-library/src/more/icon.js
deleted file mode 100644
index 3e24c0d3d471e0..00000000000000
--- a/packages/block-library/src/more/icon.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { G, Path, SVG } from '@wordpress/components';
-
-export default (
-
-
-
-
-
-
-);
diff --git a/packages/block-library/src/navigation-link/edit.js b/packages/block-library/src/navigation-link/edit.js
index b20ca1e528eef6..60ebdb45a68c7a 100644
--- a/packages/block-library/src/navigation-link/edit.js
+++ b/packages/block-library/src/navigation-link/edit.js
@@ -212,7 +212,6 @@ function NavigationLinkEdit( {
diff --git a/packages/block-library/src/navigation-link/editor.scss b/packages/block-library/src/navigation-link/editor.scss
index af9a281b7f4756..94f988442ad25f 100644
--- a/packages/block-library/src/navigation-link/editor.scss
+++ b/packages/block-library/src/navigation-link/editor.scss
@@ -20,10 +20,6 @@
min-width: 20px;
}
- &.has-link .wp-block-navigation-link__label {
- text-decoration: underline;
- }
-
.block-editor-rich-text__editable.is-selected:not(.keep-placeholder-on-focus):not(:focus)[data-rich-text-placeholder]::after {
display: inline-block;
}
diff --git a/packages/block-library/src/navigation/block-navigation-list.js b/packages/block-library/src/navigation/block-navigation-list.js
index 43bc0793e057e0..e1e8a2b45a91b1 100644
--- a/packages/block-library/src/navigation/block-navigation-list.js
+++ b/packages/block-library/src/navigation/block-navigation-list.js
@@ -1,10 +1,13 @@
/**
* WordPress dependencies
*/
-import { __experimentalBlockNavigationList } from '@wordpress/block-editor';
+import { __experimentalBlockNavigationTree } from '@wordpress/block-editor';
import { useSelect, useDispatch } from '@wordpress/data';
-export default function BlockNavigationList( { clientId } ) {
+export default function BlockNavigationList( {
+ clientId,
+ __experimentalWithBlockNavigationSlots,
+} ) {
const { block, selectedBlockClientId } = useSelect(
( select ) => {
const { getSelectedBlockClientId, getBlock } = select(
@@ -22,12 +25,16 @@ export default function BlockNavigationList( { clientId } ) {
const { selectBlock } = useDispatch( 'core/block-editor' );
return (
- <__experimentalBlockNavigationList
+ <__experimentalBlockNavigationTree
blocks={ [ block ] }
selectedBlockClientId={ selectedBlockClientId }
selectBlock={ selectBlock }
+ __experimentalWithBlockNavigationSlots={
+ __experimentalWithBlockNavigationSlots
+ }
showNestedBlocks
showAppender
+ showBlockMovers
/>
);
}
diff --git a/packages/block-library/src/navigation/edit.js b/packages/block-library/src/navigation/edit.js
index 79b610c42dfa3c..4f9c708d20592f 100644
--- a/packages/block-library/src/navigation/edit.js
+++ b/packages/block-library/src/navigation/edit.js
@@ -31,7 +31,7 @@ import {
} from '@wordpress/components';
import { compose } from '@wordpress/compose';
import { __ } from '@wordpress/i18n';
-import { menu } from '@wordpress/icons';
+import { navigation as icon } from '@wordpress/icons';
/**
* Internal dependencies
@@ -82,7 +82,8 @@ function Navigation( {
);
const { navigatorToolbarButton, navigatorModal } = useBlockNavigator(
- clientId
+ clientId,
+ true
);
// Builds navigation links from default Pages.
@@ -141,7 +142,7 @@ function Navigation( {
-
+
.wp-block-navigation__container {
+ opacity: 0;
+ visibility: hidden;
+ }
+ }
+
+ &.is-selected,
+ &.has-child-selected {
+ > .wp-block-navigation__container {
+ opacity: 1;
+ visibility: visible;
+ }
+ }
+
+ // Adjust the appender margin to match other menu items
+ .wp-block-navigation__container {
+ .block-list-appender .block-editor-button-block-appender {
+ margin-left: $grid-unit-10 * 2;
+ }
+ }
+}
+
/**
* Colors Selector component
*/
diff --git a/packages/block-library/src/navigation/style.scss b/packages/block-library/src/navigation/style.scss
index 3c7488427ed76a..c01d12d90e4377 100644
--- a/packages/block-library/src/navigation/style.scss
+++ b/packages/block-library/src/navigation/style.scss
@@ -21,28 +21,62 @@
position: relative;
margin: 0;
padding: $grid-unit-10;
+
+ .wp-block-navigation__container:empty {
+ display: none;
+ }
}
// Styles for submenu flyout
.has-child {
+ $navigation-vertical-padding: $grid-unit-10 * 0.75;
.wp-block-navigation__container {
border: $border-width solid rgba(0, 0, 0, 0.15);
- padding: $grid-unit-10 * 0.75 $grid-unit-10 * 2;
+ padding: $navigation-vertical-padding 0;
background-color: inherit;
color: inherit;
position: absolute;
left: 0;
top: 100%;
+ width: fit-content;
z-index: 1;
opacity: 0;
transition: opacity 0.1s linear;
visibility: hidden;
- // Nested submenus sit to the left on large breakpoints
+ > .wp-block-navigation-link {
+ font-size: 15px;
+
+ > .wp-block-navigation-link__content {
+ flex-grow: 1;
+ }
+ > .wp-block-navigation-link__submenu-icon {
+ padding-right: $grid-unit-10;
+ }
+ }
+
@include break-medium {
+ left: $grid-unit-30;
+
+ // Nested submenus sit to the left on large breakpoints
.wp-block-navigation__container {
- left: 100%;
- top: -$border-width;
+ left: calc(100% + #{$grid-unit-10});
+ top: -$border-width - $navigation-vertical-padding;
+
+ // Prevent the menu from disappearing when the mouse is over the gap
+ &::before {
+ content: "";
+ position: absolute;
+ right: 100%;
+ height: 100%;
+ display: block;
+ width: $grid-unit-10;
+ background: transparent;
+ }
+ }
+
+ .wp-block-navigation-link__submenu-icon svg {
+ transform: rotate(0);
}
}
}
@@ -73,6 +107,7 @@
// All links
.wp-block-navigation-link__content {
+ text-decoration: none;
padding: $grid-unit-10 * 0.75 $grid-unit-10 * 2;
.has-text-color & {
@@ -81,45 +116,48 @@
}
.wp-block-navigation-link__label {
+ font-size: 17px;
+ font-family: $default-font;
+
word-break: normal;
overflow-wrap: break-word;
}
.wp-block-navigation-link__submenu-icon {
+ height: inherit;
padding: $grid-unit-10 * 0.75 $grid-unit-10 * 2;
svg {
fill: currentColor;
@include break-medium {
- // reset rotation of submenu indicator icons on nested levels
- transform: rotate(0);
+ transform: rotate(90deg);
}
}
}
// Default / Light styles
-.wp-block-navigation-link,
-.is-style-light .wp-block-navigation-link {
- &:not(.has-text-color) .wp-block-navigation-link__content {
+.wp-block-navigation,
+.wp-block-navigation.is-style-light {
+ .wp-block-navigation-link:not(.has-text-color) {
color: $light-style-sub-menu-text-color;
}
-}
-.is-style-light:not(.has-background) .wp-block-navigation__container {
- background-color: $light-style-sub-menu-background-color;
+ &:not(.has-background) .wp-block-navigation__container {
+ background-color: $light-style-sub-menu-background-color;
+ }
}
// Dark styles.
-.is-style-dark .wp-block-navigation-link {
- &:not(.has-text-color) .wp-block-navigation-link__content {
+.wp-block-navigation.is-style-dark {
+ .wp-block-navigation-link:not(.has-text-color) {
color: $dark-style-sub-menu-text-color;
}
-}
-.is-style-dark:not(.has-background) .wp-block-navigation__container {
- background-color: $dark-style-sub-menu-background-color;
+ &:not(.has-background) .wp-block-navigation__container {
+ background-color: $dark-style-sub-menu-background-color;
+ }
}
-// Jutification.
+// Justification.
.items-justified-left > ul {
justify-content: flex-start;
}
diff --git a/packages/block-library/src/navigation/use-block-navigator.js b/packages/block-library/src/navigation/use-block-navigator.js
index 233bb099646fdc..c71552a38407a9 100644
--- a/packages/block-library/src/navigation/use-block-navigator.js
+++ b/packages/block-library/src/navigation/use-block-navigator.js
@@ -21,7 +21,10 @@ const NavigatorIcon = (
);
-export default function useBlockNavigator( clientId ) {
+export default function useBlockNavigator(
+ clientId,
+ __experimentalWithBlockNavigationSlots
+) {
const [ isNavigationListOpen, setIsNavigationListOpen ] = useState( false );
const navigatorToolbarButton = (
@@ -41,7 +44,12 @@ export default function useBlockNavigator( clientId ) {
setIsNavigationListOpen( false );
} }
>
-
+
);
diff --git a/packages/block-library/src/paragraph/edit.js b/packages/block-library/src/paragraph/edit.js
index bcae630f0e5ac9..f04f0c30e8b566 100644
--- a/packages/block-library/src/paragraph/edit.js
+++ b/packages/block-library/src/paragraph/edit.js
@@ -15,6 +15,7 @@ import {
RichText,
__experimentalBlock as Block,
getFontSize,
+ __experimentalUseEditorFeature as useEditorFeature,
} from '@wordpress/block-editor';
import { createBlock } from '@wordpress/blocks';
import { useSelect } from '@wordpress/data';
@@ -55,9 +56,21 @@ function ParagraphRTLToolbar( { direction, setDirection } ) {
);
}
-function useDropCapMinimumHeight( isDropCap, deps ) {
+function useDropCap( isDropCap, fontSize, styleFontSize ) {
+ const isDisabled = useEditorFeature( '__experimentalDisableDropCap' );
+
const [ minimumHeight, setMinimumHeight ] = useState();
+
+ const { fontSizes } = useSelect( ( select ) =>
+ select( 'core/block-editor' ).getSettings()
+ );
+
+ const fontSizeObject = getFontSize( fontSizes, fontSize, styleFontSize );
useEffect( () => {
+ if ( isDisabled ) {
+ return;
+ }
+
const element = querySelector( PARAGRAPH_DROP_CAP_SELECTOR );
if ( isDropCap && element ) {
setMinimumHeight(
@@ -66,14 +79,22 @@ function useDropCapMinimumHeight( isDropCap, deps ) {
} else if ( minimumHeight ) {
setMinimumHeight( undefined );
}
- }, [ isDropCap, minimumHeight, setMinimumHeight, ...deps ] );
- return minimumHeight;
+ }, [
+ isDisabled,
+ isDropCap,
+ minimumHeight,
+ setMinimumHeight,
+ fontSizeObject.size,
+ ] );
+
+ return [ ! isDisabled, minimumHeight ];
}
function ParagraphBlock( {
attributes,
mergeBlocks,
onReplace,
+ onRemove,
setAttributes,
} ) {
const {
@@ -85,14 +106,12 @@ function ParagraphBlock( {
fontSize,
style,
} = attributes;
- const { fontSizes } = useSelect( ( select ) =>
- select( 'core/block-editor' ).getSettings()
- );
const ref = useRef();
- const fontSizeObject = getFontSize( fontSizes, fontSize, style?.fontSize );
- const dropCapMinimumHeight = useDropCapMinimumHeight( dropCap, [
- fontSizeObject.size,
- ] );
+ const [ isDropCapEnabled, dropCapMinimumHeight ] = useDropCap(
+ dropCap,
+ fontSize,
+ style?.fontSize
+ );
const styles = {
direction,
@@ -116,20 +135,24 @@ function ParagraphBlock( {
/>
-
-
- setAttributes( { dropCap: ! dropCap } )
- }
- help={
- dropCap
- ? __( 'Showing large initial letter.' )
- : __( 'Toggle to show a large initial letter.' )
- }
- />
-
+ { isDropCapEnabled && (
+
+
+ setAttributes( { dropCap: ! dropCap } )
+ }
+ help={
+ dropCap
+ ? __( 'Showing large initial letter.' )
+ : __(
+ 'Toggle to show a large initial letter.'
+ )
+ }
+ />
+
+ ) }
onReplace( [] ) : undefined }
+ onRemove={ onRemove }
aria-label={
content
? __( 'Paragraph block' )
diff --git a/packages/block-library/src/paragraph/edit.native.js b/packages/block-library/src/paragraph/edit.native.js
index 1027f46371508a..69ddf8ee4df44b 100644
--- a/packages/block-library/src/paragraph/edit.native.js
+++ b/packages/block-library/src/paragraph/edit.native.js
@@ -8,6 +8,7 @@ import {
BlockControls,
RichText,
} from '@wordpress/block-editor';
+import { useSelect } from '@wordpress/data';
const name = 'core/paragraph';
@@ -16,13 +17,18 @@ function ParagraphBlock( {
mergeBlocks,
onReplace,
setAttributes,
- style: oldStyle,
+ mergedStyle,
+ style,
} ) {
- const { align, content, placeholder, style } = attributes;
+ const isRTL = useSelect( ( select ) => {
+ return !! select( 'core/block-editor' ).getSettings().isRTL;
+ }, [] );
+
+ const { align, content, placeholder } = attributes;
const styles = {
- ...oldStyle,
- color: style && style.color && style.color.text,
+ ...mergedStyle,
+ ...style,
};
return (
@@ -30,6 +36,7 @@ function ParagraphBlock( {
{
setAttributes( { align: nextAlign } );
} }
diff --git a/packages/block-library/src/paragraph/editor.scss b/packages/block-library/src/paragraph/editor.scss
index d0afb9ca839208..469d0c0626695f 100644
--- a/packages/block-library/src/paragraph/editor.scss
+++ b/packages/block-library/src/paragraph/editor.scss
@@ -2,12 +2,3 @@
.block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus {
min-height: auto !important;
}
-
-@keyframes block-editor-block-list__block-fade-out-animation {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- }
-}
diff --git a/packages/block-library/src/paragraph/index.js b/packages/block-library/src/paragraph/index.js
index 0e76e74adc338f..e1711a67de97d2 100644
--- a/packages/block-library/src/paragraph/index.js
+++ b/packages/block-library/src/paragraph/index.js
@@ -8,6 +8,7 @@ import { isEmpty } from 'lodash';
*/
import { __ } from '@wordpress/i18n';
import { paragraph as icon } from '@wordpress/icons';
+import { Platform } from '@wordpress/element';
/**
* Internal dependencies
@@ -44,7 +45,7 @@ export const settings = {
className: false,
__unstablePasteTextInline: true,
lightBlockWrapper: true,
- __experimentalColor: true,
+ __experimentalColor: Platform.OS === 'web',
__experimentalLineHeight: true,
__experimentalFontSize: true,
},
diff --git a/packages/block-library/src/post-author/block.json b/packages/block-library/src/post-author/block.json
index a3da72b6d86518..432d2f35508a6f 100644
--- a/packages/block-library/src/post-author/block.json
+++ b/packages/block-library/src/post-author/block.json
@@ -1,4 +1,34 @@
{
"name": "core/post-author",
- "category": "layout"
+ "category": "layout",
+ "attributes": {
+ "align": {
+ "type": "string"
+ },
+ "avatarSize": {
+ "type": "number"
+ },
+ "showAvatar": {
+ "type": "boolean"
+ },
+ "showBio": {
+ "type": "boolean"
+ },
+ "byline": {
+ "type": "string"
+ },
+ "backgroundColor": {
+ "type": "string"
+ },
+ "textColor": {
+ "type": "string"
+ },
+ "customBackgroundColor": {
+ "type": "string"
+ },
+ "customTextColor": {
+ "type": "string"
+ }
+ },
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-author/edit.js b/packages/block-library/src/post-author/edit.js
index 05ab61f3ef92a7..84394b41531b08 100644
--- a/packages/block-library/src/post-author/edit.js
+++ b/packages/block-library/src/post-author/edit.js
@@ -1,31 +1,253 @@
+/**
+ * External dependencies
+ */
+import { forEach } from 'lodash';
+import classnames from 'classnames';
+
/**
* WordPress dependencies
*/
-import { useEntityProp, useEntityId } from '@wordpress/core-data';
+import apiFetch from '@wordpress/api-fetch';
+import { useRef, useState } from '@wordpress/element';
+import { useEntityProp } from '@wordpress/core-data';
+import {
+ AlignmentToolbar,
+ BlockControls,
+ FontSizePicker,
+ InspectorControls,
+ RichText,
+ __experimentalUseColors,
+ BlockColorsStyleSelector,
+ withFontSizes,
+} from '@wordpress/block-editor';
+import { PanelBody, SelectControl, ToggleControl } from '@wordpress/components';
import { useSelect } from '@wordpress/data';
-import { sprintf, __ } from '@wordpress/i18n';
-
-function PostAuthorDisplay() {
- const [ authorId ] = useEntityProp( 'postType', 'post', 'author' );
- const author = useSelect(
- ( select ) =>
- select( 'core' ).getEntityRecord( 'root', 'user', authorId ),
- [ authorId ]
+import { __ } from '@wordpress/i18n';
+
+const DEFAULT_AVATAR_SIZE = 24;
+
+async function getAuthorDetails( authorId, setAuthorDetails ) {
+ const authorDetails = await apiFetch( {
+ path: '/wp/v2/users/' + authorId + '?context=edit',
+ } );
+ setAuthorDetails( authorDetails );
+}
+
+function PostAuthorDisplay( {
+ postAuthor,
+ setPostAuthor,
+ authorDetails,
+ setAuthorDetails,
+ props,
+} ) {
+ const ref = useRef();
+
+ const { authors } = useSelect( ( select ) => ( {
+ authors: select( 'core' ).getAuthors(),
+ } ) );
+
+ const { isSelected, fontSize, setFontSize } = props;
+ const {
+ TextColor,
+ BackgroundColor,
+ InspectorControlsColorPanel,
+ ColorPanel,
+ } = __experimentalUseColors(
+ [
+ { name: 'textColor', property: 'color' },
+ { name: 'backgroundColor', className: 'background-color' },
+ ],
+ {
+ contrastCheckers: [
+ {
+ backgroundColor: true,
+ textColor: true,
+ fontSize: fontSize.size,
+ },
+ ],
+ colorDetector: { targetRef: ref },
+ colorPanelProps: {
+ initialOpen: true,
+ },
+ },
+ [ fontSize.size ]
+ );
+
+ const { align, showAvatar, showBio, byline } = props.attributes;
+
+ const avatarSizes = [];
+ if ( authorDetails ) {
+ forEach( authorDetails.avatar_urls, ( url, size ) => {
+ avatarSizes.push( {
+ value: size,
+ label: `${ size } x ${ size }`,
+ } );
+ } );
+ }
+
+ let avatarSize = DEFAULT_AVATAR_SIZE;
+ if ( !! props.attributes.avatarSize ) {
+ avatarSize = props.attributes.avatarSize;
+ }
+
+ const blockClassNames = classnames( 'wp-block-post-author', {
+ [ fontSize.class ]: fontSize.class,
+ } );
+ const blockInlineStyles = {
+ fontSize: fontSize.size ? fontSize.size + 'px' : undefined,
+ };
+
+ return (
+ <>
+
+
+ {
+ return {
+ value: id,
+ label: name,
+ };
+ } ) }
+ onChange={ ( newAuthorId ) => {
+ setPostAuthor( newAuthorId );
+ getAuthorDetails( newAuthorId, setAuthorDetails );
+ } }
+ />
+
+ props.setAttributes( { showAvatar: ! showAvatar } )
+ }
+ />
+ { showAvatar && (
+ {
+ props.setAttributes( {
+ avatarSize: Number( size ),
+ } );
+ } }
+ />
+ ) }
+
+ props.setAttributes( { showBio: ! showBio } )
+ }
+ />
+
+
+
+
+
+
+ { InspectorControlsColorPanel }
+
+
+ {
+ props.setAttributes( { align: nextAlign } );
+ } }
+ />
+
+ { ColorPanel }
+
+
+
+
+
+
+ { showAvatar && authorDetails && (
+
+
+
+ ) }
+
+ { ( ! RichText.isEmpty( byline ) ||
+ isSelected ) && (
+
+ props.setAttributes( { byline: value } )
+ }
+ />
+ ) }
+
+ { authorDetails.name }
+
+ { showBio && (
+
+ { authorDetails.description }
+
+ ) }
+
+
+
+
+ >
);
- return author ? (
-
- { sprintf(
- /* translators: %s: author name. */
- __( 'By %s' ),
- author.name
- ) }
-
- ) : null;
}
-export default function PostAuthorEdit() {
- if ( ! useEntityId( 'postType', 'post' ) ) {
+function PostAuthorEdit( props ) {
+ const [ postAuthor, setPostAuthor ] = useEntityProp(
+ 'postType',
+ 'post',
+ 'author'
+ );
+
+ const [ authorDetails, setAuthorDetails ] = useState( false );
+
+ if ( ! postAuthor ) {
return 'Post Author Placeholder';
}
- return ;
+
+ if ( ! authorDetails ) {
+ getAuthorDetails( postAuthor, setAuthorDetails );
+ }
+
+ return (
+
+ );
}
+
+export default withFontSizes( 'fontSize' )( PostAuthorEdit );
diff --git a/packages/block-library/src/post-author/editor.scss b/packages/block-library/src/post-author/editor.scss
new file mode 100644
index 00000000000000..65c919a25155cd
--- /dev/null
+++ b/packages/block-library/src/post-author/editor.scss
@@ -0,0 +1,34 @@
+.block-editor__container .wp-block-post-author {
+ display: flex;
+ flex-wrap: wrap;
+ line-height: 1.5;
+}
+
+.wp-block-post-author__byline {
+ color: $dark-gray-300;
+ font-size: $default-font-size;
+ margin-top: 0;
+ position: relative;
+ font-style: normal;
+}
+
+.wp-block-post-author__content {
+ flex-grow: 1;
+ flex-basis: 0;
+}
+
+.block-editor__container .wp-block-post-author__avatar img {
+ margin: 0;
+}
+
+.block-editor__container .wp-block-post-author__name {
+ margin: 0;
+ margin-top: -$grid-unit-20/2;
+ margin-bottom: -$grid-unit-20/2;
+ font-weight: bold;
+}
+
+.block-editor__container .wp-block-post-author__bio {
+ margin: 0;
+ margin-top: $grid-unit-20;
+}
diff --git a/packages/block-library/src/post-author/icon.js b/packages/block-library/src/post-author/icon.js
new file mode 100644
index 00000000000000..87fa4ecf2a52fb
--- /dev/null
+++ b/packages/block-library/src/post-author/icon.js
@@ -0,0 +1,10 @@
+/**
+ * WordPress dependencies
+ */
+import { Path, SVG } from '@wordpress/components';
+
+export default (
+
+
+
+);
diff --git a/packages/block-library/src/post-author/index.js b/packages/block-library/src/post-author/index.js
index 89496e03516008..37ab0d3ee7fcaf 100644
--- a/packages/block-library/src/post-author/index.js
+++ b/packages/block-library/src/post-author/index.js
@@ -8,12 +8,14 @@ import { __ } from '@wordpress/i18n';
*/
import metadata from './block.json';
import edit from './edit';
+import icon from './icon';
const { name } = metadata;
export { metadata, name };
export const settings = {
title: __( 'Post Author' ),
+ icon,
supports: {
html: false,
},
diff --git a/packages/block-library/src/post-author/index.php b/packages/block-library/src/post-author/index.php
index 57f1895f6cb0c6..d629b4267d012c 100644
--- a/packages/block-library/src/post-author/index.php
+++ b/packages/block-library/src/post-author/index.php
@@ -5,18 +5,138 @@
* @package WordPress
*/
+/**
+ * Build an array with CSS classes and inline styles defining the colors
+ * which will be applied to the navigation markup in the front-end.
+ *
+ * @param array $attributes Navigation block attributes.
+ * @return array Colors CSS classes and inline styles.
+ */
+function post_author_build_css_colors( $attributes ) {
+ $colors = array(
+ 'css_classes' => array(),
+ 'inline_styles' => '',
+ );
+
+ // Text color.
+ $has_named_text_color = array_key_exists( 'textColor', $attributes );
+ $has_custom_text_color = array_key_exists( 'customTextColor', $attributes );
+
+ // If has text color.
+ if ( $has_custom_text_color || $has_named_text_color ) {
+ // Add has-text-color class.
+ $colors['css_classes'][] = 'has-text-color';
+ }
+
+ if ( $has_named_text_color ) {
+ // Add the color class.
+ $colors['css_classes'][] = sprintf( 'has-%s-color', $attributes['textColor'] );
+ } elseif ( $has_custom_text_color ) {
+ // Add the custom color inline style.
+ $colors['inline_styles'] .= sprintf( 'color: %s;', $attributes['customTextColor'] );
+ }
+
+ // Background color.
+ $has_named_background_color = array_key_exists( 'backgroundColor', $attributes );
+ $has_custom_background_color = array_key_exists( 'customBackgroundColor', $attributes );
+
+ // If has background color.
+ if ( $has_custom_background_color || $has_named_background_color ) {
+ // Add has-background-color class.
+ $colors['css_classes'][] = 'has-background-color';
+ }
+
+ if ( $has_named_background_color ) {
+ // Add the background-color class.
+ $colors['css_classes'][] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] );
+ } elseif ( $has_custom_background_color ) {
+ // Add the custom background-color inline style.
+ $colors['inline_styles'] .= sprintf( 'background-color: %s;', $attributes['customBackgroundColor'] );
+ }
+
+ return $colors;
+}
+
+/**
+ * Build an array with CSS classes and inline styles defining the font sizes
+ * which will be applied to the navigation markup in the front-end.
+ *
+ * @param array $attributes Navigation block attributes.
+ * @return array Font size CSS classes and inline styles.
+ */
+function post_author_build_css_font_sizes( $attributes ) {
+ // CSS classes.
+ $font_sizes = array(
+ 'css_classes' => array(),
+ 'inline_styles' => '',
+ );
+
+ $has_named_font_size = array_key_exists( 'fontSize', $attributes );
+ $has_custom_font_size = array_key_exists( 'customFontSize', $attributes );
+
+ if ( $has_named_font_size ) {
+ // Add the font size class.
+ $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $attributes['fontSize'] );
+ } elseif ( $has_custom_font_size ) {
+ // Add the custom font size inline style.
+ $font_sizes['inline_styles'] = sprintf( 'font-size: %spx;', $attributes['customFontSize'] );
+ }
+
+ return $font_sizes;
+}
+
/**
* Renders the `core/post-author` block on the server.
*
- * @return string Returns the filtered post author for the current post wrapped inside "h6" tags.
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
+ * @return string Returns the rendered author block.
*/
-function render_block_core_post_author() {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_author( $attributes, $content, $block ) {
+ if ( empty( $attributes ) ) {
return '';
}
- // translators: %s: The author.
- return '' . sprintf( __( 'By %s' ), get_the_author() ) . ' ';
+
+ if ( ! isset( $block->context['postId'] ) ) {
+ return '';
+ }
+
+ $author_id = get_post_field( 'post_author', $block->context['postId'] );
+ if ( empty( $author_id ) ) {
+ return '';
+ }
+
+ $avatar = ! empty( $attributes['avatarSize'] ) ? get_avatar(
+ $author_id,
+ $attributes['avatarSize']
+ ) : null;
+
+ $byline = ! empty( $attributes['byline'] ) ? $attributes['byline'] : false;
+ $colors = post_author_build_css_colors( $attributes );
+ $font_sizes = post_author_build_css_font_sizes( $attributes );
+ $classes = array_merge(
+ $colors['css_classes'],
+ $font_sizes['css_classes'],
+ array( 'wp-block-post-author' ),
+ isset( $attributes['className'] ) ? array( $attributes['className'] ) : array(),
+ isset( $attributes['itemsJustification'] ) ? array( 'items-justified-' . $attributes['itemsJustification'] ) : array(),
+ isset( $attributes['align'] ) ? array( 'align' . $attributes['align'] ) : array()
+ );
+
+ $class_attribute = sprintf( ' class="%s"', esc_attr( implode( ' ', $classes ) ) );
+ $style_attribute = ( $colors['inline_styles'] || $font_sizes['inline_styles'] )
+ ? sprintf( ' style="%s"', esc_attr( $colors['inline_styles'] ) . esc_attr( $font_sizes['inline_styles'] ) )
+ : '';
+
+ return sprintf( '', $class_attribute, $style_attribute ) .
+ ( $attributes['showAvatar'] ? '
' . $avatar . '
' : '' ) .
+ '
' .
+ ( ! empty( $byline ) ? '
' . $byline . '
' : '' ) .
+ '
' . get_the_author_meta( 'display_name', $author_id ) . '
' .
+ ( ! empty( $attributes['showBio'] ) ? '
' . get_the_author_meta( 'user_description', $author_id ) . '
' : '' ) .
+ '
' .
+ '
';
}
/**
diff --git a/packages/block-library/src/post-author/style.scss b/packages/block-library/src/post-author/style.scss
new file mode 100644
index 00000000000000..86df3428831421
--- /dev/null
+++ b/packages/block-library/src/post-author/style.scss
@@ -0,0 +1,31 @@
+.wp-block-post-author {
+ display: flex;
+ flex-wrap: wrap;
+ line-height: 1.5;
+
+ &__byline {
+ width: 100%;
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 0.8em;
+ }
+
+ &__avatar {
+ margin-right: $grid-unit-20;
+ }
+
+ &__bio {
+ margin-top: $grid-unit-10;
+ }
+
+ &__content {
+ flex-grow: 1;
+ flex-basis: 0;
+ }
+
+ &__name {
+ font-weight: bold;
+ margin: 0;
+ }
+
+}
diff --git a/packages/block-library/src/post-comments-count/block.json b/packages/block-library/src/post-comments-count/block.json
index e9becd828a0664..579642ee54dd45 100644
--- a/packages/block-library/src/post-comments-count/block.json
+++ b/packages/block-library/src/post-comments-count/block.json
@@ -1,4 +1,5 @@
{
"name": "core/post-comments-count",
- "category": "layout"
+ "category": "layout",
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-comments-count/index.php b/packages/block-library/src/post-comments-count/index.php
index a7e811b8157324..34cf7a2fae1faf 100644
--- a/packages/block-library/src/post-comments-count/index.php
+++ b/packages/block-library/src/post-comments-count/index.php
@@ -8,23 +8,25 @@
/**
* Renders the `core/post-comments-count` block on the server.
*
- * @param array $attributes The block attributes.
- *
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post comments count for the current post.
*/
-function render_block_core_post_comments_count( $attributes ) {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_comments_count( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
+
$class = 'wp-block-post-comments-count';
if ( isset( $attributes['className'] ) ) {
$class .= ' ' . $attributes['className'];
}
+
return sprintf(
'%2$s ',
esc_attr( $class ),
- get_comments_number( $post )
+ get_comments_number( $block->context['postId'] )
);
}
diff --git a/packages/block-library/src/post-comments-form/block.json b/packages/block-library/src/post-comments-form/block.json
index d126a4e8fb8244..f5cf116ec47fdc 100644
--- a/packages/block-library/src/post-comments-form/block.json
+++ b/packages/block-library/src/post-comments-form/block.json
@@ -1,4 +1,5 @@
{
"name": "core/post-comments-form",
- "category": "layout"
+ "category": "layout",
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-comments-form/index.php b/packages/block-library/src/post-comments-form/index.php
index 9d5e78cffa5cfa..78ac2b6cb3312c 100644
--- a/packages/block-library/src/post-comments-form/index.php
+++ b/packages/block-library/src/post-comments-form/index.php
@@ -8,15 +8,18 @@
/**
* Renders the `core/post-comments-form` block on the server.
*
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post comments form for the current post.
*/
-function render_block_core_post_comments_form() {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_comments_form( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
+
ob_start();
- comment_form( array(), $post->ID );
+ comment_form( array(), $block->context['postId'] );
$form = ob_get_clean();
return $form;
diff --git a/packages/block-library/src/post-comments/block.json b/packages/block-library/src/post-comments/block.json
index fdd930fb3d26c8..5dd415e52f047d 100644
--- a/packages/block-library/src/post-comments/block.json
+++ b/packages/block-library/src/post-comments/block.json
@@ -1,4 +1,5 @@
{
"name": "core/post-comments",
- "category": "layout"
+ "category": "layout",
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-comments/index.php b/packages/block-library/src/post-comments/index.php
index 85780230704ecd..0675c9237482da 100644
--- a/packages/block-library/src/post-comments/index.php
+++ b/packages/block-library/src/post-comments/index.php
@@ -8,18 +8,28 @@
/**
* Renders the `core/post-comments` block on the server.
*
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post comments for the current post wrapped inside "p" tags.
*/
-function render_block_core_post_comments() {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_comments( $attributes, $content, $block ) {
+ global $post;
+
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
+ $post_before = $post;
+
+ $post = get_post( $block->context['postId'] );
+ setup_postdata( $post );
+
// This generates a deprecate message.
// Ideally this deprecation is removed.
ob_start();
comments_template();
+ $post = $post_before;
return ob_get_clean();
}
diff --git a/packages/block-library/src/post-content/block.json b/packages/block-library/src/post-content/block.json
index 5c598d0970f490..d04c4d474093e6 100644
--- a/packages/block-library/src/post-content/block.json
+++ b/packages/block-library/src/post-content/block.json
@@ -1,4 +1,5 @@
{
"name": "core/post-content",
- "category": "layout"
+ "category": "layout",
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-content/index.php b/packages/block-library/src/post-content/index.php
index dc7eebdf00ffa2..cca80b41dc9226 100644
--- a/packages/block-library/src/post-content/index.php
+++ b/packages/block-library/src/post-content/index.php
@@ -8,16 +8,19 @@
/**
* Renders the `core/post-content` block on the server.
*
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post content of the current post.
*/
-function render_block_core_post_content() {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_content( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
+
return (
'' .
- apply_filters( 'the_content', str_replace( ']]>', ']]>', get_the_content( $post ) ) ) .
+ apply_filters( 'the_content', str_replace( ']]>', ']]>', get_the_content( null, false, $block->context['postId'] ) ) ) .
'
'
);
}
diff --git a/packages/block-library/src/post-date/block.json b/packages/block-library/src/post-date/block.json
index 4944de0ff2668f..831ab0bf79b30f 100644
--- a/packages/block-library/src/post-date/block.json
+++ b/packages/block-library/src/post-date/block.json
@@ -5,5 +5,6 @@
"format": {
"type": "string"
}
- }
+ },
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-date/index.php b/packages/block-library/src/post-date/index.php
index dd86ff7e8c92ca..cd6fe0ecb23be6 100644
--- a/packages/block-library/src/post-date/index.php
+++ b/packages/block-library/src/post-date/index.php
@@ -8,18 +8,19 @@
/**
* Renders the `core/post-date` block on the server.
*
- * @param array $attributes The block attributes.
- *
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post date for the current post wrapped inside "time" tags.
*/
-function render_block_core_post_date( $attributes ) {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_date( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
+
return ''
- . get_the_date( isset( $attributes['format'] ) ? $attributes['format'] : '', $post )
+ . get_the_date( 'c', $block->context['postId'] ) . '">'
+ . get_the_date( isset( $attributes['format'] ) ? $attributes['format'] : '', $block->context['postId'] )
. ' ';
}
diff --git a/packages/block-library/src/post-excerpt/block.json b/packages/block-library/src/post-excerpt/block.json
index 24a74217c547a7..20860268f26c31 100644
--- a/packages/block-library/src/post-excerpt/block.json
+++ b/packages/block-library/src/post-excerpt/block.json
@@ -13,5 +13,6 @@
"type": "boolean",
"default": true
}
- }
+ },
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-excerpt/index.php b/packages/block-library/src/post-excerpt/index.php
index 7f5ab586670fa8..fe1a62c1fa4ab3 100644
--- a/packages/block-library/src/post-excerpt/index.php
+++ b/packages/block-library/src/post-excerpt/index.php
@@ -8,17 +8,17 @@
/**
* Renders the `core/post-excerpt` block on the server.
*
- * @param array $attributes The block attributes.
- *
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post excerpt for the current post wrapped inside "p" tags.
*/
-function render_block_core_post_excerpt( $attributes ) {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_excerpt( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
- $more_text = isset( $attributes['moreText'] ) ? '' . $attributes['moreText'] . ' ' : '';
+ $more_text = isset( $attributes['moreText'] ) ? '' . $attributes['moreText'] . ' ' : '';
$filter_excerpt_length = function() use ( $attributes ) {
return isset( $attributes['wordCount'] ) ? $attributes['wordCount'] : 55;
@@ -28,7 +28,7 @@ function render_block_core_post_excerpt( $attributes ) {
$filter_excerpt_length
);
- $output = '' . get_the_excerpt( $post );
+ $output = '
' . get_the_excerpt( $block->context['postId'] );
if ( ! isset( $attributes['showMoreOnNewLine'] ) || $attributes['showMoreOnNewLine'] ) {
$output .= '
' . '' . $more_text . '
';
} else {
diff --git a/packages/block-library/src/post-featured-image/block.json b/packages/block-library/src/post-featured-image/block.json
index 7cab18de41c3ae..27aefc247ee499 100644
--- a/packages/block-library/src/post-featured-image/block.json
+++ b/packages/block-library/src/post-featured-image/block.json
@@ -1,4 +1,5 @@
{
"name": "core/post-featured-image",
- "category": "layout"
+ "category": "layout",
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-featured-image/index.php b/packages/block-library/src/post-featured-image/index.php
index 9a80c2525fa3ee..ed1c5609be8995 100644
--- a/packages/block-library/src/post-featured-image/index.php
+++ b/packages/block-library/src/post-featured-image/index.php
@@ -8,14 +8,17 @@
/**
* Renders the `core/post-featured-image` block on the server.
*
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the featured image for the current post.
*/
-function render_block_core_post_featured_image() {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_featured_image( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
- return '' . get_the_post_thumbnail( $post ) . '
';
+
+ return '' . get_the_post_thumbnail( $block->context['postId'] ) . '
';
}
/**
diff --git a/packages/block-library/src/post-tags/block.json b/packages/block-library/src/post-tags/block.json
index 29db26b80c7679..edc4ef6ae65d75 100644
--- a/packages/block-library/src/post-tags/block.json
+++ b/packages/block-library/src/post-tags/block.json
@@ -1,4 +1,5 @@
{
"name": "core/post-tags",
- "category": "layout"
+ "category": "layout",
+ "context": [ "postId" ]
}
diff --git a/packages/block-library/src/post-tags/index.php b/packages/block-library/src/post-tags/index.php
index ed03b6055f7cfa..5a5e35debc382e 100644
--- a/packages/block-library/src/post-tags/index.php
+++ b/packages/block-library/src/post-tags/index.php
@@ -8,14 +8,17 @@
/**
* Renders the `core/post-tags` block on the server.
*
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
* @return string Returns the filtered post tags for the current post wrapped inside "a" tags.
*/
-function render_block_core_post_tags() {
- $post = gutenberg_get_post_from_context();
- if ( ! $post ) {
+function render_block_core_post_tags( $attributes, $content, $block ) {
+ if ( ! isset( $block->context['postId'] ) ) {
return '';
}
- $post_tags = get_the_tags();
+
+ $post_tags = get_the_tags( $block->context['postId'] );
if ( ! empty( $post_tags ) ) {
$output = '';
foreach ( $post_tags as $tag ) {
diff --git a/packages/block-library/src/post-title/index.php b/packages/block-library/src/post-title/index.php
index 5d0ea451ea0c4f..0e30b478a39fe2 100644
--- a/packages/block-library/src/post-title/index.php
+++ b/packages/block-library/src/post-title/index.php
@@ -8,11 +8,13 @@
/**
* Renders the `core/post-title` block on the server.
*
- * @param WP_Block $block The block instance.
+ * @param array $attributes Block attributes.
+ * @param string $content Block default content.
+ * @param WP_Block $block Block instance.
*
* @return string Returns the filtered post title for the current post wrapped inside "h1" tags.
*/
-function render_block_core_post_title( $block ) {
+function render_block_core_post_title( $attributes, $content, $block ) {
if ( ! isset( $block->context['postId'] ) ) {
return '';
}
diff --git a/packages/block-library/src/pullquote/edit.js b/packages/block-library/src/pullquote/edit.js
index 5a7dae5a5f8451..57454c705fc71e 100644
--- a/packages/block-library/src/pullquote/edit.js
+++ b/packages/block-library/src/pullquote/edit.js
@@ -8,7 +8,7 @@ import { includes } from 'lodash';
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
-import { Component } from '@wordpress/element';
+import { Component, Platform } from '@wordpress/element';
import {
RichText,
ContrastChecker,
@@ -169,33 +169,35 @@ class PullQuoteEdit extends Component {
) }
-
-
- { isSolidColorStyle && (
-
- ) }
-
-
+ { Platform.OS === 'web' && (
+
+
+ { isSolidColorStyle && (
+
+ ) }
+
+
+ ) }
>
);
}
diff --git a/packages/block-library/src/pullquote/editor.scss b/packages/block-library/src/pullquote/editor.scss
index db0e7989f59507..89c66a518fcb2b 100644
--- a/packages/block-library/src/pullquote/editor.scss
+++ b/packages/block-library/src/pullquote/editor.scss
@@ -1,9 +1,7 @@
-.block-editor-block-list__block[data-type="core/pullquote"] {
- &[data-align="left"],
- &[data-align="right"] {
- & p {
- font-size: 20px;
- }
+.wp-block[data-align="left"] > .wp-block-pullquote,
+.wp-block[data-align="right"] > .wp-block-pullquote {
+ & p {
+ font-size: 20px;
}
}
diff --git a/packages/block-library/src/quote/edit.js b/packages/block-library/src/quote/edit.js
index e2bfc902cc0359..4253a1ef6e16d9 100644
--- a/packages/block-library/src/quote/edit.js
+++ b/packages/block-library/src/quote/edit.js
@@ -71,6 +71,7 @@ export default function QuoteEdit( {
__unstableOnSplitMiddle={ () =>
createBlock( 'core/paragraph' )
}
+ textAlign={ align }
/>
{ ( ! RichText.isEmpty( citation ) || isSelected ) && (
) }
diff --git a/packages/block-library/src/site-title/edit.js b/packages/block-library/src/site-title/edit.js
index 55661ca1ae9b29..f09f6dd553fdc7 100644
--- a/packages/block-library/src/site-title/edit.js
+++ b/packages/block-library/src/site-title/edit.js
@@ -3,14 +3,17 @@
*/
import { useEntityProp } from '@wordpress/core-data';
import { __ } from '@wordpress/i18n';
-import { PlainText } from '@wordpress/block-editor';
+import {
+ PlainText,
+ __experimentalBlock as Block,
+} from '@wordpress/block-editor';
export default function SiteTitleEdit() {
const [ title, setTitle ] = useEntityProp( 'root', 'site', 'title' );
return (
{
- setPopover( true ) }>
-
- { isSelected && showURLPopover && (
- setPopover( false ) }>
-
-
- ) }
-
+
+
+ ) }
+
+
);
};
diff --git a/packages/block-library/src/social-link/editor.scss b/packages/block-library/src/social-link/editor.scss
index 092507468286f4..e938b8d74ee749 100644
--- a/packages/block-library/src/social-link/editor.scss
+++ b/packages/block-library/src/social-link/editor.scss
@@ -1,10 +1,9 @@
-.wp-social-link {
- // Frontend outputs a link, backend a button. Both should have the same padding.
- // Therefore, the following exactly matches the padding on the frontend link.
+.wp-block-social-links .wp-social-link button {
+ color: currentColor;
padding: 6px;
}
-.wp-block-social-links.is-style-pill-shape .wp-social-link {
+.wp-block-social-links.is-style-pill-shape .wp-social-link button {
padding-left: 16px;
padding-right: 16px;
}
diff --git a/packages/block-library/src/social-link/index.js b/packages/block-library/src/social-link/index.js
index 771f364541f3e1..8a0e764a7d1053 100644
--- a/packages/block-library/src/social-link/index.js
+++ b/packages/block-library/src/social-link/index.js
@@ -21,6 +21,7 @@ export const settings = {
supports: {
reusable: false,
html: false,
+ lightBlockWrapper: true,
},
icon,
edit,
diff --git a/packages/block-library/src/social-links/edit.js b/packages/block-library/src/social-links/edit.js
index 6677bcfe0569fc..07e2669091f55c 100644
--- a/packages/block-library/src/social-links/edit.js
+++ b/packages/block-library/src/social-links/edit.js
@@ -2,7 +2,10 @@
* WordPress dependencies
*/
-import { InnerBlocks } from '@wordpress/block-editor';
+import {
+ InnerBlocks,
+ __experimentalBlock as Block,
+} from '@wordpress/block-editor';
const ALLOWED_BLOCKS = [ 'core/social-link' ];
@@ -19,16 +22,16 @@ const TEMPLATE = [
[ 'core/social-link', { service: 'youtube' } ],
];
-export const SocialLinksEdit = function( { className } ) {
+export const SocialLinksEdit = function() {
return (
-
-
-
+
);
};
diff --git a/packages/block-library/src/social-links/editor.scss b/packages/block-library/src/social-links/editor.scss
index 878bd952a11863..a0d038d02f6001 100644
--- a/packages/block-library/src/social-links/editor.scss
+++ b/packages/block-library/src/social-links/editor.scss
@@ -4,21 +4,18 @@
display: inline-block;
margin-left: $grid-unit-10;
}
-
- .block-editor-block-list__layout {
- display: flex;
- justify-content: flex-start;
- }
}
// Reduce the paddings, margins, and UI of inner-blocks.
// @todo: eventually we may add a feature that lets a parent container absorb the block UI of a child block.
// When that happens, leverage that instead of the following overrides.
-[data-type="core/social-links"] {
- .wp-block-social-links > .block-editor-inner-blocks > .block-editor-block-list__layout > .wp-block {
- margin-top: 0;
- margin-bottom: 0;
- }
+.editor-styles-wrapper .wp-block-social-link {
+ margin: 0;
+ margin-right: 8px;
+}
+
+.editor-styles-wrapper .wp-block-social-links {
+ padding: 0;
}
// Polish the Appender.
@@ -29,7 +26,7 @@
}
// Center flex items. This has an equivalent in style.scss.
-[data-type="core/social-links"][data-align="center"] .wp-block-social-links {
+.wp-block[data-align="center"] > .wp-block-social-links {
justify-content: center;
}
diff --git a/packages/block-library/src/social-links/index.js b/packages/block-library/src/social-links/index.js
index 2c27f8daad2b65..84ddbb4877a933 100644
--- a/packages/block-library/src/social-links/index.js
+++ b/packages/block-library/src/social-links/index.js
@@ -23,6 +23,7 @@ export const settings = {
keywords: [ _x( 'links', 'block keywords' ) ],
supports: {
align: [ 'left', 'center', 'right' ],
+ lightBlockWrapper: true,
},
example: {
innerBlocks: [
diff --git a/packages/block-library/src/spacer/edit.js b/packages/block-library/src/spacer/edit.js
index 9a457c6e8ad173..e4b24a512cda2d 100644
--- a/packages/block-library/src/spacer/edit.js
+++ b/packages/block-library/src/spacer/edit.js
@@ -53,7 +53,6 @@ const SpacerEdit = ( {
bottomLeft: false,
topLeft: false,
} }
- isSelected={ isSelected }
onResizeStart={ onResizeStart }
onResizeStop={ ( event, direction, elt, delta ) => {
onResizeStop();
@@ -63,6 +62,7 @@ const SpacerEdit = ( {
);
updateHeight( spacerHeight );
} }
+ showHandle={ isSelected }
/>
@@ -70,7 +70,6 @@ const SpacerEdit = ( {
label={ __( 'Height in pixels' ) }
min={ MIN_SPACER_HEIGHT }
max={ Math.max( MAX_SPACER_HEIGHT, height ) }
- separatorType={ 'none' }
value={ height }
onChange={ updateHeight }
step={ Platform.OS === 'web' ? 10 : 1 }
diff --git a/packages/block-library/src/spacer/editor.scss b/packages/block-library/src/spacer/editor.scss
index 271aa968a36b56..2ad8039709960b 100644
--- a/packages/block-library/src/spacer/editor.scss
+++ b/packages/block-library/src/spacer/editor.scss
@@ -1,4 +1,4 @@
-.block-library-spacer__resize-container.is-selected {
+.block-library-spacer__resize-container.has-show-handle {
background: $light-gray-200;
.is-dark-theme & {
diff --git a/packages/block-library/src/style.scss b/packages/block-library/src/style.scss
index 19b1d3208d4e52..99e14349d99e06 100644
--- a/packages/block-library/src/style.scss
+++ b/packages/block-library/src/style.scss
@@ -20,6 +20,7 @@
@import "./media-text/style.scss";
@import "./navigation/style.scss";
@import "./paragraph/style.scss";
+@import "./post-author/style.scss";
@import "./pullquote/style.scss";
@import "./quote/style.scss";
@import "./rss/style.scss";
@@ -75,6 +76,11 @@
background-color: #9b51e0;
}
+ .has-white-background-color {
+ background-color: #fff;
+ }
+
+ // Deprecated from UI, kept for back-compat
.has-very-light-gray-background-color {
background-color: #eee;
}
@@ -83,10 +89,15 @@
background-color: #abb8c3;
}
+ // Deprecated from UI, kept for back-compat
.has-very-dark-gray-background-color {
background-color: #313131;
}
+ .has-black-background-color {
+ background-color: #000;
+ }
+
// Foreground colors.
.has-pale-pink-color {
@@ -125,6 +136,11 @@
color: #9b51e0;
}
+ .has-white-color {
+ color: #fff;
+ }
+
+ // Deprecated from UI, kept for back-compat
.has-very-light-gray-color {
color: #eee;
}
@@ -133,10 +149,15 @@
color: #abb8c3;
}
+ // Deprecated from UI, kept for back-compat
.has-very-dark-gray-color {
color: #313131;
}
+ .has-black-color {
+ color: #000;
+ }
+
// Gradients
// Our classes uses the same values we set for gradient value attributes, and we can not use spacing because of WP multi site kses rule.
/* stylelint-disable function-comma-space-after */
@@ -216,30 +237,36 @@
// Font sizes.
-:root {
- .has-small-font-size {
- font-size: 13px;
- }
-
- .has-regular-font-size, // Not used now, kept because of backward compatibility.
- .has-normal-font-size {
- font-size: 16px;
- }
+// The reason we add the editor class wrapper here is
+// to avoid enqueing the classes twice: here and in ./editor.scss
+.editor-styles-wrapper .has-small-font-size,
+.has-small-font-size {
+ font-size: 13px;
+}
- .has-medium-font-size {
- font-size: 20px;
- }
+.editor-styles-wrapper .has-regular-font-size,
+.editor-styles-wrapper .has-normal-font-size,
+.has-regular-font-size, // Not used now, kept because of backward compatibility.
+.has-normal-font-size {
+ font-size: 16px;
+}
- .has-large-font-size {
- font-size: 36px;
- }
+.editor-styles-wrapper .has-medium-font-size,
+.has-medium-font-size {
+ font-size: 20px;
+}
- .has-larger-font-size, // Not used now, kept because of backward compatibility.
- .has-huge-font-size {
- font-size: 42px;
- }
+.editor-styles-wrapper .has-large-font-size,
+.has-large-font-size {
+ font-size: 36px;
}
+.editor-styles-wrapper .has-larger-font-size,
+.editor-styles-wrapper .has-huge-font-size,
+.has-larger-font-size, // Not used now, kept because of backward compatibility.
+.has-huge-font-size {
+ font-size: 42px;
+}
// Text alignments.
.has-text-align-center {
diff --git a/packages/block-library/src/table/editor.scss b/packages/block-library/src/table/editor.scss
index 6aedff7549c2d0..6a9ef15b19d27e 100644
--- a/packages/block-library/src/table/editor.scss
+++ b/packages/block-library/src/table/editor.scss
@@ -1,7 +1,7 @@
-.block-editor-block-list__block[data-type="core/table"] {
- &[data-align="left"],
- &[data-align="right"],
- &[data-align="center"] {
+.wp-block-table {
+ .wp-block[data-align="left"] > &,
+ .wp-block[data-align="right"] > &,
+ .wp-block[data-align="center"] > & {
// Stop table block from collapsing when tables are floated.
height: auto;
@@ -16,7 +16,7 @@
}
}
- &[data-align="center"] {
+ .wp-block[data-align="center"] > & {
text-align: initial;
table {
diff --git a/packages/block-library/src/tag-cloud/block.json b/packages/block-library/src/tag-cloud/block.json
new file mode 100644
index 00000000000000..5f76ff7c11e36f
--- /dev/null
+++ b/packages/block-library/src/tag-cloud/block.json
@@ -0,0 +1,21 @@
+{
+ "name": "core/tag-cloud",
+ "category": "widgets",
+ "attributes": {
+ "align": {
+ "type": "string",
+ "enum": [ "left", "center", "right", "wide", "full" ]
+ },
+ "className": {
+ "type": "string"
+ },
+ "taxonomy": {
+ "type": "string",
+ "default": "post_tag"
+ },
+ "showTagCounts": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+}
diff --git a/packages/block-library/src/tag-cloud/index.js b/packages/block-library/src/tag-cloud/index.js
index e8090c70afca12..32fbfbbb91c985 100644
--- a/packages/block-library/src/tag-cloud/index.js
+++ b/packages/block-library/src/tag-cloud/index.js
@@ -7,15 +7,17 @@ import { tag as icon } from '@wordpress/icons';
/**
* Internal dependencies
*/
+import metadata from './block.json';
import edit from './edit';
-export const name = 'core/tag-cloud';
+const { name } = metadata;
+
+export { metadata, name };
export const settings = {
title: __( 'Tag Cloud' ),
description: __( 'A cloud of your most used tags.' ),
icon,
- category: 'widgets',
supports: {
html: false,
align: true,
diff --git a/packages/block-library/src/tag-cloud/index.php b/packages/block-library/src/tag-cloud/index.php
index cf9c4d24537dbd..419ef3477ed257 100644
--- a/packages/block-library/src/tag-cloud/index.php
+++ b/packages/block-library/src/tag-cloud/index.php
@@ -51,26 +51,9 @@ function render_block_core_tag_cloud( $attributes ) {
* Registers the `core/tag-cloud` block on server.
*/
function register_block_core_tag_cloud() {
- register_block_type(
- 'core/tag-cloud',
+ register_block_type_from_metadata(
+ __DIR__ . '/tag-cloud',
array(
- 'attributes' => array(
- 'align' => array(
- 'type' => 'string',
- 'enum' => array( 'left', 'center', 'right', 'wide', 'full' ),
- ),
- 'className' => array(
- 'type' => 'string',
- ),
- 'taxonomy' => array(
- 'type' => 'string',
- 'default' => 'post_tag',
- ),
- 'showTagCounts' => array(
- 'type' => 'boolean',
- 'default' => false,
- ),
- ),
'render_callback' => 'render_block_core_tag_cloud',
)
);
diff --git a/packages/block-library/src/template-part/edit/use-template-part-post.js b/packages/block-library/src/template-part/edit/use-template-part-post.js
index bef260ffd3a7b1..7ef0f705da2dc9 100644
--- a/packages/block-library/src/template-part/edit/use-template-part-post.js
+++ b/packages/block-library/src/template-part/edit/use-template-part-post.js
@@ -26,20 +26,25 @@ export default function useTemplatePartPost( postId, slug, theme ) {
'postType',
'wp_template_part',
{
- status: 'auto-draft',
+ status: [ 'publish', 'auto-draft' ],
slug,
- meta: { theme },
+ theme,
}
);
+ const foundPosts = posts?.filter(
+ ( post ) =>
+ post.slug === slug &&
+ post.meta &&
+ post.meta.theme === theme
+ );
+ // A published post might already exist if this template part was customized elsewhere
+ // or if it's part of a customized template.
const foundPost =
- posts &&
- posts.find(
- ( post ) =>
- post.slug === slug &&
- post.meta &&
- post.meta.theme === theme
+ foundPosts?.find( ( post ) => post.status === 'publish' ) ||
+ foundPosts?.find(
+ ( post ) => post.status === 'auto-draft'
);
- return foundPost && foundPost.id;
+ return foundPost?.id;
}
},
[ postId, slug, theme ]
diff --git a/packages/block-library/src/template-part/editor.scss b/packages/block-library/src/template-part/editor.scss
index 2d32895db81313..2b38d51f999fba 100644
--- a/packages/block-library/src/template-part/editor.scss
+++ b/packages/block-library/src/template-part/editor.scss
@@ -15,10 +15,6 @@
.block-editor-block-preview__container {
padding: 1px;
}
-
- .block-editor-block-preview__content {
- position: initial;
- }
}
.wp-block-template-part__placeholder-preview-title {
diff --git a/packages/block-library/src/template-part/index.php b/packages/block-library/src/template-part/index.php
index e5a785e983ef37..bf40670885f9d1 100644
--- a/packages/block-library/src/template-part/index.php
+++ b/packages/block-library/src/template-part/index.php
@@ -20,11 +20,29 @@ function render_block_core_template_part( $attributes ) {
// is user-customized, render the corresponding post content.
$content = get_post( $attributes['postId'] )->post_content;
} elseif ( wp_get_theme()->get( 'TextDomain' ) === $attributes['theme'] ) {
- // Else, if the template part was provided by the active theme,
- // render the corresponding file content.
- $template_part_file_path = get_stylesheet_directory() . '/block-template-parts/' . $attributes['slug'] . '.html';
- if ( 0 === validate_file( $template_part_file_path ) && file_exists( $template_part_file_path ) ) {
- $content = file_get_contents( $template_part_file_path );
+ $template_part_query = new WP_Query(
+ array(
+ 'post_type' => 'wp_template_part',
+ 'post_status' => 'publish',
+ 'name' => $attributes['slug'],
+ 'meta_key' => 'theme',
+ 'meta_value' => $attributes['theme'],
+ 'posts_per_page' => 1,
+ 'no_found_rows' => true,
+ )
+ );
+ $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null;
+ if ( $template_part_post ) {
+ // A published post might already exist if this template part was customized elsewhere
+ // or if it's part of a customized template.
+ $content = $template_part_post->post_content;
+ } else {
+ // Else, if the template part was provided by the active theme,
+ // render the corresponding file content.
+ $template_part_file_path = get_stylesheet_directory() . '/block-template-parts/' . $attributes['slug'] . '.html';
+ if ( 0 === validate_file( $template_part_file_path ) && file_exists( $template_part_file_path ) ) {
+ $content = file_get_contents( $template_part_file_path );
+ }
}
}
@@ -52,20 +70,9 @@ function render_block_core_template_part( $attributes ) {
* Registers the `core/template-part` block on the server.
*/
function register_block_core_template_part() {
- register_block_type(
- 'core/template-part',
+ register_block_type_from_metadata(
+ __DIR__ . '/template-part',
array(
- 'attributes' => array(
- 'postId' => array(
- 'type' => 'number',
- ),
- 'slug' => array(
- 'type' => 'string',
- ),
- 'theme' => array(
- 'type' => 'string',
- ),
- ),
'render_callback' => 'render_block_core_template_part',
)
);
diff --git a/packages/block-library/src/verse/edit.js b/packages/block-library/src/verse/edit.js
index 2c33afb53fd818..4ca8374fa08d20 100644
--- a/packages/block-library/src/verse/edit.js
+++ b/packages/block-library/src/verse/edit.js
@@ -46,6 +46,7 @@ export default function VerseEdit( {
[ `has-text-align-${ textAlign }` ]: textAlign,
} ) }
onMerge={ mergeBlocks }
+ textAlign={ textAlign }
/>
>
);
diff --git a/packages/block-library/src/video/edit-common-settings.js b/packages/block-library/src/video/edit-common-settings.js
index f713faeba995fa..a180593ad055a3 100644
--- a/packages/block-library/src/video/edit-common-settings.js
+++ b/packages/block-library/src/video/edit-common-settings.js
@@ -65,7 +65,6 @@ const VideoSettings = ( { setAttributes, attributes } ) => {
{ value: 'metadata', label: __( 'Metadata' ) },
{ value: 'none', label: __( 'None' ) },
] }
- separatorType={ 'none' }
/>
>
);
diff --git a/packages/block-library/src/video/edit.js b/packages/block-library/src/video/edit.js
index 52a5db7c44fb12..65cb2f9a20bb65 100644
--- a/packages/block-library/src/video/edit.js
+++ b/packages/block-library/src/video/edit.js
@@ -18,6 +18,7 @@ import {
MediaUploadCheck,
MediaReplaceFlow,
RichText,
+ __experimentalBlock as Block,
} from '@wordpress/block-editor';
import { Component, createRef } from '@wordpress/element';
import { __, sprintf } from '@wordpress/i18n';
@@ -115,7 +116,6 @@ class VideoEdit extends Component {
render() {
const { id, caption, controls, poster, src } = this.props.attributes;
const {
- className,
instanceId,
isSelected,
noticeUI,
@@ -137,17 +137,18 @@ class VideoEdit extends Component {
if ( ! src ) {
return (
- }
- className={ className }
- onSelect={ onSelectVideo }
- onSelectURL={ this.onSelectURL }
- accept="video/*"
- allowedTypes={ ALLOWED_MEDIA_TYPES }
- value={ this.props.attributes }
- notices={ noticeUI }
- onError={ this.onUploadError }
- />
+
+ }
+ onSelect={ onSelectVideo }
+ onSelectURL={ this.onSelectURL }
+ accept="video/*"
+ allowedTypes={ ALLOWED_MEDIA_TYPES }
+ value={ this.props.attributes }
+ notices={ noticeUI }
+ onError={ this.onUploadError }
+ />
+
);
}
const videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;
@@ -222,7 +223,7 @@ class VideoEdit extends Component {
-
+
{ /*
Disable the video tag so the user clicking on it won't play the
video when the controls are enabled.
@@ -246,7 +247,7 @@ class VideoEdit extends Component {
inlineToolbar
/>
) }
-
+
>
);
}
diff --git a/packages/block-library/src/video/editor.scss b/packages/block-library/src/video/editor.scss
index dd93768200fbb7..a9eca779a24c08 100644
--- a/packages/block-library/src/video/editor.scss
+++ b/packages/block-library/src/video/editor.scss
@@ -1,4 +1,4 @@
-.block-editor-block-list__block[data-align="center"] {
+.wp-block[data-align="center"] > .wp-block-video {
text-align: center;
}
diff --git a/packages/block-library/src/video/index.js b/packages/block-library/src/video/index.js
index 7fcabbee16db06..b3ec890ac4c63e 100644
--- a/packages/block-library/src/video/index.js
+++ b/packages/block-library/src/video/index.js
@@ -26,6 +26,7 @@ export const settings = {
transforms,
supports: {
align: true,
+ lightBlockWrapper: true,
},
edit,
save,
diff --git a/packages/block-serialization-default-parser/CHANGELOG.md b/packages/block-serialization-default-parser/CHANGELOG.md
index 1fd5900744ecc8..fa6f6d4ee2e20e 100644
--- a/packages/block-serialization-default-parser/CHANGELOG.md
+++ b/packages/block-serialization-default-parser/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.0.3 (2019-01-03)
## 2.0.2 (2018-12-12)
diff --git a/packages/block-serialization-spec-parser/CHANGELOG.md b/packages/block-serialization-spec-parser/CHANGELOG.md
index 59a1acaa802a11..a04dd554ca11fe 100644
--- a/packages/block-serialization-spec-parser/CHANGELOG.md
+++ b/packages/block-serialization-spec-parser/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 3.0.0 (2019-03-06)
## Breaking Change
diff --git a/packages/blocks/CHANGELOG.md b/packages/blocks/CHANGELOG.md
index 9e6d1bbcf40fc7..4cb3630f37002a 100644
--- a/packages/blocks/CHANGELOG.md
+++ b/packages/blocks/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 6.13.0 (2020-04-01)
diff --git a/packages/blocks/package.json b/packages/blocks/package.json
index 2fc125781fde76..1baf601a560657 100644
--- a/packages/blocks/package.json
+++ b/packages/blocks/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/blocks",
- "version": "6.14.1",
+ "version": "6.15.0",
"description": "Block API for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -38,7 +38,7 @@
"hpq": "^1.3.0",
"lodash": "^4.17.15",
"rememo": "^3.0.0",
- "showdown": "^1.8.6",
+ "showdown": "^1.9.1",
"simple-html-tokenizer": "^0.5.7",
"tinycolor2": "^1.4.1",
"uuid": "^7.0.2"
diff --git a/packages/browserslist-config/CHANGELOG.md b/packages/browserslist-config/CHANGELOG.md
index f0805564bdcd22..2256bcdbc16adb 100644
--- a/packages/browserslist-config/CHANGELOG.md
+++ b/packages/browserslist-config/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.2.0 (2018-07-12)
### Internal
diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md
index 09216372ae68ba..4be92dcf3872b5 100644
--- a/packages/components/CHANGELOG.md
+++ b/packages/components/CHANGELOG.md
@@ -1,4 +1,11 @@
-## Master
+
+
+## Unreleased
+
+### Bug Fix
+
+- Fix and issue that would cause the `Popover` component to throw an error under certain
+ circumstances ([#22264](https://github.com/WordPress/gutenberg/pull/22264)).
## 9.2.0 (2020-02-10)
diff --git a/packages/components/package.json b/packages/components/package.json
index 4beac832581982..641933d747b6c5 100644
--- a/packages/components/package.json
+++ b/packages/components/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/components",
- "version": "9.4.1",
+ "version": "9.5.0",
"description": "UI components for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -53,7 +53,7 @@
"re-resizable": "^6.0.0",
"react-dates": "^17.1.1",
"react-spring": "^8.0.20",
- "reakit": "^1.0.0-rc.0",
+ "reakit": "^1.0.0-rc.2",
"rememo": "^3.0.0",
"tinycolor2": "^1.4.1",
"uuid": "^7.0.2"
diff --git a/packages/components/src/clipboard-button/index.js b/packages/components/src/clipboard-button/index.js
index 80741a18b19ed4..3b12983744d23d 100644
--- a/packages/components/src/clipboard-button/index.js
+++ b/packages/components/src/clipboard-button/index.js
@@ -7,101 +7,77 @@ import classnames from 'classnames';
/**
* WordPress dependencies
*/
-import { Component, createRef } from '@wordpress/element';
+import { useRef, useEffect } from '@wordpress/element';
/**
* Internal dependencies
*/
import Button from '../button';
-class ClipboardButton extends Component {
- constructor() {
- super( ...arguments );
-
- this.containerRef = createRef();
- this.onCopy = this.onCopy.bind( this );
- this.getText = this.getText.bind( this );
- }
-
- componentDidMount() {
- const { getText, onCopy } = this;
- const container = this.containerRef.current;
-
- this.clipboard = new Clipboard( container.firstChild, {
- text: getText,
- container,
+export default function ClipboardButton( {
+ className,
+ children,
+ onCopy,
+ onFinishCopy,
+ text,
+ ...buttonProps
+} ) {
+ const ref = useRef();
+ const clipboard = useRef();
+
+ useEffect( () => {
+ let timeoutId;
+
+ clipboard.current = new Clipboard( ref.current, {
+ text: () => ( typeof text === 'function' ? text() : text ),
+ container: ref.current,
} );
- this.clipboard.on( 'success', onCopy );
- }
-
- componentWillUnmount() {
- this.clipboard.destroy();
- delete this.clipboard;
- clearTimeout( this.onCopyTimeout );
- }
-
- onCopy( args ) {
- // Clearing selection will move focus back to the triggering button,
- // ensuring that it is not reset to the body, and further that it is
- // kept within the rendered node.
- args.clearSelection();
-
- const { onCopy, onFinishCopy } = this.props;
- if ( onCopy ) {
- onCopy();
- // For convenience and consistency, ClipboardButton offers to call
- // a secondary callback with delay. This is useful to reset
- // consumers' state, e.g. to revert a label from "Copied" to
- // "Copy".
- if ( onFinishCopy ) {
- clearTimeout( this.onCopyTimeout );
- this.onCopyTimeout = setTimeout( onFinishCopy, 4000 );
+ clipboard.current.on( 'success', ( { clearSelection } ) => {
+ // Clearing selection will move focus back to the triggering button,
+ // ensuring that it is not reset to the body, and further that it is
+ // kept within the rendered node.
+ clearSelection();
+
+ if ( onCopy ) {
+ onCopy();
+
+ // For convenience and consistency, ClipboardButton offers to
+ // call a secondary callback with delay. This is useful to reset
+ // consumers' state, e.g. to revert a label from "Copied" to
+ // "Copy".
+ if ( onFinishCopy ) {
+ clearTimeout( timeoutId );
+ timeoutId = setTimeout( onFinishCopy, 4000 );
+ }
}
- }
- }
-
- getText() {
- let text = this.props.text;
- if ( 'function' === typeof text ) {
- text = text();
- }
-
- return text;
- }
-
- render() {
- const {
- className,
- children,
- // Disable reason: Exclude from spread props passed to Button
- // eslint-disable-next-line no-unused-vars
- onCopy,
- // eslint-disable-next-line no-unused-vars
- onFinishCopy,
- // eslint-disable-next-line no-unused-vars
- text,
- ...buttonProps
- } = this.props;
- const classes = classnames( 'components-clipboard-button', className );
+ } );
- // Workaround for inconsistent behavior in Safari, where is not
- // the document.activeElement at the moment when the copy event fires.
- // This causes documentHasSelection() in the copy-handler component to
- // mistakenly override the ClipboardButton, and copy a serialized string
- // of the current block instead.
- const focusOnCopyEventTarget = ( event ) => {
- event.target.focus();
+ return () => {
+ clipboard.current.destroy();
+ clearTimeout( timeoutId );
};
-
- return (
-
-
- { children }
-
-
- );
- }
+ }, [ onCopy, onFinishCopy, text ] );
+
+ const classes = classnames( 'components-clipboard-button', className );
+
+ // Workaround for inconsistent behavior in Safari, where is not
+ // the document.activeElement at the moment when the copy event fires.
+ // This causes documentHasSelection() in the copy-handler component to
+ // mistakenly override the ClipboardButton, and copy a serialized string
+ // of the current block instead.
+ const focusOnCopyEventTarget = ( event ) => {
+ event.target.focus();
+ };
+
+ return (
+
+ { children }
+
+ );
}
-
-export default ClipboardButton;
diff --git a/packages/components/src/color-control/index.native.js b/packages/components/src/color-control/index.native.js
new file mode 100644
index 00000000000000..97c29a2e3d5af5
--- /dev/null
+++ b/packages/components/src/color-control/index.native.js
@@ -0,0 +1,31 @@
+/**
+ * Internal dependencies
+ */
+import ColorCell from '../mobile/bottom-sheet/color-cell';
+
+function ColorControl( {
+ label,
+ help,
+ instanceId,
+ className,
+ onPress,
+ color,
+ ...props
+} ) {
+ const id = `inspector-color-control-${ instanceId }`;
+
+ return (
+
+ );
+}
+
+export default ColorControl;
diff --git a/packages/components/src/color-indicator/index.native.js b/packages/components/src/color-indicator/index.native.js
new file mode 100644
index 00000000000000..06034baf57cd45
--- /dev/null
+++ b/packages/components/src/color-indicator/index.native.js
@@ -0,0 +1,76 @@
+/**
+ * External dependencies
+ */
+import { View, Animated } from 'react-native';
+/**
+ * WordPress dependencies
+ */
+import { Icon, check } from '@wordpress/icons';
+import { LinearGradient } from '@wordpress/components';
+import { usePreferredColorSchemeStyle } from '@wordpress/compose';
+/**
+ * Internal dependencies
+ */
+import styles from './style.scss';
+import { colorsUtils } from '../mobile/color-settings/utils';
+
+function SelectedIcon( { opacity } ) {
+ return (
+
+
+
+
+ );
+}
+
+function ColorIndicator( {
+ color,
+ isSelected,
+ withCustomPicker,
+ style,
+ opacity,
+} ) {
+ const { isGradient } = colorsUtils;
+
+ const outlineStyle = usePreferredColorSchemeStyle(
+ styles.outline,
+ styles.outlineDark
+ );
+
+ if ( isGradient( color ) ) {
+ return (
+
+
+ { isSelected && }
+
+ );
+ } else if ( withCustomPicker ) {
+ return (
+
+
+ { color.map( ( gradientValue ) => {
+ return (
+
+ );
+ } ) }
+ { isSelected && }
+
+ );
+ }
+ return (
+
+
+ { isSelected && }
+
+ );
+}
+export default ColorIndicator;
diff --git a/packages/components/src/color-indicator/style.native.scss b/packages/components/src/color-indicator/style.native.scss
new file mode 100644
index 00000000000000..b4ac79720967f4
--- /dev/null
+++ b/packages/components/src/color-indicator/style.native.scss
@@ -0,0 +1,51 @@
+.selected {
+ height: 28px;
+ width: 28px;
+ border-radius: 14px;
+ background-color: $white;
+ justify-content: center;
+ align-items: center;
+}
+
+.circleOption {
+ height: 48px;
+ width: 48px;
+ border-radius: 24px;
+ margin-right: 8px;
+ justify-content: center;
+ align-items: center;
+}
+
+.absolute {
+ position: absolute;
+ margin-right: 0;
+ border-width: 0;
+}
+
+.icon {
+ color: $gray-dark;
+}
+
+.outline {
+ border-color: $light-dim;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ border-radius: 24px;
+ border-width: $border-width;
+ position: absolute;
+ z-index: 2;
+}
+
+.outlineDark {
+ border-color: $dark-ultra-dim;
+}
+
+.selectedOutline {
+ top: -$border-width;
+ bottom: -$border-width;
+ left: -$border-width;
+ right: -$border-width;
+ border-radius: 14px;
+}
diff --git a/packages/components/src/color-palette/index.native.js b/packages/components/src/color-palette/index.native.js
new file mode 100644
index 00000000000000..d0fb1a7a8636f4
--- /dev/null
+++ b/packages/components/src/color-palette/index.native.js
@@ -0,0 +1,158 @@
+/**
+ * External dependencies
+ */
+import {
+ ScrollView,
+ TouchableWithoutFeedback,
+ View,
+ Animated,
+ Easing,
+} from 'react-native';
+import { map, uniq } from 'lodash';
+/**
+ * WordPress dependencies
+ */
+import { useState, useEffect, createRef } from '@wordpress/element';
+import { usePreferredColorSchemeStyle } from '@wordpress/compose';
+/**
+ * Internal dependencies
+ */
+import styles from './style.scss';
+import ColorIndicator from '../color-indicator';
+import { colorsUtils } from '../mobile/color-settings/utils';
+
+const ANIMATION_DURATION = 200;
+
+function ColorPalette( {
+ setColor,
+ activeColor,
+ isGradientColor,
+ defaultSettings,
+ currentSegment,
+ onCustomPress,
+ shouldEnableBottomSheetScroll,
+} ) {
+ const customSwatchGradients = [
+ 'linear-gradient(120deg, rgba(255,0,0,.8), 0%, rgba(255,255,255,1) 70.71%)',
+ 'linear-gradient(240deg, rgba(0,255,0,.8), 0%, rgba(0,255,0,0) 70.71%)',
+ 'linear-gradient(360deg, rgba(0,0,255,.8), 0%, rgba(0,0,255,0) 70.71%)',
+ ];
+
+ const scrollViewRef = createRef();
+
+ const isGradientSegment = currentSegment === colorsUtils.segments[ 1 ];
+
+ const [ scale ] = useState( new Animated.Value( 1 ) );
+ const [ opacity ] = useState( new Animated.Value( 1 ) );
+
+ const defaultColors = uniq( map( defaultSettings.colors, 'color' ) );
+ const defaultGradientColors = uniq(
+ map( defaultSettings.gradients, 'gradient' )
+ );
+ const colors = isGradientSegment ? defaultGradientColors : defaultColors;
+
+ useEffect( () => {
+ scrollViewRef.current.scrollTo( { x: 0, y: 0 } );
+ }, [ currentSegment ] );
+
+ function isSelectedCustom() {
+ return (
+ ! isGradientColor && activeColor && ! colors.includes( activeColor )
+ );
+ }
+
+ function isSelected( color ) {
+ return ! isSelectedCustom() && activeColor === color;
+ }
+
+ function timingAnimation( property, toValue ) {
+ return Animated.timing( property, {
+ toValue,
+ duration: ANIMATION_DURATION,
+ easing: Easing.ease,
+ } );
+ }
+
+ function performAnimation( color ) {
+ opacity.setValue( isSelected( color ) ? 1 : 0 );
+ scale.setValue( 1 );
+
+ Animated.parallel( [
+ timingAnimation( scale, 2 ),
+ timingAnimation( opacity, 1 ),
+ ] ).start();
+ }
+
+ const scaleInterpolation = scale.interpolate( {
+ inputRange: [ 1, 1.5, 2 ],
+ outputRange: [ 1, 0.7, 1 ],
+ } );
+
+ function onColorPress( color ) {
+ performAnimation( color );
+ setColor( color );
+ }
+
+ const verticalSeparatorStyle = usePreferredColorSchemeStyle(
+ styles.verticalSeparator,
+ styles.verticalSeparatorDark
+ );
+
+ return (
+ shouldEnableBottomSheetScroll( false ) }
+ onScrollEndDrag={ () => shouldEnableBottomSheetScroll( true ) }
+ ref={ scrollViewRef }
+ >
+ { colors.map( ( color ) => {
+ const scaleValue = isSelected( color ) ? scaleInterpolation : 1;
+ return (
+ onColorPress( color ) }
+ key={ `${ color }-${ isSelected( color ) }` }
+ >
+
+
+
+
+ );
+ } ) }
+ { ! isGradientSegment && (
+ <>
+
+
+
+
+
+
+ >
+ ) }
+
+ );
+}
+
+export default ColorPalette;
diff --git a/packages/components/src/color-palette/style.native.scss b/packages/components/src/color-palette/style.native.scss
new file mode 100644
index 00000000000000..76363ef9acb04a
--- /dev/null
+++ b/packages/components/src/color-palette/style.native.scss
@@ -0,0 +1,25 @@
+.contentContainer {
+ flex-direction: row;
+ padding: 0 $panel-padding;
+}
+
+.container {
+ padding-bottom: $panel-padding;
+}
+
+.verticalSeparator {
+ border-width: $border-width / 2;
+ border-color: $light-gray-400;
+ height: 38px;
+ margin-right: $panel-padding / 2;
+ align-self: center;
+}
+
+.verticalSeparatorDark {
+ border-color: $gray-70;
+}
+
+.colorIndicator {
+ margin-top: 12px;
+ margin-bottom: 12px;
+}
diff --git a/packages/components/src/color-picker/index.native.js b/packages/components/src/color-picker/index.native.js
new file mode 100644
index 00000000000000..e95d2b4d770f61
--- /dev/null
+++ b/packages/components/src/color-picker/index.native.js
@@ -0,0 +1,186 @@
+/**
+ * External dependencies
+ */
+import { View, Text, TouchableWithoutFeedback, Platform } from 'react-native';
+import HsvColorPicker from 'react-native-hsv-color-picker';
+import tinycolor from 'tinycolor2';
+/**
+ * WordPress dependencies
+ */
+import { useState, useEffect } from '@wordpress/element';
+import { __ } from '@wordpress/i18n';
+import { BottomSheet } from '@wordpress/components';
+import { usePreferredColorSchemeStyle } from '@wordpress/compose';
+import { Icon, check, close } from '@wordpress/icons';
+/**
+ * Internal dependencies
+ */
+import styles from './style.scss';
+
+function ColorPicker( {
+ shouldEnableBottomSheetScroll,
+ shouldDisableBottomSheetMaxHeight,
+ isBottomSheetContentScrolling,
+ setColor,
+ activeColor,
+ isGradientColor,
+ onNavigationBack,
+ onCloseBottomSheet,
+} ) {
+ const isIOS = Platform.OS === 'ios';
+ const hitSlop = { top: 22, bottom: 22, left: 22, right: 22 };
+
+ const [ hue, setHue ] = useState( 0 );
+ const [ sat, setSaturation ] = useState( 0.5 );
+ const [ val, setValue ] = useState( 0.5 );
+ const [ savedColor ] = useState( activeColor );
+
+ const {
+ paddingLeft: spacing,
+ height: pickerHeight,
+ borderRadius,
+ } = styles.picker;
+ const { height: pickerPointerSize } = styles.pickerPointer;
+ const pickerWidth = BottomSheet.getWidth() - 2 * spacing;
+
+ const applyButtonStyle = usePreferredColorSchemeStyle(
+ styles.applyButton,
+ styles.applyButtonDark
+ );
+ const cancelButtonStyle = usePreferredColorSchemeStyle(
+ styles.cancelButton,
+ styles.cancelButtonDark
+ );
+ const colorTextStyle = usePreferredColorSchemeStyle(
+ styles.colorText,
+ styles.colorTextDark
+ );
+ const footerStyle = usePreferredColorSchemeStyle(
+ styles.footer,
+ styles.footerDark
+ );
+
+ const currentColor = tinycolor(
+ `hsv ${ hue } ${ sat } ${ val }`
+ ).toHexString();
+
+ function setHSVFromHex( color ) {
+ const { h, s, v } = tinycolor( color ).toHsv();
+
+ setHue( h );
+ setSaturation( s );
+ setValue( v );
+ }
+
+ useEffect( () => {
+ setColor( currentColor );
+ }, [ currentColor ] );
+
+ useEffect( () => {
+ if ( ! isGradientColor && activeColor ) {
+ setHSVFromHex( activeColor );
+ }
+ setColor( activeColor );
+ shouldDisableBottomSheetMaxHeight( false );
+ onCloseBottomSheet( () => setColor( savedColor ) );
+ }, [] );
+
+ function onHuePickerChange( { hue: h } ) {
+ setHue( h );
+ }
+
+ function onSatValPickerChange( { saturation: s, value: v } ) {
+ setSaturation( s );
+ setValue( v );
+ }
+
+ function onButtonPress( action ) {
+ onNavigationBack();
+ onCloseBottomSheet( null );
+ shouldDisableBottomSheetMaxHeight( true );
+ setColor( action === 'apply' ? currentColor : savedColor );
+ }
+
+ return (
+ <>
+ {
+ shouldEnableBottomSheetScroll( false );
+ } }
+ onSatValPickerDragEnd={ () =>
+ shouldEnableBottomSheetScroll( true )
+ }
+ onHuePickerDragStart={ () =>
+ shouldEnableBottomSheetScroll( false )
+ }
+ onHuePickerDragEnd={ () =>
+ shouldEnableBottomSheetScroll( true )
+ }
+ huePickerBarWidth={ pickerWidth }
+ huePickerBarHeight={ pickerPointerSize / 2 }
+ satValPickerSize={ {
+ width: pickerWidth,
+ height: pickerHeight,
+ } }
+ satValPickerSliderSize={ pickerPointerSize * 2 }
+ satValPickerBorderRadius={ borderRadius }
+ huePickerBorderRadius={ borderRadius }
+ />
+
+ onButtonPress( 'cancel' ) }
+ hitSlop={ hitSlop }
+ >
+
+ { isIOS ? (
+
+ { __( 'Cancel' ) }
+
+ ) : (
+
+ ) }
+
+
+
+ { currentColor.toUpperCase() }
+
+ onButtonPress( 'apply' ) }
+ hitSlop={ hitSlop }
+ >
+
+ { isIOS ? (
+
+ { __( 'Apply' ) }
+
+ ) : (
+
+ ) }
+
+
+
+ >
+ );
+}
+
+export default ColorPicker;
diff --git a/packages/components/src/color-picker/inputs.js b/packages/components/src/color-picker/inputs.js
index 3f46d0b3e58f8d..99da852a7e8cd9 100644
--- a/packages/components/src/color-picker/inputs.js
+++ b/packages/components/src/color-picker/inputs.js
@@ -221,7 +221,7 @@ export class Inputs extends Component {
type="number"
min="0"
max="1"
- step="0.05"
+ step="0.01"
/>
) }
diff --git a/packages/components/src/color-picker/style.native.scss b/packages/components/src/color-picker/style.native.scss
new file mode 100644
index 00000000000000..336e34a17e1d34
--- /dev/null
+++ b/packages/components/src/color-picker/style.native.scss
@@ -0,0 +1,53 @@
+.footer {
+ border-top-width: $border-width;
+ border-color: $light-gray-400;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: $panel-padding;
+ margin-top: $panel-padding;
+ flex-wrap: wrap;
+}
+
+.footerDark {
+ border-color: $gray-70;
+}
+
+.cancelButton {
+ color: #d63638;
+ font-size: 17px;
+}
+
+.cancelButtonDark {
+ color: #f86368;
+}
+
+.applyButton {
+ color: $blue-50;
+ font-size: 17px;
+}
+
+.applyButtonDark {
+ color: $blue-30;
+}
+
+.colorText {
+ font-family: $default-monospace-font;
+ color: $light-primary;
+ font-size: 16px;
+ font-weight: 400;
+}
+
+.colorTextDark {
+ color: $dark-primary;
+}
+
+.picker {
+ padding: $panel-padding;
+ border-radius: $panel-padding / 2;
+ height: 200px;
+}
+
+.pickerPointer {
+ height: 16px;
+}
diff --git a/packages/components/src/custom-select-control/index.js b/packages/components/src/custom-select-control/index.js
index 49eb2b51a5c438..fdda79fb97aecd 100644
--- a/packages/components/src/custom-select-control/index.js
+++ b/packages/components/src/custom-select-control/index.js
@@ -79,6 +79,7 @@ export default function CustomSelectControl( {
const menuProps = getMenuProps( {
className: 'components-custom-select-control__menu',
+ 'aria-hidden': ! isOpen,
} );
// We need this here, because the null active descendant is not
// fully ARIA compliant.
diff --git a/packages/components/src/date-time/date.js b/packages/components/src/date-time/date.js
index e912a2fd8f9999..c650df693c4da2 100644
--- a/packages/components/src/date-time/date.js
+++ b/packages/components/src/date-time/date.js
@@ -2,7 +2,9 @@
* External dependencies
*/
import moment from 'moment';
-import { DayPickerSingleDateController } from 'react-dates';
+// react-dates doesn't tree-shake correctly, so we import from the individual
+// component here, to avoid including too much of the library
+import DayPickerSingleDateController from 'react-dates/lib/components/DayPickerSingleDateController';
/**
* WordPress dependencies
diff --git a/packages/components/src/date-time/index.js b/packages/components/src/date-time/index.js
index 0decc8876c9060..dae442ef0d3659 100644
--- a/packages/components/src/date-time/index.js
+++ b/packages/components/src/date-time/index.js
@@ -161,13 +161,24 @@ export class DateTimePicker extends Component {
) }
{ ! this.state.calendarHelpIsVisible && (
-
- { __( 'Calendar Help' ) }
-
+
+ { currentDate && (
+ onChange( null ) }
+ >
+ { __( 'Reset' ) }
+
+ ) }
+
+ { __( 'Calendar Help' ) }
+
+
) }
);
diff --git a/packages/components/src/date-time/style.scss b/packages/components/src/date-time/style.scss
index 73d18df3688ae1..1ee2116cb5eb32 100644
--- a/packages/components/src/date-time/style.scss
+++ b/packages/components/src/date-time/style.scss
@@ -15,6 +15,11 @@
}
}
+ .components-datetime__buttons {
+ display: flex;
+ justify-content: space-between;
+ }
+
.components-datetime__date-help-button {
display: block;
margin-left: auto;
diff --git a/packages/components/src/date-time/time.js b/packages/components/src/date-time/time.js
index 9d8dbce3b2db04..6cb51580aff254 100644
--- a/packages/components/src/date-time/time.js
+++ b/packages/components/src/date-time/time.js
@@ -99,6 +99,9 @@ class TimePicker extends Component {
const { is12Hour } = this.props;
const { am, hours, date } = this.state;
const value = parseInt( hours, 10 );
+ if ( value === date.hour() ) {
+ return;
+ }
if (
! isInteger( value ) ||
( is12Hour && ( value < 1 || value > 12 ) ) ||
@@ -121,6 +124,9 @@ class TimePicker extends Component {
updateMinutes() {
const { minutes, date } = this.state;
const value = parseInt( minutes, 10 );
+ if ( value === date.minute() ) {
+ return;
+ }
if ( ! isInteger( value ) || value < 0 || value > 59 ) {
this.syncState( this.props );
return;
@@ -132,6 +138,9 @@ class TimePicker extends Component {
updateDay() {
const { day, date } = this.state;
const value = parseInt( day, 10 );
+ if ( value === date.date() ) {
+ return;
+ }
if ( ! isInteger( value ) || value < 1 || value > 31 ) {
this.syncState( this.props );
return;
@@ -143,6 +152,9 @@ class TimePicker extends Component {
updateMonth() {
const { month, date } = this.state;
const value = parseInt( month, 10 );
+ if ( value === date.month() + 1 ) {
+ return;
+ }
if ( ! isInteger( value ) || value < 1 || value > 12 ) {
this.syncState( this.props );
return;
@@ -154,6 +166,9 @@ class TimePicker extends Component {
updateYear() {
const { year, date } = this.state;
const value = parseInt( year, 10 );
+ if ( value === date.year() ) {
+ return;
+ }
if ( ! isInteger( value ) || value < 0 || value > 9999 ) {
this.syncState( this.props );
return;
diff --git a/packages/components/src/dropdown-menu/index.native.js b/packages/components/src/dropdown-menu/index.native.js
index d665e37e49cae3..c8163fd6f8bee6 100644
--- a/packages/components/src/dropdown-menu/index.native.js
+++ b/packages/components/src/dropdown-menu/index.native.js
@@ -163,8 +163,6 @@ function DropdownMenu( {
leftAlign={ true }
isSelected={ control.isActive }
separatorType={
- indexOfControl ===
- controlSet.length - 1 ||
Platform.OS === 'android'
? 'none'
: 'leftMargin'
diff --git a/packages/components/src/font-size-picker/index.js b/packages/components/src/font-size-picker/index.js
index 30c316c0e1b9f3..43c3d75f5cda32 100644
--- a/packages/components/src/font-size-picker/index.js
+++ b/packages/components/src/font-size-picker/index.js
@@ -1,7 +1,6 @@
/**
* WordPress dependencies
*/
-import { useState } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
import { useInstanceId } from '@wordpress/compose';
import { textColor } from '@wordpress/icons';
@@ -51,53 +50,17 @@ export default function FontSizePicker( {
withSlider = false,
} ) {
const instanceId = useInstanceId( FontSizePicker );
- const [ currentSelectValue, setCurrentSelectValue ] = useState(
- getSelectValueFromFontSize( fontSizes, value )
- );
if ( disableCustomFontSizes && ! fontSizes.length ) {
return null;
}
- const setFontSize = ( fontSizeKey, fontSizeValue ) => {
- setCurrentSelectValue( fontSizeKey );
-
- if ( fontSizeKey === DEFAULT_FONT_SIZE ) {
- onChange( undefined );
- return;
- }
-
- if ( ! fontSizeValue ) {
- return;
- }
-
- onChange( Number( fontSizeValue ) );
- };
-
- const onChangeValue = ( event ) => {
- const newValue = event.target.value;
- const key = getSelectValueFromFontSize( fontSizes, newValue );
- setFontSize( key, newValue );
- };
-
- const onSelectChangeValue = ( { selectedItem } ) => {
- const selectedKey = selectedItem.key;
- const selectedValue = selectedItem.style && selectedItem.style.fontSize;
- setFontSize( selectedKey, selectedValue );
- };
-
- const onSliderChangeValue = ( sliderValue ) => {
- const sliderKey = getSelectValueFromFontSize( fontSizes, sliderValue );
- setFontSize( sliderKey, sliderValue );
- };
-
- const reset = () => {
- setFontSize( DEFAULT_FONT_SIZE );
- };
-
const options = getSelectOptions( fontSizes, disableCustomFontSizes );
+ const selectedFontSizeSlug = getSelectValueFromFontSize( fontSizes, value );
+
const fontSizePickerNumberId = `components-font-size-picker__number#${ instanceId }`;
+
return (
{ __( 'Font size' ) }
@@ -107,12 +70,15 @@ export default function FontSizePicker( {
className={ 'components-font-size-picker__select' }
label={ __( 'Preset size' ) }
options={ options }
- value={
- options.find(
- ( option ) => option.key === currentSelectValue
- ) || options[ 0 ]
- }
- onChange={ onSelectChangeValue }
+ value={ options.find(
+ ( option ) => option.key === selectedFontSizeSlug
+ ) }
+ onChange={ ( { selectedItem } ) => {
+ const selectedValue =
+ selectedItem.style &&
+ selectedItem.style.fontSize;
+ onChange( Number( selectedValue ) );
+ } }
/>
) }
{ ! withSlider && ! disableCustomFontSizes && (
@@ -124,7 +90,10 @@ export default function FontSizePicker( {
id={ fontSizePickerNumberId }
className="components-font-size-picker__number"
type="number"
- onChange={ onChangeValue }
+ min={ 1 }
+ onChange={ ( event ) => {
+ onChange( Number( event.target.value ) );
+ } }
aria-label={ __( 'Custom' ) }
value={ value || '' }
/>
@@ -133,7 +102,9 @@ export default function FontSizePicker( {
{
+ onChange( undefined );
+ } }
isSmall
isSecondary
>
@@ -146,7 +117,9 @@ export default function FontSizePicker( {
label={ __( 'Custom Size' ) }
value={ value || '' }
initialPosition={ fallbackFontSize }
- onChange={ onSliderChangeValue }
+ onChange={ ( newValue ) => {
+ onChange( newValue );
+ } }
min={ 12 }
max={ 100 }
beforeIcon={ textColor }
diff --git a/packages/components/src/index.js b/packages/components/src/index.js
index f5142afb2f86e0..22010927940e1b 100644
--- a/packages/components/src/index.js
+++ b/packages/components/src/index.js
@@ -77,6 +77,10 @@ export { default as RadioControl } from './radio-control';
export { default as RangeControl } from './range-control';
export { default as ResizableBox } from './resizable-box';
export { default as ResponsiveWrapper } from './responsive-wrapper';
+export {
+ default as __experimentalRovingTabIndex,
+ RovingTabIndexItem as __experimentalRovingTabIndexItem,
+} from './roving-tab-index';
export { default as SandBox } from './sandbox';
export { default as SelectControl } from './select-control';
export { default as Snackbar } from './snackbar';
@@ -91,9 +95,15 @@ export { default as Tip } from './tip';
export { default as ToggleControl } from './toggle-control';
export { default as Toolbar } from './toolbar';
export { default as ToolbarButton } from './toolbar-button';
+export { default as __experimentalToolbarContext } from './toolbar-context';
export { default as ToolbarGroup } from './toolbar-group';
export { default as __experimentalToolbarItem } from './toolbar-item';
export { default as Tooltip } from './tooltip';
+export {
+ default as __experimentalTreeGrid,
+ TreeGridRow as __experimentalTreeGridRow,
+ TreeGridCell as __experimentalTreeGridCell,
+} from './tree-grid';
export { default as TreeSelect } from './tree-select';
export { default as __experimentalUnitControl } from './unit-control';
export { default as VisuallyHidden } from './visually-hidden';
diff --git a/packages/components/src/index.native.js b/packages/components/src/index.native.js
index 5e213eddb10baa..d06f63519f7e6e 100644
--- a/packages/components/src/index.native.js
+++ b/packages/components/src/index.native.js
@@ -14,6 +14,7 @@ export { default as Dashicon } from './dashicon';
export { default as Dropdown } from './dropdown';
export { default as Toolbar } from './toolbar';
export { default as ToolbarButton } from './toolbar-button';
+export { default as __experimentalToolbarContext } from './toolbar-context';
export { default as ToolbarGroup } from './toolbar-group';
export { default as __experimentalToolbarItem } from './toolbar-item';
export { default as Icon } from './icon';
@@ -37,6 +38,7 @@ export { default as SelectControl } from './select-control';
export { default as RangeControl } from './range-control';
export { default as ResizableBox } from './resizable-box';
export { default as UnsupportedFooterControl } from './unsupported-footer-control';
+export { default as ColorControl } from './color-control';
export { default as QueryControls } from './query-controls';
// Higher-Order Components
@@ -51,6 +53,7 @@ export * from './text';
// Mobile Components
export { default as BottomSheet } from './mobile/bottom-sheet';
+export { BottomSheetConsumer } from './mobile/bottom-sheet/bottom-sheet-context';
export { default as HTMLTextInput } from './mobile/html-text-input';
export { default as KeyboardAvoidingView } from './mobile/keyboard-avoiding-view';
export { default as KeyboardAwareFlatList } from './mobile/keyboard-aware-flat-list';
@@ -60,3 +63,13 @@ export { default as ReadableContentView } from './mobile/readable-content-view';
export { default as CycleSelectControl } from './mobile/cycle-select-control';
export { default as ImageWithFocalPoint } from './mobile/image-with-focalpoint';
export { default as LinearGradient } from './mobile/linear-gradient';
+export { default as ColorSettings } from './mobile/color-settings';
+
+// Utils
+export { colorsUtils } from './mobile/color-settings/utils';
+
+export {
+ default as GlobalStylesContext,
+ useGlobalStyles,
+ withGlobalStyles,
+} from './mobile/global-styles-context';
diff --git a/packages/components/src/mobile/bottom-sheet/bottom-sheet-context.native.js b/packages/components/src/mobile/bottom-sheet/bottom-sheet-context.native.js
new file mode 100644
index 00000000000000..9252e5daf3ac4e
--- /dev/null
+++ b/packages/components/src/mobile/bottom-sheet/bottom-sheet-context.native.js
@@ -0,0 +1,43 @@
+/**
+ * External dependencies
+ */
+import { Platform, UIManager } from 'react-native';
+/**
+ * WordPress dependencies
+ */
+import { createContext } from '@wordpress/element';
+
+// It's needed to set the following flags via UIManager
+// to have `LayoutAnimation` working on Android
+if (
+ Platform.OS === 'android' &&
+ UIManager.setLayoutAnimationEnabledExperimental
+) {
+ UIManager.setLayoutAnimationEnabledExperimental( true );
+}
+
+// Context in BottomSheet is necessary for controlling the
+// transition flow between subsheets and replacing a content inside them
+export const {
+ Provider: BottomSheetProvider,
+ Consumer: BottomSheetConsumer,
+} = createContext( {
+ // Specifies whether content is currently scrolling
+ isBottomSheetContentScrolling: false,
+ // Function called to enable scroll within bottom sheet
+ shouldEnableBottomSheetScroll: () => {},
+ // Function called to disable bottom sheet max height.
+ // E.g. used to extend bottom sheet on full screen in ColorPicker,
+ // which is helpful on small devices with set the largest font/display size.
+ shouldDisableBottomSheetMaxHeight: () => {},
+ // Callback that is called on closing bottom sheet
+ onCloseBottomSheet: () => {},
+ // Android only: Function called to control android hardware back button functionality
+ onHardwareButtonPress: () => {},
+ // Function called to navigate to another subsheet
+ onReplaceSubsheet: () => {},
+ // Object contains extra data passed to the current subsheet
+ extraProps: {},
+ // Specifies the currently active subsheet name
+ currentScreen: undefined,
+} );
diff --git a/packages/components/src/mobile/bottom-sheet/cell.native.js b/packages/components/src/mobile/bottom-sheet/cell.native.js
index 50d11a85017151..7514c208efe157 100644
--- a/packages/components/src/mobile/bottom-sheet/cell.native.js
+++ b/packages/components/src/mobile/bottom-sheet/cell.native.js
@@ -191,7 +191,7 @@ class BottomSheetCell extends Component {
case 'none':
return undefined;
case undefined:
- if ( showValue && icon !== undefined ) {
+ if ( showValue && icon ) {
return leftMarginStyle;
}
return defaultSeparatorStyle;
diff --git a/packages/components/src/mobile/bottom-sheet/color-cell.native.js b/packages/components/src/mobile/bottom-sheet/color-cell.native.js
new file mode 100644
index 00000000000000..04f8ada26bacd3
--- /dev/null
+++ b/packages/components/src/mobile/bottom-sheet/color-cell.native.js
@@ -0,0 +1,33 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Icon, chevronRight } from '@wordpress/icons';
+import { ColorIndicator } from '@wordpress/components';
+/**
+ * Internal dependencies
+ */
+import Cell from './cell';
+import styles from './styles.scss';
+
+export default function BottomSheetColorCell( props ) {
+ const { color, ...cellProps } = props;
+
+ return (
+
+ { color && (
+
+ ) }
+
+ |
+ );
+}
diff --git a/packages/components/src/mobile/bottom-sheet/index.native.js b/packages/components/src/mobile/bottom-sheet/index.native.js
index 7ad5917a33bd77..24327ebf3a4cfa 100644
--- a/packages/components/src/mobile/bottom-sheet/index.native.js
+++ b/packages/components/src/mobile/bottom-sheet/index.native.js
@@ -10,6 +10,8 @@ import {
ScrollView,
Keyboard,
StatusBar,
+ TouchableHighlight,
+ LayoutAnimation,
} from 'react-native';
import Modal from 'react-native-modal';
import SafeArea from 'react-native-safe-area';
@@ -31,16 +33,32 @@ import CyclePickerCell from './cycle-picker-cell';
import PickerCell from './picker-cell';
import SwitchCell from './switch-cell';
import RangeCell from './range-cell';
-import UnsupportedFooterCell from './unsupported-footer-cell';
-
+import ColorCell from './color-cell';
import KeyboardAvoidingView from './keyboard-avoiding-view';
+import { BottomSheetProvider } from './bottom-sheet-context';
+
+const ANIMATION_DURATION = 300;
class BottomSheet extends Component {
constructor() {
super( ...arguments );
this.onSafeAreaInsetsUpdate = this.onSafeAreaInsetsUpdate.bind( this );
this.onScroll = this.onScroll.bind( this );
+ this.isScrolling = this.isScrolling.bind( this );
+ this.onShouldEnableScroll = this.onShouldEnableScroll.bind( this );
+ this.onShouldSetBottomSheetMaxHeight = this.onShouldSetBottomSheetMaxHeight.bind(
+ this
+ );
this.onDimensionsChange = this.onDimensionsChange.bind( this );
+ this.onCloseBottomSheet = this.onCloseBottomSheet.bind( this );
+ this.onHandleClosingBottomSheet = this.onHandleClosingBottomSheet.bind(
+ this
+ );
+ this.onHardwareButtonPress = this.onHardwareButtonPress.bind( this );
+ this.onHandleHardwareButtonPress = this.onHandleHardwareButtonPress.bind(
+ this
+ );
+ this.onReplaceSubsheet = this.onReplaceSubsheet.bind( this );
this.keyboardWillShow = this.keyboardWillShow.bind( this );
this.keyboardDidHide = this.keyboardDidHide.bind( this );
@@ -49,6 +67,13 @@ class BottomSheet extends Component {
bounces: false,
maxHeight: 0,
keyboardHeight: 0,
+ scrollEnabled: true,
+ isScrolling: false,
+ onCloseBottomSheet: null,
+ onHardwareButtonPress: null,
+ isMaxHeightSet: true,
+ currentScreen: '',
+ extraProps: {},
};
SafeArea.getSafeAreaInsetsForRootView().then(
@@ -112,6 +137,14 @@ class BottomSheet extends Component {
this.keyboardDidHideListener.remove();
}
+ componentDidUpdate( prevProps ) {
+ const { isVisible } = this.props;
+
+ if ( ! prevProps.isVisible && isVisible ) {
+ this.setState( { currentScreen: '' } );
+ }
+ }
+
onSafeAreaInsetsUpdate( result ) {
const { safeAreaBottomInset } = this.state;
if ( this.safeAreaEventSubscription === null ) {
@@ -129,7 +162,7 @@ class BottomSheet extends Component {
const statusBarHeight =
Platform.OS === 'android' ? StatusBar.currentHeight : 0;
- // `maxHeight` when modal is opened alon with a keyboard
+ // `maxHeight` when modal is opened along with a keyboard
const maxHeightWithOpenKeyboard =
0.95 *
( Dimensions.get( 'window' ).height -
@@ -171,12 +204,67 @@ class BottomSheet extends Component {
onScroll( { nativeEvent } ) {
if ( this.isCloseToTop( nativeEvent ) ) {
this.setState( { bounces: false } );
- }
- if ( this.isCloseToBottom( nativeEvent ) ) {
+ } else if ( this.isCloseToBottom( nativeEvent ) ) {
this.setState( { bounces: true } );
}
}
+ onShouldEnableScroll( value ) {
+ this.setState( { scrollEnabled: value } );
+ }
+
+ onShouldSetBottomSheetMaxHeight( value ) {
+ this.setState( { isMaxHeightSet: value } );
+ }
+
+ isScrolling( value ) {
+ this.setState( { isScrolling: value } );
+ }
+
+ onHandleClosingBottomSheet( action ) {
+ this.setState( { onCloseBottomSheet: action } );
+ }
+
+ onHandleHardwareButtonPress( action ) {
+ this.setState( { onHardwareButtonPress: action } );
+ }
+
+ onCloseBottomSheet() {
+ const { onClose } = this.props;
+ const { onCloseBottomSheet } = this.state;
+ if ( onCloseBottomSheet ) {
+ onCloseBottomSheet();
+ }
+ onClose();
+ }
+
+ onHardwareButtonPress() {
+ const { onClose } = this.props;
+ const { onHardwareButtonPress } = this.state;
+ if ( onHardwareButtonPress ) {
+ return onHardwareButtonPress();
+ }
+ return onClose();
+ }
+
+ onReplaceSubsheet( destination, extraProps, callback ) {
+ LayoutAnimation.configureNext(
+ LayoutAnimation.create(
+ ANIMATION_DURATION,
+ LayoutAnimation.Types.easeInEaseOut,
+ LayoutAnimation.Properties.opacity
+ )
+ );
+
+ this.setState(
+ {
+ currentScreen: destination,
+ extraProps: extraProps || {},
+ },
+ callback
+ );
+ }
+
render() {
const {
title = '',
@@ -187,12 +275,20 @@ class BottomSheet extends Component {
style = {},
contentStyle = {},
getStylesFromColorScheme,
- onClose,
onDismiss,
children,
...rest
} = this.props;
- const { maxHeight, bounces, safeAreaBottomInset } = this.state;
+ const {
+ maxHeight,
+ bounces,
+ safeAreaBottomInset,
+ isScrolling,
+ scrollEnabled,
+ isMaxHeightSet,
+ extraProps,
+ currentScreen,
+ } = this.state;
const panResponder = PanResponder.create( {
onMoveShouldSetPanResponder: ( evt, gestureState ) => {
@@ -233,25 +329,27 @@ class BottomSheet extends Component {
isVisible={ isVisible }
style={ styles.bottomModal }
animationInTiming={ 600 }
- animationOutTiming={ 250 }
+ animationOutTiming={ 300 }
backdropTransitionInTiming={ 50 }
backdropTransitionOutTiming={ 50 }
backdropOpacity={ 0.2 }
- onBackdropPress={ onClose }
- onBackButtonPress={ onClose }
- onSwipe={ onClose }
+ onBackdropPress={ this.onCloseBottomSheet }
+ onBackButtonPress={ this.onHardwareButtonPress }
+ onSwipe={ this.onCloseBottomSheet }
onDismiss={ Platform.OS === 'ios' ? onDismiss : undefined }
onModalHide={
Platform.OS === 'android' ? onDismiss : undefined
}
swipeDirection="down"
onMoveShouldSetResponder={
+ scrollEnabled &&
panResponder.panHandlers.onMoveShouldSetResponder
}
onMoveShouldSetResponderCapture={
+ scrollEnabled &&
panResponder.panHandlers.onMoveShouldSetResponderCapture
}
- onAccessibilityEscape={ onClose }
+ onAccessibilityEscape={ this.onCloseBottomSheet }
{ ...rest }
>
this.isScrolling( true ) }
+ onScrollEndDrag={ () => this.isScrolling( false ) }
scrollEventThrottle={ 16 }
- style={ { maxHeight } }
+ style={ isMaxHeightSet ? { maxHeight } : {} }
contentContainerStyle={ [
styles.content,
hideHeader && styles.emptyHeader,
contentStyle,
] }
+ scrollEnabled={ scrollEnabled }
+ automaticallyAdjustContentInsets={ false }
>
- { children }
+
+
+ <>{ children }>
+
+
@@ -302,6 +423,6 @@ ThemedBottomSheet.CyclePickerCell = CyclePickerCell;
ThemedBottomSheet.PickerCell = PickerCell;
ThemedBottomSheet.SwitchCell = SwitchCell;
ThemedBottomSheet.RangeCell = RangeCell;
-ThemedBottomSheet.UnsupportedFooterCell = UnsupportedFooterCell;
+ThemedBottomSheet.ColorCell = ColorCell;
export default ThemedBottomSheet;
diff --git a/packages/components/src/mobile/bottom-sheet/navigation-header.native.js b/packages/components/src/mobile/bottom-sheet/navigation-header.native.js
new file mode 100644
index 00000000000000..dc3974a9140362
--- /dev/null
+++ b/packages/components/src/mobile/bottom-sheet/navigation-header.native.js
@@ -0,0 +1,74 @@
+/**
+ * External dependencies
+ */
+import { View, TouchableWithoutFeedback, Text, Platform } from 'react-native';
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Icon, chevronLeft, arrowLeft } from '@wordpress/icons';
+import { usePreferredColorSchemeStyle } from '@wordpress/compose';
+/**
+ * Internal dependencies
+ */
+import styles from './styles.scss';
+
+function BottomSheetNavigationHeader( { leftButtonOnPress, screen } ) {
+ const isIOS = Platform.OS === 'ios';
+
+ const bottomSheetHeaderTitleStyle = usePreferredColorSchemeStyle(
+ styles.bottomSheetHeaderTitle,
+ styles.bottomSheetHeaderTitleDark
+ );
+ const bottomSheetButtonTextStyle = usePreferredColorSchemeStyle(
+ styles.bottomSheetButtonText,
+ styles.bottomSheetButtonTextDark
+ );
+ const chevronLeftStyle = usePreferredColorSchemeStyle(
+ styles.chevronLeftIcon,
+ styles.chevronLeftIconDark
+ );
+ const arrowLeftStyle = usePreferredColorSchemeStyle(
+ styles.arrowLeftIcon,
+ styles.arrowLeftIconDark
+ );
+
+ return (
+
+
+
+ { isIOS ? (
+ <>
+
+
+ { __( 'Back' ) }
+
+ >
+ ) : (
+
+ ) }
+
+
+
+ { screen }
+
+
+
+ );
+}
+
+export default BottomSheetNavigationHeader;
diff --git a/packages/components/src/mobile/bottom-sheet/styles.native.scss b/packages/components/src/mobile/bottom-sheet/styles.native.scss
index 4550fb21d0c52d..9320388f065101 100644
--- a/packages/components/src/mobile/bottom-sheet/styles.native.scss
+++ b/packages/components/src/mobile/bottom-sheet/styles.native.scss
@@ -122,28 +122,28 @@
.cellLabel {
font-size: 17px;
- color: #2e4453;
+ color: $gray-dark;
margin-right: 12px;
flex-shrink: 1;
}
.cellLabelCentered {
font-size: 17px;
- color: #2e4453;
+ color: $gray-dark;
flex: 1;
text-align: center;
}
.cellLabelLeftAlignNoIcon {
font-size: 17px;
- color: #2e4453;
+ color: $gray-dark;
flex: 1;
margin-left: 0;
}
.cellValue {
font-size: 17px;
- color: #2e4453;
+ color: $gray-dark;
text-align: right;
flex: 1;
}
@@ -170,3 +170,70 @@
font-size: $text-editor-font-size;
color: $gray;
}
+
+// Color Cell
+
+.colorCircle {
+ width: 2 * $panel-padding;
+ height: 2 * $panel-padding;
+ border-radius: $panel-padding;
+}
+
+// Navigation Header
+
+.bottomSheetHeader {
+ flex-direction: row;
+ align-items: center;
+ padding-right: $panel-padding;
+ padding-left: $panel-padding;
+ min-height: 44px;
+}
+
+.bottomSheetBackButton {
+ flex-direction: row;
+ align-items: center;
+ flex: 1;
+}
+
+.chevronLeftIcon {
+ color: $blue-50;
+ margin-left: -13px;
+ margin-right: -13px;
+}
+
+.chevronLeftIconDark {
+ color: $blue-30;
+}
+
+.bottomSheetHeaderTitle {
+ color: $light-primary;
+ text-align: center;
+ font-weight: 600;
+ font-size: 16px;
+ flex: 2;
+}
+
+.bottomSheetHeaderTitleDark {
+ color: $dark-primary;
+}
+
+.bottomSheetButtonText {
+ color: $blue-50;
+ font-size: 16px;
+}
+
+.bottomSheetButtonTextDark {
+ color: $blue-30;
+}
+
+.bottomSheetRightSpace {
+ flex: 1;
+}
+
+.arrowLeftIcon {
+ color: $gray-60;
+}
+
+.arrowLeftIconDark {
+ color: $dark-secondary;
+}
diff --git a/packages/components/src/mobile/color-settings/index.native.js b/packages/components/src/mobile/color-settings/index.native.js
new file mode 100644
index 00000000000000..1c481f84802b67
--- /dev/null
+++ b/packages/components/src/mobile/color-settings/index.native.js
@@ -0,0 +1,194 @@
+/**
+ * External dependencies
+ */
+import { View, Text, LayoutAnimation } from 'react-native';
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { useState, useEffect } from '@wordpress/element';
+import { usePreferredColorSchemeStyle } from '@wordpress/compose';
+/**
+ * Internal dependencies
+ */
+import ColorPicker from '../../color-picker';
+import ColorPalette from '../../color-palette';
+import ColorIndicator from '../../color-indicator';
+import NavigationHeader from '../bottom-sheet/navigation-header';
+import SegmentedControls from '../segmented-control';
+import { colorsUtils } from './utils';
+
+import styles from './style.scss';
+
+function ColorSettings( {
+ label,
+ onColorChange,
+ onGradientChange,
+ colorValue,
+ onReplaceSubsheet,
+ shouldEnableBottomSheetScroll,
+ shouldDisableBottomSheetMaxHeight,
+ isBottomSheetContentScrolling,
+ onCloseBottomSheet,
+ onHardwareButtonPress,
+ defaultSettings,
+} ) {
+ const [ currentValue, setCurrentValue ] = useState( colorValue );
+ const [ isCustomScreen, setIsCustomScreen ] = useState( false );
+
+ const { segments, subsheets, isGradient } = colorsUtils;
+ const selectedSegmentIndex = isGradient( currentValue ) ? 1 : 0;
+
+ const [ currentSegment, setCurrentSegment ] = useState(
+ segments[ selectedSegmentIndex ]
+ );
+
+ const isSolidSegment = currentSegment === segments[ 0 ];
+
+ const horizontalSeparatorStyle = usePreferredColorSchemeStyle(
+ styles.horizontalSeparator,
+ styles.horizontalSeparatorDark
+ );
+
+ useEffect( () => {
+ onHardwareButtonPress( () => {
+ if ( isCustomScreen ) {
+ onCustomScreenToggle( false );
+ } else {
+ onReplaceSubsheet(
+ subsheets[ 0 ],
+ {},
+ afterHardwareButtonPress()
+ );
+ }
+ } );
+ }, [ isCustomScreen ] );
+
+ useEffect( () => {
+ setCurrentSegment( segments[ selectedSegmentIndex ] );
+ shouldDisableBottomSheetMaxHeight( true );
+ onCloseBottomSheet( null );
+ }, [] );
+
+ function afterHardwareButtonPress() {
+ onHardwareButtonPress( null );
+ shouldDisableBottomSheetMaxHeight( true );
+ }
+
+ function onCustomScreenToggle( shouldShow ) {
+ LayoutAnimation.configureNext(
+ LayoutAnimation.create(
+ 300,
+ LayoutAnimation.Types.easeInEaseOut,
+ LayoutAnimation.Properties.opacity
+ )
+ );
+ setIsCustomScreen( shouldShow );
+ }
+
+ function setColor( color ) {
+ setCurrentValue( color );
+ if ( isSolidSegment && onColorChange && onGradientChange ) {
+ onColorChange( color );
+ onGradientChange( '' );
+ } else if ( isSolidSegment && onColorChange ) {
+ onColorChange( color );
+ } else if ( ! isSolidSegment && onGradientChange ) {
+ onGradientChange( color );
+ }
+ }
+
+ function getFooter() {
+ if ( onGradientChange ) {
+ return (
+ setCurrentSegment( item ) }
+ selectedIndex={ selectedSegmentIndex }
+ addonLeft={
+ currentValue && (
+
+ )
+ }
+ />
+ );
+ }
+ return (
+
+
+ { currentValue && (
+
+ ) }
+
+
+ { __( 'Select a color' ) }
+
+
+
+ );
+ }
+
+ return (
+
+ { isCustomScreen && (
+
+ {
+ onCustomScreenToggle( false );
+ } }
+ onCloseBottomSheet={ onCloseBottomSheet }
+ isBottomSheetContentScrolling={
+ isBottomSheetContentScrolling
+ }
+ />
+
+ ) }
+ { ! isCustomScreen && (
+
+
+ onReplaceSubsheet( subsheets[ 0 ] )
+ }
+ />
+ {
+ onCustomScreenToggle( true );
+ } }
+ shouldEnableBottomSheetScroll={
+ shouldEnableBottomSheetScroll
+ }
+ defaultSettings={ defaultSettings }
+ />
+
+ { getFooter() }
+
+ ) }
+
+ );
+}
+
+export default ColorSettings;
diff --git a/packages/components/src/mobile/color-settings/style.native.scss b/packages/components/src/mobile/color-settings/style.native.scss
new file mode 100644
index 00000000000000..1aa05378a08107
--- /dev/null
+++ b/packages/components/src/mobile/color-settings/style.native.scss
@@ -0,0 +1,40 @@
+
+.horizontalSeparator {
+ border-bottom-width: $border-width;
+ border-color: $light-gray-400;
+}
+
+.horizontalSeparatorDark {
+ border-color: $gray-70;
+}
+
+.colorIndicator {
+ width: 24px;
+ height: 24px;
+}
+
+.footer {
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ align-content: center;
+ padding: 12px $panel-padding;
+}
+
+.colorIndicator {
+ width: 24px;
+ height: 24px;
+}
+
+.selectColorText {
+ text-align: center;
+ color: $gray;
+ font-size: 16px;
+ flex: 2;
+ line-height: 24px;
+}
+
+.flex {
+ flex: 1;
+}
+
diff --git a/packages/components/src/mobile/color-settings/utils.native.js b/packages/components/src/mobile/color-settings/utils.native.js
new file mode 100644
index 00000000000000..1ff4e20cbbb462
--- /dev/null
+++ b/packages/components/src/mobile/color-settings/utils.native.js
@@ -0,0 +1,8 @@
+export const colorsUtils = {
+ subsheets: {
+ settings: 'Settings',
+ color: 'Color',
+ },
+ segments: [ 'Solid', 'Gradient' ],
+ isGradient: ( color ) => color?.includes( 'linear-gradient' ),
+};
diff --git a/packages/components/src/mobile/global-styles-context/index.native.js b/packages/components/src/mobile/global-styles-context/index.native.js
new file mode 100644
index 00000000000000..2ff310d27ee3e7
--- /dev/null
+++ b/packages/components/src/mobile/global-styles-context/index.native.js
@@ -0,0 +1,22 @@
+/**
+ * WordPress dependencies
+ */
+import { createContext, useContext } from '@wordpress/element';
+
+const GlobalStylesContext = createContext( { style: {} } );
+
+export const useGlobalStyles = () => {
+ const globalStyles = useContext( GlobalStylesContext );
+
+ return globalStyles;
+};
+
+export const withGlobalStyles = ( WrappedComponent ) => ( props ) => (
+
+ { ( globalStyles ) => (
+
+ ) }
+
+);
+
+export default GlobalStylesContext;
diff --git a/packages/components/src/mobile/segmented-control/index.native.js b/packages/components/src/mobile/segmented-control/index.native.js
new file mode 100644
index 00000000000000..e97847e0c997da
--- /dev/null
+++ b/packages/components/src/mobile/segmented-control/index.native.js
@@ -0,0 +1,181 @@
+/**
+ * External dependencies
+ */
+import {
+ View,
+ TouchableWithoutFeedback,
+ Text,
+ Platform,
+ LayoutAnimation,
+ Animated,
+ Easing,
+} from 'react-native';
+import { take, values, map, reduce } from 'lodash';
+/**
+ * WordPress dependencies
+ */
+import { useState, useEffect } from '@wordpress/element';
+import { usePreferredColorSchemeStyle } from '@wordpress/compose';
+
+/**
+ * Internal dependencies
+ */
+import styles from './style.scss';
+
+const ANIMATION_DURATION = 200;
+
+const isIOS = Platform.OS === 'ios';
+
+const Segment = ( { isSelected, title, onPress, onLayout } ) => {
+ const isSelectedIOS = isIOS && isSelected;
+
+ const segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];
+
+ const textStyle = usePreferredColorSchemeStyle(
+ styles.buttonTextDefault,
+ styles.buttonTextDefaultDark
+ );
+ const selectedTextStyle = usePreferredColorSchemeStyle(
+ styles.buttonTextSelected,
+ styles.buttonTextSelectedDark
+ );
+ const shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );
+
+ return (
+
+
+
+
+ { title }
+
+
+
+
+ );
+};
+
+const SegmentedControls = ( {
+ segments,
+ segmentHandler,
+ selectedIndex,
+ addonLeft,
+ addonRight,
+} ) => {
+ const selectedSegmentIndex = selectedIndex || 0;
+ const [ activeSegmentIndex, setActiveSegmentIndex ] = useState(
+ selectedSegmentIndex
+ );
+ const [ segmentsDimensions, setSegmentsDimensions ] = useState( {
+ [ activeSegmentIndex ]: { width: 0, height: 0 },
+ } );
+ const [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );
+
+ useEffect( () => {
+ setActiveSegmentIndex( selectedSegmentIndex );
+ segmentHandler( segments[ selectedSegmentIndex ] );
+ }, [] );
+
+ useEffect( () => {
+ positionAnimationValue.setValue(
+ calculateEndValue( activeSegmentIndex )
+ );
+ }, [ segmentsDimensions ] );
+
+ const containerStyle = usePreferredColorSchemeStyle(
+ styles.container,
+ styles.containerDark
+ );
+
+ function performAnimation( index ) {
+ Animated.timing( positionAnimationValue, {
+ toValue: calculateEndValue( index ),
+ duration: ANIMATION_DURATION,
+ easing: Easing.ease,
+ } ).start();
+ }
+
+ function calculateEndValue( index ) {
+ const { paddingLeft: offset } = isIOS
+ ? styles.containerIOS
+ : styles.container;
+ const widths = map( values( segmentsDimensions ), 'width' );
+ const widthsDistance = take( widths, index );
+ const widthsDistanceSum = reduce(
+ widthsDistance,
+ ( sum, n ) => sum + n
+ );
+
+ const endValue = index === 0 ? 0 : widthsDistanceSum;
+ return endValue + offset;
+ }
+
+ function onHandlePress( segment, index ) {
+ LayoutAnimation.configureNext(
+ LayoutAnimation.create(
+ ANIMATION_DURATION,
+ LayoutAnimation.Types.easeInEaseOut,
+ LayoutAnimation.Properties.opacity
+ )
+ );
+ setActiveSegmentIndex( index );
+ segmentHandler( segment );
+ performAnimation( index, segment );
+ }
+
+ function segmentOnLayout( event, index ) {
+ const { width, height } = event.nativeEvent.layout;
+
+ setSegmentsDimensions( {
+ ...segmentsDimensions,
+ [ index ]: { width, height },
+ } );
+ }
+
+ const selectedStyle = usePreferredColorSchemeStyle(
+ styles.selected,
+ styles.selectedDark
+ );
+
+ const width = segmentsDimensions[ activeSegmentIndex ].width;
+ const height = segmentsDimensions[ activeSegmentIndex ].height;
+
+ const outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];
+
+ return (
+
+ { addonLeft }
+
+ { segments.map( ( segment, index ) => {
+ return (
+ onHandlePress( segment, index ) }
+ isSelected={ activeSegmentIndex === index }
+ key={ index }
+ onLayout={ ( event ) =>
+ segmentOnLayout( event, index )
+ }
+ />
+ );
+ } ) }
+
+
+ { addonRight }
+
+ );
+};
+
+export default SegmentedControls;
diff --git a/packages/components/src/mobile/segmented-control/style.native.scss b/packages/components/src/mobile/segmented-control/style.native.scss
new file mode 100644
index 00000000000000..abacc818804b14
--- /dev/null
+++ b/packages/components/src/mobile/segmented-control/style.native.scss
@@ -0,0 +1,99 @@
+$container-height: 32px;
+$segment-height: 28px;
+$segment-spacing: 2px;
+$border-width-ios: $border-width / 2;
+$border-width-android: $border-width;
+$border-radius-ios: 7px;
+
+.segment {
+ border-radius: $segment-height / 2;
+ padding: 6px $panel-padding;
+ align-items: center;
+ justify-content: center;
+ margin-top: $segment-spacing + $border-width;
+ margin-bottom: $segment-spacing + $border-width;
+ z-index: 2;
+}
+
+.segmentIOS {
+ border-radius: $border-radius-ios;
+ margin-top: $segment-spacing + $border-width-ios;
+ margin-bottom: $segment-spacing + $border-width-ios;
+}
+
+.selected {
+ position: absolute;
+ background-color: $white;
+}
+
+.selectedDark {
+ background-color: $dark-quaternary;
+}
+
+.shadowIOS {
+ box-shadow: 0 0 8px $light-dim;
+ z-index: 2;
+}
+
+.container {
+ min-height: $container-height;
+ background-color: $light-ultra-dim;
+ border-radius: $container-height / 2;
+ align-items: center;
+ flex-direction: row;
+ align-self: center;
+ padding-left: $segment-spacing + $border-width;
+ padding-right: $segment-spacing + $border-width;
+}
+
+.containerDark {
+ background-color: $dark-ultra-dim;
+}
+
+.containerIOS {
+ border-radius: $border-radius-ios + 2 * $border-width-ios;
+ padding-left: $segment-spacing + $border-width-ios;
+ padding-right: $segment-spacing + $border-width-ios;
+}
+
+.outline {
+ position: absolute;
+ min-height: $segment-height - 2 * $border-width-ios;
+ border-width: $border-width;
+ border-radius: $container-height / 2;
+ border-color: $light-ultra-dim;
+}
+
+.outlineIOS {
+ border-radius: $border-radius-ios;
+ border-width: $border-width-ios;
+}
+
+.buttonTextDefault {
+ font-size: 12px;
+ font-weight: 600;
+ text-align: center;
+ color: $light-secondary;
+}
+
+.buttonTextDefaultDark {
+ color: #e0e0e0;
+}
+
+.buttonTextSelected {
+ color: $light-primary;
+}
+
+.buttonTextSelectedDark {
+ color: #f4f4f4;
+}
+
+.row {
+ flex-direction: row;
+ align-items: center;
+ padding: $panel-padding / 2 $panel-padding;
+}
+
+.flex {
+ flex: 1;
+}
diff --git a/packages/components/src/modal/frame.js b/packages/components/src/modal/frame.js
index 955085b43428a3..25938225598a3b 100644
--- a/packages/components/src/modal/frame.js
+++ b/packages/components/src/modal/frame.js
@@ -9,7 +9,6 @@ import classnames from 'classnames';
import { Component, createRef } from '@wordpress/element';
import { ESCAPE } from '@wordpress/keycodes';
-import { focus } from '@wordpress/dom';
import { compose } from '@wordpress/compose';
/**
@@ -27,7 +26,6 @@ class ModalFrame extends Component {
this.containerRef = createRef();
this.handleKeyDown = this.handleKeyDown.bind( this );
this.handleFocusOutside = this.handleFocusOutside.bind( this );
- this.focusFirstTabbable = this.focusFirstTabbable.bind( this );
}
/**
@@ -36,17 +34,7 @@ class ModalFrame extends Component {
componentDidMount() {
// Focus on mount
if ( this.props.focusOnMount ) {
- this.focusFirstTabbable();
- }
- }
-
- /**
- * Focuses the first tabbable element.
- */
- focusFirstTabbable() {
- const tabbables = focus.tabbable.find( this.containerRef.current );
- if ( tabbables.length ) {
- tabbables[ 0 ].focus();
+ this.containerRef.current.focus();
}
}
diff --git a/packages/components/src/modal/index.js b/packages/components/src/modal/index.js
index ce0a74b9833bdb..450800cbfeebd4 100644
--- a/packages/components/src/modal/index.js
+++ b/packages/components/src/modal/index.js
@@ -136,11 +136,7 @@ class Modal extends Component {
} }
{ ...otherProps }
>
-
+
+
{ actions.map( ( { label, onPress } ) => {
return (
);
} ) }
+
);
}
-export default PanelActions;
+export default withPreferredColorScheme( PanelActions );
diff --git a/packages/components/src/panel/actions.native.scss b/packages/components/src/panel/actions.native.scss
index ed226c13883be9..1ede25e36aa4c7 100644
--- a/packages/components/src/panel/actions.native.scss
+++ b/packages/components/src/panel/actions.native.scss
@@ -1,5 +1,10 @@
.panelActionsContainer {
- padding-top: 24;
+ border-top-color: $light-gray-400;
+ border-top-width: 1px;
+}
+
+.panelActionsContainerDark {
+ border-top-color: $gray-70;
}
.defaultLabelStyle {
diff --git a/packages/components/src/panel/body.native.js b/packages/components/src/panel/body.native.js
index 36126ea76a9f5b..60d75ef7b16de7 100644
--- a/packages/components/src/panel/body.native.js
+++ b/packages/components/src/panel/body.native.js
@@ -3,33 +3,22 @@
*/
import { Text, View } from 'react-native';
-/**
- * WordPress dependencies
- */
-import { Component } from '@wordpress/element';
/**
* Internal dependencies
*/
import styles from './body.scss';
+import BottomSeparatorCover from './bottom-separator-cover';
-export class PanelBody extends Component {
- constructor() {
- super( ...arguments );
- this.state = {};
- }
-
- render() {
- const { children, title, style = {} } = this.props;
-
- return (
-
- { title && (
- { title }
- ) }
- { children }
-
- );
- }
+export function PanelBody( { children, title, style = {} } ) {
+ return (
+
+ { title && (
+ { title }
+ ) }
+ { children }
+
+
+ );
}
export default PanelBody;
diff --git a/packages/components/src/panel/bottom-separator-cover.native.js b/packages/components/src/panel/bottom-separator-cover.native.js
new file mode 100644
index 00000000000000..6c2f5ec13d6a81
--- /dev/null
+++ b/packages/components/src/panel/bottom-separator-cover.native.js
@@ -0,0 +1,27 @@
+/**
+ * External dependencies
+ */
+import { View } from 'react-native';
+
+/**
+ * WordPress dependencies
+ */
+import { withPreferredColorScheme } from '@wordpress/compose';
+
+/**
+ * Internal dependencies
+ */
+import styles from './bottom-separator-cover.scss';
+
+function BottomSeparatorCover( { getStylesFromColorScheme } ) {
+ return (
+
+ );
+}
+
+export default withPreferredColorScheme( BottomSeparatorCover );
diff --git a/packages/components/src/panel/bottom-separator-cover.native.scss b/packages/components/src/panel/bottom-separator-cover.native.scss
new file mode 100644
index 00000000000000..f166c9c7e56f53
--- /dev/null
+++ b/packages/components/src/panel/bottom-separator-cover.native.scss
@@ -0,0 +1,9 @@
+.coverSeparator {
+ height: 2px;
+ margin-top: -2px;
+ background-color: $white;
+}
+
+.coverSeparatorDark {
+ background-color: $background-dark-elevated;
+}
diff --git a/packages/components/src/popover/index.js b/packages/components/src/popover/index.js
index 13aa4b34dfe669..caebfcfe42784d 100644
--- a/packages/components/src/popover/index.js
+++ b/packages/components/src/popover/index.js
@@ -331,7 +331,7 @@ const Popover = ( {
if ( __unstableBoundaryParent ) {
boundaryElement = containerRef.current.closest(
'.popover-slot'
- ).parentNode;
+ )?.parentNode;
}
const {
diff --git a/packages/components/src/query-controls/index.native.js b/packages/components/src/query-controls/index.native.js
index e7932cd2854991..b9266e009151b1 100644
--- a/packages/components/src/query-controls/index.native.js
+++ b/packages/components/src/query-controls/index.native.js
@@ -59,7 +59,6 @@ export default function QueryControls( {
onOrderByChange( newOrderBy );
}
} }
- { ...{ separatorType: 'fullWidth' } }
/>
),
onCategoryChange && (
@@ -69,7 +68,6 @@ export default function QueryControls( {
noOptionLabel={ __( 'All' ) }
selectedCategoryId={ selectedCategoryId }
onChange={ onCategoryChange }
- { ...{ separatorType: 'fullWidth' } }
/>
),
onNumberOfItemsChange && (
@@ -80,7 +78,6 @@ export default function QueryControls( {
min={ minItems }
max={ maxItems }
required
- { ...{ separatorType: 'none' } }
/>
),
];
diff --git a/packages/components/src/range-control/README.md b/packages/components/src/range-control/README.md
index a014b31d6ede9e..6ad8d39f8da445 100644
--- a/packages/components/src/range-control/README.md
+++ b/packages/components/src/range-control/README.md
@@ -245,6 +245,14 @@ const MyRangeControl() {
- Required: No
- Platform: Web
+#### resetFallbackValue
+
+The value to revert to if the Reset button is clicked (enabled by `allowReset`)
+
+- Type: `Number`
+- Required: No
+- Platform: Web
+
#### showTooltip
Forcing the Tooltip UI to show or hide.
diff --git a/packages/components/src/range-control/index.js b/packages/components/src/range-control/index.js
index d718dec1a229a0..c09a86b3cf6781 100644
--- a/packages/components/src/range-control/index.js
+++ b/packages/components/src/range-control/index.js
@@ -30,13 +30,13 @@ import {
AfterIconWrapper,
BeforeIconWrapper,
InputRange,
- InputNumber,
Root,
Track,
ThumbWrapper,
Thumb,
Wrapper,
} from './styles/range-control-styles';
+import InputField from './input-field';
import { useRtl } from '../utils/rtl';
const BaseRangeControl = forwardRef(
@@ -61,6 +61,7 @@ const BaseRangeControl = forwardRef(
onFocus = noop,
onMouseMove = noop,
onMouseLeave = noop,
+ resetFallbackValue,
renderTooltipContent = ( v ) => v,
showTooltip: showTooltipProp,
step = 1,
@@ -122,13 +123,6 @@ const BaseRangeControl = forwardRef(
const enableTooltip = showTooltipProp !== false && isFinite( value );
const handleOnChange = ( event ) => {
- if (
- event.target.checkValidity &&
- ! event.target.checkValidity()
- ) {
- return;
- }
-
const nextValue = parseFloat( event.target.value );
if ( isNaN( nextValue ) ) {
@@ -141,8 +135,30 @@ const BaseRangeControl = forwardRef(
};
const handleOnReset = () => {
- setValue( null );
- onChange( undefined );
+ let resetValue = parseFloat( resetFallbackValue );
+ let onChangeResetValue = resetValue;
+
+ if ( isNaN( resetValue ) ) {
+ resetValue = null;
+ onChangeResetValue = undefined;
+ }
+
+ setValue( resetValue );
+
+ /**
+ * Previously, this callback would always receive undefined as
+ * an argument. This behavior is unexpected, specifically
+ * when resetFallbackValue is defined.
+ *
+ * The value of undefined is not ideal. Passing it through
+ * to internal elements would change it from a
+ * controlled component to an uncontrolled component.
+ *
+ * For now, to minimize unexpected regressions, we're going to
+ * preserve the undefined callback argument, except when a
+ * resetFallbackValue is defined.
+ */
+ onChange( onChangeResetValue );
};
const handleShowTooltip = () => setShowTooltip( true );
@@ -250,16 +266,14 @@ const BaseRangeControl = forwardRef(
) }
{ withInputField && (
-
) }
diff --git a/packages/components/src/range-control/index.native.js b/packages/components/src/range-control/index.native.js
index 88ec3f870b1b0d..9488fdad160879 100644
--- a/packages/components/src/range-control/index.native.js
+++ b/packages/components/src/range-control/index.native.js
@@ -55,6 +55,7 @@ function RangeControl( {
afterIcon={ afterIcon }
allowReset={ allowReset }
defaultValue={ initialSliderValue }
+ separatorType={ separatorType }
{ ...props }
/>
);
diff --git a/packages/components/src/range-control/input-field.js b/packages/components/src/range-control/input-field.js
new file mode 100644
index 00000000000000..9a908f98fc592a
--- /dev/null
+++ b/packages/components/src/range-control/input-field.js
@@ -0,0 +1,105 @@
+/**
+ * External dependencies
+ */
+import { noop } from 'lodash';
+
+/**
+ * WordPress dependencies
+ */
+import { ENTER } from '@wordpress/keycodes';
+
+/**
+ * Internal dependencies
+ */
+import { useControlledState } from '../utils/hooks';
+import { InputNumber } from './styles/range-control-styles';
+
+export default function InputField( {
+ label,
+ onBlur = noop,
+ onChange = noop,
+ onReset = noop,
+ onKeyDown = noop,
+ value: valueProp,
+ ...props
+} ) {
+ /**
+ * This component stores an internal (input) value state, derived from
+ * the incoming value prop.
+ *
+ * This allows for the to be updated independently before the
+ * value is applied and propagated. This independent updating action is
+ * necessary to accommodate individual keystroke values that may not
+ * be considered "valid" (e.g. within the min - max range).
+ */
+ const [ value, setValue ] = useControlledState( valueProp );
+
+ const handleOnReset = ( event ) => {
+ onReset( event );
+ setValue( '' );
+ };
+
+ const handleOnCommit = ( event ) => {
+ const nextValue = parseFloat( event.target.value );
+
+ if ( isNaN( nextValue ) ) {
+ handleOnReset();
+ return;
+ }
+
+ // Only propagate the event if the value is valid.
+ if ( event.target.checkValidity && ! event.target.checkValidity() ) {
+ // Otherwise... reset to initial value
+ setValue( valueProp );
+ return;
+ }
+ onChange( event );
+ };
+
+ const handleOnBlur = ( event ) => {
+ onBlur( event );
+ handleOnCommit( event );
+ };
+
+ const handleOnChange = ( event ) => {
+ setValue( event.target.value );
+
+ /**
+ * Prevent submitting if changes are invalid.
+ * This only applies to values being entered via KEY_DOWN.
+ *
+ * Pressing the up/down arrows of the HTML input also triggers a
+ * change event. However, those values will be (pre)validated by the
+ * HTML input.
+ */
+ if ( event.target.checkValidity && ! event.target.checkValidity() ) {
+ return;
+ }
+
+ handleOnCommit( event );
+ };
+
+ const handleOnKeyDown = ( event ) => {
+ const { keyCode } = event;
+ onKeyDown( event );
+
+ if ( keyCode === ENTER ) {
+ event.preventDefault();
+ handleOnCommit( event );
+ }
+ };
+
+ return (
+
+ );
+}
diff --git a/packages/components/src/range-control/rail.js b/packages/components/src/range-control/rail.js
index 111cf8d96972d7..93db3351c68121 100644
--- a/packages/components/src/range-control/rail.js
+++ b/packages/components/src/range-control/rail.js
@@ -66,7 +66,7 @@ function useMarks( { marks, min = 0, max = 100, step = 1, value = 0 } ) {
const isCustomMarks = Array.isArray( marks );
- const markCount = ( max - min ) / step;
+ const markCount = Math.round( ( max - min ) / step );
const marksArray = isCustomMarks
? marks
: [ ...Array( markCount + 1 ) ].map( ( _, index ) => ( {
@@ -77,7 +77,7 @@ function useMarks( { marks, min = 0, max = 100, step = 1, value = 0 } ) {
const markValue = mark.value !== undefined ? mark.value : value;
const key = `mark-${ index }`;
- const isFilled = markValue * step <= value;
+ const isFilled = markValue * step + min <= value;
const offset = `${ ( markValue / markCount ) * 100 }%`;
const offsetStyle = {
diff --git a/packages/components/src/range-control/test/index.js b/packages/components/src/range-control/test/index.js
index 31c72383a0271e..e0441f3b48845d 100644
--- a/packages/components/src/range-control/test/index.js
+++ b/packages/components/src/range-control/test/index.js
@@ -1,498 +1,355 @@
/**
* External dependencies
*/
-import { render, unmountComponentAtNode } from 'react-dom';
-import TestUtils, { act, Simulate } from 'react-dom/test-utils';
+import { fireEvent, render } from '@testing-library/react';
/**
* Internal dependencies
*/
import RangeControl from '../';
-/**
- * WordPress dependencies
- */
-import { Component } from '@wordpress/element';
-import { Dashicon } from '@wordpress/components';
+const getRangeInput = ( container ) =>
+ container.querySelector( 'input[type="range"]' );
+const getNumberInput = ( container ) =>
+ container.querySelector( 'input[type="number"]' );
+const getResetButton = ( container ) =>
+ container.querySelector( '.components-range-control__reset' );
-let container = null;
-
-beforeEach( () => {
- container = document.createElement( 'div' );
- document.body.appendChild( container );
-} );
+describe( 'RangeControl', () => {
+ describe( '#render()', () => {
+ it( 'should trigger change callback with numeric value', () => {
+ const onChange = jest.fn();
-afterEach( () => {
- unmountComponentAtNode( container );
- container.remove();
- container = null;
-} );
+ const { container } = render(
+
+ );
-describe( 'RangeControl', () => {
- class TestWrapper extends Component {
- render() {
- return ;
- }
- }
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
- const getWrapper = ( props = {} ) =>
- TestUtils.renderIntoDocument( );
+ fireEvent.change( rangeInput, { target: { value: '5' } } );
- describe( '#render()', () => {
- it( 'triggers change callback with numeric value', () => {
- // Mount: With shallow, cannot find input child of BaseControl
- const onChange = jest.fn();
- const wrapper = getWrapper( { onChange } );
-
- const rangeInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__slider'
- );
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
- TestUtils.Simulate.change( rangeInputElement(), {
- target: {
- value: '5',
- checkValidity() {
- return true;
- },
- },
- } );
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '10',
- checkValidity() {
- return true;
- },
- },
- } );
+ fireEvent.change( numberInput, { target: { value: '10' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).toHaveBeenCalledWith( 5 );
expect( onChange ).toHaveBeenCalledWith( 10 );
} );
- it( 'renders with icons', () => {
- let wrapper, icons;
- const iconElements = ( component ) =>
- TestUtils.scryRenderedComponentsWithType( component, Dashicon );
- wrapper = getWrapper();
- icons = iconElements( wrapper );
- expect( icons ).toHaveLength( 0 );
-
- wrapper = getWrapper( { beforeIcon: 'format-image' } );
- icons = iconElements( wrapper );
- expect( icons ).toHaveLength( 1 );
- expect( icons[ 0 ].props.icon ).toBe( 'format-image' );
-
- wrapper = getWrapper( {
- beforeIcon: 'format-image',
- afterIcon: 'format-video',
- } );
- icons = iconElements( wrapper );
- expect( icons ).toHaveLength( 2 );
- expect( icons[ 0 ].props.icon ).toBe( 'format-image' );
- expect( icons[ 1 ].props.icon ).toBe( 'format-video' );
+ it( 'should not render with icons, by default', () => {
+ const { container } = render(
+
+ );
+
+ const icon = container.querySelector( '.dashicons' );
+
+ expect( icon ).toBeFalsy();
+ } );
+
+ it( 'should render with icons', () => {
+ const { container } = render(
+
+ );
+
+ const beforeIcon = container.querySelector(
+ '.dashicons-format-image'
+ );
+ const afterIcon = container.querySelector(
+ '.dashicons-format-image'
+ );
+
+ expect( beforeIcon ).toBeTruthy();
+ expect( afterIcon ).toBeTruthy();
} );
} );
describe( 'validation', () => {
- it( 'does not calls onChange if the new value is lower than minimum', () => {
- // Mount: With shallow, cannot find input child of BaseControl
+ it( 'should not call onChange if the new value is lower than minimum', () => {
const onChange = jest.fn();
- const wrapper = getWrapper( { onChange, min: 11, value: 12 } );
-
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '10',
- checkValidity() {
- return false;
- },
- },
- } );
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
+
+ fireEvent.change( numberInput, { target: { value: '10' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).not.toHaveBeenCalled();
+ expect( rangeInput.value ).toBe( '20' );
} );
- it( 'does not calls onChange if the new value is greater than maximum', () => {
- // Mount: With shallow, cannot find input child of BaseControl
+ it( 'should not call onChange if the new value is greater than maximum', () => {
const onChange = jest.fn();
- const wrapper = getWrapper( { onChange, max: 20, value: 12 } );
-
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '21',
- checkValidity() {
- return false;
- },
- },
- } );
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
+
+ fireEvent.change( numberInput, { target: { value: '21' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).not.toHaveBeenCalled();
+ expect( rangeInput.value ).toBe( '10' );
} );
- it( 'calls onChange after invalid inputs if the new input is valid', () => {
- // Mount: With shallow, cannot find input child of BaseControl
+ it( 'should call onChange if new value is valid', () => {
const onChange = jest.fn();
- const wrapper = getWrapper( {
- onChange,
- min: 11,
- max: 20,
- value: 12,
- } );
-
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '10',
- checkValidity() {
- return false;
- },
- },
- } );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '21',
- checkValidity() {
- return false;
- },
- },
- } );
+ const { container } = render(
+
+ );
- expect( onChange ).not.toHaveBeenCalled();
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '14',
- checkValidity() {
- return true;
- },
- },
- } );
+ fireEvent.change( numberInput, { target: { value: '15' } } );
+ fireEvent.blur( numberInput );
- expect( onChange ).toHaveBeenCalledWith( 14 );
+ expect( onChange ).toHaveBeenCalledWith( 15 );
+ expect( rangeInput.value ).toBe( '15' );
} );
- it( 'validates when provided a max or min of zero', () => {
+ it( 'should validate when provided a max or min of zero', () => {
const onChange = jest.fn();
- const wrapper = getWrapper( {
- onChange,
- min: -100,
- max: 0,
- value: 0,
- } );
-
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '1',
- checkValidity() {
- return false;
- },
- },
- } );
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
+
+ fireEvent.change( numberInput, { target: { value: '1' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).not.toHaveBeenCalled();
+ expect( rangeInput.value ).toBe( '0' );
} );
- it( 'validates when min and max are negative', () => {
+ it( 'should validate when min and max are negative', () => {
const onChange = jest.fn();
- const wrapper = getWrapper( {
- onChange,
- min: -100,
- max: -50,
- value: -60,
- } );
-
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '-101',
- checkValidity() {
- return false;
- },
- },
- } );
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
+
+ fireEvent.change( numberInput, { target: { value: '-101' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).not.toHaveBeenCalled();
+ expect( rangeInput.value ).toBe( '-60' );
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '-49',
- checkValidity() {
- return false;
- },
- },
- } );
+ fireEvent.change( numberInput, { target: { value: '-49' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).not.toHaveBeenCalled();
+ expect( rangeInput.value ).toBe( '-60' );
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '-50',
- checkValidity() {
- return true;
- },
- },
- } );
+ fireEvent.change( numberInput, { target: { value: '-50' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).toHaveBeenCalledWith( -50 );
+ expect( rangeInput.value ).toBe( '-50' );
} );
- it( 'takes into account the step starting from min', () => {
+
+ it( 'should take into account the step starting from min', () => {
const onChange = jest.fn();
- const wrapper = getWrapper( {
- onChange,
- min: 0.1,
- step: 0.125,
- value: 0.1,
- } );
-
- const numberInputElement = () =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__number'
- );
-
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '0.125',
- checkValidity() {
- return false;
- },
- },
- } );
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
+
+ fireEvent.change( numberInput, { target: { value: '0.125' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).not.toHaveBeenCalled();
+ expect( rangeInput.value ).toBe( '0.1' );
- TestUtils.Simulate.change( numberInputElement(), {
- target: {
- value: '0.225',
- checkValidity() {
- return true;
- },
- },
- } );
+ fireEvent.change( numberInput, { target: { value: '0.225' } } );
+ fireEvent.blur( numberInput );
expect( onChange ).toHaveBeenCalledWith( 0.225 );
+ expect( rangeInput.value ).toBe( '0.225' );
} );
} );
describe( 'initialPosition / value', () => {
- const getInputElement = ( wrapper ) =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__slider'
+ it( 'should render initial rendered value of 50% of min/max, if no initialPosition or value is defined', () => {
+ const { container } = render(
+
);
- it( 'renders initial rendered value of 50% of min/max, if no initialPosition or value is defined', () => {
- const wrapper = getWrapper( { min: 0, max: 10 } );
- const inputElement = getInputElement( wrapper );
+ const rangeInput = getRangeInput( container );
- expect( inputElement.value ).toBe( '5' );
+ expect( rangeInput.value ).toBe( '5' );
} );
- it( 'renders initialPosition if no value is provided', () => {
- const wrapper = getWrapper( {
- initialPosition: 50,
- value: undefined,
- } );
- const inputElement = getInputElement( wrapper );
+ it( 'should render initialPosition if no value is provided', () => {
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
- expect( inputElement.value ).toBe( '50' );
+ expect( rangeInput.value ).toBe( '50' );
} );
- it( 'renders value instead of initialPosition is provided', () => {
- const wrapper = getWrapper( { initialPosition: 50, value: 10 } );
- const inputElement = getInputElement( wrapper );
+ it( 'should render value instead of initialPosition is provided', () => {
+ const { container } = render(
+
+ );
+
+ const rangeInput = getRangeInput( container );
- expect( inputElement.value ).toBe( '10' );
+ expect( rangeInput.value ).toBe( '10' );
} );
} );
describe( 'input field', () => {
it( 'should render an input field by default', () => {
- act( () => {
- render( , container );
- } );
- const field = container.querySelector( 'input[type="number"]' );
+ const { container } = render( );
- expect( field ).toBeTruthy();
+ const numberInput = getNumberInput( container );
+
+ expect( numberInput ).toBeTruthy();
} );
it( 'should not render an input field, if disabled', () => {
- act( () => {
- render( , container );
- } );
- const field = container.querySelector( 'input[type="number"]' );
+ const { container } = render(
+
+ );
- expect( field ).toBeFalsy();
+ const numberInput = getNumberInput( container );
+
+ expect( numberInput ).toBeFalsy();
} );
it( 'should render a zero value into input range and field', () => {
- act( () => {
- render( , container );
- } );
- const range = container.querySelector( 'input[type="range"]' );
- const field = container.querySelector( 'input[type="number"]' );
-
- expect( range.value ).toBe( '0' );
- expect( field.value ).toBe( '0' );
+ const { container } = render( );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
+
+ expect( rangeInput.value ).toBe( '0' );
+ expect( numberInput.value ).toBe( '0' );
} );
it( 'should update both field and range on change', () => {
- act( () => {
- render( , container );
- } );
- const range = container.querySelector( 'input[type="range"]' );
- const field = container.querySelector( 'input[type="number"]' );
+ const { container } = render( );
- act( () => {
- Simulate.change( range, { target: { value: 13 } } );
- } );
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
- expect( range.value ).toBe( '13' );
- expect( field.value ).toBe( '13' );
+ fireEvent.change( rangeInput, { target: { value: 13 } } );
- act( () => {
- Simulate.change( field, { target: { value: 7 } } );
- } );
+ expect( rangeInput.value ).toBe( '13' );
+ expect( numberInput.value ).toBe( '13' );
- expect( range.value ).toBe( '7' );
- expect( field.value ).toBe( '7' );
+ fireEvent.change( numberInput, { target: { value: 7 } } );
+ fireEvent.blur( numberInput );
+
+ expect( rangeInput.value ).toBe( '7' );
+ expect( numberInput.value ).toBe( '7' );
} );
it( 'should reset input values if next value is removed', () => {
- act( () => {
- render( , container );
- } );
- const range = container.querySelector( 'input[type="range"]' );
- const field = container.querySelector( 'input[type="number"]' );
+ const { container } = render( );
+
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
- expect( range.value ).toBe( '13' );
- expect( field.value ).toBe( '13' );
+ expect( rangeInput.value ).toBe( '13' );
+ expect( numberInput.value ).toBe( '13' );
- act( () => {
- Simulate.change( field, { target: { value: undefined } } );
- } );
+ fireEvent.change( numberInput, { target: { value: '' } } );
+ fireEvent.blur( numberInput );
// Reset to 50. Median value of min: 0, max: 100
- expect( range.value ).toBe( '50' );
+ expect( rangeInput.value ).toBe( '50' );
// Input field should be blank
- expect( field.value ).toBe( '' );
+ expect( numberInput.value ).toBe( '' );
} );
} );
describe( 'reset', () => {
- class StatefulTestWrapper extends Component {
- constructor( props ) {
- super( props );
- this.state = {
- value: undefined,
- };
- this.handleOnChange = this.handleOnChange.bind( this );
- }
-
- handleOnChange( nextValue = this.props.resetFallbackValue ) {
- this.setState( { value: nextValue } );
- }
-
- render() {
- return (
-
- );
- }
- }
-
- const getStatefulWrapper = ( props = {} ) =>
- TestUtils.renderIntoDocument(
-
- );
-
- const getInputElement = ( wrapper ) =>
- TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__slider'
- );
-
- it( 'resets to a custom fallback value, defined by a parent component', () => {
- const wrapper = getStatefulWrapper( {
- initialPosition: 50,
- value: 10,
- allowReset: true,
- resetFallbackValue: 33,
- } );
-
- const resetButton = TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__reset'
+ it( 'should reset to a custom fallback value, defined by a parent component', () => {
+ const spy = jest.fn();
+ const { container } = render(
+
);
- act( () => {
- TestUtils.Simulate.click( resetButton );
- } );
+ const resetButton = getResetButton( container );
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
- const inputElement = getInputElement( wrapper );
+ fireEvent.click( resetButton );
- expect( inputElement.value ).toBe( '33' );
+ expect( rangeInput.value ).toBe( '33' );
+ expect( numberInput.value ).toBe( '33' );
+ expect( spy ).toHaveBeenCalledWith( 33 );
} );
- it( 'resets to a 50% of min/max value, of no initialPosition or value is defined', () => {
- const wrapper = getStatefulWrapper( {
- initialPosition: undefined,
- value: 10,
- min: 0,
- max: 100,
- allowReset: true,
- resetFallbackValue: undefined,
- } );
-
- const resetButton = TestUtils.findRenderedDOMComponentWithClass(
- wrapper,
- 'components-range-control__reset'
+ it( 'should reset to a 50% of min/max value, of no initialPosition or value is defined', () => {
+ const spy = jest.fn();
+ const { container } = render(
+
);
- act( () => {
- TestUtils.Simulate.click( resetButton );
- } );
+ const resetButton = getResetButton( container );
+ const rangeInput = getRangeInput( container );
+ const numberInput = getNumberInput( container );
- const inputElement = getInputElement( wrapper );
+ fireEvent.click( resetButton );
- expect( inputElement.value ).toBe( '50' );
+ expect( rangeInput.value ).toBe( '50' );
+ expect( numberInput.value ).toBe( '' );
+ expect( spy ).toHaveBeenCalledWith( undefined );
} );
} );
} );
diff --git a/packages/components/src/range-control/utils.js b/packages/components/src/range-control/utils.js
index 9d2aecfa5e7a70..444c7958e3ce79 100644
--- a/packages/components/src/range-control/utils.js
+++ b/packages/components/src/range-control/utils.js
@@ -8,6 +8,11 @@ import { clamp, noop } from 'lodash';
*/
import { useCallback, useRef, useEffect, useState } from '@wordpress/element';
+/**
+ * Internal dependencies
+ */
+import { useControlledState } from '../utils/hooks';
+
/**
* A float supported clamp function for a specific value.
*
@@ -29,24 +34,22 @@ export function floatClamp( value, min, max ) {
* Hook to store a clamped value, derived from props.
*/
export function useControlledRangeValue( { min, max, value: valueProp } ) {
- const [ value, setValue ] = useState( floatClamp( valueProp, min, max ) );
- const valueRef = useRef( value );
+ const [ value, setValue ] = useControlledState(
+ floatClamp( valueProp, min, max )
+ );
const setClampValue = useCallback(
( nextValue ) => {
- setValue( floatClamp( nextValue, min, max ) );
+ if ( nextValue === null ) {
+ setValue( null );
+ } else {
+ setValue( floatClamp( nextValue, min, max ) );
+ }
},
- [ setValue, min, max ]
+ [ min, max ]
);
- useEffect( () => {
- if ( valueRef.current !== valueProp ) {
- setClampValue( valueProp );
- valueRef.current = valueProp;
- }
- }, [ valueProp, setValue ] );
-
- return [ value, setValue ];
+ return [ value, setClampValue ];
}
/**
diff --git a/packages/components/src/resizable-box/index.native.js b/packages/components/src/resizable-box/index.native.js
index 8c152613064f80..9de483e20c5096 100644
--- a/packages/components/src/resizable-box/index.native.js
+++ b/packages/components/src/resizable-box/index.native.js
@@ -12,7 +12,7 @@ import { withPreferredColorScheme } from '@wordpress/compose';
import styles from './style.scss';
function ResizableBox( props ) {
- const { size, isSelected, getStylesFromColorScheme } = props;
+ const { size, showHandle, getStylesFromColorScheme } = props;
const { height } = size;
const defaultStyle = getStylesFromColorScheme(
styles.staticSpacer,
@@ -22,7 +22,7 @@ function ResizableBox( props ) {
diff --git a/packages/components/src/resizable-box/style.scss b/packages/components/src/resizable-box/style.scss
index d993048cc399d6..51231b060fc123 100644
--- a/packages/components/src/resizable-box/style.scss
+++ b/packages/components/src/resizable-box/style.scss
@@ -8,9 +8,7 @@ $resize-handler-container-size: $resize-handler-size + ($grid-unit-05 * 2); // M
width: $resize-handler-container-size;
height: $resize-handler-container-size;
- // Show the resize handle when selected OR
// Show the resize handle if set in props
- .components-resizable-box__container.is-selected &,
.components-resizable-box__container.has-show-handle & {
display: block;
}
diff --git a/packages/components/src/roving-tab-index/README.md b/packages/components/src/roving-tab-index/README.md
new file mode 100644
index 00000000000000..66cf6bdc00eaee
--- /dev/null
+++ b/packages/components/src/roving-tab-index/README.md
@@ -0,0 +1,97 @@
+# RovingTabIndex
+
+## Table of contents
+
+1. [Development guidelines](#development-guidelines)
+2. [Related components](#related-components)
+
+## Development guidelines
+
+`RovingTabIndex` and `RovingTabIndexItem` are components that help to manage focus in the style of a roving tab index.
+
+A roving tab index is helpful for a UI component that contains multiple focusable elements, it reduces the number of tab stops in such a component to a single tab stop. Some more information is available here:
+
+- [WAI Aria Authoring Practices - Roving Tab Index](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_roving_tabindex)
+
+Some patterns that implement a roving tab index are:
+
+- [Layout Grid](https://www.w3.org/TR/wai-aria-practices/examples/grid/LayoutGrids.html)
+- [Editor Menu Bar](https://www.w3.org/TR/wai-aria-practices/examples/menubar/menubar-2/menubar-2.html)
+- [Navigation Menu Bar](https://www.w3.org/TR/wai-aria-practices/examples/menubar/menubar-1/menubar-1.html)
+- [Radio Group](https://www.w3.org/TR/wai-aria-practices/examples/radio/radio-1/radio-1.html)
+- [Toolbar](https://www.w3.org/TR/wai-aria-practices/examples/toolbar/toolbar.html)
+- [Tree Grid](https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html)
+- [Tree View](https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html)
+
+This component doesn't implement any keyboard navigation, instead it handles setting the correct `tabIndex` value on focusable elements. It should be composed with another component that implements keyboard navigation (e.g. arrow key navigation).
+
+### Usage
+
+Wrap the component with `RovingTabIndex` and declare individual focusable elements within the component with `RovingTabIndexItem`.
+
+```jsx
+function TreeMenu() {
+ return (
+
+
+
+ First item
+
+ Select
+
+
+
+ Second item
+
+ Select
+
+
+
+
+ );
+}
+```
+
+### Sub-Components
+
+#### RovingTabIndex
+
+##### Props
+
+This component takes no props, but should always have `children`.
+
+#### `RovingTabIndexItem`
+
+##### Props
+
+###### as
+
+Specify the component that the item should render as. For example the following renders a button with the text 'Close':
+
+```jsx
+Close
+```
+
+All props other than `as` are forwarded to the component, for example, the following code passes the `onClick` handler to the rendered `Button` component:
+
+```jsx
+Close
+```
+
+Components used with the `as` prop must be able to receive the `onFocus`, `tabIndex`, and `ref` props and pass those props to the element it renders.
+
+As an alternative to `as`, `RovingTabIndexItem` also supports a render prop function:
+
+```jsx
+
+ { ( props ) => Close }
+
+```
+
+The `props` passed to `Button` in this example contain the aforementioned `onFocus`, `tabIndex`, and `ref` props. For the roving tab index functionality to work, they should always be passed onto the `RovingTabIndexItem`'s child and handled correctly by that child.
+
+- Type: `React Component`
+- Required: No
+
+## Related components
+- `TreeGrid` implements a `RovingTabIndex`.
diff --git a/packages/components/src/roving-tab-index/context.js b/packages/components/src/roving-tab-index/context.js
new file mode 100644
index 00000000000000..90c3ca16704d74
--- /dev/null
+++ b/packages/components/src/roving-tab-index/context.js
@@ -0,0 +1,9 @@
+/**
+ * WordPress dependencies
+ */
+import { createContext, useContext } from '@wordpress/element';
+
+const RovingTabIndexContext = createContext();
+export const useRovingTabIndexContext = () =>
+ useContext( RovingTabIndexContext );
+export const RovingTabIndexProvider = RovingTabIndexContext.Provider;
diff --git a/packages/components/src/roving-tab-index/index.js b/packages/components/src/roving-tab-index/index.js
new file mode 100644
index 00000000000000..f39d8bde78f952
--- /dev/null
+++ b/packages/components/src/roving-tab-index/index.js
@@ -0,0 +1,32 @@
+/**
+ * WordPress dependencies
+ */
+import { useState, useMemo } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import { RovingTabIndexProvider } from './context';
+
+/**
+ * @see https://github.com/WordPress/gutenberg/blob/master/packages/components/src/roving-tab-index/README.md
+ */
+export default function RovingTabIndex( { children } ) {
+ const [ lastFocusedElement, setLastFocusedElement ] = useState();
+
+ // Use `useMemo` to avoid creation of a new object for the providerValue
+ // on every render. Only create a new object when the `lastFocusedElement`
+ // value changes.
+ const providerValue = useMemo(
+ () => ( { lastFocusedElement, setLastFocusedElement } ),
+ [ lastFocusedElement ]
+ );
+
+ return (
+
+ { children }
+
+ );
+}
+
+export { default as RovingTabIndexItem } from './item';
diff --git a/packages/components/src/roving-tab-index/item.js b/packages/components/src/roving-tab-index/item.js
new file mode 100644
index 00000000000000..f1f951f2b1eca3
--- /dev/null
+++ b/packages/components/src/roving-tab-index/item.js
@@ -0,0 +1,35 @@
+/**
+ * WordPress dependencies
+ */
+import { useRef } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import { useRovingTabIndexContext } from './context';
+
+export default function RovingTabIndexItem( {
+ children,
+ as: Component,
+ ...props
+} ) {
+ const ref = useRef();
+ const {
+ lastFocusedElement,
+ setLastFocusedElement,
+ } = useRovingTabIndexContext();
+ let tabIndex;
+
+ if ( lastFocusedElement ) {
+ tabIndex = lastFocusedElement === ref.current ? 0 : -1;
+ }
+
+ const onFocus = ( event ) => setLastFocusedElement( event.target );
+ const allProps = { ref, tabIndex, onFocus, ...props };
+
+ if ( typeof children === 'function' ) {
+ return children( allProps );
+ }
+
+ return { children } ;
+}
diff --git a/packages/components/src/roving-tab-index/stories/index.js b/packages/components/src/roving-tab-index/stories/index.js
new file mode 100644
index 00000000000000..36eaf245cd5125
--- /dev/null
+++ b/packages/components/src/roving-tab-index/stories/index.js
@@ -0,0 +1,64 @@
+/**
+ * Internal dependencies
+ */
+import RovingTabIndex, { RovingTabIndexItem } from '../';
+import { Button } from '../../';
+
+export default {
+ title: 'Components/RovingTabIndex',
+ component: RovingTabIndex,
+};
+
+export const _default = () => {
+ const onKeyDown = ( event ) => {
+ // Left key pressed.
+ if ( event.keyCode === 37 ) {
+ const previous = event.target.previousElementSibling;
+ if ( previous ) {
+ previous.focus();
+ }
+ }
+ // Right key pressed.
+ if ( event.keyCode === 39 ) {
+ const next = event.target.nextElementSibling;
+ if ( next ) {
+ next.focus();
+ }
+ }
+ // Home key pressed.
+ if ( event.keyCode === 36 ) {
+ const first = event.target.parentElement.firstElementChild;
+ if ( first ) {
+ first.focus();
+ }
+ }
+ // End key pressed.
+ if ( event.keyCode === 35 ) {
+ const last = event.target.parentElement.lastElementChild;
+ if ( last ) {
+ last.focus();
+ }
+ }
+ };
+
+ return (
+
+
+
+ Item 1
+
+
+ Item 2
+
+
+ Item 3
+
+
+
+ );
+};
diff --git a/packages/components/src/roving-tab-index/test/__snapshots__/index.js.snap b/packages/components/src/roving-tab-index/test/__snapshots__/index.js.snap
new file mode 100644
index 00000000000000..aa77ed429bd2ed
--- /dev/null
+++ b/packages/components/src/roving-tab-index/test/__snapshots__/index.js.snap
@@ -0,0 +1,7 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`RovingTabIndex does not render any elements other than its children 1`] = `
+
+ child element
+
+`;
diff --git a/packages/components/src/roving-tab-index/test/__snapshots__/item.js.snap b/packages/components/src/roving-tab-index/test/__snapshots__/item.js.snap
new file mode 100644
index 00000000000000..73aa1411cffc19
--- /dev/null
+++ b/packages/components/src/roving-tab-index/test/__snapshots__/item.js.snap
@@ -0,0 +1,25 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`RovingTabIndexItem allows another component to be specified as the rendered component using the \`as\` prop 1`] = `
+
+`;
+
+exports[`RovingTabIndexItem allows children to be declared using a child render function as an alternative to \`as\` 1`] = `
+
+ Click Me!
+
+`;
+
+exports[`RovingTabIndexItem forwards props to the \`as\` component 1`] = `
+
+ Click Me!
+
+`;
diff --git a/packages/components/src/roving-tab-index/test/index.js b/packages/components/src/roving-tab-index/test/index.js
new file mode 100644
index 00000000000000..942064581a351c
--- /dev/null
+++ b/packages/components/src/roving-tab-index/test/index.js
@@ -0,0 +1,21 @@
+/**
+ * External dependencies
+ */
+import TestRenderer from 'react-test-renderer';
+
+/**
+ * Internal dependencies
+ */
+import RovingTabIndex from '../';
+
+describe( 'RovingTabIndex', () => {
+ it( 'does not render any elements other than its children', () => {
+ const renderer = TestRenderer.create(
+
+ child element
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+} );
diff --git a/packages/components/src/roving-tab-index/test/item.js b/packages/components/src/roving-tab-index/test/item.js
new file mode 100644
index 00000000000000..80b97377da4979
--- /dev/null
+++ b/packages/components/src/roving-tab-index/test/item.js
@@ -0,0 +1,66 @@
+/**
+ * External dependencies
+ */
+import TestRenderer from 'react-test-renderer';
+
+/**
+ * WordPress dependencies
+ */
+import { forwardRef } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import RovingTabIndex from '../';
+import RovingTabIndexItem from '../item';
+
+const TestButton = forwardRef( ( { ...props }, ref ) => (
+
+) );
+
+describe( 'RovingTabIndexItem', () => {
+ it( 'requires RovingTabIndex to be declared as a parent component somewhere in the component hierarchy', () => {
+ expect( () =>
+ TestRenderer.create( )
+ ).toThrow();
+ expect( console ).toHaveErrored();
+ } );
+
+ it( 'allows another component to be specified as the rendered component using the `as` prop', () => {
+ const renderer = TestRenderer.create(
+
+
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+
+ it( 'forwards props to the `as` component', () => {
+ const renderer = TestRenderer.create(
+
+
+ Click Me!
+
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+
+ it( 'allows children to be declared using a child render function as an alternative to `as`', () => {
+ const renderer = TestRenderer.create(
+
+
+ { ( props ) => (
+
+ Click Me!
+
+ ) }
+
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+} );
diff --git a/packages/components/src/sandbox/index.js b/packages/components/src/sandbox/index.js
index 2fe01d33f86dbc..dd779b984c28ad 100644
--- a/packages/components/src/sandbox/index.js
+++ b/packages/components/src/sandbox/index.js
@@ -26,6 +26,18 @@ class Sandbox extends Component {
componentDidMount() {
this.trySandbox();
+ this.trySandboxWithoutRerender = () => {
+ this.trySandbox( false );
+ };
+ // This used to be registered using , but it made the iframe blank
+ // after reordering the containing block. See these two issues for more details:
+ // https://github.com/WordPress/gutenberg/issues/6146
+ // https://github.com/facebook/react/issues/18752
+ this.iframe.current.addEventListener(
+ 'load',
+ this.trySandboxWithoutRerender,
+ false
+ );
}
componentDidUpdate( prevProps ) {
@@ -34,6 +46,13 @@ class Sandbox extends Component {
this.trySandbox( forceRerender );
}
+ componentWillUnmount() {
+ this.iframe.current.removeEventListener(
+ 'load',
+ this.trySandboxWithoutRerender
+ );
+ }
+
isFrameAccessible() {
try {
return !! this.iframe.current.contentDocument.body;
@@ -233,7 +252,6 @@ class Sandbox extends Component {
title={ title }
className="components-sandbox"
sandbox="allow-scripts allow-same-origin allow-presentation"
- onLoad={ () => this.trySandbox( false ) }
onFocus={ onFocus }
width={ Math.ceil( this.state.width ) }
height={ Math.ceil( this.state.height ) }
diff --git a/packages/components/src/slot-fill/bubbles-virtually/slot-fill-provider.js b/packages/components/src/slot-fill/bubbles-virtually/slot-fill-provider.js
index 6d4b046a6271cf..c9bba8a6d7f64b 100644
--- a/packages/components/src/slot-fill/bubbles-virtually/slot-fill-provider.js
+++ b/packages/components/src/slot-fill/bubbles-virtually/slot-fill-provider.js
@@ -13,14 +13,17 @@ function useSlotRegistry() {
const [ fills, setFills ] = useState( {} );
const registerSlot = useCallback( ( name, ref, fillProps ) => {
- setSlots( ( prevSlots ) => ( {
- ...prevSlots,
- [ name ]: {
- ...prevSlots[ name ],
- ref: ref || prevSlots[ name ].ref,
- fillProps: fillProps || prevSlots[ name ].fillProps || {},
- },
- } ) );
+ setSlots( ( prevSlots ) => {
+ const currentSlot = prevSlots[ name ] || {};
+ return {
+ ...prevSlots,
+ [ name ]: {
+ ...currentSlot,
+ ref: ref || currentSlot.ref,
+ fillProps: fillProps || currentSlot.fillProps || {},
+ },
+ };
+ } );
}, [] );
const unregisterSlot = useCallback( ( name, ref ) => {
diff --git a/packages/components/src/toolbar-button/index.js b/packages/components/src/toolbar-button/index.js
index 347fd5fd0d7e60..7e84e89cc99315 100644
--- a/packages/components/src/toolbar-button/index.js
+++ b/packages/components/src/toolbar-button/index.js
@@ -21,6 +21,9 @@ function ToolbarButton( {
className,
extraProps,
children,
+ title,
+ isActive,
+ isDisabled,
...props
} ) {
const accessibleToolbarState = useContext( ToolbarContext );
@@ -32,7 +35,7 @@ function ToolbarButton( {
{
@@ -45,8 +48,9 @@ function ToolbarButton( {
'components-toolbar__control',
className
) }
- isPressed={ props.isActive }
- disabled={ props.isDisabled }
+ isPressed={ isActive }
+ disabled={ isDisabled }
+ data-experimental-toolbar-item
{ ...extraProps }
>
{ children }
@@ -64,7 +68,14 @@ function ToolbarButton( {
{ ...props }
>
{ ( toolbarItemProps ) => (
- { children }
+
+ { children }
+
) }
);
diff --git a/packages/components/src/toolbar-group/style.scss b/packages/components/src/toolbar-group/style.scss
index a804663d4ef793..fa1f90b957d011 100644
--- a/packages/components/src/toolbar-group/style.scss
+++ b/packages/components/src/toolbar-group/style.scss
@@ -79,6 +79,7 @@ div.components-toolbar {
// First button in a group.
.components-accessible-toolbar .components-toolbar-group > .components-button:first-child.has-icon,
+.components-accessible-toolbar .components-toolbar-group > div:first-child > .components-button.has-icon,
.components-toolbar div:first-child .components-button.has-icon {
min-width: $block-toolbar-height - $grid-unit-15 / 2;
padding-left: $grid-unit-15 - $border-width;
@@ -92,6 +93,7 @@ div.components-toolbar {
// Last button in a group.
.components-accessible-toolbar .components-toolbar-group > .components-button:last-child.has-icon,
+.components-accessible-toolbar .components-toolbar-group > div:last-child > .components-button.has-icon,
.components-toolbar div:last-child .components-button.has-icon {
min-width: $block-toolbar-height - $grid-unit-15 / 2;
padding-left: $grid-unit-15 / 2;
@@ -104,7 +106,8 @@ div.components-toolbar {
}
// Single buttons should remain 48px.
-.components-accessible-toolbar .components-toolbar-group > .components-button:first-child:last-child.has-icon,
+.components-accessible-toolbar .components-toolbar-group > .components-button:first-of-type:last-of-type.has-icon,
+.components-accessible-toolbar .components-toolbar-group > div:first-child:last-child > .components-button.has-icon,
.components-toolbar div:first-child:last-child > .components-button.has-icon {
min-width: $block-toolbar-height;
padding-left: $grid-unit-15;
diff --git a/packages/components/src/toolbar-group/toolbar-group-collapsed.js b/packages/components/src/toolbar-group/toolbar-group-collapsed.js
index fb9310bffdc9f6..1c020ad84d5c41 100644
--- a/packages/components/src/toolbar-group/toolbar-group-collapsed.js
+++ b/packages/components/src/toolbar-group/toolbar-group-collapsed.js
@@ -18,7 +18,10 @@ function ToolbarGroupCollapsed( { controls = [], ...props } ) {
const renderDropdownMenu = ( toggleProps ) => (
);
diff --git a/packages/components/src/toolbar-item/index.js b/packages/components/src/toolbar-item/index.js
index b4de3013fd8db9..a475eb5e8e3c79 100644
--- a/packages/components/src/toolbar-item/index.js
+++ b/packages/components/src/toolbar-item/index.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import { useToolbarItem } from 'reakit/Toolbar';
+import { ToolbarItem as BaseToolbarItem } from 'reakit/Toolbar';
/**
* WordPress dependencies
@@ -16,11 +16,6 @@ import ToolbarContext from '../toolbar-context';
function ToolbarItem( { children, ...props }, ref ) {
const accessibleToolbarState = useContext( ToolbarContext );
- // https://reakit.io/docs/composition/#props-hooks
- const itemProps = useToolbarItem( accessibleToolbarState, {
- ...props,
- ref,
- } );
if ( typeof children !== 'function' ) {
warning(
@@ -29,14 +24,21 @@ function ToolbarItem( { children, ...props }, ref ) {
return null;
}
+ const allProps = { ...props, ref, 'data-experimental-toolbar-item': true };
+
if ( ! accessibleToolbarState ) {
- warning(
- '`ToolbarItem` should be rendered within ``'
- );
- return null;
+ return children( allProps );
}
- return children( itemProps );
+ return (
+
+ { ( htmlProps ) =>
+ // Overwriting BaseToolbarItem's onMouseDown since it disables drag
+ // and drop
+ children( { ...htmlProps, onMouseDown: allProps.onMouseDown } )
+ }
+
+ );
}
export default forwardRef( ToolbarItem );
diff --git a/packages/components/src/toolbar-item/index.native.js b/packages/components/src/toolbar-item/index.native.js
index 1d38d98ce9af1a..919b31a04096af 100644
--- a/packages/components/src/toolbar-item/index.native.js
+++ b/packages/components/src/toolbar-item/index.native.js
@@ -11,7 +11,6 @@ function ToolbarItem( { children, ...props }, ref ) {
);
return null;
}
-
return children( { ...props, ref } );
}
diff --git a/packages/components/src/toolbar/index.js b/packages/components/src/toolbar/index.js
index 74fe904adf9952..228f73a7e5e453 100644
--- a/packages/components/src/toolbar/index.js
+++ b/packages/components/src/toolbar/index.js
@@ -3,6 +3,11 @@
*/
import classnames from 'classnames';
+/**
+ * WordPress dependencies
+ */
+import { forwardRef } from '@wordpress/element';
+
/**
* Internal dependencies
*/
@@ -16,8 +21,12 @@ import ToolbarContainer from './toolbar-container';
*
* @param {Object} props Component props.
* @param {string} [props.className] Class to set on the container div.
+ * @param {Object} ref React Element ref.
*/
-function Toolbar( { className, __experimentalAccessibilityLabel, ...props } ) {
+function Toolbar(
+ { className, __experimentalAccessibilityLabel, ...props },
+ ref
+) {
if ( __experimentalAccessibilityLabel ) {
return (
);
}
-
+ // When the __experimentalAccessibilityLabel prop is not passed, Toolbar will
+ // fallback to ToolbarGroup. This should be deprecated as soon as the new API
+ // gets stable.
+ // See https://github.com/WordPress/gutenberg/pull/20008#issuecomment-624503410
return ;
}
-export default Toolbar;
+export default forwardRef( Toolbar );
diff --git a/packages/components/src/toolbar/style.scss b/packages/components/src/toolbar/style.scss
index fdbcccb3f20294..ae147df18885c4 100644
--- a/packages/components/src/toolbar/style.scss
+++ b/packages/components/src/toolbar/style.scss
@@ -4,7 +4,7 @@
border-radius: $radius-block-ui;
flex-shrink: 0;
- .components-toolbar-group:last-child {
+ & > .components-toolbar-group:last-child {
border-right: none;
}
}
diff --git a/packages/components/src/tree-grid/README.md b/packages/components/src/tree-grid/README.md
new file mode 100644
index 00000000000000..47820f253c0b66
--- /dev/null
+++ b/packages/components/src/tree-grid/README.md
@@ -0,0 +1,129 @@
+# TreeGrid
+
+## Table of contents
+
+1. [Development guidelines](#development-guidelines)
+2. [Related components](#related-components)
+
+## Development guidelines
+
+`TreeGrid`, `TreeGridRow`, and `TreeGridCell` are components used to create a tree hierarchy. They're not visually styled components, but instead help with adding keyboard navigation and roving tab index behaviors to tree grid structures.
+
+A tree grid is a hierarchical 2 dimensional UI component, for example it could be used to implement a file system browser.
+
+A tree grid allows the user to navigate using arrow keys. Up/down to navigate vertically across rows, and left/right to navigate horizontally between focusables in a row.
+
+For more information on a tree grid, see the following links:
+
+- https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html
+
+### Usage
+
+The `TreeGrid` renders both a `table` and `tbody` element, and is intended to be used with `TreeGridRow` (`tr`) and `TreeGridCell` (`td`) to build out a grid.
+
+```jsx
+function TreeMenu() {
+ return (
+
+
+
+ { ( props ) => Select }
+
+
+ { ( props ) => Move Up }
+
+
+ { ( props ) => Move Down }
+
+
+
+
+ { ( props ) => Select }
+
+
+ { ( props ) => Move Up }
+
+
+ { ( props ) => Move Down }
+
+
+
+
+ { ( props ) => Select }
+
+
+ { ( props ) => Move Up }
+
+
+ { ( props ) => Move Down }
+
+
+
+ );
+}
+```
+
+### Sub-Components
+
+#### TreeGrid
+
+##### Props
+
+`TreeGrid` accepts no specific props. Any props specified will be passed to the `table` element rendered by `TreeGrid`.
+
+`TreeGrid` should always have children.
+
+#### TreeGridRow
+
+##### Props
+
+Additional props other than those specified below will be passed to the `tr` element rendered by `TreeGridRow`, so for example, it is possible to also set a `className` on a row.
+
+###### level
+
+An integer value designating the level in the hierarchical tree structure. Counting starts at 1. A value of `1` indicates the root level of the structure.
+
+- Type: `Number`
+- Required: Yes
+
+###### positionInSet
+
+An integer value that represents the position in the set. A set is the count of elements at a specific level. Counting starts at 1.
+
+- Type: `Number`
+- Required: Yes
+
+###### setSize
+
+An integer value that represents the total number of items in the set ... that is the total number of items at this specific level of the hierarchy.
+
+- Type: `Number`
+- Required: Yes
+
+###### isExpanded
+
+An optional value that designates whether a row is expanded or collapsed. Currently this value only sets the correct aria-expanded property on a row, it has no other built-in behavior.
+
+- Type: `Boolean`
+- Required: No
+
+### TreeGridCell
+
+#### Props
+
+`TreeGridCell` accepts no specific props. Any props specified will be passed to the `td` element rendered by `TreeGridCell`.
+
+#### `children` as a function
+
+`TreeGridCell` renders children using a function:
+
+```jsx
+
+ { ( props ) => Move Down }
+
+```
+
+Props passed as an argument to the render prop must be passed to the child focusable component/element within the cell. If a component is used, it must correctly handle the `onFocus`, `tabIndex`, and `ref` props, passing these to the element it renders. These props are used to handle the roving tab index functionality of the tree grid.
+
+## Related components
+- This component implements `RovingTabIndex`.
diff --git a/packages/components/src/tree-grid/cell.js b/packages/components/src/tree-grid/cell.js
new file mode 100644
index 00000000000000..a8e200ddce5647
--- /dev/null
+++ b/packages/components/src/tree-grid/cell.js
@@ -0,0 +1,12 @@
+/**
+ * Internal dependencies
+ */
+import { RovingTabIndexItem } from '../roving-tab-index';
+
+export default function TreeGridCell( { children, ...props } ) {
+ return (
+
+ { children }
+
+ );
+}
diff --git a/packages/components/src/tree-grid/index.js b/packages/components/src/tree-grid/index.js
new file mode 100644
index 00000000000000..e9d3c9d507b133
--- /dev/null
+++ b/packages/components/src/tree-grid/index.js
@@ -0,0 +1,157 @@
+/**
+ * External dependencies
+ */
+import { includes } from 'lodash';
+
+/**
+ * WordPress dependencies
+ */
+import { focus } from '@wordpress/dom';
+import { useCallback } from '@wordpress/element';
+import { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';
+
+/**
+ * Internal dependencies
+ */
+import RovingTabIndexContainer from '../roving-tab-index';
+
+/**
+ * Return focusables in a row element, excluding those from other branches
+ * nested within the row.
+ *
+ * @param {Element} rowElement The DOM element representing the row.
+ *
+ * @return {?Array} The array of focusables in the row.
+ */
+function getRowFocusables( rowElement ) {
+ const focusablesInRow = focus.focusable.find( rowElement );
+
+ if ( ! focusablesInRow || ! focusablesInRow.length ) {
+ return;
+ }
+
+ return focusablesInRow.filter( ( focusable ) => {
+ return focusable.closest( '[role="row"]' ) === rowElement;
+ } );
+}
+
+/**
+ * @see https://github.com/WordPress/gutenberg/blob/master/packages/components/src/tree-grid/README.md
+ */
+export default function TreeGrid( { children, ...props } ) {
+ const onKeyDown = useCallback( ( event ) => {
+ const { keyCode, metaKey, ctrlKey, altKey, shiftKey } = event;
+
+ const hasModifierKeyPressed = metaKey || ctrlKey || altKey || shiftKey;
+
+ if (
+ hasModifierKeyPressed ||
+ ! includes( [ UP, DOWN, LEFT, RIGHT ], keyCode )
+ ) {
+ return;
+ }
+
+ // The event will be handled, stop propagation.
+ event.stopPropagation();
+
+ const { activeElement } = document;
+ const { currentTarget: treeGridElement } = event;
+ if ( ! treeGridElement.contains( activeElement ) ) {
+ return;
+ }
+
+ // Calculate the columnIndex of the active element.
+ const activeRow = activeElement.closest( '[role="row"]' );
+ const focusablesInRow = getRowFocusables( activeRow );
+ const currentColumnIndex = focusablesInRow.indexOf( activeElement );
+
+ if ( includes( [ LEFT, RIGHT ], keyCode ) ) {
+ // Calculate to the next element.
+ let nextIndex;
+ if ( keyCode === LEFT ) {
+ nextIndex = Math.max( 0, currentColumnIndex - 1 );
+ } else {
+ nextIndex = Math.min(
+ currentColumnIndex + 1,
+ focusablesInRow.length - 1
+ );
+ }
+
+ // Focus is either at the left or right edge of the grid. Do nothing.
+ if ( nextIndex === currentColumnIndex ) {
+ // Prevent key use for anything else. For example, Voiceover
+ // will start reading text on continued use of left/right arrow
+ // keys.
+ event.preventDefault();
+ return;
+ }
+
+ // Focus the next element.
+ focusablesInRow[ nextIndex ].focus();
+
+ // Prevent key use for anything else. This ensures Voiceover
+ // doesn't try to handle key navigation.
+ event.preventDefault();
+ } else if ( includes( [ UP, DOWN ], keyCode ) ) {
+ // Calculate the rowIndex of the next row.
+ const rows = Array.from(
+ treeGridElement.querySelectorAll( '[role="row"]' )
+ );
+ const currentRowIndex = rows.indexOf( activeRow );
+ let nextRowIndex;
+
+ if ( keyCode === UP ) {
+ nextRowIndex = Math.max( 0, currentRowIndex - 1 );
+ } else {
+ nextRowIndex = Math.min( currentRowIndex + 1, rows.length - 1 );
+ }
+
+ // Focus is either at the top or bottom edge of the grid. Do nothing.
+ if ( nextRowIndex === currentRowIndex ) {
+ // Prevent key use for anything else. For example, Voiceover
+ // will start navigating horizontally when reaching the vertical
+ // bounds of a table.
+ event.preventDefault();
+ return;
+ }
+
+ // Get the focusables in the next row.
+ const focusablesInNextRow = getRowFocusables(
+ rows[ nextRowIndex ]
+ );
+
+ // If for some reason there are no focusables in the next row, do nothing.
+ if ( ! focusablesInNextRow || ! focusablesInNextRow.length ) {
+ // Prevent key use for anything else. For example, Voiceover
+ // will still focus text when using arrow keys, while this
+ // component should limit navigation to focusables.
+ event.preventDefault();
+ return;
+ }
+
+ // Try to focus the element in the next row that's at a similar column to the activeElement.
+ const nextIndex = Math.min(
+ currentColumnIndex,
+ focusablesInNextRow.length - 1
+ );
+ focusablesInNextRow[ nextIndex ].focus();
+
+ // Prevent key use for anything else. This ensures Voiceover
+ // doesn't try to handle key navigation.
+ event.preventDefault();
+ }
+ }, [] );
+
+ return (
+
+ { /* Disable reason: A treegrid is implemented using a table element. */ }
+ { /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role */ }
+
+
+ );
+}
+
+export { default as TreeGridRow } from './row';
+export { default as TreeGridCell } from './cell';
diff --git a/packages/components/src/tree-grid/row.js b/packages/components/src/tree-grid/row.js
new file mode 100644
index 00000000000000..744055194ad226
--- /dev/null
+++ b/packages/components/src/tree-grid/row.js
@@ -0,0 +1,31 @@
+/**
+ * WordPress dependencies
+ */
+import { forwardRef } from '@wordpress/element';
+
+function TreeGridRow(
+ { children, level, positionInSet, setSize, isExpanded, ...props },
+ ref
+) {
+ return (
+ // Disable reason: Due to an error in the ARIA 1.1 specification, the
+ // aria-posinset and aria-setsize properties are not supported on row
+ // elements. This is being corrected in ARIA 1.2. Consequently, the
+ // linting rule fails when validating this markup.
+ //
+ // eslint-disable-next-line jsx-a11y/role-supports-aria-props
+
+ { children }
+
+ );
+}
+
+export default forwardRef( TreeGridRow );
diff --git a/packages/components/src/tree-grid/stories/index.js b/packages/components/src/tree-grid/stories/index.js
new file mode 100644
index 00000000000000..ec79dfc60ffc35
--- /dev/null
+++ b/packages/components/src/tree-grid/stories/index.js
@@ -0,0 +1,103 @@
+/**
+ * WordPress dependencies
+ */
+import { Fragment } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import TreeGrid, { TreeGridRow, TreeGridCell } from '../';
+import { Button } from '../../';
+
+export default { title: 'Components/TreeGrid', component: TreeGrid };
+
+const groceries = [
+ {
+ name: 'Fruit',
+ types: [
+ {
+ name: 'Apple',
+ },
+ {
+ name: 'Orange',
+ },
+ {
+ name: 'Pear',
+ },
+ ],
+ },
+ {
+ name: 'Vegetable',
+ types: [
+ {
+ name: 'Cucumber',
+ },
+ {
+ name: 'Parsnip',
+ },
+ {
+ name: 'Pumpkin',
+ },
+ ],
+ },
+];
+
+const Descender = ( { level } ) => {
+ if ( level === 1 ) {
+ return '';
+ }
+ const indentation = '\u00A0'.repeat( ( level - 1 ) * 4 );
+
+ return { indentation + '├ ' } ;
+};
+
+const Rows = ( { items, level = 1 } ) => {
+ return items.map( ( item, index ) => {
+ const hasChildren = !! item.types && !! item.types.length;
+ return (
+
+
+
+ { ( props ) => (
+ <>
+
+
+ { item.name }
+
+ >
+ ) }
+
+
+ { ( props ) => (
+
+ Move Up
+
+ ) }
+
+
+ { ( props ) => (
+
+ Move Down
+
+ ) }
+
+
+ { hasChildren && (
+
+ ) }
+
+ );
+ } );
+};
+
+export const _default = () => {
+ return (
+
+
+
+ );
+};
diff --git a/packages/components/src/tree-grid/test/__snapshots__/cell.js.snap b/packages/components/src/tree-grid/test/__snapshots__/cell.js.snap
new file mode 100644
index 00000000000000..23d0568807b04d
--- /dev/null
+++ b/packages/components/src/tree-grid/test/__snapshots__/cell.js.snap
@@ -0,0 +1,23 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`TreeGridCell uses a child render function to render children 1`] = `
+
+
+
+
+
+ Click Me!
+
+
+
+
+
+`;
diff --git a/packages/components/src/tree-grid/test/__snapshots__/index.js.snap b/packages/components/src/tree-grid/test/__snapshots__/index.js.snap
new file mode 100644
index 00000000000000..538248d29845fa
--- /dev/null
+++ b/packages/components/src/tree-grid/test/__snapshots__/index.js.snap
@@ -0,0 +1,16 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`TreeGrid renders a table, tbody and any child elements 1`] = `
+
+`;
diff --git a/packages/components/src/tree-grid/test/__snapshots__/row.js.snap b/packages/components/src/tree-grid/test/__snapshots__/row.js.snap
new file mode 100644
index 00000000000000..f27fe4977c1234
--- /dev/null
+++ b/packages/components/src/tree-grid/test/__snapshots__/row.js.snap
@@ -0,0 +1,32 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`TreeGridRow forwards other props to the rendered tr element 1`] = `
+
+`;
+
+exports[`TreeGridRow renders a tr with support for level, positionInSet and setSize props 1`] = `
+
+`;
diff --git a/packages/components/src/tree-grid/test/cell.js b/packages/components/src/tree-grid/test/cell.js
new file mode 100644
index 00000000000000..c98567fb77a518
--- /dev/null
+++ b/packages/components/src/tree-grid/test/cell.js
@@ -0,0 +1,54 @@
+/**
+ * External dependencies
+ */
+import TestRenderer from 'react-test-renderer';
+
+/**
+ * WordPress dependencies
+ */
+import { forwardRef } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import TreeGrid from '../';
+import TreeGridCell from '../cell';
+
+const TestButton = forwardRef( ( { ...props }, ref ) => (
+
+) );
+
+describe( 'TreeGridCell', () => {
+ it( 'requires TreeGrid to be declared as a parent component somewhere in the component hierarchy', () => {
+ expect( () =>
+ TestRenderer.create(
+
+ { ( props ) => (
+
+ Click Me!
+
+ ) }
+
+ )
+ ).toThrow();
+ expect( console ).toHaveErrored();
+ } );
+
+ it( 'uses a child render function to render children', () => {
+ const renderer = TestRenderer.create(
+
+
+
+ { ( props ) => (
+
+ Click Me!
+
+ ) }
+
+
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+} );
diff --git a/packages/components/src/tree-grid/test/index.js b/packages/components/src/tree-grid/test/index.js
new file mode 100644
index 00000000000000..0f9733752b215b
--- /dev/null
+++ b/packages/components/src/tree-grid/test/index.js
@@ -0,0 +1,23 @@
+/**
+ * External dependencies
+ */
+import TestRenderer from 'react-test-renderer';
+
+/**
+ * Internal dependencies
+ */
+import TreeGrid from '../';
+
+describe( 'TreeGrid', () => {
+ it( 'renders a table, tbody and any child elements', () => {
+ const renderer = TestRenderer.create(
+
+
+ Test
+
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+} );
diff --git a/packages/components/src/tree-grid/test/row.js b/packages/components/src/tree-grid/test/row.js
new file mode 100644
index 00000000000000..8d55c5cc9c9b19
--- /dev/null
+++ b/packages/components/src/tree-grid/test/row.js
@@ -0,0 +1,40 @@
+/**
+ * External dependencies
+ */
+import TestRenderer from 'react-test-renderer';
+
+/**
+ * Internal dependencies
+ */
+import TreeGridRow from '../row';
+
+describe( 'TreeGridRow', () => {
+ it( 'renders a tr with support for level, positionInSet and setSize props', () => {
+ const renderer = TestRenderer.create(
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+
+ it( 'forwards other props to the rendered tr element', () => {
+ const renderer = TestRenderer.create(
+
+ );
+
+ expect( renderer.toJSON() ).toMatchSnapshot();
+ } );
+} );
diff --git a/packages/components/src/utils/hooks.js b/packages/components/src/utils/hooks.js
new file mode 100644
index 00000000000000..00c173219819dd
--- /dev/null
+++ b/packages/components/src/utils/hooks.js
@@ -0,0 +1,38 @@
+/**
+ * WordPress dependencies
+ */
+import { useEffect, useRef, useState } from '@wordpress/element';
+
+/**
+ * Custom hooks for "controlled" components to track and consolidate internal
+ * state and incoming values. This is useful for components that render
+ * `input`, `textarea`, or `select` HTML elements.
+ *
+ * https://reactjs.org/docs/forms.html#controlled-components
+ *
+ * At first, a component using useControlledState receives an initial prop
+ * value, which is used as initial internal state.
+ *
+ * This internal state can be maintained and updated without
+ * relying on new incoming prop values.
+ *
+ * Unlike the basic useState hook, useControlledState's state can
+ * be updated if a new incoming prop value is changed.
+ *
+ * @param {any} initialState The initial state value.
+ * @return {[*, Function]} The controlled value and the value setter.
+ */
+export function useControlledState( initialState ) {
+ const [ state, setState ] = useState( initialState );
+ const lastInitialStateRef = useRef( initialState );
+
+ useEffect( () => {
+ // Update the internal state if the incoming value changes.
+ if ( initialState !== lastInitialStateRef.current ) {
+ setState( initialState );
+ lastInitialStateRef.current = initialState;
+ }
+ }, [ initialState ] );
+
+ return [ state, setState ];
+}
diff --git a/packages/components/src/utils/test/hooks.js b/packages/components/src/utils/test/hooks.js
new file mode 100644
index 00000000000000..32013c4f62d947
--- /dev/null
+++ b/packages/components/src/utils/test/hooks.js
@@ -0,0 +1,124 @@
+/**
+ * External dependencies
+ */
+import { render, fireEvent, screen } from '@testing-library/react';
+import { noop } from 'lodash';
+
+/**
+ * Internal dependencies
+ */
+import { useControlledState } from '../hooks';
+
+describe( 'hooks', () => {
+ const getInput = () => screen.getByTestId( 'input' );
+
+ describe( 'useControlledState', () => {
+ const Example = ( { value: valueProp, onChange = noop } ) => {
+ const [ state, setState ] = useControlledState( valueProp );
+
+ const handleOnChange = ( event ) => {
+ const nextValue = event.target.value;
+ setState( nextValue );
+ onChange( nextValue );
+ };
+
+ return (
+
+ );
+ };
+
+ it( 'should use incoming prop as state on initial render', () => {
+ const spy = jest.fn();
+ render( );
+
+ const input = getInput();
+
+ expect( input.value ).toBe( 'Hello' );
+ expect( spy ).not.toHaveBeenCalled();
+ } );
+
+ it( 'should update rendered value onChange', () => {
+ const spy = jest.fn();
+ render( );
+
+ const input = getInput();
+
+ fireEvent.change( input, { target: { value: 'There' } } );
+
+ expect( input.value ).toBe( 'There' );
+ expect( spy ).toHaveBeenCalledTimes( 1 );
+
+ fireEvent.change( input, { target: { value: 'Hello There' } } );
+
+ expect( input.value ).toBe( 'Hello There' );
+ expect( spy ).toHaveBeenCalledTimes( 2 );
+ } );
+
+ /**
+ * This test demonstrates the primary feature of the useControlledState
+ * hook. The component receives an initial prop value
+ * which is used as the initial internal state.
+ *
+ * This internal state can be maintained and updated without
+ * relying on new incoming prop values.
+ *
+ * Unlike the basic useState hook, useControlledState's state can
+ * be updated if a new incoming prop value is changed.
+ */
+ it( 'should update changed value with new incoming prop value', () => {
+ const spy = jest.fn();
+
+ /**
+ * The value starts with "Hello", since it is passed down
+ * from props. The prop being rendered is the state provided by
+ * useControlledState, rather than the value prop directly.
+ */
+ const { rerender } = render(
+
+ );
+
+ const input = getInput();
+
+ /**
+ * When the changes, it updates the internal state value.
+ */
+ fireEvent.change( input, { target: { value: 'There' } } );
+
+ expect( input.value ).toBe( 'There' );
+
+ /**
+ * If a new value prop is passed down, it will update the
+ * internal state value, which will be rerendered into
+ * the .
+ */
+ rerender( );
+
+ expect( input.value ).toBe( 'New Value' );
+ expect( spy ).toHaveBeenCalledTimes( 1 );
+ } );
+
+ it( 'should new incoming prop value with new change value', () => {
+ const spy = jest.fn();
+ const { rerender } = render(
+
+ );
+ const input = getInput();
+
+ fireEvent.change( input, { target: { value: 'There' } } );
+
+ rerender( );
+
+ fireEvent.change( input, {
+ target: { value: 'New Change Value' },
+ } );
+
+ expect( input.value ).toBe( 'New Change Value' );
+ expect( spy ).toHaveBeenCalledTimes( 1 );
+ } );
+ } );
+} );
diff --git a/packages/compose/CHANGELOG.md b/packages/compose/CHANGELOG.md
index af8f112ac8cdda..d0ad061a871a4e 100644
--- a/packages/compose/CHANGELOG.md
+++ b/packages/compose/CHANGELOG.md
@@ -1,8 +1,12 @@
+
+
+## Unreleased
+
## 3.4.0 (2019-06-12)
### New Features
-- Add the `useMediaQuery` and `useReducedMotion` hooks.
+- Add the `useMediaQuery` and `useReducedMotion` hooks.
## 3.0.0 (2018-11-15)
diff --git a/packages/compose/package.json b/packages/compose/package.json
index 105f18e00cb547..a9d24702ef0c7d 100644
--- a/packages/compose/package.json
+++ b/packages/compose/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/compose",
- "version": "3.13.1",
+ "version": "3.14.0",
"description": "WordPress higher-order components (HOCs).",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/core-data/CHANGELOG.md b/packages/core-data/CHANGELOG.md
index 07134508762725..cfabdcf6918764 100644
--- a/packages/core-data/CHANGELOG.md
+++ b/packages/core-data/CHANGELOG.md
@@ -1,6 +1,11 @@
+
+
+## Unreleased
+
## 2.3.0 (2019-05-21)
### New features
+
- The `getAutosave`, `getAutosaves` and `getCurrentUser` selectors have been added.
- The `receiveAutosaves` and `receiveCurrentUser` actions have been added.
diff --git a/packages/core-data/package.json b/packages/core-data/package.json
index febff43a5c2533..e523f2c9c78f29 100644
--- a/packages/core-data/package.json
+++ b/packages/core-data/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/core-data",
- "version": "2.14.1",
+ "version": "2.15.0",
"description": "Access to and manipulation of core WordPress entities.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/core-data/src/entities.js b/packages/core-data/src/entities.js
index 8a9fa25ce3c648..aa4930bd902afe 100644
--- a/packages/core-data/src/entities.js
+++ b/packages/core-data/src/entities.js
@@ -90,6 +90,7 @@ export const defaultEntities = [
baseURL: '/__experimental/menu-locations',
plural: 'menuLocations',
label: __( 'Menu Location' ),
+ key: 'name',
},
];
diff --git a/packages/create-block/CHANGELOG.md b/packages/create-block/CHANGELOG.md
index 935db8124f3fd0..d36db25ccae884 100644
--- a/packages/create-block/CHANGELOG.md
+++ b/packages/create-block/CHANGELOG.md
@@ -1,4 +1,20 @@
-## Master
+
+
+## Unreleased
+
+### Internal
+
+- Refactored handling of predefined block templates [#22235](https://github.com/WordPress/gutenberg/pull/22235).
+
+## 0.12.0 (2020-04-30)
+
+### New Features
+
+- Add more CLI options: `--namespace`, `--title`, `--short-description` and `--category`. The goal is to make it easier to override default values used for scaffolding ([#21751](https://github.com/WordPress/gutenberg/pull/21751)).
+
+### Enhancements
+
+- Update `esnext` template to scaffold 3 JavaScript source files to illustrate how ES modules help to better organize code.
## 0.10.0 (2020-04-01)
diff --git a/packages/create-block/README.md b/packages/create-block/README.md
index dd528289509797..579511ae7b329b 100644
--- a/packages/create-block/README.md
+++ b/packages/create-block/README.md
@@ -33,13 +33,17 @@ The following command generates PHP, JS and CSS code for registering a block.
$ npm init @wordpress/block [options] [slug]
```
-`[slug]` is optional. When provided it triggers the quick mode where it is used as the block slug used for its identification, the output location for scaffolded files, and the name of the WordPress plugin. The rest of the configuration is set to all default values.
+`[slug]` is optional. When provided it triggers the quick mode where it is used as the block slug used for its identification, the output location for scaffolded files, and the name of the WordPress plugin. The rest of the configuration is set to all default values unless overriden with some of the options listed below.
Options:
-```bash
--t, --template template type name, allowed values: "es5", "esnext" (default: "esnext")
--V, --version output the version number
--h, --help output usage information
+```
+-V, --version output the version number
+-t, --template block template type name, allowed values: "es5", "esnext" (default: "esnext")
+--namespace internal namespace for the block name
+--title display title for the block
+--short-description short description for the block
+--category category name for the block
+-h, --help output usage information
```
_Please note that `--version` and `--help` options don't work with `npm init`. You have to use `npx` instead, as presented in the examples._
diff --git a/packages/create-block/lib/index.js b/packages/create-block/lib/index.js
index 5b9cb24726b4fe..b87f08b97b4cce 100644
--- a/packages/create-block/lib/index.js
+++ b/packages/create-block/lib/index.js
@@ -3,7 +3,7 @@
*/
const inquirer = require( 'inquirer' );
const program = require( 'commander' );
-const { startCase } = require( 'lodash' );
+const { pickBy, startCase } = require( 'lodash' );
/**
* Internal dependencies
@@ -13,57 +13,94 @@ const CLIError = require( './cli-error' );
const log = require( './log' );
const { engines, version } = require( '../package.json' );
const scaffold = require( './scaffold' );
-const { getDefaultValues, getPrompts } = require( './templates' );
+const {
+ getBlockTemplate,
+ getDefaultValues,
+ getPrompts,
+} = require( './templates' );
const commandName = `wp-create-block`;
program
.name( commandName )
.description(
'Generates PHP, JS and CSS code for registering a block for a WordPress plugin.\n\n' +
- '[slug] is optional. When provided it triggers the quick mode where it is used ' +
- 'as the block slug used for its identification, the output location for scaffolded files, ' +
- 'and the name of the WordPress plugin. The rest of the configuration is set to all default values.'
+ '[slug] is optional. When provided it triggers the quick mode where ' +
+ 'it is used as the block slug used for its identification, the output ' +
+ 'location for scaffolded files, and the name of the WordPress plugin.' +
+ 'The rest of the configuration is set to all default values unless ' +
+ 'overridden with some of the options listed below.'
)
.version( version )
.arguments( '[slug]' )
.option(
'-t, --template ',
- 'template type name, allowed values: "es5", "esnext"',
+ 'block template type name, allowed values: "es5", "esnext"',
'esnext'
)
- .action( async ( slug, { template } ) => {
- await checkSystemRequirements( engines );
- try {
- const defaultValues = getDefaultValues( template );
- if ( slug ) {
- const answers = {
- ...defaultValues,
- slug,
- // Transforms slug to title.
- title: startCase( slug ),
- };
- await scaffold( template, answers );
- } else {
- const answers = await inquirer.prompt( getPrompts( template ) );
- await scaffold( template, {
- ...defaultValues,
- ...answers,
- } );
+ .option( '--namespace ', 'internal namespace for the block name' )
+ .option( '--title ', 'display title for the block' )
+ // The name "description" is used internally so it couldn't be used.
+ .option( '--short-description ', 'short description for the block' )
+ .option( '--category ', 'category name for the block' )
+ .action(
+ async (
+ slug,
+ {
+ category,
+ namespace,
+ shortDescription: description,
+ template: templateName,
+ title,
}
- } catch ( error ) {
- if ( error instanceof CLIError ) {
- log.error( error.message );
- process.exit( 1 );
- } else {
- throw error;
+ ) => {
+ await checkSystemRequirements( engines );
+ try {
+ const blockTemplate = await getBlockTemplate( templateName );
+ const defaultValues = getDefaultValues( blockTemplate );
+ const optionsValues = pickBy( {
+ category,
+ description,
+ namespace,
+ title,
+ } );
+ if ( slug ) {
+ const answers = {
+ ...defaultValues,
+ slug,
+ // Transforms slug to title as a fallback.
+ title: startCase( slug ),
+ ...optionsValues,
+ };
+ await scaffold( blockTemplate, answers );
+ } else {
+ const prompts = getPrompts( blockTemplate ).filter(
+ ( { name } ) =>
+ ! Object.keys( optionsValues ).includes( name )
+ );
+ const answers = await inquirer.prompt( prompts );
+ await scaffold( blockTemplate, {
+ ...defaultValues,
+ ...optionsValues,
+ ...answers,
+ } );
+ }
+ } catch ( error ) {
+ if ( error instanceof CLIError ) {
+ log.error( error.message );
+ process.exit( 1 );
+ } else {
+ throw error;
+ }
}
}
- } )
+ )
.on( '--help', function() {
log.info( '' );
log.info( 'Examples:' );
log.info( ` $ ${ commandName }` );
log.info( ` $ ${ commandName } todo-list` );
- log.info( ` $ ${ commandName } --template es5 todo-list` );
+ log.info(
+ ` $ ${ commandName } todo-list --template es5 --title "TODO List"`
+ );
} )
.parse( process.argv );
diff --git a/packages/create-block/lib/scaffold.js b/packages/create-block/lib/scaffold.js
index be9b09588bde6c..7ad53a1b623c67 100644
--- a/packages/create-block/lib/scaffold.js
+++ b/packages/create-block/lib/scaffold.js
@@ -1,21 +1,21 @@
/**
* External dependencies
*/
-const { dirname, join } = require( 'path' );
+const { writeFile } = require( 'fs' ).promises;
+const { snakeCase } = require( 'lodash' );
const makeDir = require( 'make-dir' );
-const { readFile, writeFile } = require( 'fs' ).promises;
const { render } = require( 'mustache' );
-const { snakeCase } = require( 'lodash' );
+const { dirname } = require( 'path' );
/**
* Internal dependencies
*/
const initWPScripts = require( './init-wp-scripts' );
const { code, info, success } = require( './log' );
-const { hasWPScriptsEnabled, getOutputFiles } = require( './templates' );
+const { hasWPScriptsEnabled } = require( './templates' );
module.exports = async function(
- templateName,
+ blockTemplate,
{
namespace,
slug,
@@ -35,6 +35,7 @@ module.exports = async function(
info( '' );
info( `Creating a new WordPress block in "${ slug }" folder.` );
+ const { outputTemplates } = blockTemplate;
const view = {
namespace,
namespaceSnakeCase: snakeCase( namespace ),
@@ -51,25 +52,21 @@ module.exports = async function(
textdomain: namespace,
};
await Promise.all(
- getOutputFiles( templateName ).map( async ( file ) => {
- const template = await readFile(
- join(
- __dirname,
- `templates/${ templateName }/${ file }.mustache`
- ),
- 'utf8'
- );
+ Object.keys( outputTemplates ).map( async ( outputFile ) => {
// Output files can have names that depend on the slug provided.
- const outputFilePath = `${ slug }/${ file.replace(
+ const outputFilePath = `${ slug }/${ outputFile.replace(
/\$slug/g,
slug
) }`;
await makeDir( dirname( outputFilePath ) );
- writeFile( outputFilePath, render( template, view ) );
+ writeFile(
+ outputFilePath,
+ render( outputTemplates[ outputFile ], view )
+ );
} )
);
- if ( hasWPScriptsEnabled( templateName ) ) {
+ if ( hasWPScriptsEnabled( blockTemplate ) ) {
await initWPScripts( view );
}
@@ -77,7 +74,7 @@ module.exports = async function(
success(
`Done: block "${ title }" bootstrapped in the "${ slug }" folder.`
);
- if ( hasWPScriptsEnabled( templateName ) ) {
+ if ( hasWPScriptsEnabled( blockTemplate ) ) {
info( '' );
info( 'Inside that directory, you can run several commands:' );
info( '' );
diff --git a/packages/create-block/lib/templates.js b/packages/create-block/lib/templates.js
index 581e4ee1c48454..683f9e3b3855b0 100644
--- a/packages/create-block/lib/templates.js
+++ b/packages/create-block/lib/templates.js
@@ -1,89 +1,89 @@
+/**
+ * External dependencies
+ */
+const glob = require( 'fast-glob' );
+const { readFile } = require( 'fs' ).promises;
+const { fromPairs } = require( 'lodash' );
+const { join } = require( 'path' );
+
/**
* Internal dependencies
*/
const CLIError = require( './cli-error' );
const prompts = require( './prompts' );
-const namespace = 'create-block';
-const dashicon = 'smiley';
-const category = 'widgets';
-const author = 'The WordPress Contributors';
-const license = 'GPL-2.0-or-later';
-const licenseURI = 'https://www.gnu.org/licenses/gpl-2.0.html';
-const version = '0.1.0';
-
-const templates = {
+const predefinedBlockTemplates = {
es5: {
defaultValues: {
- namespace,
slug: 'es5-example',
title: 'ES5 Example',
description:
'Example block written with ES5 standard and no JSX – no build step required.',
- dashicon,
- category,
- author,
- license,
- licenseURI,
- version,
},
- outputFiles: [
- '.editorconfig',
- 'editor.css',
- 'index.js',
- '$slug.php',
- 'style.css',
- 'readme.txt',
- ],
+ wpScripts: false,
},
esnext: {
defaultValues: {
- namespace,
slug: 'esnext-example',
title: 'ESNext Example',
description:
'Example block written with ESNext standard and JSX support – build step required.',
- dashicon,
- category,
- author,
- license,
- licenseURI,
- version,
},
- outputFiles: [
- '.editorconfig',
- '.gitignore',
- 'editor.css',
- 'src/index.js',
- '$slug.php',
- 'style.css',
- 'readme.txt',
- ],
- wpScriptsEnabled: true,
},
};
-const getTemplate = ( templateName ) => {
- if ( ! templates[ templateName ] ) {
+const getOutputTemplates = async ( name ) => {
+ const outputTemplatesPath = join( __dirname, 'templates', name );
+ const outputTemplatesFiles = await glob( '**/*.mustache', {
+ cwd: outputTemplatesPath,
+ dot: true,
+ } );
+ return fromPairs(
+ await Promise.all(
+ outputTemplatesFiles.map( async ( outputTemplateFile ) => {
+ const outputFile = outputTemplateFile.replace(
+ /\.mustache$/,
+ ''
+ );
+ const outputTemplate = await readFile(
+ join( outputTemplatesPath, outputTemplateFile ),
+ 'utf8'
+ );
+ return [ outputFile, outputTemplate ];
+ } )
+ )
+ );
+};
+
+const getBlockTemplate = async ( templateName ) => {
+ if ( ! predefinedBlockTemplates[ templateName ] ) {
throw new CLIError(
- `Invalid template type name. Allowed values: ${ Object.keys(
- templates
+ `Invalid block template type name. Allowed values: ${ Object.keys(
+ predefinedBlockTemplates
).join( ', ' ) }.`
);
}
- return templates[ templateName ];
-};
-
-const getDefaultValues = ( templateName ) => {
- return getTemplate( templateName ).defaultValues;
+ return {
+ ...predefinedBlockTemplates[ templateName ],
+ outputTemplates: await getOutputTemplates( templateName ),
+ };
};
-const getOutputFiles = ( templateName ) => {
- return getTemplate( templateName ).outputFiles;
+const getDefaultValues = ( blockTemplate ) => {
+ return {
+ namespace: 'create-block',
+ dashicon: 'smiley',
+ category: 'widgets',
+ author: 'The WordPress Contributors',
+ license: 'GPL-2.0-or-later',
+ licenseURI: 'https://www.gnu.org/licenses/gpl-2.0.html',
+ version: '0.1.0',
+ ...blockTemplate.defaultValues,
+ };
};
-const getPrompts = ( templateName ) => {
- const defaultValues = getDefaultValues( templateName );
+const getPrompts = ( blockTemplate ) => {
+ const defaultValues = getDefaultValues( blockTemplate );
return Object.keys( prompts ).map( ( promptName ) => {
return {
...prompts[ promptName ],
@@ -92,13 +92,13 @@ const getPrompts = ( templateName ) => {
} );
};
-const hasWPScriptsEnabled = ( templateName ) => {
- return getTemplate( templateName ).wpScriptsEnabled || false;
+const hasWPScriptsEnabled = ( blockTemplate ) => {
+ return blockTemplate.wpScripts !== false;
};
module.exports = {
+ getBlockTemplate,
getDefaultValues,
- getOutputFiles,
getPrompts,
hasWPScriptsEnabled,
};
diff --git a/packages/create-block/lib/templates/esnext/src/edit.js.mustache b/packages/create-block/lib/templates/esnext/src/edit.js.mustache
new file mode 100644
index 00000000000000..caea5d2571ee75
--- /dev/null
+++ b/packages/create-block/lib/templates/esnext/src/edit.js.mustache
@@ -0,0 +1,24 @@
+/**
+ * Retrieves the translation of text.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * The edit function describes the structure of your block in the context of the
+ * editor. This represents what the editor will render when the block is used.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/block-edit-save/#edit
+ *
+ * @param {Object} [props] Properties passed from the editor.
+ *
+ * @return {WPElement} Element to render.
+ */
+export default function Edit( { className } ) {
+ return (
+
+ { __( '{{title}} – hello from the editor!', '{{textdomain}}' ) }
+
+ );
+}
diff --git a/packages/create-block/lib/templates/esnext/src/index.js.mustache b/packages/create-block/lib/templates/esnext/src/index.js.mustache
index ef519f31b27230..7cc26fbc0c9295 100644
--- a/packages/create-block/lib/templates/esnext/src/index.js.mustache
+++ b/packages/create-block/lib/templates/esnext/src/index.js.mustache
@@ -12,6 +12,12 @@ import { registerBlockType } from '@wordpress/blocks';
*/
import { __ } from '@wordpress/i18n';
+/**
+ * Internal dependencies
+ */
+import Edit from './edit';
+import save from './save';
+
/**
* Every block starts by registering a new block type definition.
*
@@ -61,36 +67,12 @@ registerBlockType( '{{namespace}}/{{slug}}', {
},
/**
- * The edit function describes the structure of your block in the context of the editor.
- * This represents what the editor will render when the block is used.
- *
- * @see https://developer.wordpress.org/block-editor/developers/block-api/block-edit-save/#edit
- *
- * @param {Object} [props] Properties passed from the editor.
- *
- * @return {WPElement} Element to render.
+ * @see ./edit.js
*/
- edit( { className } ) {
- return (
-
- { __( '{{title}} – hello from the editor!', '{{textdomain}}' ) }
-
- );
- },
+ edit: Edit,
/**
- * The save function defines the way in which the different attributes should be combined
- * into the final markup, which is then serialized by the block editor into `post_content`.
- *
- * @see https://developer.wordpress.org/block-editor/developers/block-api/block-edit-save/#save
- *
- * @return {WPElement} Element to render.
+ * @see ./save.js
*/
- save() {
- return (
-
- { __( '{{title}} – hello from the saved content!', '{{textdomain}}' ) }
-
- );
- },
+ save,
} );
diff --git a/packages/create-block/lib/templates/esnext/src/save.js.mustache b/packages/create-block/lib/templates/esnext/src/save.js.mustache
new file mode 100644
index 00000000000000..403eb2f1965553
--- /dev/null
+++ b/packages/create-block/lib/templates/esnext/src/save.js.mustache
@@ -0,0 +1,26 @@
+/**
+ * Retrieves the translation of text.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * The save function defines the way in which the different attributes should
+ * be combined into the final markup, which is then serialized by the block
+ * editor into `post_content`.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/block-edit-save/#save
+ *
+ * @return {WPElement} Element to render.
+ */
+export default function save() {
+ return (
+
+ { __(
+ '{{title}} – hello from the saved content!',
+ '{{textdomain}}'
+ ) }
+
+ );
+}
diff --git a/packages/create-block/package.json b/packages/create-block/package.json
index 7d39d685f51d41..329a7fcc157f40 100644
--- a/packages/create-block/package.json
+++ b/packages/create-block/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/create-block",
- "version": "0.11.0",
+ "version": "0.12.0",
"description": "Generates PHP, JS and CSS code for registering a block for a WordPress plugin.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -34,6 +34,7 @@
"check-node-version": "^3.1.1",
"commander": "^4.1.0",
"execa": "^4.0.0",
+ "fast-glob": "^2.2.7",
"inquirer": "^7.1.0",
"lodash": "^4.17.15",
"make-dir": "^3.0.0",
diff --git a/packages/custom-templated-path-webpack-plugin/CHANGELOG.md b/packages/custom-templated-path-webpack-plugin/CHANGELOG.md
index d5bb664a3bfe58..ea0354f307d6c2 100644
--- a/packages/custom-templated-path-webpack-plugin/CHANGELOG.md
+++ b/packages/custom-templated-path-webpack-plugin/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.4.0 (2019-06-12)
### Bug Fixes
diff --git a/packages/data-controls/CHANGELOG.md b/packages/data-controls/CHANGELOG.md
index f92518a813a258..36d35e7b4df877 100644
--- a/packages/data-controls/CHANGELOG.md
+++ b/packages/data-controls/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.4.0 (2019-11-14)
### Documentation
diff --git a/packages/data-controls/package.json b/packages/data-controls/package.json
index 9ecb33e1385683..bc810d0ee2f242 100644
--- a/packages/data-controls/package.json
+++ b/packages/data-controls/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/data-controls",
- "version": "1.10.1",
+ "version": "1.11.0",
"description": "A set of common controls for the @wordpress/data api.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/data-controls/src/index.js b/packages/data-controls/src/index.js
index c0c1fe21807864..91c97e4ec981d6 100644
--- a/packages/data-controls/src/index.js
+++ b/packages/data-controls/src/index.js
@@ -63,6 +63,38 @@ export function select( storeKey, selectorName, ...args ) {
};
}
+/**
+ * Dispatches a control action for triggering a registry select.
+ *
+ * Note: This functions like the `select` control, but does not wait
+ * for resolvers.
+ *
+ * @param {string} storeKey The key for the store the selector belongs to.
+ * @param {string} selectorName The name of the selector.
+ * @param {Array} args Arguments for the select.
+ *
+ * @example
+ * ```js
+ * import { __unstableSyncSelect } from '@wordpress/data-controls';
+ *
+ * // Action generator using `__unstableSyncSelect`.
+ * export function* myAction() {
+ * const isEditorSideBarOpened = yield __unstableSyncSelect( 'core/edit-post', 'isEditorSideBarOpened' );
+ * // Do stuff with the result from the `__unstableSyncSelect`.
+ * }
+ * ```
+ *
+ * @return {Object} The control descriptor.
+ */
+export function __unstableSyncSelect( storeKey, selectorName, ...args ) {
+ return {
+ type: 'SYNC_SELECT',
+ storeKey,
+ selectorName,
+ args,
+ };
+}
+
/**
* Dispatches a control action for triggering a registry dispatch.
*
@@ -133,6 +165,11 @@ export const controls = {
]( storeKey )[ selectorName ]( ...args );
}
),
+ SYNC_SELECT: createRegistryControl(
+ ( registry ) => ( { storeKey, selectorName, args } ) => {
+ return registry.select( storeKey )[ selectorName ]( ...args );
+ }
+ ),
DISPATCH: createRegistryControl(
( registry ) => ( { storeKey, actionName, args } ) => {
return registry.dispatch( storeKey )[ actionName ]( ...args );
diff --git a/packages/data/CHANGELOG.md b/packages/data/CHANGELOG.md
index a7a342725906e2..38a66378fb1d6d 100644
--- a/packages/data/CHANGELOG.md
+++ b/packages/data/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 4.6.0 (2019-06-12)
### New Feature
@@ -16,7 +20,7 @@
- Restore functionality of action-generators returning a Promise. Clarify intent and behaviour for `wp.data.dispatch` behaviour. Dispatch actions now always
return a promise ([#14830](https://github.com/WordPress/gutenberg/pull/14830)
-
+
### Enhancements
- Expose `hasResolver` property on returned selectors indicating whether the selector has a corresponding resolver.
diff --git a/packages/data/package.json b/packages/data/package.json
index 472a699e95bba2..b4c5424dea5264 100644
--- a/packages/data/package.json
+++ b/packages/data/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/data",
- "version": "4.16.1",
+ "version": "4.17.0",
"description": "Data module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -30,7 +30,7 @@
"@wordpress/priority-queue": "file:../priority-queue",
"@wordpress/redux-routine": "file:../redux-routine",
"equivalent-key-map": "^0.2.2",
- "is-promise": "^2.1.0",
+ "is-promise": "^4.0.0",
"lodash": "^4.17.15",
"memize": "^1.1.0",
"redux": "^4.0.0",
diff --git a/packages/date/CHANGELOG.md b/packages/date/CHANGELOG.md
index 54bee67c917a9a..2601b0dfbfc51e 100644
--- a/packages/date/CHANGELOG.md
+++ b/packages/date/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 3.0.1 (2018-12-12)
## 3.0.0 (2018-11-15)
diff --git a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md
index 8755a3340d97c2..ba946772ba4950 100644
--- a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md
+++ b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.5.0 (2020-04-01)
diff --git a/packages/dependency-extraction-webpack-plugin/package.json b/packages/dependency-extraction-webpack-plugin/package.json
index 85919790b795bf..2998f6a29096b5 100644
--- a/packages/dependency-extraction-webpack-plugin/package.json
+++ b/packages/dependency-extraction-webpack-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/dependency-extraction-webpack-plugin",
- "version": "2.5.0",
+ "version": "2.6.0",
"description": "Extract WordPress script dependencies from webpack bundles.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/deprecated/CHANGELOG.md b/packages/deprecated/CHANGELOG.md
index 0839c643d61576..bcfa0cb3857bbe 100644
--- a/packages/deprecated/CHANGELOG.md
+++ b/packages/deprecated/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.6.0 (2019-08-29)
### Bug Fix
diff --git a/packages/docgen/CHANGELOG.md b/packages/docgen/CHANGELOG.md
index 38f320046f180d..b4ddfd71d4ef2f 100644
--- a/packages/docgen/CHANGELOG.md
+++ b/packages/docgen/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.7.0 (2020-02-04)
diff --git a/packages/docgen/README.md b/packages/docgen/README.md
index e39594cb4fc644..e4543095e867f6 100644
--- a/packages/docgen/README.md
+++ b/packages/docgen/README.md
@@ -38,6 +38,12 @@ This command will generate a file named `entry-point-api.md` containing all the
* **--use-token** `(String)`: This options allows you to customize the string between the tokens. For example, `--use-token my-api` will look up for the start token <!-- START TOKEN(my-api) -->
and the end token <!-- END TOKEN(my-api) -->
. Depends on `--to-token`.
* **--debug**: Run in debug mode, which outputs some intermediate files useful for debugging.
+### Babel Configuration
+
+`@wordpress/docgen` follows the default [project-wide configuration of Babel](https://babeljs.io/docs/en/next/config-files#project-wide-configuration). Like Babel, it will automatically search for a `babel.config.json` file, or an equivalent one using the [supported extensions](https://babeljs.io/docs/en/next/config-files#supported-file-extensions), in the project root directory.
+
+Without it, `@wordpress/docgen` runs with the default option. In other words, it cannot parse JSX or other advanced syntaxes.
+
## Examples
### Default export
diff --git a/packages/docgen/package.json b/packages/docgen/package.json
index 8ce4df2ccb83ee..8ac42fb05336ac 100644
--- a/packages/docgen/package.json
+++ b/packages/docgen/package.json
@@ -22,8 +22,8 @@
"docgen": "./bin/cli.js"
},
"dependencies": {
+ "@babel/core": "^7.9.0",
"doctrine": "^2.1.0",
- "espree": "^4.0.0",
"lodash": "^4.17.15",
"mdast-util-inject": "1.1.0",
"optionator": "0.8.2",
diff --git a/packages/docgen/src/engine.js b/packages/docgen/src/engine.js
index 55b50c8c0b7bba..a6f4ce646193b4 100644
--- a/packages/docgen/src/engine.js
+++ b/packages/docgen/src/engine.js
@@ -1,7 +1,7 @@
/**
* External dependencies.
*/
-const espree = require( 'espree' );
+const babel = require( '@babel/core' );
const { flatten } = require( 'lodash' );
/**
@@ -9,16 +9,9 @@ const { flatten } = require( 'lodash' );
*/
const getIntermediateRepresentation = require( './get-intermediate-representation' );
-const getAST = ( source ) =>
- espree.parse( source, {
- attachComment: true,
- loc: true,
- ecmaVersion: 2018,
- ecmaFeatures: {
- jsx: true,
- },
- sourceType: 'module',
- } );
+const getAST = ( source ) => {
+ return babel.parse( source || '' ).program;
+};
const getExportTokens = ( ast ) =>
ast.body.filter( ( node ) =>
diff --git a/packages/docgen/src/markdown/index.js b/packages/docgen/src/markdown/index.js
index fc0a09a15a3986..6e73f31582eeb5 100644
--- a/packages/docgen/src/markdown/index.js
+++ b/packages/docgen/src/markdown/index.js
@@ -55,7 +55,7 @@ module.exports = function(
if ( err ) {
throw err;
}
- fs.writeFileSync( doc, file );
+ fs.writeFileSync( doc, file.toString() );
} );
} else {
const output = formatter( processDir, doc, filteredIR, headingTitle );
diff --git a/packages/dom-ready/CHANGELOG.md b/packages/dom-ready/CHANGELOG.md
index 5fd9d40b62cf4d..83b2081920349d 100644
--- a/packages/dom-ready/CHANGELOG.md
+++ b/packages/dom-ready/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.9.0 (2020-04-15)
diff --git a/packages/dom/CHANGELOG.md b/packages/dom/CHANGELOG.md
index 47785fe2827faa..2ca460fc66312a 100644
--- a/packages/dom/CHANGELOG.md
+++ b/packages/dom/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.1.0 (2019-03-06)
### Bug Fix
diff --git a/packages/e2e-test-utils/CHANGELOG.md b/packages/e2e-test-utils/CHANGELOG.md
index 6d466ba2875021..ada28c012f9736 100644
--- a/packages/e2e-test-utils/CHANGELOG.md
+++ b/packages/e2e-test-utils/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 4.5.0 (2020-04-15)
diff --git a/packages/e2e-test-utils/package.json b/packages/e2e-test-utils/package.json
index 4136672e941879..5fe5a42f54d890 100644
--- a/packages/e2e-test-utils/package.json
+++ b/packages/e2e-test-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/e2e-test-utils",
- "version": "4.5.0",
+ "version": "4.6.0",
"description": "End-To-End (E2E) test utils for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/e2e-tests/CHANGELOG.md b/packages/e2e-tests/CHANGELOG.md
index 8a557a0f9457b3..36e56508c8a160 100644
--- a/packages/e2e-tests/CHANGELOG.md
+++ b/packages/e2e-tests/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.9.1 (2020-01-01)
## 1.9.0 (2019-12-19)
diff --git a/packages/e2e-tests/config/setup-test-framework.js b/packages/e2e-tests/config/setup-test-framework.js
index 8a78279730d317..98cc0a5f2657f8 100644
--- a/packages/e2e-tests/config/setup-test-framework.js
+++ b/packages/e2e-tests/config/setup-test-framework.js
@@ -226,6 +226,7 @@ async function runAxeTestsForBlockEditor() {
// See: https://github.com/WordPress/gutenberg/pull/15018.
disabledRules: [
'aria-allowed-role',
+ 'aria-allowed-attr',
'aria-hidden-focus',
'aria-input-field-name',
'aria-valid-attr-value',
@@ -244,6 +245,11 @@ async function runAxeTestsForBlockEditor() {
'.edit-post-layout__metaboxes',
// Ignores elements created by TinyMCE.
'.mce-container',
+ // These properties were not included in the 1.1 spec
+ // through error, they should be allowed on role="row":
+ // https://github.com/w3c/aria/issues/558
+ '[role="treegrid"] [aria-posinset]',
+ '[role="treegrid"] [aria-setsize]',
],
} );
}
diff --git a/packages/e2e-tests/fixtures/block-transforms.js b/packages/e2e-tests/fixtures/block-transforms.js
index 524e6e094f674c..3574162eb7a35b 100644
--- a/packages/e2e-tests/fixtures/block-transforms.js
+++ b/packages/e2e-tests/fixtures/block-transforms.js
@@ -97,7 +97,7 @@ export const EXPECTED_TRANSFORMS = {
},
core__embed: {
originalBlock: 'Embed',
- availableTransforms: [ 'Group' ],
+ availableTransforms: [ 'Group', 'Paragraph' ],
},
'core__file__new-window': {
originalBlock: 'File',
diff --git a/packages/e2e-tests/fixtures/blocks/core__button__center__deprecated.serialized.html b/packages/e2e-tests/fixtures/blocks/core__button__center__deprecated.serialized.html
index 5fee004c30ddd6..3d88c7ec1a551a 100644
--- a/packages/e2e-tests/fixtures/blocks/core__button__center__deprecated.serialized.html
+++ b/packages/e2e-tests/fixtures/blocks/core__button__center__deprecated.serialized.html
@@ -1,3 +1,3 @@
-Help build Gutenberg
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__button__squared.html b/packages/e2e-tests/fixtures/blocks/core__button__squared.html
index d7a2b6f5f95908..7df5372a100b68 100644
--- a/packages/e2e-tests/fixtures/blocks/core__button__squared.html
+++ b/packages/e2e-tests/fixtures/blocks/core__button__squared.html
@@ -1,3 +1,3 @@
-My button
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__button__squared.json b/packages/e2e-tests/fixtures/blocks/core__button__squared.json
index f3aa8241d516f0..1e97cd0ba52099 100644
--- a/packages/e2e-tests/fixtures/blocks/core__button__squared.json
+++ b/packages/e2e-tests/fixtures/blocks/core__button__squared.json
@@ -5,16 +5,16 @@
"isValid": true,
"attributes": {
"text": "My button",
- "align": "none",
- "style": {
- "color": {
- "background": "#aa5a20",
- "text": "#1b9b6c"
- }
- },
- "borderRadius": 0
+ "borderRadius": 0,
+ "style": {
+ "color": {
+ "text": "#1b9b6c",
+ "background": "#aa5a20"
+ }
+ },
+ "align": "none"
},
"innerBlocks": [],
- "originalContent": "My button "
+ "originalContent": ""
}
]
diff --git a/packages/e2e-tests/fixtures/blocks/core__button__squared.parsed.json b/packages/e2e-tests/fixtures/blocks/core__button__squared.parsed.json
index dc1ea8f2ca3470..4ddc882a14ae7c 100644
--- a/packages/e2e-tests/fixtures/blocks/core__button__squared.parsed.json
+++ b/packages/e2e-tests/fixtures/blocks/core__button__squared.parsed.json
@@ -2,19 +2,19 @@
{
"blockName": "core/button",
"attrs": {
- "align": "none",
"borderRadius": 0,
+ "align": "none",
"style": {
- "color": {
- "background": "#aa5a20",
- "text": "#1b9b6c"
- }
- }
+ "color": {
+ "text": "#1b9b6c",
+ "background": "#aa5a20"
+ }
+ }
},
"innerBlocks": [],
- "innerHTML": "\nMy button \n",
+ "innerHTML": "\n\n",
"innerContent": [
- "\nMy button \n"
+ "\n\n"
]
},
{
diff --git a/packages/e2e-tests/fixtures/blocks/core__button__squared.serialized.html b/packages/e2e-tests/fixtures/blocks/core__button__squared.serialized.html
index d7a2b6f5f95908..0ed8558bc15825 100644
--- a/packages/e2e-tests/fixtures/blocks/core__button__squared.serialized.html
+++ b/packages/e2e-tests/fixtures/blocks/core__button__squared.serialized.html
@@ -1,3 +1,3 @@
-
-My button
+
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__buttons.html b/packages/e2e-tests/fixtures/blocks/core__buttons.html
index 02f5487560cee4..e70af7acc72ad4 100644
--- a/packages/e2e-tests/fixtures/blocks/core__buttons.html
+++ b/packages/e2e-tests/fixtures/blocks/core__buttons.html
@@ -1,11 +1,11 @@
diff --git a/packages/e2e-tests/fixtures/blocks/core__buttons.json b/packages/e2e-tests/fixtures/blocks/core__buttons.json
index d77d9752de37b0..044daeb82101ac 100644
--- a/packages/e2e-tests/fixtures/blocks/core__buttons.json
+++ b/packages/e2e-tests/fixtures/blocks/core__buttons.json
@@ -13,7 +13,7 @@
"text": "My button 1"
},
"innerBlocks": [],
- "originalContent": "My button 1 "
+ "originalContent": ""
},
{
"clientId": "_clientId_1",
@@ -23,7 +23,7 @@
"text": "My button 2"
},
"innerBlocks": [],
- "originalContent": "My button 2 "
+ "originalContent": ""
}
],
"originalContent": "\n\t\n\n\t\n
"
diff --git a/packages/e2e-tests/fixtures/blocks/core__buttons.parsed.json b/packages/e2e-tests/fixtures/blocks/core__buttons.parsed.json
index ee9dd97313a48b..b96b1f50db1fc9 100644
--- a/packages/e2e-tests/fixtures/blocks/core__buttons.parsed.json
+++ b/packages/e2e-tests/fixtures/blocks/core__buttons.parsed.json
@@ -7,18 +7,18 @@
"blockName": "core/button",
"attrs": {},
"innerBlocks": [],
- "innerHTML": "\n\tMy button 1 \n\t",
+ "innerHTML": "\n\t\n\t",
"innerContent": [
- "\n\tMy button 1 \n\t"
+ "\n\t\n\t"
]
},
{
"blockName": "core/button",
"attrs": {},
"innerBlocks": [],
- "innerHTML": "\n\tMy button 2 \n\t",
+ "innerHTML": "\n\t\n\t",
"innerContent": [
- "\n\tMy button 2 \n\t"
+ "\n\t\n\t"
]
}
],
diff --git a/packages/e2e-tests/fixtures/blocks/core__buttons.serialized.html b/packages/e2e-tests/fixtures/blocks/core__buttons.serialized.html
index 18eb4b31eda593..baf0a0226c066c 100644
--- a/packages/e2e-tests/fixtures/blocks/core__buttons.serialized.html
+++ b/packages/e2e-tests/fixtures/blocks/core__buttons.serialized.html
@@ -1,9 +1,9 @@
diff --git a/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.html b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.html
new file mode 100644
index 00000000000000..02f5487560cee4
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.html
@@ -0,0 +1,11 @@
+
+
+
diff --git a/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.json b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.json
new file mode 100644
index 00000000000000..d77d9752de37b0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.json
@@ -0,0 +1,31 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/buttons",
+ "isValid": true,
+ "attributes": {},
+ "innerBlocks": [
+ {
+ "clientId": "_clientId_0",
+ "name": "core/button",
+ "isValid": true,
+ "attributes": {
+ "text": "My button 1"
+ },
+ "innerBlocks": [],
+ "originalContent": "My button 1 "
+ },
+ {
+ "clientId": "_clientId_1",
+ "name": "core/button",
+ "isValid": true,
+ "attributes": {
+ "text": "My button 2"
+ },
+ "innerBlocks": [],
+ "originalContent": "My button 2 "
+ }
+ ],
+ "originalContent": "\n\t\n\n\t\n
"
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.parsed.json b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.parsed.json
new file mode 100644
index 00000000000000..ee9dd97313a48b
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.parsed.json
@@ -0,0 +1,43 @@
+[
+ {
+ "blockName": "core/buttons",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/button",
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n\tMy button 1 \n\t",
+ "innerContent": [
+ "\n\tMy button 1 \n\t"
+ ]
+ },
+ {
+ "blockName": "core/button",
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n\tMy button 2 \n\t",
+ "innerContent": [
+ "\n\tMy button 2 \n\t"
+ ]
+ }
+ ],
+ "innerHTML": "\n\n\t\n\n\t\n
\n",
+ "innerContent": [
+ "\n\n\t",
+ null,
+ "\n\n\t",
+ null,
+ "\n
\n"
+ ]
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.serialized.html b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.serialized.html
new file mode 100644
index 00000000000000..baf0a0226c066c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core_buttons__simple__deprecated.serialized.html
@@ -0,0 +1,9 @@
+
+
+
diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json
index 26f21d0e9664f8..bf454686a1553d 100644
--- a/packages/e2e-tests/package.json
+++ b/packages/e2e-tests/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/e2e-tests",
- "version": "1.14.1",
+ "version": "1.15.0",
"description": "End-To-End (E2E) tests for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/e2e-tests/plugins/block-context.php b/packages/e2e-tests/plugins/block-context.php
index 13db6436630d30..06bb1102c3daca 100644
--- a/packages/e2e-tests/plugins/block-context.php
+++ b/packages/e2e-tests/plugins/block-context.php
@@ -47,15 +47,19 @@ function gutenberg_test_register_context_blocks() {
register_block_type(
'gutenberg/test-context-consumer',
array(
- 'context' => array( 'gutenberg/recordId' ),
- 'render_callback' => function( $block ) {
- $record_id = $block->context['gutenberg/recordId'];
-
- if ( ! is_int( $record_id ) ) {
- throw new Exception( 'Expected numeric recordId' );
- }
+ 'context' => array(
+ 'gutenberg/recordId',
+ 'postId',
+ 'postType',
+ ),
+ 'render_callback' => function( $attributes, $content, $block ) {
+ $ordered_context = array(
+ $block->context['gutenberg/recordId'],
+ $block->context['postId'],
+ $block->context['postType'],
+ );
- return 'The record ID is: ' . filter_var( $record_id, FILTER_VALIDATE_INT );
+ return implode( ',', $ordered_context );
},
)
);
diff --git a/packages/e2e-tests/specs/editor/blocks/__snapshots__/buttons.test.js.snap b/packages/e2e-tests/specs/editor/blocks/__snapshots__/buttons.test.js.snap
index 08a92e1fd8820f..66f803ddcf139f 100644
--- a/packages/e2e-tests/specs/editor/blocks/__snapshots__/buttons.test.js.snap
+++ b/packages/e2e-tests/specs/editor/blocks/__snapshots__/buttons.test.js.snap
@@ -3,7 +3,7 @@
exports[`Buttons can jump to the link editor using the keyboard shortcut 1`] = `
"
"
`;
@@ -11,7 +11,7 @@ exports[`Buttons can jump to the link editor using the keyboard shortcut 1`] = `
exports[`Buttons dismisses link editor when escape is pressed 1`] = `
"
"
`;
@@ -19,7 +19,7 @@ exports[`Buttons dismisses link editor when escape is pressed 1`] = `
exports[`Buttons has focus on button content 1`] = `
"
"
`;
diff --git a/packages/e2e-tests/specs/editor/blocks/__snapshots__/table.test.js.snap b/packages/e2e-tests/specs/editor/blocks/__snapshots__/table.test.js.snap
index c3545a01d8254d..fc9d85e415e5cc 100644
--- a/packages/e2e-tests/specs/editor/blocks/__snapshots__/table.test.js.snap
+++ b/packages/e2e-tests/specs/editor/blocks/__snapshots__/table.test.js.snap
@@ -53,3 +53,9 @@ exports[`Table displays a form for choosing the row and column count of the tabl
"
`;
+
+exports[`Table up and down arrow navigation 1`] = `
+"
+
+"
+`;
diff --git a/packages/e2e-tests/specs/editor/blocks/columns.test.js b/packages/e2e-tests/specs/editor/blocks/columns.test.js
index 294c2de3be44f7..9fe7580f98ac26 100644
--- a/packages/e2e-tests/specs/editor/blocks/columns.test.js
+++ b/packages/e2e-tests/specs/editor/blocks/columns.test.js
@@ -21,11 +21,11 @@ describe( 'Columns', () => {
await page.click( '[aria-label="Block navigation"]' );
const columnBlockMenuItem = (
await page.$x(
- '//button[contains(concat(" ", @class, " "), " block-editor-block-navigation__item-button ")][text()="Column"]'
+ '//button[contains(concat(" ", @class, " "), " block-editor-block-navigation-block-select-button ")][text()="Column"]'
)
)[ 0 ];
await columnBlockMenuItem.click();
await openGlobalBlockInserter();
- expect( await getAllBlockInserterItemTitles() ).toHaveLength( 0 );
+ expect( await getAllBlockInserterItemTitles() ).toHaveLength( 1 );
} );
} );
diff --git a/packages/e2e-tests/specs/editor/blocks/image.test.js b/packages/e2e-tests/specs/editor/blocks/image.test.js
index c98ac89daf14af..b4677ef1dbf906 100644
--- a/packages/e2e-tests/specs/editor/blocks/image.test.js
+++ b/packages/e2e-tests/specs/editor/blocks/image.test.js
@@ -85,4 +85,17 @@ describe( 'Image', () => {
expect( await getEditedPostContent() ).toBe( '' );
} );
+
+ it( 'should place caret at end of caption after merging empty paragraph', async () => {
+ await insertBlock( 'Image' );
+ await upload( '.wp-block-image input[type="file"]' );
+ await page.keyboard.type( '1' );
+ await insertBlock( 'Paragraph' );
+ await page.keyboard.press( 'Backspace' );
+ await page.keyboard.type( '2' );
+
+ expect(
+ await page.evaluate( () => document.activeElement.innerHTML )
+ ).toBe( '12' );
+ } );
} );
diff --git a/packages/e2e-tests/specs/editor/blocks/list.test.js b/packages/e2e-tests/specs/editor/blocks/list.test.js
index 54cbe86f2841ad..6040d6c908cf96 100644
--- a/packages/e2e-tests/specs/editor/blocks/list.test.js
+++ b/packages/e2e-tests/specs/editor/blocks/list.test.js
@@ -291,7 +291,10 @@ describe( 'List', () => {
it( 'should change the base list type', async () => {
await insertBlock( 'List' );
- await page.click( 'button[aria-label="Convert to ordered list"]' );
+ const button = await page.waitForSelector(
+ 'button[aria-label="Convert to ordered list"]'
+ );
+ await button.click();
expect( await getEditedPostContent() ).toMatchSnapshot();
} );
diff --git a/packages/e2e-tests/specs/editor/blocks/table.test.js b/packages/e2e-tests/specs/editor/blocks/table.test.js
index 96bb008e613df3..f67f42565baf85 100644
--- a/packages/e2e-tests/specs/editor/blocks/table.test.js
+++ b/packages/e2e-tests/specs/editor/blocks/table.test.js
@@ -267,4 +267,22 @@ describe( 'Table', () => {
expect( await getEditedPostContent() ).toMatchSnapshot();
} );
+
+ it( 'up and down arrow navigation', async () => {
+ await insertBlock( 'Table' );
+
+ // Create the table.
+ await clickButton( createButtonLabel );
+
+ await page.keyboard.press( 'Tab' );
+ await page.keyboard.type( '1' );
+ await page.keyboard.press( 'ArrowDown' );
+ await page.keyboard.type( '2' );
+ await page.keyboard.press( 'ArrowRight' );
+ await page.keyboard.type( '3' );
+ await page.keyboard.press( 'ArrowUp' );
+ await page.keyboard.type( '4' );
+
+ expect( await getEditedPostContent() ).toMatchSnapshot();
+ } );
} );
diff --git a/packages/e2e-tests/specs/editor/plugins/__snapshots__/plugins-api.test.js.snap b/packages/e2e-tests/specs/editor/plugins/__snapshots__/plugins-api.test.js.snap
index e30da101c25883..db9d191056a3ea 100644
--- a/packages/e2e-tests/specs/editor/plugins/__snapshots__/plugins-api.test.js.snap
+++ b/packages/e2e-tests/specs/editor/plugins/__snapshots__/plugins-api.test.js.snap
@@ -2,6 +2,6 @@
exports[`Using Plugins API Document Setting Custom Panel Should render a custom panel inside Document Setting sidebar 1`] = `"My Custom Panel"`;
-exports[`Using Plugins API Sidebar Medium screen Should open plugins sidebar using More Menu item and render content 1`] = `""`;
+exports[`Using Plugins API Sidebar Medium screen Should open plugins sidebar using More Menu item and render content 1`] = `""`;
-exports[`Using Plugins API Sidebar Should open plugins sidebar using More Menu item and render content 1`] = `""`;
+exports[`Using Plugins API Sidebar Should open plugins sidebar using More Menu item and render content 1`] = `""`;
diff --git a/packages/e2e-tests/specs/editor/plugins/align-hook.test.js b/packages/e2e-tests/specs/editor/plugins/align-hook.test.js
index 7a4bb5253582fa..87af1f940aa50a 100644
--- a/packages/e2e-tests/specs/editor/plugins/align-hook.test.js
+++ b/packages/e2e-tests/specs/editor/plugins/align-hook.test.js
@@ -37,7 +37,10 @@ describe( 'Align Hook Works As Expected', () => {
} );
const getAlignmentToolbarLabels = async () => {
- await page.click( CHANGE_ALIGNMENT_BUTTON_SELECTOR );
+ const element = await page.waitForSelector(
+ CHANGE_ALIGNMENT_BUTTON_SELECTOR
+ );
+ await element.click();
const buttonLabels = await page.evaluate( () => {
return Array.from(
@@ -64,7 +67,10 @@ describe( 'Align Hook Works As Expected', () => {
await insertBlock( blockName );
// verify no alignment button is in pressed state
- await page.click( CHANGE_ALIGNMENT_BUTTON_SELECTOR );
+ const element = await page.waitForSelector(
+ CHANGE_ALIGNMENT_BUTTON_SELECTOR
+ );
+ await element.click();
const pressedButtons = await page.$$(
'.components-dropdown-menu__menu button.is-active'
);
@@ -89,7 +95,10 @@ describe( 'Align Hook Works As Expected', () => {
'.components-dropdown-menu__menu button.is-active';
// set the specified alignment.
await insertBlock( blockName );
- await page.click( CHANGE_ALIGNMENT_BUTTON_SELECTOR );
+ const element = await page.waitForSelector(
+ CHANGE_ALIGNMENT_BUTTON_SELECTOR
+ );
+ await element.click();
await ( await page.$x( BUTTON_XPATH ) )[ 0 ].click();
// verify the button of the specified alignment is pressed.
@@ -196,7 +205,10 @@ describe( 'Align Hook Works As Expected', () => {
it( 'Applies the selected alignment by default', async () => {
await insertBlock( BLOCK_NAME );
// verify the correct alignment button is pressed
- await page.click( CHANGE_ALIGNMENT_BUTTON_SELECTOR );
+ const element = await page.waitForSelector(
+ CHANGE_ALIGNMENT_BUTTON_SELECTOR
+ );
+ await element.click();
const selectedAlignmentControls = await page.$x(
SELECTED_ALIGNMENT_CONTROL_SELECTOR
);
@@ -213,7 +225,10 @@ describe( 'Align Hook Works As Expected', () => {
it( 'Can remove the default alignment and the align attribute equals none but alignnone class is not applied', async () => {
await insertBlock( BLOCK_NAME );
// remove the alignment.
- await page.click( CHANGE_ALIGNMENT_BUTTON_SELECTOR );
+ const element = await page.waitForSelector(
+ CHANGE_ALIGNMENT_BUTTON_SELECTOR
+ );
+ await element.click();
const [ selectedAlignmentControl ] = await page.$x(
SELECTED_ALIGNMENT_CONTROL_SELECTOR
);
diff --git a/packages/e2e-tests/specs/editor/plugins/block-context.test.js b/packages/e2e-tests/specs/editor/plugins/block-context.test.js
index 8f287bbb59add4..3a96eb3e141f6a 100644
--- a/packages/e2e-tests/specs/editor/plugins/block-context.test.js
+++ b/packages/e2e-tests/specs/editor/plugins/block-context.test.js
@@ -17,9 +17,9 @@ import {
async function openPreviewPage( editorPage ) {
let openTabs = await browser.pages();
const expectedTabsCount = openTabs.length + 1;
- await editorPage.click( '.editor-post-preview__button-toggle' );
- await editorPage.waitFor( '.editor-post-preview__button-external' );
- await editorPage.click( '.editor-post-preview__button-external' );
+ await editorPage.click( '.block-editor-post-preview__button-toggle' );
+ await editorPage.waitFor( '.edit-post-header-preview__button-external' );
+ await editorPage.click( '.edit-post-header-preview__button-external' );
// Wait for the new tab to open.
while ( openTabs.length < expectedTabsCount ) {
@@ -80,7 +80,7 @@ describe( 'Block context', () => {
'.entry-content',
( contentWrapper ) => contentWrapper.textContent.trim()
);
- expect( content ).toBe( 'The record ID is: 0' );
+ expect( content ).toMatch( /^0,\d+,post$/ );
// Return to editor to change context value to non-default.
await editorPage.bringToFront();
@@ -99,7 +99,7 @@ describe( 'Block context', () => {
'.entry-content',
( contentWrapper ) => contentWrapper.textContent.trim()
);
- expect( content ).toBe( 'The record ID is: 123' );
+ expect( content ).toMatch( /^123,\d+,post$/ );
// Clean up
await editorPage.bringToFront();
diff --git a/packages/e2e-tests/specs/editor/plugins/block-icons.test.js b/packages/e2e-tests/specs/editor/plugins/block-icons.test.js
index fd506d98fb3f7a..7b8376c9679819 100644
--- a/packages/e2e-tests/specs/editor/plugins/block-icons.test.js
+++ b/packages/e2e-tests/specs/editor/plugins/block-icons.test.js
@@ -40,7 +40,7 @@ async function getFirstInserterIcon() {
async function selectFirstBlock() {
await pressKeyWithModifier( 'access', 'o' );
const navButtons = await page.$$(
- '.block-editor-block-navigation__item-button'
+ '.block-editor-block-navigation-block-select-button'
);
await navButtons[ 0 ].click();
}
diff --git a/packages/e2e-tests/specs/editor/various/__snapshots__/multi-block-selection.test.js.snap b/packages/e2e-tests/specs/editor/various/__snapshots__/multi-block-selection.test.js.snap
index c3bea88fa75fad..a227c9f3f56cff 100644
--- a/packages/e2e-tests/specs/editor/various/__snapshots__/multi-block-selection.test.js.snap
+++ b/packages/e2e-tests/specs/editor/various/__snapshots__/multi-block-selection.test.js.snap
@@ -62,6 +62,48 @@ exports[`Multi-block selection should only trigger multi-selection when at the e
"
`;
+exports[`Multi-block selection should place the caret at the end of last pasted paragraph (paste mid-block) 1`] = `
+"
+first paragra
+
+
+
+first paragraph
+
+
+
+second paragrap
+
+
+
+ph
+
+
+
+second paragraph
+"
+`;
+
+exports[`Multi-block selection should place the caret at the end of last pasted paragraph (paste to empty editor) 1`] = `
+"
+first paragraph
+
+
+
+second paragrap
+"
+`;
+
+exports[`Multi-block selection should place the caret at the end of last pasted paragraph (replace) 1`] = `
+"
+first paragraph
+
+
+
+second paragrap
+"
+`;
+
exports[`Multi-block selection should preserve dragged selection on move 1`] = `
"
2
diff --git a/packages/e2e-tests/specs/editor/various/adding-blocks.test.js b/packages/e2e-tests/specs/editor/various/adding-blocks.test.js
index 65fd287650b462..6e222ff24e5b79 100644
--- a/packages/e2e-tests/specs/editor/various/adding-blocks.test.js
+++ b/packages/e2e-tests/specs/editor/various/adding-blocks.test.js
@@ -116,7 +116,7 @@ describe( 'adding blocks', () => {
)
);
await page.keyboard.type( 'para' );
- await pressKeyTimes( 'Tab', 4 );
+ await pressKeyTimes( 'Tab', 2 );
await page.keyboard.press( 'Enter' );
await page.keyboard.type( 'Second paragraph' );
diff --git a/packages/e2e-tests/specs/editor/various/block-hierarchy-navigation.test.js b/packages/e2e-tests/specs/editor/various/block-hierarchy-navigation.test.js
index 63ae6d57ecd1fb..eceecaaf95ae82 100644
--- a/packages/e2e-tests/specs/editor/various/block-hierarchy-navigation.test.js
+++ b/packages/e2e-tests/specs/editor/various/block-hierarchy-navigation.test.js
@@ -13,7 +13,7 @@ import {
async function openBlockNavigator() {
await pressKeyWithModifier( 'access', 'o' );
await page.waitForSelector(
- '.block-editor-block-navigation__item-button.is-selected'
+ '.block-editor-block-navigation-leaf.is-selected'
);
}
@@ -38,7 +38,7 @@ describe( 'Navigating the block hierarchy', () => {
await page.click( '[aria-label="Block navigation"]' );
const columnsBlockMenuItem = (
await page.$x(
- "//button[contains(@class,'block-editor-block-navigation__item') and contains(text(), 'Columns')]"
+ "//button[contains(@class,'block-editor-block-navigation-block-select-button') and contains(text(), 'Columns')]"
)
)[ 0 ];
await columnsBlockMenuItem.click();
@@ -57,7 +57,7 @@ describe( 'Navigating the block hierarchy', () => {
await page.click( '[aria-label="Block navigation"]' );
const lastColumnsBlockMenuItem = (
await page.$x(
- "//button[contains(@class,'block-editor-block-navigation__item') and contains(text(), 'Column')]"
+ "//button[contains(@class,'block-editor-block-navigation-block-select-button') and contains(text(), 'Column')]"
)
)[ 3 ];
await lastColumnsBlockMenuItem.click();
@@ -101,7 +101,7 @@ describe( 'Navigating the block hierarchy', () => {
// Navigate to the last column in the columns block.
await openBlockNavigator();
- await pressKeyTimes( 'Tab', 4 );
+ await pressKeyTimes( 'ArrowDown', 4 );
await page.keyboard.press( 'Enter' );
await page.waitForSelector( '.is-selected[data-type="core/column"]' );
@@ -121,7 +121,7 @@ describe( 'Navigating the block hierarchy', () => {
await insertBlock( 'Paragraph' );
- // Add content so there is a block in the hierachy.
+ // Add content so there is a block in the hierarchy.
await page.keyboard.type( textString );
// Create an image block too.
@@ -163,7 +163,7 @@ describe( 'Navigating the block hierarchy', () => {
await page.click( '[aria-label="Block navigation"]' );
const groupMenuItem = (
await page.$x(
- "//button[contains(@class,'block-editor-block-navigation__item') and contains(text(), 'Group')]"
+ "//button[contains(@class,'block-editor-block-navigation-block-select-button') and contains(text(), 'Group')]"
)
)[ 0 ];
await groupMenuItem.click();
diff --git a/packages/e2e-tests/specs/editor/various/datepicker.test.js b/packages/e2e-tests/specs/editor/various/datepicker.test.js
index dc7e8982f17f82..6118f05368ae77 100644
--- a/packages/e2e-tests/specs/editor/various/datepicker.test.js
+++ b/packages/e2e-tests/specs/editor/various/datepicker.test.js
@@ -60,4 +60,29 @@ describe( 'Datepicker', () => {
/[A-Za-z]{3} \d{1,2}, \d{4} \d{1,2}:\d{2} [ap]m/
);
} );
+
+ it( 'should show the publishing date as "Immediately" if the date is cleared', async () => {
+ // Open the datepicker.
+ await page.click( '.edit-post-post-schedule__toggle' );
+
+ // Change the publishing date to a year in the future.
+ await page.click( '.components-datetime__time-field-year' );
+ await page.keyboard.press( 'ArrowUp' );
+
+ // Close the datepicker.
+ await page.click( '.edit-post-post-schedule__toggle' );
+
+ // Open the datepicker.
+ await page.click( '.edit-post-post-schedule__toggle' );
+
+ // Clear the date
+ await page.click( '.components-datetime__date-reset-button' );
+
+ const publishingDate = await page.$eval(
+ '.edit-post-post-schedule__toggle',
+ ( dateLabel ) => dateLabel.textContent
+ );
+
+ expect( publishingDate ).toEqual( 'Immediately' );
+ } );
} );
diff --git a/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js b/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js
index 8f7d6818d380d3..3f590f4741f12b 100644
--- a/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js
+++ b/packages/e2e-tests/specs/editor/various/keyboard-navigable-blocks.test.js
@@ -29,7 +29,6 @@ const tabThroughParagraphBlock = async ( paragraphText ) => {
await page.keyboard.press( 'Tab' );
await expect( await getActiveLabel() ).toBe( 'Add block' );
- await tabThroughBlockMoverControl();
await tabThroughBlockToolbar();
await page.keyboard.press( 'Tab' );
@@ -42,35 +41,36 @@ const tabThroughParagraphBlock = async ( paragraphText ) => {
await expect( await getActiveLabel() ).toBe( 'Open document settings' );
};
-const tabThroughBlockMoverControl = async () => {
+const tabThroughBlockToolbar = async () => {
await page.keyboard.press( 'Tab' );
await expect( await getActiveLabel() ).toBe( 'Move up' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'Move down' );
-};
-const tabThroughBlockToolbar = async () => {
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'Change block type or style' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'Change text alignment' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'Bold' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'Italic' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'Link' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'More rich text controls' );
- await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'ArrowRight' );
await expect( await getActiveLabel() ).toBe( 'More options' );
+
+ await page.keyboard.press( 'ArrowRight' );
+ await expect( await getActiveLabel() ).toBe( 'Move up' );
};
describe( 'Order of block keyboard navigation', () => {
@@ -197,6 +197,6 @@ describe( 'Order of block keyboard navigation', () => {
);
await pressKeyWithModifier( 'shift', 'Tab' );
- await expect( await getActiveLabel() ).toBe( 'More options' );
+ await expect( await getActiveLabel() ).toBe( 'Move up' );
} );
} );
diff --git a/packages/e2e-tests/specs/editor/various/links.test.js b/packages/e2e-tests/specs/editor/various/links.test.js
index 584276c1807f88..d13f4dc4a91333 100644
--- a/packages/e2e-tests/specs/editor/various/links.test.js
+++ b/packages/e2e-tests/specs/editor/various/links.test.js
@@ -453,12 +453,6 @@ describe( 'Links', () => {
// Press Cmd+K to edit the link and the url-input should become
// focused with the value previously inserted.
await pressKeyWithModifier( 'primary', 'K' );
- await page.waitForSelector(
- ':focus.block-editor-link-control__search-item-title'
- );
- await page.keyboard.press( 'Tab' ); // Shift focus to "Edit" button
- await page.keyboard.press( 'Enter' ); // Click "Edit" button
-
await waitForAutoFocus();
const isInURLInput = await page.evaluate(
() => !! document.activeElement.closest( '.block-editor-url-input' )
@@ -516,6 +510,11 @@ describe( 'Links', () => {
await page.keyboard.press( 'Tab' );
await page.keyboard.press( 'Enter' );
+ // Wait for Gutenberg to finish the job.
+ await page.waitForXPath(
+ '//a[contains(@href,"w.org") and @target="_blank"]'
+ );
+
expect( await getEditedPostContent() ).toMatchSnapshot();
// Regression Test: This verifies that the UI is updated according to
@@ -531,11 +530,6 @@ describe( 'Links', () => {
// Edit link.
await pressKeyWithModifier( 'primary', 'k' );
- await page.waitForSelector(
- ':focus.block-editor-link-control__search-item-title'
- );
- await page.keyboard.press( 'Tab' ); // Shift focus to "Edit" button
- await page.keyboard.press( 'Enter' ); // Click "Edit" button
await waitForAutoFocus();
await pressKeyWithModifier( 'primary', 'a' );
await page.keyboard.type( 'wordpress.org' );
@@ -557,6 +551,11 @@ describe( 'Links', () => {
// Uncheck the checkbox.
await page.keyboard.press( 'Space' );
+ // Wait for Gutenberg to finish the job.
+ await page.waitForXPath(
+ '//a[contains(@href,"wordpress.org") and not(@target)]'
+ );
+
expect( await getEditedPostContent() ).toMatchSnapshot();
} );
} );
diff --git a/packages/e2e-tests/specs/editor/various/multi-block-selection.test.js b/packages/e2e-tests/specs/editor/various/multi-block-selection.test.js
index 7037e53a74736f..bbd07d83e510a3 100644
--- a/packages/e2e-tests/specs/editor/various/multi-block-selection.test.js
+++ b/packages/e2e-tests/specs/editor/various/multi-block-selection.test.js
@@ -491,4 +491,53 @@ describe( 'Multi-block selection', () => {
expect( await getEditedPostContent() ).toMatchSnapshot();
} );
+
+ it( 'should place the caret at the end of last pasted paragraph (paste to empty editor)', async () => {
+ await clickBlockAppender();
+ await page.keyboard.type( 'first paragraph' );
+ await page.keyboard.press( 'Enter' );
+ await page.keyboard.type( 'second paragraph' );
+ await pressKeyWithModifier( 'primary', 'a' );
+ await pressKeyWithModifier( 'primary', 'a' );
+ await pressKeyWithModifier( 'primary', 'c' );
+ await page.keyboard.press( 'Backspace' );
+ await pressKeyWithModifier( 'primary', 'v' );
+ await page.keyboard.press( 'Backspace' );
+
+ expect( await getEditedPostContent() ).toMatchSnapshot();
+ } );
+
+ it( 'should place the caret at the end of last pasted paragraph (paste mid-block)', async () => {
+ await clickBlockAppender();
+ await page.keyboard.type( 'first paragraph' );
+ await page.keyboard.press( 'Enter' );
+ await page.keyboard.type( 'second paragraph' );
+ await pressKeyWithModifier( 'primary', 'a' );
+ await pressKeyWithModifier( 'primary', 'a' );
+ await pressKeyWithModifier( 'primary', 'c' );
+
+ await page.keyboard.press( 'ArrowRight' );
+ await page.keyboard.press( 'ArrowLeft' );
+ await page.keyboard.press( 'ArrowLeft' );
+ await page.keyboard.press( 'ArrowLeft' );
+
+ await pressKeyWithModifier( 'primary', 'v' );
+ await page.keyboard.press( 'Backspace' );
+
+ expect( await getEditedPostContent() ).toMatchSnapshot();
+ } );
+
+ it( 'should place the caret at the end of last pasted paragraph (replace)', async () => {
+ await clickBlockAppender();
+ await page.keyboard.type( 'first paragraph' );
+ await page.keyboard.press( 'Enter' );
+ await page.keyboard.type( 'second paragraph' );
+ await pressKeyWithModifier( 'primary', 'a' );
+ await pressKeyWithModifier( 'primary', 'a' );
+ await pressKeyWithModifier( 'primary', 'c' );
+ await pressKeyWithModifier( 'primary', 'v' );
+ await page.keyboard.press( 'Backspace' );
+
+ expect( await getEditedPostContent() ).toMatchSnapshot();
+ } );
} );
diff --git a/packages/e2e-tests/specs/editor/various/post-visibility.test.js b/packages/e2e-tests/specs/editor/various/post-visibility.test.js
index dc04a8e2a8ee21..6844b9bd97345b 100644
--- a/packages/e2e-tests/specs/editor/various/post-visibility.test.js
+++ b/packages/e2e-tests/specs/editor/various/post-visibility.test.js
@@ -63,6 +63,11 @@ describe( 'Post visibility', () => {
// Enter a title for this post.
await page.type( '.editor-post-title__input', ' Changed' );
+ // Wait for the button to be clickable before attempting to click.
+ // This could cause errors when we try to click before changes are registered.
+ await page.waitForSelector(
+ '.editor-post-publish-button[aria-disabled="false"]'
+ );
await page.click( '.editor-post-publish-button' );
const currentStatus = await page.evaluate( () => {
diff --git a/packages/e2e-tests/specs/editor/various/preview.test.js b/packages/e2e-tests/specs/editor/various/preview.test.js
index c45e7cced2e7b4..e53cc7f742426c 100644
--- a/packages/e2e-tests/specs/editor/various/preview.test.js
+++ b/packages/e2e-tests/specs/editor/various/preview.test.js
@@ -22,9 +22,9 @@ import {
async function openPreviewPage( editorPage ) {
let openTabs = await browser.pages();
const expectedTabsCount = openTabs.length + 1;
- await editorPage.click( '.editor-post-preview__button-toggle' );
- await editorPage.waitFor( '.editor-post-preview__button-external' );
- await editorPage.click( '.editor-post-preview__button-external' );
+ await editorPage.click( '.block-editor-post-preview__button-toggle' );
+ await editorPage.waitFor( '.edit-post-header-preview__button-external' );
+ await editorPage.click( '.edit-post-header-preview__button-external' );
// Wait for the new tab to open.
while ( openTabs.length < expectedTabsCount ) {
@@ -49,9 +49,9 @@ async function openPreviewPage( editorPage ) {
* @return {Promise} Promise resolving once selector is visible on page.
*/
async function waitForPreviewDropdownOpen( editorPage ) {
- await editorPage.click( '.editor-post-preview__button-toggle' );
+ await editorPage.click( '.block-editor-post-preview__button-toggle' );
return editorPage.waitForSelector(
- '.editor-post-preview__button-external'
+ '.edit-post-header-preview__button-external'
);
}
@@ -64,7 +64,7 @@ async function waitForPreviewDropdownOpen( editorPage ) {
* @return {Promise} Promise resolving once navigation completes.
*/
async function waitForPreviewNavigation( previewPage ) {
- await page.click( '.editor-post-preview__button-external' );
+ await page.click( '.edit-post-header-preview__button-external' );
return previewPage.waitForNavigation();
}
@@ -115,7 +115,7 @@ describe( 'Preview', () => {
// Disabled until content present.
const isPreviewDisabled = await editorPage.$$eval(
- '.editor-post-preview__button-toggle:not( :disabled ):not( [aria-disabled="true"] )',
+ '.block-editor-post-preview__button-toggle:not( :disabled ):not( [aria-disabled="true"] )',
( enabledButtons ) => ! enabledButtons.length
);
expect( isPreviewDisabled ).toBe( true );
@@ -342,10 +342,10 @@ describe( 'Preview with private custom post type', () => {
await page.keyboard.press( 'Tab' );
// Open the preview menu.
- await page.click( '.editor-post-preview__button-toggle' );
+ await page.click( '.block-editor-post-preview__button-toggle' );
const previewDropdownContents = await page.$(
- '.editor-post-preview__dropdown-content'
+ '.block-editor-post-preview__dropdown-content'
);
// Expect the Preview Externally link not to be present.
diff --git a/packages/e2e-tests/specs/editor/various/rich-text.test.js b/packages/e2e-tests/specs/editor/various/rich-text.test.js
index e29475984b7f88..8135962e22556e 100644
--- a/packages/e2e-tests/specs/editor/various/rich-text.test.js
+++ b/packages/e2e-tests/specs/editor/various/rich-text.test.js
@@ -256,6 +256,9 @@ describe( 'RichText', () => {
it( 'should handle Home and End keys', async () => {
await page.keyboard.press( 'Enter' );
+ // Wait for rich text editor to load.
+ await page.waitForSelector( '.block-editor-rich-text__editable' );
+
await pressKeyWithModifier( 'primary', 'b' );
await page.keyboard.type( '12' );
await pressKeyWithModifier( 'primary', 'b' );
diff --git a/packages/e2e-tests/specs/editor/various/writing-flow.test.js b/packages/e2e-tests/specs/editor/various/writing-flow.test.js
index 7a379731f8789a..6f36daec78f9d7 100644
--- a/packages/e2e-tests/specs/editor/various/writing-flow.test.js
+++ b/packages/e2e-tests/specs/editor/various/writing-flow.test.js
@@ -80,25 +80,7 @@ describe( 'Writing Flow', () => {
activeBlockName = await getActiveBlockName();
expect( activeBlockName ).toBe( 'core/column' );
await page.keyboard.press( 'ArrowUp' );
- activeBlockName = await getActiveBlockName();
- expect( activeBlockName ).toBe( 'core/paragraph' );
- activeElementText = await page.evaluate(
- () => document.activeElement.textContent
- );
- expect( activeElementText ).toBe( '1st col' );
-
- // Arrow up from first text field in nested context focuses column and
- // columns wrappers before escaping out.
- let activeElementBlockType;
- await page.keyboard.press( 'ArrowUp' );
- activeElementBlockType = await page.evaluate( () =>
- document.activeElement.getAttribute( 'data-type' )
- );
- expect( activeElementBlockType ).toBe( 'core/column' );
- activeBlockName = await getActiveBlockName();
- expect( activeBlockName ).toBe( 'core/column' );
- await page.keyboard.press( 'ArrowUp' );
- activeElementBlockType = await page.evaluate( () =>
+ const activeElementBlockType = await page.evaluate( () =>
document.activeElement.getAttribute( 'data-type' )
);
expect( activeElementBlockType ).toBe( 'core/columns' );
diff --git a/packages/e2e-tests/specs/experiments/__snapshots__/block-directory-add.test.js.snap b/packages/e2e-tests/specs/experiments/__snapshots__/block-directory-add.test.js.snap
new file mode 100644
index 00000000000000..2c06020e52c787
--- /dev/null
+++ b/packages/e2e-tests/specs/experiments/__snapshots__/block-directory-add.test.js.snap
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`adding blocks from block directory Should be able to add (the first) block. 1`] = `""`;
diff --git a/packages/e2e-tests/specs/experiments/block-directory-add.test.js b/packages/e2e-tests/specs/experiments/block-directory-add.test.js
new file mode 100644
index 00000000000000..ceae170c723a81
--- /dev/null
+++ b/packages/e2e-tests/specs/experiments/block-directory-add.test.js
@@ -0,0 +1,166 @@
+/**
+ * WordPress dependencies
+ */
+import {
+ createNewPost,
+ searchForBlock,
+ setUpResponseMocking,
+ getEditedPostContent,
+ createJSONResponse,
+} from '@wordpress/e2e-test-utils';
+/**
+ * Internal dependencies
+ */
+import { enableExperimentalFeatures } from '../../experimental-features';
+
+// Urls to mock
+const SEARCH_URLS = [
+ '/__experimental/block-directory/search',
+ `rest_route=${ encodeURIComponent(
+ '/__experimental/block-directory/search'
+ ) }`,
+];
+
+const INSTALL_URLS = [
+ '/__experimental/block-directory/install',
+ `rest_route=${ encodeURIComponent(
+ '/__experimental/block-directory/install'
+ ) }`,
+];
+
+// Example Blocks
+const MOCK_BLOCK1 = {
+ name: 'block-directory-test-block/main-block',
+ title: 'Block Directory Test Block',
+ description: 'This plugin is useful for the block.',
+ id: 'block-directory-test-block',
+ rating: 0,
+ rating_count: 0,
+ active_installs: 0,
+ author_block_rating: 0,
+ author_block_count: 1,
+ author: 'No Author',
+ icon: 'block-default',
+ assets: [
+ 'fake_url.com/block.js', // we will mock this
+ ],
+ humanized_updated: '5 months ago',
+};
+
+const MOCK_BLOCK2 = {
+ ...MOCK_BLOCK1,
+ name: 'block-directory-test-block/secondary-block',
+ title: 'Block Directory Test Block - Pt Deux',
+ id: 'block-directory-test-secondary-block',
+};
+
+// Block that will be registered
+const block = `( function() {
+ var registerBlockType = wp.blocks.registerBlockType;
+ var el = wp.element.createElement;
+
+ registerBlockType( '${ MOCK_BLOCK1.name }', {
+ title: 'Test Block for Block Directory',
+ icon: 'hammer',
+ category: 'common',
+ attributes: {},
+ edit: function( props ) {
+ return el( 'p', null, 'Test Copy' );
+ },
+ save: function() {
+ return null;
+ },
+ } );
+} )();`;
+
+const MOCK_EMPTY_RESPONSES = [
+ {
+ match: ( request ) => matchUrl( request.url(), SEARCH_URLS ),
+ onRequestMatch: createJSONResponse( [] ),
+ },
+];
+
+const MOCK_BLOCKS_RESPONSES = [
+ {
+ // Mock response for search with the block
+ match: ( request ) => matchUrl( request.url(), SEARCH_URLS ),
+ onRequestMatch: createJSONResponse( [ MOCK_BLOCK1, MOCK_BLOCK2 ] ),
+ },
+ {
+ // Mock response for install
+ match: ( request ) => matchUrl( request.url(), INSTALL_URLS ),
+ onRequestMatch: createJSONResponse( true ),
+ },
+ {
+ // Mock the response for the js asset once it gets injected
+ match: ( request ) => request.url().includes( MOCK_BLOCK1.assets[ 0 ] ),
+ onRequestMatch: createResponse(
+ Buffer.from( block, 'utf8' ),
+ 'application/javascript; charset=utf-8'
+ ),
+ },
+];
+
+function getResponseObject( obj, contentType ) {
+ return {
+ status: 200,
+ contentType,
+ body: obj,
+ };
+}
+
+function createResponse( mockResponse, contentType ) {
+ return async ( request ) =>
+ request.respond( getResponseObject( mockResponse, contentType ) );
+}
+
+const matchUrl = ( reqUrl, urls ) => {
+ return urls.some( ( el ) => reqUrl.indexOf( el ) >= 0 );
+};
+
+describe( 'adding blocks from block directory', () => {
+ beforeEach( async () => {
+ await enableExperimentalFeatures( [ '#gutenberg-block-directory' ] );
+ await createNewPost();
+ } );
+
+ it( 'Should show an empty state when no plugin is found.', async () => {
+ // Be super weird so there won't be a matching block installed
+ const impossibleBlockName = '@#$@@Dsdsdfw2#$@';
+
+ // Return an empty list of plugins
+ await setUpResponseMocking( MOCK_EMPTY_RESPONSES );
+
+ // Search for the block via the inserter
+ await searchForBlock( impossibleBlockName );
+
+ const selectorContent = await page.evaluate(
+ () =>
+ document.querySelector( '.block-editor-inserter__block-list' )
+ .innerHTML
+ );
+ expect( selectorContent ).toContain( 'has-no-results' );
+ } );
+
+ it( 'Should be able to add (the first) block.', async () => {
+ // Setup our mocks
+ await setUpResponseMocking( MOCK_BLOCKS_RESPONSES );
+
+ // Search for the block via the inserter
+ await searchForBlock( MOCK_BLOCK1.title );
+
+ // Grab the first block in the list -> Needs to be the first one, the mock response expects it.
+ const addBtn = await page.waitForSelector(
+ '.block-directory-downloadable-blocks-list li:first-child button'
+ );
+
+ // Add the block
+ await addBtn.click();
+
+ // Delay to let block script load
+ await new Promise( ( resolve ) => setTimeout( resolve, 100 ) );
+
+ // The block will auto select and get added, make sure we see it in the content
+ expect( await getEditedPostContent() ).toMatchSnapshot();
+ } );
+} );
diff --git a/packages/e2e-tests/specs/experiments/multi-entity-saving.test.js b/packages/e2e-tests/specs/experiments/multi-entity-saving.test.js
index 20f7611b05341e..65293151779c09 100644
--- a/packages/e2e-tests/specs/experiments/multi-entity-saving.test.js
+++ b/packages/e2e-tests/specs/experiments/multi-entity-saving.test.js
@@ -4,8 +4,7 @@
import {
createNewPost,
insertBlock,
- disablePrePublishChecks,
- publishPostWithPrePublishChecksDisabled,
+ publishPost,
visitAdminPage,
} from '@wordpress/e2e-test-utils';
import { addQueryArgs } from '@wordpress/url';
@@ -20,24 +19,14 @@ import {
import { trashExistingPosts } from '../../config/setup-test-framework';
describe( 'Multi-entity save flow', () => {
- // Selectors.
+ // Selectors - usable between Post/Site editors.
const checkedBoxSelector = '.components-checkbox-control__checked';
const checkboxInputSelector = '.components-checkbox-control__input';
- const demoTemplateSelector = '//button[contains(., "front-page")]';
- const draftSavedSelector = '.editor-post-saved-state.is-saved';
const entitiesSaveSelector = '.editor-entities-saved-states__save-button';
- const multiSaveSelector =
- '.editor-post-publish-button__button.has-changes-dot';
- const savePostSelector = '.editor-post-publish-button__button';
- const disabledSavePostSelector = `${ savePostSelector }[aria-disabled=true]`;
- const enabledSavePostSelector = `${ savePostSelector }[aria-disabled=false]`;
- const saveSiteSelector = '.edit-site-save-button__button';
- const activeSaveSiteSelector = `${ saveSiteSelector }[aria-disabled=false]`;
- const disabledSaveSiteSelector = `${ saveSiteSelector }[aria-disabled=true]`;
- const templateDropdownSelector =
- '.components-dropdown-menu__toggle[aria-label="Switch Template"]';
const templatePartSelector = '*[data-type="core/template-part"]';
const activatedTemplatePartSelector = `${ templatePartSelector } .block-editor-inner-blocks`;
+ const savePanelSelector = '.entities-saved-states__panel';
+ const closePanelButtonSelector = 'button[aria-label="Close panel"]';
// Reusable assertions across Post/Site editors.
const assertAllBoxesChecked = async () => {
@@ -45,6 +34,14 @@ describe( 'Multi-entity save flow', () => {
const checkboxInputs = await page.$$( checkboxInputSelector );
expect( checkedBoxes.length - checkboxInputs.length ).toBe( 0 );
};
+ const assertExistance = async ( selector, shouldBePresent ) => {
+ const element = await page.$( selector );
+ if ( shouldBePresent ) {
+ expect( element ).not.toBeNull();
+ } else {
+ expect( element ).toBeNull();
+ }
+ };
// Setup & Teardown.
const requiredExperiments = [
'#gutenberg-full-site-editing',
@@ -60,6 +57,19 @@ describe( 'Multi-entity save flow', () => {
} );
describe( 'Post Editor', () => {
+ // Selectors - Post editor specific.
+ const draftSavedSelector = '.editor-post-saved-state.is-saved';
+ const multiSaveSelector =
+ '.editor-post-publish-button__button.has-changes-dot';
+ const savePostSelector = '.editor-post-publish-button__button';
+ const disabledSavePostSelector = `${ savePostSelector }[aria-disabled=true]`;
+ const enabledSavePostSelector = `${ savePostSelector }[aria-disabled=false]`;
+ const publishA11ySelector =
+ '.edit-post-layout__toggle-publish-panel-button';
+ const saveA11ySelector =
+ '.edit-post-layout__toggle-entities-saved-states-panel-button';
+ const publishPanelSelector = '.editor-post-publish-panel';
+
// Reusable assertions inside Post editor.
const assertMultiSaveEnabled = async () => {
const multiSaveButton = await page.waitForSelector(
@@ -75,7 +85,6 @@ describe( 'Multi-entity save flow', () => {
describe( 'Pre-Publish state', () => {
it( 'Should not trigger multi-entity save button with only post edited', async () => {
await createNewPost();
- await disablePrePublishChecks();
// Edit the page some.
await page.click( '.editor-post-title' );
await page.keyboard.type( 'Test Post...' );
@@ -84,6 +93,13 @@ describe( 'Multi-entity save flow', () => {
await assertMultiSaveDisabled();
} );
+ it( 'Should only have publish panel a11y button active with only post edited', async () => {
+ await assertExistance( publishA11ySelector, true );
+ await assertExistance( saveA11ySelector, false );
+ await assertExistance( publishPanelSelector, false );
+ await assertExistance( savePanelSelector, false );
+ } );
+
it( 'Should trigger multi-entity save button once template part edited', async () => {
// Create new template part.
await insertBlock( 'Template Part' );
@@ -101,14 +117,39 @@ describe( 'Multi-entity save flow', () => {
await assertMultiSaveEnabled();
} );
- it( 'Clicking should open modal with boxes checked by default', async () => {
+ it( 'Should only have save panel a11y button active after child entities edited', async () => {
+ await assertExistance( publishA11ySelector, false );
+ await assertExistance( saveA11ySelector, true );
+ await assertExistance( publishPanelSelector, false );
+ await assertExistance( savePanelSelector, false );
+ } );
+
+ it( 'Clicking should open panel with boxes checked by default', async () => {
await page.click( savePostSelector );
+ await page.waitForSelector( savePanelSelector );
await assertAllBoxesChecked();
} );
- it( 'Saving should result in items being saved', async () => {
+ it( 'Should not show other panels (or their a11y buttons) while save panel opened', async () => {
+ await assertExistance( publishA11ySelector, false );
+ await assertExistance( saveA11ySelector, false );
+ await assertExistance( publishPanelSelector, false );
+ } );
+
+ it( 'Publish panel should open after saving, no other panels (or their a11y buttons) should be present', async () => {
+ // Save entities and wait for publish panel.
await page.click( entitiesSaveSelector );
+ await page.waitForSelector( publishPanelSelector );
+
+ await assertExistance( publishA11ySelector, false );
+ await assertExistance( saveA11ySelector, false );
+ await assertExistance( savePanelSelector, false );
+
+ // Close publish panel.
+ await page.click( closePanelButtonSelector );
+ } );
+ it( 'Saving should result in items being saved', async () => {
// Verify post is saved.
const draftSaved = await page.waitForSelector(
draftSavedSelector
@@ -122,13 +163,17 @@ describe( 'Multi-entity save flow', () => {
describe( 'Published state', () => {
it( 'Update button disabled after publish', async () => {
- await publishPostWithPrePublishChecksDisabled();
+ await publishPost();
const disabledSaveButton = await page.$(
disabledSavePostSelector
);
expect( disabledSaveButton ).not.toBeNull();
} );
+ it( 'should not have save a11y button when no changes', async () => {
+ await assertExistance( saveA11ySelector, false );
+ } );
+
it( 'Update button enabled after editing post', async () => {
await page.click( '.editor-post-title' );
await page.keyboard.type( '...more title!' );
@@ -149,10 +194,23 @@ describe( 'Multi-entity save flow', () => {
await page.keyboard.press( 'Enter' );
await assertMultiSaveEnabled();
} );
+
+ it( 'save a11y button enables after editing template part', async () => {
+ await assertExistance( saveA11ySelector, true );
+ } );
} );
} );
describe( 'Site Editor', () => {
+ // Selectors - Site editor specific.
+ const demoTemplateSelector = '//button[contains(., "front-page")]';
+ const saveSiteSelector = '.edit-site-save-button__button';
+ const activeSaveSiteSelector = `${ saveSiteSelector }[aria-disabled=false]`;
+ const disabledSaveSiteSelector = `${ saveSiteSelector }[aria-disabled=true]`;
+ const templateDropdownSelector =
+ '.components-dropdown-menu__toggle[aria-label="Switch Template"]';
+ const saveA11ySelector = '.edit-site-editor__toggle-save-panel-button';
+
it( 'Should be enabled after edits', async () => {
// Navigate to site editor.
const query = addQueryArgs( '', {
@@ -177,11 +235,20 @@ describe( 'Multi-entity save flow', () => {
expect( enabledButton ).not.toBeNull();
} );
- it( 'Clicking button should open modal with boxes checked', async () => {
+ it( 'save a11y button should be present', async () => {
+ await assertExistance( saveA11ySelector, true );
+ } );
+
+ it( 'Clicking button should open panel with boxes checked', async () => {
await page.click( activeSaveSiteSelector );
+ await page.waitForSelector( savePanelSelector );
await assertAllBoxesChecked();
} );
+ it( 'save a11y button should not be present with save panel open', async () => {
+ await assertExistance( saveA11ySelector, false );
+ } );
+
it( 'Saving should result in items being saved', async () => {
await page.click( entitiesSaveSelector );
const disabledButton = await page.waitForSelector(
diff --git a/packages/e2e-tests/specs/experiments/template-part.test.js b/packages/e2e-tests/specs/experiments/template-part.test.js
new file mode 100644
index 00000000000000..4149fcfe9a3e04
--- /dev/null
+++ b/packages/e2e-tests/specs/experiments/template-part.test.js
@@ -0,0 +1,166 @@
+/**
+ * WordPress dependencies
+ */
+import {
+ createNewPost,
+ insertBlock,
+ disablePrePublishChecks,
+ visitAdminPage,
+} from '@wordpress/e2e-test-utils';
+import { addQueryArgs } from '@wordpress/url';
+
+/**
+ * Internal dependencies
+ */
+import {
+ enableExperimentalFeatures,
+ disableExperimentalFeatures,
+} from '../../experimental-features';
+import { trashExistingPosts } from '../../config/setup-test-framework';
+
+describe( 'Template Part', () => {
+ beforeAll( async () => {
+ await enableExperimentalFeatures( [
+ '#gutenberg-full-site-editing',
+ '#gutenberg-full-site-editing-demo',
+ ] );
+ await trashExistingPosts( 'wp_template' );
+ await trashExistingPosts( 'wp_template_part' );
+ } );
+ afterAll( async () => {
+ await trashExistingPosts( 'wp_template' );
+ await trashExistingPosts( 'wp_template_part' );
+ await disableExperimentalFeatures( [
+ '#gutenberg-full-site-editing',
+ '#gutenberg-full-site-editing-demo',
+ ] );
+ } );
+
+ describe( 'Template part block', () => {
+ beforeEach( () =>
+ visitAdminPage(
+ 'admin.php',
+ addQueryArgs( '', {
+ page: 'gutenberg-edit-site',
+ } ).slice( 1 )
+ )
+ );
+
+ it( 'Should load customizations when in a template even if only the slug and theme attributes are set.', async () => {
+ // Switch to editing the header template part.
+ await page.click(
+ '.components-dropdown-menu__toggle[aria-label="Switch Template"]'
+ );
+ const [ switchToHeaderTemplatePartButton ] = await page.$x(
+ '//button[contains(text(), "header")]'
+ );
+ await switchToHeaderTemplatePartButton.click();
+
+ // Edit it.
+ await insertBlock( 'Paragraph' );
+ await page.keyboard.type( 'Header Template Part 123' );
+
+ // Save it, without saving the front page template.
+ await page.click( '.edit-site-save-button__button' );
+ const [ frontPageCheckbox ] = await page.$x(
+ '//strong[contains(text(),"Front Page")]/../preceding-sibling::span/input'
+ );
+ await frontPageCheckbox.click();
+ await page.click( '.editor-entities-saved-states__save-button' );
+ await page.waitForSelector(
+ '.edit-site-save-button__button:not(.is-busy)'
+ );
+
+ // Switch back to the front page template.
+ await page.click(
+ '.components-dropdown-menu__toggle[aria-label="Switch Template"]'
+ );
+ const [ switchToFrontPageTemplateButton ] = await page.$x(
+ '//button[contains(text(), "front-page")]'
+ );
+ await switchToFrontPageTemplateButton.click();
+
+ // Verify that the header template part is updated.
+ const [ headerTemplatePart ] = await page.$x(
+ '//*[@data-type="core/template-part"][//p[text()="Header Template Part123"]]'
+ );
+ expect( headerTemplatePart ).not.toBeNull();
+ } );
+ } );
+
+ describe( 'Template part placeholder', () => {
+ // Test constants for template part.
+ const testSlug = 'test-template-part';
+ const testTheme = 'test-theme';
+ const testContent = 'some words...';
+
+ // Selectors
+ const chooseButtonSelector =
+ '//div[contains(@class,"is-selected")]//button[text()="Choose"]';
+ const entitiesSaveSelector =
+ '.editor-entities-saved-states__save-button';
+ const savePostSelector = '.editor-post-publish-button__button';
+ const templatePartSelector = '*[data-type="core/template-part"]';
+ const activatedTemplatePartSelector = `${ templatePartSelector } .block-editor-inner-blocks`;
+ const templatePartButtonSelector = `${ templatePartSelector } button`;
+ const testContentSelector = `//p[contains(., "${ testContent }")]`;
+
+ it( 'Should prompt to create when no match found', async () => {
+ await createNewPost();
+ await disablePrePublishChecks();
+ // Create new template part.
+ await insertBlock( 'Template Part' );
+ await page.keyboard.type( testSlug );
+ await page.keyboard.press( 'Tab' );
+ await page.keyboard.type( testTheme );
+ // Should say 'Create'
+ const placeholderButton = await page.$(
+ templatePartButtonSelector
+ );
+ const text = await page.evaluate(
+ ( element ) => element.textContent,
+ placeholderButton
+ );
+ expect( text ).toBe( 'Create' );
+
+ // Finish creating template part, insert some text, and save.
+ await page.keyboard.press( 'Tab' );
+ await page.keyboard.press( 'Enter' );
+ await page.waitForSelector( activatedTemplatePartSelector );
+ await page.click( templatePartSelector );
+ await page.keyboard.type( testContent );
+ await page.click( savePostSelector );
+ await page.click( entitiesSaveSelector );
+ } );
+
+ it( 'Should prompt to Choose when match found', async () => {
+ await createNewPost();
+ await disablePrePublishChecks();
+ // Try to insert the template part we created.
+ await insertBlock( 'Template Part' );
+ await page.keyboard.type( testSlug );
+ await page.keyboard.press( 'Tab' );
+ await page.keyboard.type( testTheme );
+ // Should say 'Choose'
+ const placeholderButton = await page.waitForXPath(
+ chooseButtonSelector
+ );
+ expect( placeholderButton ).not.toBeNull();
+ } );
+
+ it( 'Should dispaly a preview when match is found', async () => {
+ const [ preview ] = await page.$x( testContentSelector );
+ expect( preview ).toBeTruthy();
+ } );
+
+ it( 'Should insert the desired template part', async () => {
+ const [ placeholderButton ] = await page.$x( chooseButtonSelector );
+ await placeholderButton.click();
+ await page.waitForSelector( activatedTemplatePartSelector );
+ const templatePartContent = await page.waitForXPath(
+ testContentSelector
+ );
+ expect( templatePartContent ).toBeTruthy();
+ } );
+ } );
+} );
diff --git a/packages/edit-navigation/CHANGELOG.md b/packages/edit-navigation/CHANGELOG.md
new file mode 100644
index 00000000000000..b7cd4ed2b0826e
--- /dev/null
+++ b/packages/edit-navigation/CHANGELOG.md
@@ -0,0 +1,3 @@
+
+
+## Unreleased
diff --git a/packages/edit-navigation/package.json b/packages/edit-navigation/package.json
index 65b58dfcbebdc1..92713ffcfaf0a1 100644
--- a/packages/edit-navigation/package.json
+++ b/packages/edit-navigation/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-navigation",
- "version": "1.0.0-beta.2",
+ "version": "1.0.0-beta.3",
"private": true,
"description": "Module for the Navigation page in WordPress.",
"author": "The WordPress Contributors",
@@ -22,6 +22,7 @@
"react-native": "src/index",
"dependencies": {
"@babel/runtime": "^7.9.2",
+ "@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/block-editor": "file:../block-editor",
"@wordpress/block-library": "file:../block-library",
"@wordpress/blocks": "file:../blocks",
@@ -32,10 +33,12 @@
"@wordpress/dom-ready": "file:../dom-ready",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
- "@wordpress/i18n": "file:../i18n",
+ "@wordpress/html-entities": "file:../html-entities",
+ "@wordpress/i18n": "file:../i18n",
"@wordpress/keyboard-shortcuts": "file:../keyboard-shortcuts",
"@wordpress/media-utils": "file:../media-utils",
"@wordpress/notices": "file:../notices",
+ "@wordpress/url": "file:../url",
"classnames": "^2.2.5",
"lodash": "^4.17.15",
"rememo": "^3.0.0"
diff --git a/packages/edit-navigation/src/components/delete-menu-button/index.js b/packages/edit-navigation/src/components/delete-menu-button/index.js
new file mode 100644
index 00000000000000..118b1cc972fd4e
--- /dev/null
+++ b/packages/edit-navigation/src/components/delete-menu-button/index.js
@@ -0,0 +1,40 @@
+/**
+ * WordPress dependencies
+ */
+import apiFetch from '@wordpress/api-fetch';
+import { Button } from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+
+export default function DeleteMenuButton( { menuId, onDelete } ) {
+ const deleteMenu = async ( recordId ) => {
+ const path = `/__experimental/menus/${ recordId }?force=true`;
+ const deletedRecord = await apiFetch( {
+ path,
+ method: 'DELETE',
+ } );
+ return deletedRecord.previous;
+ };
+
+ const askToDelete = async () => {
+ if (
+ // eslint-disable-next-line no-alert
+ window.confirm(
+ __( 'Are you sure you want to delete this navigation?' )
+ )
+ ) {
+ const deletedMenu = await deleteMenu( menuId );
+ onDelete( deletedMenu.id );
+ }
+ };
+
+ return (
+
+ { __( 'Delete navigation' ) }
+
+ );
+}
diff --git a/packages/edit-navigation/src/components/delete-menu-button/style.scss b/packages/edit-navigation/src/components/delete-menu-button/style.scss
new file mode 100644
index 00000000000000..5e314b1a727fc0
--- /dev/null
+++ b/packages/edit-navigation/src/components/delete-menu-button/style.scss
@@ -0,0 +1,7 @@
+.components-button.is-link.menu-editor-button__delete {
+ color: $alert-red;
+ &:hover {
+ background: transparent;
+ color: $alert-red;
+ }
+}
diff --git a/packages/edit-navigation/src/components/menu-editor/block-editor-panel.js b/packages/edit-navigation/src/components/menu-editor/block-editor-panel.js
index 3e1a2885b464d9..1706bff5ed20d1 100644
--- a/packages/edit-navigation/src/components/menu-editor/block-editor-panel.js
+++ b/packages/edit-navigation/src/components/menu-editor/block-editor-panel.js
@@ -17,7 +17,16 @@ import { Button, Panel, PanelBody, Popover } from '@wordpress/components';
import { useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
-export default function BlockEditorPanel( { saveBlocks } ) {
+/**
+ * Internal dependencies
+ */
+import DeleteMenuButton from '../delete-menu-button';
+
+export default function BlockEditorPanel( {
+ onDeleteMenu,
+ menuId,
+ saveBlocks,
+} ) {
const { isNavigationModeActive, hasSelectedBlock } = useSelect(
( select ) => {
const {
@@ -39,15 +48,13 @@ export default function BlockEditorPanel( { saveBlocks } ) {
);
return (
-
- { __( 'Save navigation' ) }
-
- }
- >
+
+
+
+ { __( 'Save navigation' ) }
+
+
+
+
+
);
diff --git a/packages/edit-navigation/src/components/menu-editor/index.js b/packages/edit-navigation/src/components/menu-editor/index.js
index 3e8297bdf54038..02bd6871e06a0e 100644
--- a/packages/edit-navigation/src/components/menu-editor/index.js
+++ b/packages/edit-navigation/src/components/menu-editor/index.js
@@ -15,7 +15,11 @@ import MenuEditorShortcuts from './shortcuts';
import BlockEditorPanel from './block-editor-panel';
import NavigationStructurePanel from './navigation-structure-panel';
-export default function MenuEditor( { menuId, blockEditorSettings } ) {
+export default function MenuEditor( {
+ menuId,
+ blockEditorSettings,
+ onDeleteMenu,
+} ) {
const [ blocks, setBlocks, saveBlocks ] = useNavigationBlocks( menuId );
const isLargeViewport = useViewportMatch( 'medium' );
@@ -40,7 +44,11 @@ export default function MenuEditor( { menuId, blockEditorSettings } ) {
blocks={ blocks }
initialOpen={ isLargeViewport }
/>
-
+
);
diff --git a/packages/edit-navigation/src/components/menu-editor/navigation-structure-panel.js b/packages/edit-navigation/src/components/menu-editor/navigation-structure-panel.js
index 147e894bcd95e1..3bf289440999fc 100644
--- a/packages/edit-navigation/src/components/menu-editor/navigation-structure-panel.js
+++ b/packages/edit-navigation/src/components/menu-editor/navigation-structure-panel.js
@@ -1,11 +1,18 @@
/**
* WordPress dependencies
*/
-import { __experimentalBlockNavigationList } from '@wordpress/block-editor';
+import { __experimentalBlockNavigationTree } from '@wordpress/block-editor';
import { Panel, PanelBody } from '@wordpress/components';
+import { useDispatch, useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
export default function NavigationStructurePanel( { blocks, initialOpen } ) {
+ const selectedBlockClientIds = useSelect(
+ ( select ) => select( 'core/block-editor' ).getSelectedBlockClientIds(),
+ []
+ );
+ const { selectBlock } = useDispatch( 'core/block-editor' );
+
return (
{ !! blocks.length && (
- <__experimentalBlockNavigationList
+ <__experimentalBlockNavigationTree
blocks={ blocks }
- selectedBlockClientId={ blocks[ 0 ].clientId }
- selectBlock={ () => {} }
+ selectedBlockClientId={ selectedBlockClientIds[ 0 ] }
+ selectBlock={ selectBlock }
+ __experimentalWithBlockNavigationSlots={ true }
showNestedBlocks
showAppender
+ showBlockMovers
/>
) }
diff --git a/packages/edit-navigation/src/components/menu-editor/style.scss b/packages/edit-navigation/src/components/menu-editor/style.scss
index aa7a3d98b33f55..00a230bd9e4f2c 100644
--- a/packages/edit-navigation/src/components/menu-editor/style.scss
+++ b/packages/edit-navigation/src/components/menu-editor/style.scss
@@ -19,6 +19,7 @@
border: 1px solid #e2e4e7;
// Borders around toolbar segments.
+ .components-toolbar-group,
.components-toolbar {
background: none;
// IE11 has thick paddings without this.
@@ -66,3 +67,20 @@
// Make panels collapsible in IE. The IE analogue of align-items: self-start;.
-ms-grid-row-align: start;
}
+
+.components-panel__header-actions {
+ margin-top: $grid-unit-20;
+ padding-bottom: $grid-unit-20;
+ margin-bottom: $grid-unit-60;
+ width: 100%;
+ text-align: right;
+ border-bottom: 1px solid $light-gray-300;
+}
+
+.components-panel__footer-actions {
+ margin-top: $grid-unit-60;
+ padding-top: $grid-unit-20;
+ width: 100%;
+ text-align: left;
+ border-top: 1px solid $light-gray-300;
+}
diff --git a/packages/edit-navigation/src/components/menu-editor/use-navigation-blocks.js b/packages/edit-navigation/src/components/menu-editor/use-navigation-blocks.js
index 3dc27c54a7644d..072a6e73f076e7 100644
--- a/packages/edit-navigation/src/components/menu-editor/use-navigation-blocks.js
+++ b/packages/edit-navigation/src/components/menu-editor/use-navigation-blocks.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import { isEqual, difference } from 'lodash';
+import { groupBy, isEqual, difference } from 'lodash';
/**
* WordPress dependencies
@@ -10,11 +10,15 @@ import { createBlock } from '@wordpress/blocks';
import { useSelect, useDispatch } from '@wordpress/data';
import { useState, useRef, useEffect } from '@wordpress/element';
-function createBlockFromMenuItem( menuItem ) {
- return createBlock( 'core/navigation-link', {
- label: menuItem.title.raw,
- url: menuItem.url,
- } );
+function createBlockFromMenuItem( menuItem, innerBlocks = [] ) {
+ return createBlock(
+ 'core/navigation-link',
+ {
+ label: menuItem.title.rendered,
+ url: menuItem.url,
+ },
+ innerBlocks
+ );
}
function createMenuItemAttributesFromBlock( block ) {
@@ -25,8 +29,10 @@ function createMenuItemAttributesFromBlock( block ) {
}
export default function useNavigationBlocks( menuId ) {
+ // menuItems is an array of menu item objects.
const menuItems = useSelect(
- ( select ) => select( 'core' ).getMenuItems( { menus: menuId } ),
+ ( select ) =>
+ select( 'core' ).getMenuItems( { menus: menuId, per_page: -1 } ),
[ menuId ]
);
@@ -41,46 +47,76 @@ export default function useNavigationBlocks( menuId ) {
return;
}
- menuItemsRef.current = {};
+ const itemsByParentID = groupBy( menuItems, 'parent' );
- const innerBlocks = [];
+ menuItemsRef.current = {};
- for ( const menuItem of menuItems ) {
- const block = createBlockFromMenuItem( menuItem );
- menuItemsRef.current[ block.clientId ] = menuItem;
- innerBlocks.push( block );
- }
+ const createMenuItemBlocks = ( items ) => {
+ const innerBlocks = [];
+ for ( const item of items ) {
+ let menuItemInnerBlocks = [];
+ if ( itemsByParentID[ item.id ]?.length ) {
+ menuItemInnerBlocks = createMenuItemBlocks(
+ itemsByParentID[ item.id ]
+ );
+ }
+ const block = createBlockFromMenuItem(
+ item,
+ menuItemInnerBlocks
+ );
+ menuItemsRef.current[ block.clientId ] = item;
+ innerBlocks.push( block );
+ }
+ return innerBlocks;
+ };
+ // createMenuItemBlocks takes an array of top-level menu items and recursively creates all their innerBlocks
+ const innerBlocks = createMenuItemBlocks( itemsByParentID[ 0 ] );
setBlocks( [ createBlock( 'core/navigation', {}, innerBlocks ) ] );
}, [ menuItems ] );
const saveBlocks = () => {
- const { innerBlocks } = blocks[ 0 ];
-
- for ( const block of innerBlocks ) {
- const menuItem = menuItemsRef.current[ block.clientId ];
-
- if ( ! menuItem ) {
- saveMenuItem( {
- ...createMenuItemAttributesFromBlock( block ),
- menus: menuId,
- } );
- continue;
+ const { clientId, innerBlocks } = blocks[ 0 ];
+ const parentItemId = menuItemsRef.current[ clientId ]?.parent;
+
+ const saveNestedBlocks = async ( nestedBlocks, parentId = 0 ) => {
+ for ( const block of nestedBlocks ) {
+ const menuItem = menuItemsRef.current[ block.clientId ];
+ let currentItemId = menuItem?.id || 0;
+
+ if ( ! menuItem ) {
+ const savedItem = await saveMenuItem( {
+ ...createMenuItemAttributesFromBlock( block ),
+ menus: menuId,
+ parent: parentId,
+ } );
+ if ( block.innerBlocks.length ) {
+ currentItemId = savedItem.id;
+ }
+ }
+
+ if (
+ menuItem &&
+ ! isEqual(
+ block.attributes,
+ createBlockFromMenuItem( menuItem ).attributes
+ )
+ ) {
+ saveMenuItem( {
+ ...menuItem,
+ ...createMenuItemAttributesFromBlock( block ),
+ menus: menuId, // Gotta do this because REST API doesn't like receiving an array here. Maybe a bug in the REST API?
+ parent: parentId,
+ } );
+ }
+
+ if ( block.innerBlocks.length ) {
+ saveNestedBlocks( block.innerBlocks, currentItemId );
+ }
}
+ };
- if (
- ! isEqual(
- block.attributes,
- createBlockFromMenuItem( menuItem ).attributes
- )
- ) {
- saveMenuItem( {
- ...menuItem,
- ...createMenuItemAttributesFromBlock( block ),
- menus: menuId, // Gotta do this because REST API doesn't like receiving an array here. Maybe a bug in the REST API?
- } );
- }
- }
+ saveNestedBlocks( innerBlocks, parentItemId );
const deletedClientIds = difference(
Object.keys( menuItemsRef.current ),
@@ -89,7 +125,7 @@ export default function useNavigationBlocks( menuId ) {
// Disable reason, this code will eventually be implemented.
// eslint-disable-next-line no-unused-vars
- for ( const clientId of deletedClientIds ) {
+ for ( const deletedClientId of deletedClientIds ) {
// TODO - delete menu items.
}
};
diff --git a/packages/edit-navigation/src/components/menu-locations-editor/index.js b/packages/edit-navigation/src/components/menu-locations-editor/index.js
index 4d69195006cc74..2af9ed23a77c70 100644
--- a/packages/edit-navigation/src/components/menu-locations-editor/index.js
+++ b/packages/edit-navigation/src/components/menu-locations-editor/index.js
@@ -1,3 +1,103 @@
+/**
+ * WordPress dependencies
+ */
+import { useSelect } from '@wordpress/data';
+import {
+ SelectControl,
+ Button,
+ Panel,
+ PanelBody,
+ Spinner,
+} from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import useMenuLocations from './use-menu-locations';
+
export default function MenuLocationsEditor() {
- return <>Menu locations editor>;
+ const menus = useSelect( ( select ) => select( 'core' ).getMenus() );
+
+ const [
+ menuLocations,
+ saveMenuLocations,
+ assignMenuToLocation,
+ ] = useMenuLocations();
+
+ if ( ! menus || ! menuLocations ) {
+ return ;
+ }
+
+ const menuSelectControlOptions = [
+ { value: 0, label: __( '— Select a Menu —' ) },
+ ...menus.map( ( { id, name } ) => ( {
+ value: id,
+ label: name,
+ } ) ),
+ ];
+
+ if ( menuLocations.length === 0 ) {
+ return (
+
+
+ { __( 'There are no available menu locations' ) }
+
+
+ );
+ }
+
+ if ( menus.length === 0 ) {
+ return (
+
+
+ { __( 'There are no available menus' ) }
+
+
+ );
+ }
+
+ return (
+
+
+ {
+ event.preventDefault();
+ saveMenuLocations();
+ } }
+ >
+
+
+
+ { __( 'Theme Location' ) }
+ { __( 'Assigned Menu' ) }
+
+
+
+ { menuLocations.map( ( location ) => (
+
+ { location.description }
+
+ {
+ assignMenuToLocation(
+ location.name,
+ parseInt( newMenuId )
+ );
+ } }
+ />
+
+
+ ) ) }
+
+
+
+ { __( 'Save' ) }
+
+
+
+
+ );
}
diff --git a/packages/edit-navigation/src/components/menu-locations-editor/use-menu-locations.js b/packages/edit-navigation/src/components/menu-locations-editor/use-menu-locations.js
new file mode 100644
index 00000000000000..16200984819d03
--- /dev/null
+++ b/packages/edit-navigation/src/components/menu-locations-editor/use-menu-locations.js
@@ -0,0 +1,120 @@
+/**
+ * External dependencies
+ */
+import {
+ includes,
+ map,
+ find,
+ findKey,
+ mapValues,
+ flatMap,
+ groupBy,
+} from 'lodash';
+/**
+ * WordPress dependencies
+ */
+import apiFetch from '@wordpress/api-fetch';
+import { useDispatch } from '@wordpress/data';
+import { useState, useEffect } from '@wordpress/element';
+
+export default function useMenuLocations() {
+ const { saveMenu } = useDispatch( 'core' );
+ const [ menuLocations, setMenuLocations ] = useState( null );
+ const [ emptyLocations, setEmptyLocations ] = useState( [] );
+
+ // a local state which maps menus to locations
+ // so that we can send one call per menu when
+ // updating locations, otherwise, without this local state
+ // we'd send one call per location
+ const [ menuLocationMap, setMenuLocationMap ] = useState( null );
+
+ const initMenuLocations = async () => {
+ const path = '/__experimental/menu-locations';
+ const apiLocations = await apiFetch( {
+ path,
+ method: 'GET',
+ } );
+ setMenuLocations( flatMap( apiLocations ) );
+ };
+
+ // we need to fetch the list of locations
+ // because the menu location entity
+ // caches their menu associations
+ useEffect( () => {
+ initMenuLocations();
+ }, [] );
+
+ // as soon as we have the menus we group
+ // all locations by the menuId they are assigned to
+ useEffect( () => {
+ if ( menuLocations ) {
+ const locationsByMenu = mapValues(
+ groupBy( menuLocations, 'menu' ),
+ ( locations ) => map( locations, 'name' )
+ );
+ setMenuLocationMap( locationsByMenu );
+ }
+ }, [ menuLocations ] );
+
+ const assignMenuToLocation = ( newLocation, newMenuId ) => {
+ newMenuId = parseInt( newMenuId );
+
+ // we need the old menu ID so that we can set empty locations
+ const oldMenuId = findKey( menuLocationMap, ( locations ) => {
+ return includes( locations, newLocation );
+ } );
+
+ // we save a list on menus that were unassigned from their location
+ // and the location is now empty because we need to send
+ // an update to the API for these menus with an empty location set
+ const newEmptyLocations = [ ...emptyLocations ];
+ if ( newMenuId === 0 ) {
+ if ( ! includes( newEmptyLocations, oldMenuId ) ) {
+ newEmptyLocations.push( oldMenuId );
+ }
+ } else if ( includes( newEmptyLocations, oldMenuId ) ) {
+ // if the menu is assigned to another location
+ // we remove it from this list because the API
+ // will unassign it from the past location
+ delete newEmptyLocations[ oldMenuId ];
+ }
+ setEmptyLocations( newEmptyLocations );
+
+ const updatedLocation = {
+ ...find( menuLocations, { name: newLocation } ),
+ };
+ updatedLocation.menu = newMenuId;
+
+ const updatedLocationKey = findKey( menuLocations, {
+ name: newLocation,
+ } );
+
+ const newMenuLocations = [ ...menuLocations ];
+ newMenuLocations[ updatedLocationKey ] = { ...updatedLocation };
+
+ setMenuLocations( newMenuLocations );
+ };
+
+ const saveMenuLocations = async () => {
+ // first call the API to empty the locations of unset menus
+ for ( const menuId of emptyLocations ) {
+ await saveMenu( {
+ id: menuId,
+ locations: [],
+ } );
+ }
+
+ // then save the new ones
+ for ( const menuId in menuLocationMap ) {
+ // sometimes menuId is 0 for unassigned locations
+ if ( menuId > 0 ) {
+ await saveMenu( {
+ id: menuId,
+ locations: menuLocationMap[ menuId ],
+ } );
+ }
+ }
+ };
+
+ return [ menuLocations, saveMenuLocations, assignMenuToLocation ];
+}
diff --git a/packages/edit-navigation/src/components/menus-editor/index.js b/packages/edit-navigation/src/components/menus-editor/index.js
index b3513b1115044b..ad5637f069100b 100644
--- a/packages/edit-navigation/src/components/menus-editor/index.js
+++ b/packages/edit-navigation/src/components/menus-editor/index.js
@@ -15,14 +15,16 @@ export default function MenusEditor( { blockEditorSettings } ) {
const menus = useSelect( ( select ) => select( 'core' ).getMenus() );
const [ menuId, setMenuId ] = useState( 0 );
+ const [ stateMenus, setStateMenus ] = useState( null );
useEffect( () => {
if ( menus?.length ) {
+ setStateMenus( menus );
setMenuId( menus[ 0 ].id );
}
}, [ menus ] );
- if ( ! menus ) {
+ if ( ! stateMenus ) {
return ;
}
@@ -33,7 +35,7 @@ export default function MenusEditor( { blockEditorSettings } ) {
( {
+ options={ stateMenus.map( ( menu ) => ( {
value: menu.id,
label: menu.name,
} ) ) }
@@ -47,6 +49,15 @@ export default function MenusEditor( { blockEditorSettings } ) {
{
+ const newStateMenus = stateMenus.filter( ( menu ) => {
+ return menu.id !== deletedMenu;
+ } );
+ setStateMenus( newStateMenus );
+ if ( newStateMenus.length ) {
+ setMenuId( newStateMenus[ 0 ].id );
+ }
+ } }
/>
) }
>
diff --git a/packages/edit-navigation/src/index.js b/packages/edit-navigation/src/index.js
index 4d3b0005c00672..3c6a8f6aa2baec 100644
--- a/packages/edit-navigation/src/index.js
+++ b/packages/edit-navigation/src/index.js
@@ -1,3 +1,8 @@
+/**
+ * External dependencies
+ */
+import { map } from 'lodash';
+
/**
* WordPress dependencies
*/
@@ -6,17 +11,51 @@ import {
__experimentalRegisterExperimentalCoreBlocks,
} from '@wordpress/block-library';
import { render } from '@wordpress/element';
+import { __ } from '@wordpress/i18n';
+import apiFetch from '@wordpress/api-fetch';
+import { addQueryArgs } from '@wordpress/url';
+import { decodeEntities } from '@wordpress/html-entities';
/**
* Internal dependencies
*/
import Layout from './components/layout';
+/**
+ * Fetches link suggestions from the API. This function is an exact copy of a function found at:
+ *
+ * wordpress/editor/src/components/provider/index.js
+ *
+ * It seems like there is no suitable package to import this from. Ideally it would be either part of core-data.
+ * Until we refactor it, just copying the code is the simplest solution.
+ *
+ * @param {Object} search
+ * @param {number} perPage
+ * @return {Promise} List of suggestions
+ */
+const fetchLinkSuggestions = async ( search, { perPage = 20 } = {} ) => {
+ const posts = await apiFetch( {
+ path: addQueryArgs( '/wp/v2/search', {
+ search,
+ per_page: perPage,
+ type: 'post',
+ } ),
+ } );
+
+ return map( posts, ( post ) => ( {
+ id: post.id,
+ url: post.url,
+ title: decodeEntities( post.title ) || __( '(no title)' ),
+ type: post.subtype || post.type,
+ } ) );
+};
+
export function initialize( id, settings ) {
registerCoreBlocks();
if ( process.env.GUTENBERG_PHASE === 2 ) {
__experimentalRegisterExperimentalCoreBlocks( settings );
}
+ settings.__experimentalFetchLinkSuggestions = fetchLinkSuggestions;
render(
,
document.getElementById( id )
diff --git a/packages/edit-navigation/src/style.scss b/packages/edit-navigation/src/style.scss
index 1e907633b0724f..9e999764f9f9c1 100644
--- a/packages/edit-navigation/src/style.scss
+++ b/packages/edit-navigation/src/style.scss
@@ -1,3 +1,4 @@
@import "./components/layout/style.scss";
@import "./components/menu-editor/style.scss";
@import "./components/menus-editor/style.scss";
+@import "./components/delete-menu-button/style.scss";
diff --git a/packages/edit-post/CHANGELOG.md b/packages/edit-post/CHANGELOG.md
index 5d0746bb0b280d..ecaf3ac136153e 100644
--- a/packages/edit-post/CHANGELOG.md
+++ b/packages/edit-post/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 3.13.0 (2020-02-10)
diff --git a/packages/edit-post/README.md b/packages/edit-post/README.md
index 5a1908b8cc05a9..e0479bf8556b83 100644
--- a/packages/edit-post/README.md
+++ b/packages/edit-post/README.md
@@ -81,9 +81,9 @@ const doOnClick = ( ) => {
const MyPluginBlockSettingsMenuItem = () => (
);
```
diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json
index 153c5b771ef17b..f3d21613a6f71d 100644
--- a/packages/edit-post/package.json
+++ b/packages/edit-post/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-post",
- "version": "3.15.1",
+ "version": "3.16.0",
"description": "Edit Post module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/edit-post/src/components/block-settings-menu/plugin-block-settings-menu-item.js b/packages/edit-post/src/components/block-settings-menu/plugin-block-settings-menu-item.js
index f87ddf23923e06..8d3ebbc3ef6fdc 100644
--- a/packages/edit-post/src/components/block-settings-menu/plugin-block-settings-menu-item.js
+++ b/packages/edit-post/src/components/block-settings-menu/plugin-block-settings-menu-item.js
@@ -75,9 +75,9 @@ const shouldRenderItem = ( selectedBlocks, allowedBlocks ) =>
*
* const MyPluginBlockSettingsMenuItem = () => (
*
* );
* ```
diff --git a/packages/edit-post/src/components/device-preview/index.js b/packages/edit-post/src/components/device-preview/index.js
new file mode 100644
index 00000000000000..bc482905e7336d
--- /dev/null
+++ b/packages/edit-post/src/components/device-preview/index.js
@@ -0,0 +1,58 @@
+/**
+ * WordPress dependencies
+ */
+import { Icon, MenuGroup } from '@wordpress/components';
+import { PostPreviewButton } from '@wordpress/editor';
+import { external } from '@wordpress/icons';
+import { __ } from '@wordpress/i18n';
+import { __experimentalPreviewOptions as PreviewOptions } from '@wordpress/block-editor';
+import { useDispatch, useSelect } from '@wordpress/data';
+
+export default function DevicePreview() {
+ const {
+ hasActiveMetaboxes,
+ isPostSaveable,
+ isSaving,
+ deviceType,
+ } = useSelect(
+ ( select ) => ( {
+ hasActiveMetaboxes: select( 'core/edit-post' ).hasMetaBoxes(),
+ isSaving: select( 'core/edit-post' ).isSavingMetaBoxes(),
+ isPostSaveable: select( 'core/editor' ).isEditedPostSaveable(),
+ deviceType: select(
+ 'core/edit-post'
+ ).__experimentalGetPreviewDeviceType(),
+ } ),
+ []
+ );
+ const {
+ __experimentalSetPreviewDeviceType: setPreviewDeviceType,
+ } = useDispatch( 'core/edit-post' );
+
+ return (
+
+
+
+
+
+ { __( 'Preview in new tab' ) }
+ >
+ }
+ />
+
+
+
+ );
+}
diff --git a/packages/edit-post/src/components/header/header-toolbar/index.native.js b/packages/edit-post/src/components/header/header-toolbar/index.native.js
index 08c49b0c0d63ac..39fa0544fe4a22 100644
--- a/packages/edit-post/src/components/header/header-toolbar/index.native.js
+++ b/packages/edit-post/src/components/header/header-toolbar/index.native.js
@@ -33,12 +33,41 @@ function HeaderToolbar( {
showKeyboardHideButton,
getStylesFromColorScheme,
onHideKeyboard,
+ isRTL,
} ) {
const scrollViewRef = useRef( null );
const scrollToStart = () => {
scrollViewRef.current.scrollTo( { x: 0 } );
};
+ const renderHistoryButtons = () => {
+ const buttons = [
+ /* TODO: replace with EditorHistoryRedo and EditorHistoryUndo */
+ ,
+ ,
+ ];
+
+ return isRTL ? buttons.reverse() : buttons;
+ };
+
return (
- { /* TODO: replace with EditorHistoryRedo and EditorHistoryUndo */ }
-
-
+ { renderHistoryButtons() }
{ showKeyboardHideButton && (
@@ -103,6 +114,7 @@ export default compose( [
select( 'core/editor' ).getEditorSettings().richEditingEnabled,
isTextModeEnabled:
select( 'core/edit-post' ).getEditorMode() === 'text',
+ isRTL: select( 'core/block-editor' ).getSettings().isRTL,
} ) ),
withDispatch( ( dispatch ) => {
const { clearSelectedBlock } = dispatch( 'core/block-editor' );
diff --git a/packages/edit-post/src/components/header/header-toolbar/style.scss b/packages/edit-post/src/components/header/header-toolbar/style.scss
index ba3e478348f865..e2c9241c4dec33 100644
--- a/packages/edit-post/src/components/header/header-toolbar/style.scss
+++ b/packages/edit-post/src/components/header/header-toolbar/style.scss
@@ -39,6 +39,7 @@
display: none;
}
+ .block-editor-block-toolbar .components-toolbar-group,
.block-editor-block-toolbar .components-toolbar {
border-top: none;
border-bottom: none;
@@ -72,6 +73,7 @@
border-left: $border-width solid $light-gray-500;
}
+ .block-editor-block-toolbar .components-toolbar-group,
.block-editor-block-toolbar .components-toolbar {
$top-toolbar-padding: ($header-height - $grid-unit-60) / 2;
height: $header-height;
@@ -80,6 +82,11 @@
}
}
-.edit-post-header-toolbar__inserter-toggle {
+.edit-post-header-toolbar .edit-post-header-toolbar__inserter-toggle {
margin-right: $grid-unit-10;
+ // Special dimensions for this button.
+ min-width: 32px;
+ width: 32px;
+ height: 32px;
+ padding: 0;
}
diff --git a/packages/edit-post/src/components/header/index.js b/packages/edit-post/src/components/header/index.js
index c356909e9684fe..127fad3a25dc70 100644
--- a/packages/edit-post/src/components/header/index.js
+++ b/packages/edit-post/src/components/header/index.js
@@ -3,7 +3,7 @@
*/
import { __ } from '@wordpress/i18n';
import { Button } from '@wordpress/components';
-import { PostPreviewButton, PostSavedState } from '@wordpress/editor';
+import { PostSavedState, PostPreviewButton } from '@wordpress/editor';
import { useSelect, useDispatch } from '@wordpress/data';
import { cog } from '@wordpress/icons';
import { PinnedItems } from '@wordpress/interface';
@@ -15,9 +15,13 @@ import FullscreenModeClose from './fullscreen-mode-close';
import HeaderToolbar from './header-toolbar';
import MoreMenu from './more-menu';
import PostPublishButtonOrToggle from './post-publish-button-or-toggle';
-import PreviewOptions from '../preview-options';
+import { default as DevicePreview } from '../device-preview';
-function Header( { onToggleInserter, isInserterOpen } ) {
+function Header( {
+ onToggleInserter,
+ isInserterOpen,
+ setEntitiesSavedStatesCallback,
+} ) {
const {
shortcut,
hasActiveMetaboxes,
@@ -40,6 +44,10 @@ function Header( { onToggleInserter, isInserterOpen } ) {
isSaving: select( 'core/edit-post' ).isSavingMetaBoxes(),
getBlockSelectionStart: select( 'core/block-editor' )
.getBlockSelectionStart,
+ isPostSaveable: select( 'core/editor' ).isEditedPostSaveable(),
+ deviceType: select(
+ 'core/edit-post'
+ ).__experimentalGetPreviewDeviceType(),
} ),
[]
);
@@ -77,10 +85,7 @@ function Header( { onToggleInserter, isInserterOpen } ) {
forceIsSaving={ isSaving }
/>
) }
-
+
);
}
diff --git a/packages/edit-post/src/components/header/style.scss b/packages/edit-post/src/components/header/style.scss
index 25b693ecb0bc81..f92b714b0df285 100644
--- a/packages/edit-post/src/components/header/style.scss
+++ b/packages/edit-post/src/components/header/style.scss
@@ -70,7 +70,7 @@
.editor-post-saved-state,
.components-button.editor-post-switch-to-draft,
.components-button.editor-post-preview,
- .components-button.editor-post-preview__dropdown,
+ .components-button.block-editor-post-preview__dropdown,
.components-button.editor-post-publish-button,
.components-button.editor-post-publish-panel__toggle {
padding: 0 6px;
@@ -82,3 +82,28 @@
}
}
}
+
+.edit-post-header-preview__grouping-external {
+ display: flex;
+ position: relative;
+ padding-bottom: 0;
+}
+
+.edit-post-header-preview__button-external {
+ padding-left: $grid-unit-10;
+
+ margin-right: auto;
+ width: 100%;
+ display: flex;
+ justify-content: flex-start;
+
+ svg {
+ margin-right: $grid-unit-10;
+ }
+}
+
+.edit-post-post-preview-dropdown {
+ .components-popover__content {
+ padding-bottom: 0;
+ }
+}
diff --git a/packages/edit-post/src/components/layout/actions-panel.js b/packages/edit-post/src/components/layout/actions-panel.js
new file mode 100644
index 00000000000000..5ac15a9c253c91
--- /dev/null
+++ b/packages/edit-post/src/components/layout/actions-panel.js
@@ -0,0 +1,98 @@
+/**
+ * WordPress dependencies
+ */
+import { EntitiesSavedStates, PostPublishPanel } from '@wordpress/editor';
+import { useSelect, useDispatch } from '@wordpress/data';
+import { Button } from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+import { useCallback } from '@wordpress/element';
+/**
+ * Internal dependencies
+ */
+import PluginPostPublishPanel from '../sidebar/plugin-post-publish-panel';
+import PluginPrePublishPanel from '../sidebar/plugin-pre-publish-panel';
+
+export default function ActionsPanel( {
+ setEntitiesSavedStatesCallback,
+ closeEntitiesSavedStates,
+ isEntitiesSavedStatesOpen,
+} ) {
+ const { closePublishSidebar, togglePublishSidebar } = useDispatch(
+ 'core/edit-post'
+ );
+ const {
+ publishSidebarOpened,
+ hasActiveMetaboxes,
+ isSavingMetaBoxes,
+ hasNonPostEntityChanges,
+ } = useSelect( ( select ) => {
+ return {
+ publishSidebarOpened: select(
+ 'core/edit-post'
+ ).isPublishSidebarOpened(),
+ hasActiveMetaboxes: select( 'core/edit-post' ).hasMetaBoxes(),
+ isSavingMetaBoxes: select( 'core/edit-post' ).isSavingMetaBoxes(),
+ hasNonPostEntityChanges: select(
+ 'core/editor'
+ ).hasNonPostEntityChanges(),
+ };
+ }, [] );
+
+ const openEntitiesSavedStates = useCallback(
+ () => setEntitiesSavedStatesCallback( true ),
+ []
+ );
+
+ // It is ok for these components to be unmounted when not in visual use.
+ // We don't want more than one present at a time, decide which to render.
+ let unmountableContent;
+ if ( publishSidebarOpened ) {
+ unmountableContent = (
+
+ );
+ } else if ( hasNonPostEntityChanges ) {
+ unmountableContent = (
+
+
+ { __( 'Open save panel' ) }
+
+
+ );
+ } else {
+ unmountableContent = (
+
+
+ { __( 'Open publish panel' ) }
+
+
+ );
+ }
+
+ // Since EntitiesSavedStates controls its own panel, we can keep it
+ // always mounted to retain its own component state (such as checkboxes).
+ return (
+ <>
+
+ { ! isEntitiesSavedStatesOpen && unmountableContent }
+ >
+ );
+}
diff --git a/packages/edit-post/src/components/layout/index.js b/packages/edit-post/src/components/layout/index.js
index c25ace812ff87c..e48945c56734cf 100644
--- a/packages/edit-post/src/components/layout/index.js
+++ b/packages/edit-post/src/components/layout/index.js
@@ -11,7 +11,6 @@ import {
LocalAutosaveMonitor,
UnsavedChangesWarning,
EditorNotices,
- PostPublishPanel,
EditorKeyboardShortcutsRegister,
} from '@wordpress/editor';
import { useSelect, useDispatch } from '@wordpress/data';
@@ -33,7 +32,7 @@ import {
FullscreenMode,
InterfaceSkeleton,
} from '@wordpress/interface';
-import { useState, useEffect } from '@wordpress/element';
+import { useState, useEffect, useCallback } from '@wordpress/element';
import { close } from '@wordpress/icons';
/**
@@ -49,9 +48,8 @@ import BrowserURL from '../browser-url';
import Header from '../header';
import SettingsSidebar from '../sidebar/settings-sidebar';
import MetaBoxes from '../meta-boxes';
-import PluginPostPublishPanel from '../sidebar/plugin-post-publish-panel';
-import PluginPrePublishPanel from '../sidebar/plugin-pre-publish-panel';
import WelcomeGuide from '../welcome-guide';
+import ActionsPanel from './actions-panel';
const interfaceLabels = {
leftSidebar: __( 'Block Library' ),
@@ -61,12 +59,9 @@ function Layout() {
const [ isInserterOpen, setIsInserterOpen ] = useState( false );
const isMobileViewport = useViewportMatch( 'medium', '<' );
const isHugeViewport = useViewportMatch( 'huge', '>=' );
- const {
- closePublishSidebar,
- openGeneralSidebar,
- closeGeneralSidebar,
- togglePublishSidebar,
- } = useDispatch( 'core/edit-post' );
+ const { openGeneralSidebar, closeGeneralSidebar } = useDispatch(
+ 'core/edit-post'
+ );
const {
mode,
isFullscreenActive,
@@ -75,7 +70,6 @@ function Layout() {
pluginSidebarOpened,
publishSidebarOpened,
hasActiveMetaboxes,
- isSaving,
hasFixedToolbar,
previousShortcut,
nextShortcut,
@@ -101,7 +95,6 @@ function Layout() {
isRichEditingEnabled: select( 'core/editor' ).getEditorSettings()
.richEditingEnabled,
hasActiveMetaboxes: select( 'core/edit-post' ).hasMetaBoxes(),
- isSaving: select( 'core/edit-post' ).isSavingMetaBoxes(),
previousShortcut: select(
'core/keyboard-shortcuts'
).getAllShortcutRawKeyCombinations(
@@ -136,6 +129,22 @@ function Layout() {
}
}, [ isInserterOpen, isHugeViewport ] );
+ // Local state for save panel.
+ // Note 'thruthy' callback implies an open panel.
+ const [
+ entitiesSavedStatesCallback,
+ setEntitiesSavedStatesCallback,
+ ] = useState( false );
+ const closeEntitiesSavedStates = useCallback(
+ ( arg ) => {
+ if ( typeof entitiesSavedStatesCallback === 'function' ) {
+ entitiesSavedStatesCallback( arg );
+ }
+ setEntitiesSavedStatesCallback( false );
+ },
+ [ entitiesSavedStatesCallback ]
+ );
+
return (
<>
@@ -155,6 +164,9 @@ function Layout() {
onToggleInserter={ () =>
setIsInserterOpen( ! isInserterOpen )
}
+ setEntitiesSavedStatesCallback={
+ setEntitiesSavedStatesCallback
+ }
/>
}
leftSidebar={
@@ -234,30 +246,17 @@ function Layout() {
)
}
actions={
- publishSidebarOpened ? (
-
- ) : (
-
-
- { __( 'Open publish panel' ) }
-
-
- )
+
}
shortcuts={ {
previous: previousShortcut,
diff --git a/packages/edit-post/src/components/layout/style.scss b/packages/edit-post/src/components/layout/style.scss
index 340284a8613b15..65c1b49625ea19 100644
--- a/packages/edit-post/src/components/layout/style.scss
+++ b/packages/edit-post/src/components/layout/style.scss
@@ -31,7 +31,7 @@
overflow: auto;
@include break-medium() {
- z-index: z-index(".edit-post-layout .edit-post-post-publish-panel-break-medium");
+ z-index: z-index(".edit-post-layout .edit-post-post-publish-panel {greater than small}");
top: $admin-bar-height;
left: auto;
width: $sidebar-width;
@@ -67,7 +67,8 @@
.edit-post-layout__toggle-publish-panel,
-.edit-post-layout__toogle-sidebar-panel {
+.edit-post-layout__toogle-sidebar-panel,
+.edit-post-layout__toggle-entities-saved-states-panel {
z-index: z-index(".edit-post-layout__toogle-sidebar-panel");
position: fixed !important; // Need to override the default relative positionning
top: -9999em;
diff --git a/packages/edit-post/src/components/preview-options/index.js b/packages/edit-post/src/components/preview-options/index.js
deleted file mode 100644
index a92bbbdad2b5f3..00000000000000
--- a/packages/edit-post/src/components/preview-options/index.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * External dependencies
- */
-import { get } from 'lodash';
-
-/**
- * WordPress dependencies
- */
-import {
- Button,
- Dropdown,
- Icon,
- MenuGroup,
- MenuItem,
- Path,
- SVG,
-} from '@wordpress/components';
-import { useSelect, useDispatch } from '@wordpress/data';
-import { PostPreviewButton } from '@wordpress/editor';
-import { __ } from '@wordpress/i18n';
-import { external, check } from '@wordpress/icons';
-
-const downArrow = (
-
-
-
-);
-
-export default function PreviewOptions( {
- forceIsAutosaveable,
- forcePreviewLink,
-} ) {
- const {
- __experimentalSetPreviewDeviceType: setPreviewDeviceType,
- } = useDispatch( 'core/edit-post' );
-
- const deviceType = useSelect( ( select ) => {
- return select( 'core/edit-post' ).__experimentalGetPreviewDeviceType();
- }, [] );
-
- const isSaveable = useSelect( ( select ) => {
- return select( 'core/editor' ).isEditedPostSaveable();
- }, [] );
-
- const isViewable = useSelect( ( select ) => {
- const { getEditedPostAttribute } = select( 'core/editor' );
- const { getPostType } = select( 'core' );
- const postType = getPostType( getEditedPostAttribute( 'type' ) );
- return get( postType, [ 'viewable' ], false );
- }, [] );
-
- return (
- (
-
- { __( 'Preview' ) }
- { downArrow }
-
- ) }
- renderContent={ () => (
- <>
-
- setPreviewDeviceType( 'Desktop' ) }
- icon={ deviceType === 'Desktop' && check }
- >
- { __( 'Desktop' ) }
-
- setPreviewDeviceType( 'Tablet' ) }
- icon={ deviceType === 'Tablet' && check }
- >
- { __( 'Tablet' ) }
-
- setPreviewDeviceType( 'Mobile' ) }
- icon={ deviceType === 'Mobile' && check }
- >
- { __( 'Mobile' ) }
-
-
- { isViewable && (
-
-
-
-
- { __( 'Preview in new tab' ) }
- >
- }
- />
-
-
- ) }
- >
- ) }
- />
- );
-}
diff --git a/packages/edit-post/src/components/visual-editor/index.js b/packages/edit-post/src/components/visual-editor/index.js
index 9929a6699674f3..026acf6654bb51 100644
--- a/packages/edit-post/src/components/visual-editor/index.js
+++ b/packages/edit-post/src/components/visual-editor/index.js
@@ -14,6 +14,7 @@ import {
BlockSelectionClearer,
MultiSelectScrollIntoView,
__experimentalBlockSettingsMenuFirstItem,
+ __experimentalUseResizeCanvas as useResizeCanvas,
} from '@wordpress/block-editor';
import { Popover } from '@wordpress/components';
@@ -21,10 +22,14 @@ import { Popover } from '@wordpress/components';
* Internal dependencies
*/
import BlockInspectorButton from './block-inspector-button';
-import { useResizeCanvas } from '../resize-canvas';
+import { useSelect } from '@wordpress/data';
function VisualEditor() {
- const inlineStyles = useResizeCanvas();
+ const deviceType = useSelect( ( select ) => {
+ return select( 'core/edit-post' ).__experimentalGetPreviewDeviceType();
+ }, [] );
+
+ const inlineStyles = useResizeCanvas( deviceType );
return (
-
-
-
-
+
+
diff --git a/packages/edit-post/src/editor.native.js b/packages/edit-post/src/editor.native.js
index 4b859aab11aaee..d58cc61e3e62ea 100644
--- a/packages/edit-post/src/editor.native.js
+++ b/packages/edit-post/src/editor.native.js
@@ -3,6 +3,7 @@
*/
import memize from 'memize';
import { size, map, without } from 'lodash';
+import { I18nManager } from 'react-native';
/**
* WordPress dependencies
@@ -45,6 +46,7 @@ class Editor extends Component {
) {
settings = {
...settings,
+ isRTL: I18nManager.isRTL,
hasFixedToolbar,
focusMode,
};
diff --git a/packages/edit-post/src/store/actions.js b/packages/edit-post/src/store/actions.js
index 33140b34f7d09d..b76b017a85e129 100644
--- a/packages/edit-post/src/store/actions.js
+++ b/packages/edit-post/src/store/actions.js
@@ -273,8 +273,6 @@ export function metaBoxUpdatesSuccess() {
/**
* Returns an action object used to toggle the width of the editing canvas.
- * It's marked as experimental because, potentially, we'll need this
- * in several pages including edit-site.
*
* @param {string} deviceType
*
diff --git a/packages/edit-post/src/store/selectors.js b/packages/edit-post/src/store/selectors.js
index fd99d43279462c..8b95f0a048b250 100644
--- a/packages/edit-post/src/store/selectors.js
+++ b/packages/edit-post/src/store/selectors.js
@@ -305,8 +305,6 @@ export function isSavingMetaBoxes( state ) {
/**
* Returns the current editing canvas device type.
- * It's marked as experimental because, potentially, we'll need this
- * in several pages including edit-site.
*
* @param {Object} state Global application state.
*
diff --git a/packages/edit-post/src/style.scss b/packages/edit-post/src/style.scss
index 4e6fea9f88bee4..92eb32bd0ffca9 100644
--- a/packages/edit-post/src/style.scss
+++ b/packages/edit-post/src/style.scss
@@ -10,7 +10,6 @@ $footer-height: $button-size-small;
@import "./components/layout/style.scss";
@import "./components/manage-blocks-modal/style.scss";
@import "./components/meta-boxes/meta-boxes-area/style.scss";
-@import "./components/preview-options/style.scss";
@import "./components/sidebar/style.scss";
@import "./components/sidebar/last-revision/style.scss";
@import "./components/sidebar/post-author/style.scss";
@@ -103,13 +102,11 @@ body.block-editor-page {
.wp-block {
max-width: $content-width;
- &[data-align="wide"],
- &.alignwide {
+ &[data-align="wide"] {
max-width: 1100px;
}
- &[data-align="full"],
- &.alignfull {
+ &[data-align="full"] {
max-width: none;
}
}
diff --git a/packages/edit-site/CHANGELOG.md b/packages/edit-site/CHANGELOG.md
index cf94860101a02a..697bfb777f41b0 100644
--- a/packages/edit-site/CHANGELOG.md
+++ b/packages/edit-site/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.0.0 (2020-01-13)
### New Feature
diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json
index bc80f6a174cd24..a4f0bd6814714e 100644
--- a/packages/edit-site/package.json
+++ b/packages/edit-site/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-site",
- "version": "1.5.1",
+ "version": "1.6.0",
"description": "Edit Site Page module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -34,6 +34,8 @@
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/interface": "file:../interface",
+ "@wordpress/keyboard-shortcuts": "file:../keyboard-shortcuts",
+ "@wordpress/keycodes": "file:../keycodes",
"@wordpress/media-utils": "file:../media-utils",
"@wordpress/notices": "file:../notices",
"@wordpress/plugins": "file:../plugins",
diff --git a/packages/edit-site/src/components/block-editor/style.scss b/packages/edit-site/src/components/block-editor/style.scss
index a1872f964f952d..d386841765cb3b 100644
--- a/packages/edit-site/src/components/block-editor/style.scss
+++ b/packages/edit-site/src/components/block-editor/style.scss
@@ -6,8 +6,7 @@
padding-right: $block-padding;
// Full-wide. (to account for the padddings added above)
- .block-editor-block-list__block[data-align="full"],
- .block-editor-block-list__block.alignfull {
+ .wp-block[data-align="full"] {
margin-left: -$block-padding;
margin-right: -$block-padding;
}
diff --git a/packages/edit-site/src/components/editor/index.js b/packages/edit-site/src/components/editor/index.js
index 66640b22f41e6f..d4665a58dff2cd 100644
--- a/packages/edit-site/src/components/editor/index.js
+++ b/packages/edit-site/src/components/editor/index.js
@@ -6,6 +6,7 @@ import {
useContext,
useState,
useMemo,
+ useCallback,
} from '@wordpress/element';
import { useSelect } from '@wordpress/data';
import {
@@ -13,14 +14,20 @@ import {
DropZoneProvider,
Popover,
FocusReturnProvider,
+ Button,
} from '@wordpress/components';
import { EntityProvider } from '@wordpress/core-data';
import {
+ BlockSelectionClearer,
BlockBreadcrumb,
__unstableEditorStyles as EditorStyles,
+ __experimentalUseResizeCanvas as useResizeCanvas,
} from '@wordpress/block-editor';
import { useViewportMatch } from '@wordpress/compose';
import { FullscreenMode, InterfaceSkeleton } from '@wordpress/interface';
+import { EntitiesSavedStates } from '@wordpress/editor';
+import { __ } from '@wordpress/i18n';
+import { PluginArea } from '@wordpress/plugins';
/**
* Internal dependencies
@@ -29,6 +36,7 @@ import Notices from '../notices';
import Header from '../header';
import Sidebar from '../sidebar';
import BlockEditor from '../block-editor';
+import KeyboardShortcuts from '../keyboard-shortcuts';
const Context = createContext();
export function useEditorContext() {
@@ -47,6 +55,7 @@ function Editor( { settings: _settings } ) {
),
[ settings.templateType, settings.templateId ]
);
+
const context = useMemo( () => ( { settings, setSettings } ), [
settings,
setSettings,
@@ -60,6 +69,25 @@ function Editor( { settings: _settings } ) {
};
}, [] );
+ const deviceType = useSelect( ( select ) => {
+ return select( 'core/edit-site' ).__experimentalGetPreviewDeviceType();
+ }, [] );
+
+ const inlineStyles = useResizeCanvas( deviceType );
+
+ const [
+ isEntitiesSavedStatesOpen,
+ setIsEntitiesSavedStatesOpen,
+ ] = useState( false );
+ const openEntitiesSavedStates = useCallback(
+ () => setIsEntitiesSavedStatesOpen( true ),
+ []
+ );
+ const closeEntitiesSavedStates = useCallback(
+ () => setIsEntitiesSavedStatesOpen( false ),
+ []
+ );
+
return template ? (
<>
@@ -74,19 +102,61 @@ function Editor( { settings: _settings } ) {
>
+
}
- header={ }
+ header={
+
+ }
content={
- <>
+
+
+
+ }
+ actions={
+ <>
+
+ { ! isEntitiesSavedStatesOpen && (
+
+
+ { __(
+ 'Open save panel'
+ ) }
+
+
+ ) }
>
}
footer={ }
/>
+
diff --git a/packages/edit-site/src/components/editor/style.scss b/packages/edit-site/src/components/editor/style.scss
new file mode 100644
index 00000000000000..297f13138a75c6
--- /dev/null
+++ b/packages/edit-site/src/components/editor/style.scss
@@ -0,0 +1,27 @@
+.edit-site-editor__toggle-save-panel {
+ z-index: z-index(".edit-site-editor__toggle-save-panel");
+ position: fixed !important; // Need to override the default relative positioning
+ top: -9999em;
+ bottom: auto;
+ left: auto;
+ right: 0;
+ width: $sidebar-width;
+ background-color: $white;
+ border: 1px dotted $light-gray-500;
+ height: auto !important; // Need to override the default sidebar positioning
+ padding: $grid-unit-30;
+ display: flex;
+ justify-content: center;
+
+ .interface-interface-skeleton__actions:focus &,
+ .interface-interface-skeleton__actions:focus-within &,
+ .interface-interface-skeleton__actions:focus &,
+ .interface-interface-skeleton__actions:focus-within & {
+ top: auto;
+ bottom: 0;
+ }
+}
+
+.edit-site-visual-editor {
+ background-color: $white;
+}
diff --git a/packages/edit-site/src/components/header/fullscreen-mode-close/index.js b/packages/edit-site/src/components/header/fullscreen-mode-close/index.js
index e5a14f30af66b0..a56364ed5aa6c6 100644
--- a/packages/edit-site/src/components/header/fullscreen-mode-close/index.js
+++ b/packages/edit-site/src/components/header/fullscreen-mode-close/index.js
@@ -3,16 +3,10 @@
*/
import { useSelect } from '@wordpress/data';
import { Button } from '@wordpress/components';
-import { Path, SVG } from '@wordpress/primitives';
import { __ } from '@wordpress/i18n';
+import { wordpress } from '@wordpress/icons';
-const wordPressLogo = (
-
-
-
-);
-
-function FullscreenModeClose() {
+function FullscreenModeClose( { icon } ) {
const isActive = useSelect( ( select ) => {
return select( 'core/edit-site' ).isFeatureActive( 'fullscreenMode' );
}, [] );
@@ -21,10 +15,12 @@ function FullscreenModeClose() {
return null;
}
+ const buttonIcon = icon || wordpress;
+
return (
@@ -49,19 +53,32 @@ export default function Header() {
} ) ),
[]
);
+
+ const deviceType = useSelect( ( select ) => {
+ return select( 'core/edit-site' ).__experimentalGetPreviewDeviceType();
+ }, [] );
+
+ const {
+ __experimentalSetPreviewDeviceType: setPreviewDeviceType,
+ } = useDispatch( 'core/edit-site' );
+
return (
-
+
+
+
+
-
diff --git a/packages/edit-site/src/components/header/main-dashboard-button/index.js b/packages/edit-site/src/components/header/main-dashboard-button/index.js
new file mode 100644
index 00000000000000..1e7c11d9ad8d5d
--- /dev/null
+++ b/packages/edit-site/src/components/header/main-dashboard-button/index.js
@@ -0,0 +1,33 @@
+/**
+ * WordPress dependencies
+ */
+import {
+ __experimentalUseSlot as useSlot,
+ createSlotFill,
+} from '@wordpress/components';
+
+/**
+ * Internal dependencies
+ */
+import FullscreenModeClose from '../fullscreen-mode-close';
+
+const name = '__experimentalSiteEditorMainDashboardButton';
+
+const { Fill, Slot } = createSlotFill( name );
+
+const MainDashboardButton = Fill;
+MainDashboardButton.Slot = Slot;
+MainDashboardButton.slotName = name;
+
+export const CloseButton = () => {
+ const slot = useSlot( MainDashboardButton.slotName );
+ const hasFills = Boolean( slot.fills && slot.fills.length );
+
+ if ( ! hasFills ) {
+ return
;
+ }
+
+ return
;
+};
+
+export default MainDashboardButton;
diff --git a/packages/edit-site/src/components/header/undo-redo/redo.js b/packages/edit-site/src/components/header/undo-redo/redo.js
new file mode 100644
index 00000000000000..3662c568106b89
--- /dev/null
+++ b/packages/edit-site/src/components/header/undo-redo/redo.js
@@ -0,0 +1,25 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Button } from '@wordpress/components';
+import { useSelect, useDispatch } from '@wordpress/data';
+import { redo as redoIcon } from '@wordpress/icons';
+import { displayShortcut } from '@wordpress/keycodes';
+
+export default function RedoButton() {
+ const hasRedo = useSelect( ( select ) => select( 'core' ).hasRedo() );
+ const { redo } = useDispatch( 'core' );
+ return (
+
+ );
+}
diff --git a/packages/edit-site/src/components/header/undo-redo/undo.js b/packages/edit-site/src/components/header/undo-redo/undo.js
new file mode 100644
index 00000000000000..b34d407576afb8
--- /dev/null
+++ b/packages/edit-site/src/components/header/undo-redo/undo.js
@@ -0,0 +1,25 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Button } from '@wordpress/components';
+import { useSelect, useDispatch } from '@wordpress/data';
+import { undo as undoIcon } from '@wordpress/icons';
+import { displayShortcut } from '@wordpress/keycodes';
+
+export default function UndoButton() {
+ const hasUndo = useSelect( ( select ) => select( 'core' ).hasUndo() );
+ const { undo } = useDispatch( 'core' );
+ return (
+
+ );
+}
diff --git a/packages/edit-site/src/components/keyboard-shortcuts/index.js b/packages/edit-site/src/components/keyboard-shortcuts/index.js
new file mode 100644
index 00000000000000..a0588857ea2451
--- /dev/null
+++ b/packages/edit-site/src/components/keyboard-shortcuts/index.js
@@ -0,0 +1,61 @@
+/**
+ * WordPress dependencies
+ */
+import { useEffect } from '@wordpress/element';
+import { useShortcut } from '@wordpress/keyboard-shortcuts';
+import { useDispatch } from '@wordpress/data';
+import { __ } from '@wordpress/i18n';
+
+function KeyboardShortcuts() {
+ const { redo, undo } = useDispatch( 'core' );
+
+ useShortcut(
+ 'core/edit-site/undo',
+ ( event ) => {
+ undo();
+ event.preventDefault();
+ },
+ { bindGlobal: true }
+ );
+
+ useShortcut(
+ 'core/edit-site/redo',
+ ( event ) => {
+ redo();
+ event.preventDefault();
+ },
+ { bindGlobal: true }
+ );
+
+ return null;
+}
+function KeyboardShortcutsRegister() {
+ // Registering the shortcuts
+ const { registerShortcut } = useDispatch( 'core/keyboard-shortcuts' );
+ useEffect( () => {
+ registerShortcut( {
+ name: 'core/edit-site/undo',
+ category: 'global',
+ description: __( 'Undo your last changes.' ),
+ keyCombination: {
+ modifier: 'primary',
+ character: 'z',
+ },
+ } );
+
+ registerShortcut( {
+ name: 'core/edit-site/redo',
+ category: 'global',
+ description: __( 'Redo your last undo.' ),
+ keyCombination: {
+ modifier: 'primaryShift',
+ character: 'z',
+ },
+ } );
+ }, [ registerShortcut ] );
+
+ return null;
+}
+
+KeyboardShortcuts.Register = KeyboardShortcutsRegister;
+export default KeyboardShortcuts;
diff --git a/packages/edit-site/src/components/save-button/index.js b/packages/edit-site/src/components/save-button/index.js
index 28af9be05d723b..75c9c0b56da416 100644
--- a/packages/edit-site/src/components/save-button/index.js
+++ b/packages/edit-site/src/components/save-button/index.js
@@ -7,18 +7,17 @@ import { some } from 'lodash';
* WordPress dependencies
*/
import { useEntityProp } from '@wordpress/core-data';
-import { useEffect, useState, useCallback } from '@wordpress/element';
+import { useEffect } from '@wordpress/element';
import { useSelect } from '@wordpress/data';
import { Button } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
-import { EntitiesSavedStates } from '@wordpress/editor';
/**
* Internal dependencies
*/
import { useEditorContext } from '../editor';
-export default function SaveButton() {
+export default function SaveButton( { openEntitiesSavedStates } ) {
const { settings } = useEditorContext();
const [ , setStatus ] = useEntityProp(
'postType',
@@ -52,9 +51,6 @@ export default function SaveButton() {
} );
const disabled = ! isDirty || isSaving;
- const [ isOpen, setIsOpen ] = useState( false );
- const open = useCallback( () => setIsOpen( true ), [] );
- const close = useCallback( () => setIsOpen( false ), [] );
return (
<>
{ __( 'Update Design' ) }
-
>
);
}
diff --git a/packages/edit-site/src/components/template-switcher/index.js b/packages/edit-site/src/components/template-switcher/index.js
index 780ddf1982bda8..f7a943d54a3b57 100644
--- a/packages/edit-site/src/components/template-switcher/index.js
+++ b/packages/edit-site/src/components/template-switcher/index.js
@@ -11,7 +11,7 @@ import {
MenuItemsChoice,
MenuItem,
} from '@wordpress/components';
-import { plus } from '@wordpress/icons';
+import { Icon, home, plus } from '@wordpress/icons';
/**
* Internal dependencies
@@ -20,10 +20,17 @@ import AddTemplate from '../add-template';
import TemplatePreview from './template-preview';
import ThemePreview from './theme-preview';
-function TemplateLabel( { template } ) {
+function TemplateLabel( { template, homeId } ) {
return (
<>
{ template.slug }{ ' ' }
+ { template.id === homeId && (
+
+
+
+
+
+ ) }
{ template.status !== 'auto-draft' && (
@@ -37,6 +44,7 @@ export default function TemplateSwitcher( {
ids,
templatePartIds,
activeId,
+ homeId,
isTemplatePart,
onActiveIdChange,
onActiveTemplatePartIdChange,
@@ -72,7 +80,10 @@ export default function TemplateSwitcher( {
);
return {
label: template ? (
-
+
) : (
__( 'Loading…' )
),
@@ -98,7 +109,7 @@ export default function TemplateSwitcher( {
} ),
};
},
- [ ids, templatePartIds ]
+ [ ids, templatePartIds, homeId ]
);
const [ isAddTemplateOpen, setIsAddTemplateOpen ] = useState( false );
return (
diff --git a/packages/edit-site/src/components/template-switcher/style.scss b/packages/edit-site/src/components/template-switcher/style.scss
index d1d8680e30a0ed..e2fef51a3a9c59 100644
--- a/packages/edit-site/src/components/template-switcher/style.scss
+++ b/packages/edit-site/src/components/template-switcher/style.scss
@@ -6,6 +6,13 @@
position: relative;
}
+.edit-site-template-switcher__label-home-icon {
+ width: 24px;
+ height: 24px;
+ position: absolute;
+ right: 20px;
+}
+
.edit-site-template-switcher__label-customized-dot {
position: absolute;
right: 4px;
diff --git a/packages/edit-site/src/index.js b/packages/edit-site/src/index.js
index 1a6bb78d47ad79..e6dec20771c7ea 100644
--- a/packages/edit-site/src/index.js
+++ b/packages/edit-site/src/index.js
@@ -28,3 +28,6 @@ export function initialize( id, settings ) {
}
render( , document.getElementById( id ) );
}
+
+export { default as __experimentalMainDashboardButton } from './components/header/main-dashboard-button';
+export { default as __experimentalFullscrenModeClose } from './components/header/fullscreen-mode-close';
diff --git a/packages/edit-site/src/store/actions.js b/packages/edit-site/src/store/actions.js
index d2f2692f194791..ad3aa0ca273ea6 100644
--- a/packages/edit-site/src/store/actions.js
+++ b/packages/edit-site/src/store/actions.js
@@ -11,3 +11,17 @@ export function toggleFeature( feature ) {
feature,
};
}
+
+/**
+ * Returns an action object used to toggle the width of the editing canvas.
+ *
+ * @param {string} deviceType
+ *
+ * @return {Object} Action object.
+ */
+export function __experimentalSetPreviewDeviceType( deviceType ) {
+ return {
+ type: 'SET_PREVIEW_DEVICE_TYPE',
+ deviceType,
+ };
+}
diff --git a/packages/edit-site/src/store/reducer.js b/packages/edit-site/src/store/reducer.js
index d8fd6157e6e595..229f88f6eb0923 100644
--- a/packages/edit-site/src/store/reducer.js
+++ b/packages/edit-site/src/store/reducer.js
@@ -48,6 +48,24 @@ export const preferences = flow( [
},
} );
+/**
+ * Reducer returning the editing canvas device type.
+ *
+ * @param {Object} state Current state.
+ * @param {Object} action Dispatched action.
+ *
+ * @return {Object} Updated state.
+ */
+export function deviceType( state = 'Desktop', action ) {
+ switch ( action.type ) {
+ case 'SET_PREVIEW_DEVICE_TYPE':
+ return action.deviceType;
+ }
+
+ return state;
+}
+
export default combineReducers( {
preferences,
+ deviceType,
} );
diff --git a/packages/edit-site/src/store/selectors.js b/packages/edit-site/src/store/selectors.js
index 0cc6f860f87c5e..496a9c65151b94 100644
--- a/packages/edit-site/src/store/selectors.js
+++ b/packages/edit-site/src/store/selectors.js
@@ -14,3 +14,14 @@ import { get } from 'lodash';
export function isFeatureActive( state, feature ) {
return get( state.preferences.features, [ feature ], false );
}
+
+/**
+ * Returns the current editing canvas device type.
+ *
+ * @param {Object} state Global application state.
+ *
+ * @return {string} Device type.
+ */
+export function __experimentalGetPreviewDeviceType( state ) {
+ return state.deviceType;
+}
diff --git a/packages/edit-site/src/style.scss b/packages/edit-site/src/style.scss
index a2a4c6023f3403..2bc2db62ed594e 100644
--- a/packages/edit-site/src/style.scss
+++ b/packages/edit-site/src/style.scss
@@ -7,6 +7,7 @@
@import "./components/notices/style.scss";
@import "./components/sidebar/style.scss";
@import "./components/template-switcher/style.scss";
+@import "./components/editor/style.scss";
// In order to use mix-blend-mode, this element needs to have an explicitly set background-color.
// We scope it to .wp-toolbar to be wp-admin only, to prevent bleed into other implementations.
@@ -50,6 +51,10 @@ body.toplevel_page_gutenberg-edit-site {
.interface-complementary-area__pin-unpin-item.components-button {
display: none;
}
+
+ .interface-interface-skeleton__content {
+ background-color: $light-gray-700;
+ }
}
/**
diff --git a/packages/edit-widgets/CHANGELOG.md b/packages/edit-widgets/CHANGELOG.md
index 749b9d3b391bb3..7886ad78bbaa8b 100644
--- a/packages/edit-widgets/CHANGELOG.md
+++ b/packages/edit-widgets/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 0.1.0 (2019-03-06)
### New Features
diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json
index d84bccbd764555..7f6c4e4a9e075c 100644
--- a/packages/edit-widgets/package.json
+++ b/packages/edit-widgets/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-widgets",
- "version": "0.14.1",
+ "version": "0.15.0",
"private": true,
"description": "Widgets Page module for WordPress..",
"author": "The WordPress Contributors",
@@ -27,12 +27,16 @@
"@wordpress/blocks": "file:../blocks",
"@wordpress/components": "file:../components",
"@wordpress/compose": "file:../compose",
+ "@wordpress/core-data": "file:../core-data",
"@wordpress/data": "file:../data",
"@wordpress/data-controls": "file:../data-controls",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
"@wordpress/i18n": "file:../i18n",
+ "@wordpress/icons": "file:../icons",
"@wordpress/interface": "file:../interface",
+ "@wordpress/keyboard-shortcuts": "file:../keyboard-shortcuts",
+ "@wordpress/keycodes": "file:../keycodes",
"@wordpress/media-utils": "file:../media-utils",
"@wordpress/notices": "file:../notices",
"lodash": "^4.17.15",
diff --git a/packages/edit-widgets/src/components/header/index.js b/packages/edit-widgets/src/components/header/index.js
index aba87b9a59d01e..498a40fbcc4fba 100644
--- a/packages/edit-widgets/src/components/header/index.js
+++ b/packages/edit-widgets/src/components/header/index.js
@@ -9,12 +9,16 @@ import { NavigableMenu } from '@wordpress/components';
*/
import Inserter from '../inserter';
import SaveButton from '../save-button';
+import UndoButton from './undo-redo/undo';
+import RedoButton from './undo-redo/redo';
function Header() {
return (
-
+
+
+
{ __( 'Block Areas' ) } { __( '(experimental)' ) }
diff --git a/packages/edit-widgets/src/components/header/style.scss b/packages/edit-widgets/src/components/header/style.scss
index 5248e396374cec..39acce402625e0 100644
--- a/packages/edit-widgets/src/components/header/style.scss
+++ b/packages/edit-widgets/src/components/header/style.scss
@@ -6,6 +6,10 @@
padding: 0 $grid-unit-20;
}
+.edit-widgets-inserter {
+ display: inline-block;
+}
+
.edit-widgets-header__title {
font-size: 16px;
padding: 0 20px;
diff --git a/packages/edit-widgets/src/components/header/undo-redo/redo.js b/packages/edit-widgets/src/components/header/undo-redo/redo.js
new file mode 100644
index 00000000000000..3662c568106b89
--- /dev/null
+++ b/packages/edit-widgets/src/components/header/undo-redo/redo.js
@@ -0,0 +1,25 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Button } from '@wordpress/components';
+import { useSelect, useDispatch } from '@wordpress/data';
+import { redo as redoIcon } from '@wordpress/icons';
+import { displayShortcut } from '@wordpress/keycodes';
+
+export default function RedoButton() {
+ const hasRedo = useSelect( ( select ) => select( 'core' ).hasRedo() );
+ const { redo } = useDispatch( 'core' );
+ return (
+
+ );
+}
diff --git a/packages/edit-widgets/src/components/header/undo-redo/undo.js b/packages/edit-widgets/src/components/header/undo-redo/undo.js
new file mode 100644
index 00000000000000..b34d407576afb8
--- /dev/null
+++ b/packages/edit-widgets/src/components/header/undo-redo/undo.js
@@ -0,0 +1,25 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { Button } from '@wordpress/components';
+import { useSelect, useDispatch } from '@wordpress/data';
+import { undo as undoIcon } from '@wordpress/icons';
+import { displayShortcut } from '@wordpress/keycodes';
+
+export default function UndoButton() {
+ const hasUndo = useSelect( ( select ) => select( 'core' ).hasUndo() );
+ const { undo } = useDispatch( 'core' );
+ return (
+
+ );
+}
diff --git a/packages/edit-widgets/src/components/inserter/index.js b/packages/edit-widgets/src/components/inserter/index.js
index 84184b541c918b..98be1798eae047 100644
--- a/packages/edit-widgets/src/components/inserter/index.js
+++ b/packages/edit-widgets/src/components/inserter/index.js
@@ -9,8 +9,8 @@ const { Fill: BlockInserterFill, Slot: BlockInserterSlot } = createSlotFill(
const Inserter = BlockInserterFill;
-Inserter.Slot = function() {
- return ;
+Inserter.Slot = function( props ) {
+ return ;
};
export default Inserter;
diff --git a/packages/edit-widgets/src/components/keyboard-shortcuts/index.js b/packages/edit-widgets/src/components/keyboard-shortcuts/index.js
new file mode 100644
index 00000000000000..531a7a19d665b4
--- /dev/null
+++ b/packages/edit-widgets/src/components/keyboard-shortcuts/index.js
@@ -0,0 +1,61 @@
+/**
+ * WordPress dependencies
+ */
+import { useEffect } from '@wordpress/element';
+import { useShortcut } from '@wordpress/keyboard-shortcuts';
+import { useDispatch } from '@wordpress/data';
+import { __ } from '@wordpress/i18n';
+
+function KeyboardShortcuts() {
+ const { redo, undo } = useDispatch( 'core' );
+
+ useShortcut(
+ 'core/edit-widgets/undo',
+ ( event ) => {
+ undo();
+ event.preventDefault();
+ },
+ { bindGlobal: true }
+ );
+
+ useShortcut(
+ 'core/edit-widgets/redo',
+ ( event ) => {
+ redo();
+ event.preventDefault();
+ },
+ { bindGlobal: true }
+ );
+
+ return null;
+}
+function KeyboardShortcutsRegister() {
+ // Registering the shortcuts
+ const { registerShortcut } = useDispatch( 'core/keyboard-shortcuts' );
+ useEffect( () => {
+ registerShortcut( {
+ name: 'core/edit-widgets/undo',
+ category: 'global',
+ description: __( 'Undo your last changes.' ),
+ keyCombination: {
+ modifier: 'primary',
+ character: 'z',
+ },
+ } );
+
+ registerShortcut( {
+ name: 'core/edit-widgets/redo',
+ category: 'global',
+ description: __( 'Redo your last undo.' ),
+ keyCombination: {
+ modifier: 'primaryShift',
+ character: 'z',
+ },
+ } );
+ }, [ registerShortcut ] );
+
+ return null;
+}
+
+KeyboardShortcuts.Register = KeyboardShortcutsRegister;
+export default KeyboardShortcuts;
diff --git a/packages/edit-widgets/src/components/layout/index.js b/packages/edit-widgets/src/components/layout/index.js
index 97b6c6b2ea9d8a..f9bfb3d0667e96 100644
--- a/packages/edit-widgets/src/components/layout/index.js
+++ b/packages/edit-widgets/src/components/layout/index.js
@@ -8,7 +8,10 @@ import {
FocusReturnProvider,
} from '@wordpress/components';
import { useState } from '@wordpress/element';
-import { BlockEditorKeyboardShortcuts } from '@wordpress/block-editor';
+import {
+ BlockEditorKeyboardShortcuts,
+ Inserter as BlockEditorInserter,
+} from '@wordpress/block-editor';
import { useViewportMatch } from '@wordpress/compose';
import { InterfaceSkeleton } from '@wordpress/interface';
@@ -19,6 +22,10 @@ import Header from '../header';
import Sidebar from '../sidebar';
import WidgetAreas from '../widget-areas';
import Notices from '../notices';
+import KeyboardShortcuts from '../keyboard-shortcuts';
+import Inserter from '../inserter';
+
+const disabledInserterToggleProps = { isPrimary: true, disabled: true };
function Layout( { blockEditorSettings } ) {
const [ selectedArea, setSelectedArea ] = useState( null );
@@ -27,6 +34,7 @@ function Layout( { blockEditorSettings } ) {
return (
<>
+
@@ -35,6 +43,7 @@ function Layout( { blockEditorSettings } ) {
sidebar={ ! isMobile && }
content={
<>
+
+ { selectedArea === null && (
+
+
+
+ ) }
>
}
/>
diff --git a/packages/edit-widgets/src/components/widget-area/index.js b/packages/edit-widgets/src/components/widget-area/index.js
index c7ac4c56a0bf46..be68b58b7254ac 100644
--- a/packages/edit-widgets/src/components/widget-area/index.js
+++ b/packages/edit-widgets/src/components/widget-area/index.js
@@ -1,12 +1,12 @@
/**
* External dependencies
*/
-import { get, defaultTo } from 'lodash';
+import { defaultTo } from 'lodash';
/**
* WordPress dependencies
*/
-import { useMemo, useCallback, useEffect } from '@wordpress/element';
+import { useMemo } from '@wordpress/element';
import { uploadMedia } from '@wordpress/media-utils';
import { Panel, PanelBody } from '@wordpress/components';
import {
@@ -19,8 +19,8 @@ import {
BlockEditorKeyboardShortcuts,
ButtonBlockerAppender,
} from '@wordpress/block-editor';
-import { useSelect, useDispatch } from '@wordpress/data';
-import { parse, serialize } from '@wordpress/blocks';
+import { useSelect } from '@wordpress/data';
+import { useEntityBlockEditor, EntityProvider } from '@wordpress/core-data';
/**
* Internal dependencies
@@ -48,19 +48,18 @@ function getBlockEditorSettings( blockEditorSettings, hasUploadPermissions ) {
};
}
-function WidgetArea( {
+function WidgetAreaEditor( {
id,
- blockEditorSettings,
initialOpen,
isSelectedArea,
onBlockSelected,
+ blockEditorSettings,
} ) {
- const {
- blocks,
- widgetAreaName,
- hasUploadPermissions,
- rawContent,
- } = useSelect(
+ const [ blocks, onInput, onChange ] = useEntityBlockEditor(
+ 'root',
+ 'widgetArea'
+ );
+ const { widgetAreaName, hasUploadPermissions } = useSelect(
( select ) => {
const { canUser, getEditedEntityRecord } = select( 'core' );
const widgetArea = getEditedEntityRecord(
@@ -68,12 +67,7 @@ function WidgetArea( {
'widgetArea',
id
);
- const widgetAreaContent = get( widgetArea, [ 'content' ], '' );
return {
- blocks: widgetArea && widgetArea.blocks,
- rawContent: widgetAreaContent.raw
- ? widgetAreaContent.raw
- : widgetAreaContent,
widgetAreaName: widgetArea && widgetArea.name,
hasUploadPermissions: defaultTo(
canUser( 'create', 'media' ),
@@ -83,33 +77,11 @@ function WidgetArea( {
},
[ id ]
);
- const { editEntityRecord } = useDispatch( 'core' );
- const onChange = useCallback(
- ( newBlocks ) => {
- editEntityRecord( 'root', 'widgetArea', id, { blocks: newBlocks } );
- },
- [ editEntityRecord, id ]
- );
- const onInput = useCallback(
- ( newBlocks ) => {
- editEntityRecord( 'root', 'widgetArea', id, {
- blocks: newBlocks,
- content: serialize( newBlocks ),
- } );
- },
- [ editEntityRecord, id ]
- );
const settings = useMemo(
() =>
getBlockEditorSettings( blockEditorSettings, hasUploadPermissions ),
[ blockEditorSettings, hasUploadPermissions ]
);
- useEffect( () => {
- if ( blocks ) {
- return;
- }
- onChange( parse( rawContent ) );
- }, [ blocks, onChange, rawContent ] );
return (
@@ -163,4 +135,12 @@ function WidgetArea( {
);
}
+function WidgetArea( { id, ...props } ) {
+ return (
+
+
+
+ );
+}
+
export default WidgetArea;
diff --git a/packages/editor/CHANGELOG.md b/packages/editor/CHANGELOG.md
index f4fa8ef5d23828..db88795795497d 100644
--- a/packages/editor/CHANGELOG.md
+++ b/packages/editor/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 9.4.0 (2019-06-12)
### Deprecations
diff --git a/packages/editor/package.json b/packages/editor/package.json
index 53c8e2a88fb407..cb1cbbbf45c228 100644
--- a/packages/editor/package.json
+++ b/packages/editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/editor",
- "version": "9.14.1",
+ "version": "9.15.0",
"description": "Building blocks for WordPress editors.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/editor/src/components/deprecated.js b/packages/editor/src/components/deprecated.js
index 7fa2d89f35cad7..04962bf9dbe957 100644
--- a/packages/editor/src/components/deprecated.js
+++ b/packages/editor/src/components/deprecated.js
@@ -45,7 +45,6 @@ import {
MediaPlaceholder as RootMediaPlaceholder,
MediaUpload as RootMediaUpload,
MediaUploadCheck as RootMediaUploadCheck,
- MultiBlocksSwitcher as RootMultiBlocksSwitcher,
MultiSelectScrollIntoView as RootMultiSelectScrollIntoView,
NavigableToolbar as RootNavigableToolbar,
ObserveTyping as RootObserveTyping,
@@ -209,10 +208,6 @@ export const MediaUploadCheck = deprecateComponent(
'MediaUploadCheck',
RootMediaUploadCheck
);
-export const MultiBlocksSwitcher = deprecateComponent(
- 'MultiBlocksSwitcher',
- RootMultiBlocksSwitcher
-);
export const MultiSelectScrollIntoView = deprecateComponent(
'MultiSelectScrollIntoView',
RootMultiSelectScrollIntoView
diff --git a/packages/editor/src/components/entities-saved-states/index.js b/packages/editor/src/components/entities-saved-states/index.js
index 460823f3bcf856..02c9b37279f5c2 100644
--- a/packages/editor/src/components/entities-saved-states/index.js
+++ b/packages/editor/src/components/entities-saved-states/index.js
@@ -6,22 +6,101 @@ import { some, groupBy } from 'lodash';
/**
* WordPress dependencies
*/
-import { CheckboxControl, Modal, Button } from '@wordpress/components';
+import {
+ CheckboxControl,
+ Button,
+ PanelBody,
+ PanelRow,
+} from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { useSelect, useDispatch } from '@wordpress/data';
-import { useState } from '@wordpress/element';
+import { useState, useCallback } from '@wordpress/element';
+import {
+ close as closeIcon,
+ page,
+ layout,
+ grid,
+ blockDefault,
+} from '@wordpress/icons';
+
+const ENTITY_NAME_ICONS = {
+ site: layout,
+ page,
+ post: grid,
+ wp_template: grid,
+};
+
+function EntityRecordState( { record, checked, onChange, closePanel } ) {
+ const { name, kind, title, key } = record;
+ const parentBlockId = useSelect( ( select ) => {
+ // Get entity's blocks.
+ const { blocks = [] } = select( 'core' ).getEditedEntityRecord(
+ kind,
+ name,
+ key
+ );
+ // Get parents of the entity's first block.
+ const parents = select( 'core/block-editor' ).getBlockParents(
+ blocks[ 0 ]?.clientId
+ );
+ // Return closest parent block's clientId.
+ return parents[ parents.length - 1 ];
+ }, [] );
+
+ const isSelected = useSelect(
+ ( select ) => {
+ const selectedBlockId = select(
+ 'core/block-editor'
+ ).getSelectedBlockClientId();
+ return selectedBlockId === parentBlockId;
+ },
+ [ parentBlockId ]
+ );
+ const isSelectedText = isSelected ? __( 'Selected' ) : __( 'Select' );
+ const { selectBlock } = useDispatch( 'core/block-editor' );
+ const selectParentBlock = useCallback( () => selectBlock( parentBlockId ), [
+ parentBlockId,
+ ] );
+ const selectAndDismiss = useCallback( () => {
+ selectBlock( parentBlockId );
+ closePanel();
+ }, [ parentBlockId ] );
-function EntityRecordState( { record, checked, onChange } ) {
return (
- { record.title || __( 'Untitled' ) } }
- checked={ checked }
- onChange={ onChange }
- />
+
+ { title || __( 'Untitled' ) } }
+ checked={ checked }
+ onChange={ onChange }
+ />
+ { parentBlockId ? (
+ <>
+
+ { isSelectedText }
+
+
+ { isSelectedText }
+
+ >
+ ) : null }
+
);
}
-function EntityTypeList( { list, unselectedEntities, setUnselectedEntities } ) {
+function EntityTypeList( {
+ list,
+ unselectedEntities,
+ setUnselectedEntities,
+ closePanel,
+} ) {
const firstRecord = list[ 0 ];
const entity = useSelect(
( select ) =>
@@ -29,9 +108,12 @@ function EntityTypeList( { list, unselectedEntities, setUnselectedEntities } ) {
[ firstRecord.kind, firstRecord.name ]
);
+ // Set icon based on type of entity.
+ const { name } = firstRecord;
+ const icon = ENTITY_NAME_ICONS[ name ] || blockDefault;
+
return (
-
-
{ entity.label }
+
{ list.map( ( record ) => {
return (
setUnselectedEntities( record, value )
}
+ closePanel={ closePanel }
/>
);
} ) }
-
+
);
}
-export default function EntitiesSavedStates( { isOpen, onRequestClose } ) {
- const dirtyEntityRecords = useSelect(
- ( select ) => select( 'core' ).__experimentalGetDirtyEntityRecords(),
- []
- );
+export default function EntitiesSavedStates( { isOpen, close } ) {
+ const { dirtyEntityRecords } = useSelect( ( select ) => {
+ return {
+ dirtyEntityRecords: select(
+ 'core'
+ ).__experimentalGetDirtyEntityRecords(),
+ };
+ }, [] );
const { saveEditedEntityRecord } = useDispatch( 'core' );
// To group entities by type.
@@ -106,40 +192,51 @@ export default function EntitiesSavedStates( { isOpen, onRequestClose } ) {
saveEditedEntityRecord( kind, name, key );
} );
- onRequestClose( entitiesToSave );
+ close( entitiesToSave );
};
- return (
- isOpen && (
- onRequestClose() }
- contentLabel={ __( 'Select items to save.' ) }
- >
- { partitionedSavables.map( ( list ) => {
- return (
-
- );
- } ) }
+ // Explicitly define this with no argument passed. Using `close` on
+ // its own will use the event object in place of the expected saved entities.
+ const dismissPanel = useCallback( () => close(), [ close ] );
+ return isOpen ? (
+
+
- { __( 'Save' ) }
-
-
- )
- );
+ onClick={ dismissPanel }
+ icon={ closeIcon }
+ label={ __( 'Close panel' ) }
+ />
+
+
+
+
+ { __( 'Please review the following changes to save:' ) }
+
+
+
+ { partitionedSavables.map( ( list ) => {
+ return (
+
+ );
+ } ) }
+
+
+ { __( 'Save selected items' ) }
+
+
+ ) : null;
}
diff --git a/packages/editor/src/components/entities-saved-states/style.scss b/packages/editor/src/components/entities-saved-states/style.scss
index 6a04c3db879c89..10975d4148842f 100644
--- a/packages/editor/src/components/entities-saved-states/style.scss
+++ b/packages/editor/src/components/entities-saved-states/style.scss
@@ -1,11 +1,70 @@
-.editor-entities-saved-states__save-button {
- display: block;
- margin-left: auto;
- margin-right: 0;
-}
-.editor-entities-saved-states__entity-type-list {
- h2 {
- font-size: 18px;
- margin: 20px 0 10px;
+.entities-saved-states__panel {
+ @include reset;
+ background: $white;
+ position: fixed;
+ z-index: z-index(".entities-saved-states__panel");
+ top: $admin-bar-height-big;
+ bottom: 0;
+ right: 0;
+ left: 0;
+ overflow: auto;
+ box-sizing: border-box;
+
+ .entities-saved-states__find-entity {
+ display: none;
+ }
+ .entities-saved-states__find-entity-small {
+ display: block;
+ }
+
+ @include break-medium() {
+ z-index: z-index(".entities-saved-states__panel {greater than small}");
+ top: $admin-bar-height;
+ left: auto;
+ width: $sidebar-width;
+ border-left: $border-width solid $light-gray-500;
+
+ body.is-fullscreen-mode & {
+ top: 0;
+ }
+
+ .entities-saved-states__find-entity {
+ display: block;
+ }
+ .entities-saved-states__find-entity-small {
+ display: none;
+ }
+ }
+
+ .entities-saved-states__panel-header {
+ background: $white;
+ padding-left: $grid-unit-10;
+ padding-right: $grid-unit-10;
+ height: $header-height + $border-width;
+ border-bottom: $border-width solid $light-gray-500;
+ display: flex;
+ align-items: center;
+ align-content: space-between;
+
+ .components-button.has-icon {
+ position: absolute;
+ right: $grid-unit-10;
+ }
+ }
+
+ .entities-saved-states__text-prompt {
+ border-bottom: $border-width solid $light-gray-500;
+
+ h2 {
+ padding: $grid-unit-20;
+ padding-bottom: $grid-unit-15;
+ margin: 0;
+ font-size: $big-font-size;
+ }
+ }
+
+ .editor-entities-saved-states__save-button {
+ display: block;
+ margin: $grid-unit-15 auto;
}
}
diff --git a/packages/editor/src/components/post-publish-button/index.js b/packages/editor/src/components/post-publish-button/index.js
index c2383f52c19afb..46ebe017edbfd7 100644
--- a/packages/editor/src/components/post-publish-button/index.js
+++ b/packages/editor/src/components/post-publish-button/index.js
@@ -16,7 +16,6 @@ import { __ } from '@wordpress/i18n';
/**
* Internal dependencies
*/
-import EntitiesSavedStates from '../entities-saved-states';
import PublishButtonLabel from './label';
export class PostPublishButton extends Component {
@@ -49,6 +48,13 @@ export class PostPublishButton extends Component {
this.setState( {
entitiesSavedStatesCallback: () => callback( ...args ),
} );
+ // Open the save panel by setting its callback.
+ // To set a function on the useState hook, we must set it
+ // with another function (() => myFunction). Passing the
+ // function on its own will cause an error when called.
+ this.props.setEntitiesSavedStatesCallback(
+ () => this.closeEntitiesSavedStates
+ );
return noop;
}
@@ -96,7 +102,6 @@ export class PostPublishButton extends Component {
visibility,
hasNonPostEntityChanges,
} = this.props;
- const { entitiesSavedStatesCallback } = this.state;
const isButtonDisabled =
isSaving ||
@@ -170,10 +175,6 @@ export class PostPublishButton extends Component {
const componentChildren = isToggle ? toggleChildren : buttonChildren;
return (
<>
-
{
+ onUpdateDate( newDate );
+ document.activeElement.blur();
+ };
const settings = __experimentalGetSettings();
// To know if the current timezone is a 12 hour time with look for "a" in the time format
// We also make sure this a is not escaped by a "/"
@@ -23,7 +27,7 @@ export function PostSchedule( { date, onUpdateDate } ) {
);
diff --git a/packages/editor/src/components/post-title/index.js b/packages/editor/src/components/post-title/index.js
index ccc5eb1077fa32..5c0066c09fd527 100644
--- a/packages/editor/src/components/post-title/index.js
+++ b/packages/editor/src/components/post-title/index.js
@@ -14,6 +14,7 @@ import { ENTER } from '@wordpress/keycodes';
import { withSelect, withDispatch } from '@wordpress/data';
import { VisuallyHidden } from '@wordpress/components';
import { withInstanceId, compose } from '@wordpress/compose';
+import { pasteHandler } from '@wordpress/blocks';
/**
* Internal dependencies
@@ -33,6 +34,7 @@ class PostTitle extends Component {
this.onSelect = this.onSelect.bind( this );
this.onUnselect = this.onUnselect.bind( this );
this.onKeyDown = this.onKeyDown.bind( this );
+ this.onPaste = this.onPaste.bind( this );
this.state = {
isSelected: false,
@@ -60,6 +62,57 @@ class PostTitle extends Component {
}
}
+ onPaste( event ) {
+ const { title, onInsertBlockAfter, onUpdate } = this.props;
+ const clipboardData = event.clipboardData;
+
+ let plainText = '';
+ let html = '';
+
+ // IE11 only supports `Text` as an argument for `getData` and will
+ // otherwise throw an invalid argument error, so we try the standard
+ // arguments first, then fallback to `Text` if they fail.
+ try {
+ plainText = clipboardData.getData( 'text/plain' );
+ html = clipboardData.getData( 'text/html' );
+ } catch ( error1 ) {
+ try {
+ html = clipboardData.getData( 'Text' );
+ } catch ( error2 ) {
+ // Some browsers like UC Browser paste plain text by default and
+ // don't support clipboardData at all, so allow default
+ // behaviour.
+ return;
+ }
+ }
+
+ // Allows us to ask for this information when we get a report.
+ window.console.log( 'Received HTML:\n\n', html );
+ window.console.log( 'Received plain text:\n\n', plainText );
+
+ const content = pasteHandler( {
+ HTML: html,
+ plainText,
+ } );
+
+ if ( typeof content !== 'string' && content.length ) {
+ event.preventDefault();
+
+ const [ firstBlock ] = content;
+
+ if (
+ ! title &&
+ ( firstBlock.name === 'core/heading' ||
+ firstBlock.name === 'core/paragraph' )
+ ) {
+ onUpdate( firstBlock.attributes.content );
+ onInsertBlockAfter( content.slice( 1 ) );
+ } else {
+ onInsertBlockAfter( content );
+ }
+ }
+ }
+
render() {
const {
hasFixedToolbar,
@@ -102,6 +155,7 @@ class PostTitle extends Component {
onBlur={ this.onUnselect }
onKeyDown={ this.onKeyDown }
onKeyPress={ this.onUnselect }
+ onPaste={ this.onPaste }
/*
Only autofocus the title when the post is entirely empty.
This should only happen for a new post, which means we
@@ -137,7 +191,7 @@ const applyWithSelect = withSelect( ( select ) => {
} );
const applyWithDispatch = withDispatch( ( dispatch ) => {
- const { insertDefaultBlock, clearSelectedBlock } = dispatch(
+ const { insertDefaultBlock, clearSelectedBlock, insertBlocks } = dispatch(
'core/block-editor'
);
const { editPost } = dispatch( 'core/editor' );
@@ -146,6 +200,9 @@ const applyWithDispatch = withDispatch( ( dispatch ) => {
onEnterPress() {
insertDefaultBlock( undefined, undefined, 0 );
},
+ onInsertBlockAfter( blocks ) {
+ insertBlocks( blocks, 0 );
+ },
onUpdate( title ) {
editPost( { title } );
},
diff --git a/packages/editor/src/components/provider/index.js b/packages/editor/src/components/provider/index.js
index 1d2326ef58f59f..2868759b6b0d93 100644
--- a/packages/editor/src/components/provider/index.js
+++ b/packages/editor/src/components/provider/index.js
@@ -29,6 +29,18 @@ import { mediaUpload } from '../../utils';
import ReusableBlocksButtons from '../reusable-blocks-buttons';
import ConvertToGroupButtons from '../convert-to-group-buttons';
+/**
+ * Fetches link suggestions from the API. This function is an exact copy of a function found at:
+ *
+ * wordpress/editor/src/components/provider/index.js
+ *
+ * It seems like there is no suitable package to import this from. Ideally it would be either part of core-data.
+ * Until we refactor it, just copying the code is the simplest solution.
+ *
+ * @param {Object} search
+ * @param {number} perPage
+ * @return {Promise} List of suggestions
+ */
const fetchLinkSuggestions = async ( search, { perPage = 20 } = {} ) => {
const posts = await apiFetch( {
path: addQueryArgs( '/wp/v2/search', {
@@ -99,9 +111,19 @@ class EditorProvider extends Component {
) {
return {
...pick( settings, [
+ '__experimentalBlockDirectory',
+ '__experimentalBlockPatterns',
+ '__experimentalDisableCustomUnits',
+ '__experimentalDisableCustomLineHeight',
+ '__experimentalDisableDropCap',
+ '__experimentalEnableLegacyWidgetBlock',
+ '__experimentalEnableFullSiteEditing',
+ '__experimentalEnableFullSiteEditingDemo',
+ '__experimentalGlobalStylesUserEntityId',
+ '__experimentalGlobalStylesBase',
+ '__experimentalPreferredStyleVariations',
'alignWide',
'allowedBlockTypes',
- '__experimentalPreferredStyleVariations',
'availableLegacyWidgets',
'bodyPlaceholder',
'codeEditingEnabled',
@@ -111,27 +133,18 @@ class EditorProvider extends Component {
'disableCustomGradients',
'focusMode',
'fontSizes',
+ 'gradients',
'hasFixedToolbar',
'hasPermissionsToManageWidgets',
'imageSizes',
'imageDimensions',
'isRTL',
'maxWidth',
+ 'onUpdateDefaultBlockStyles',
'styles',
'template',
'templateLock',
'titlePlaceholder',
- 'onUpdateDefaultBlockStyles',
- '__experimentalDisableCustomUnits',
- '__experimentalEnableLegacyWidgetBlock',
- '__experimentalBlockDirectory',
- '__experimentalEnableFullSiteEditing',
- '__experimentalEnableFullSiteEditingDemo',
- '__experimentalGlobalStylesUserEntityId',
- '__experimentalGlobalStylesBase',
- '__experimentalDisableCustomLineHeight',
- '__experimentalBlockPatterns',
- 'gradients',
] ),
mediaUpload: hasUploadPermissions ? mediaUpload : undefined,
__experimentalReusableBlocks: reusableBlocks,
diff --git a/packages/editor/src/editor-styles.scss b/packages/editor/src/editor-styles.scss
index f8eee44a116938..ef76d2b8015780 100644
--- a/packages/editor/src/editor-styles.scss
+++ b/packages/editor/src/editor-styles.scss
@@ -146,7 +146,8 @@ ol ul {
}
a {
- color: inherit;
+ // This inherits the blue link color set by wp-admin, which is unfortunate.
+ // However both inherit and unset properties set the color to black.
transition: none;
}
diff --git a/packages/editor/src/store/actions.js b/packages/editor/src/store/actions.js
index 453a606c86206d..dc785fa4480bfd 100644
--- a/packages/editor/src/store/actions.js
+++ b/packages/editor/src/store/actions.js
@@ -7,7 +7,12 @@ import { has, castArray } from 'lodash';
* WordPress dependencies
*/
import deprecated from '@wordpress/deprecated';
-import { dispatch, select, apiFetch } from '@wordpress/data-controls';
+import {
+ dispatch,
+ select,
+ __unstableSyncSelect,
+ apiFetch,
+} from '@wordpress/data-controls';
import { parse, synchronizeBlocksWithTemplate } from '@wordpress/blocks';
/**
@@ -672,7 +677,7 @@ export function* resetEditorBlocks( blocks, options = {} ) {
if ( __unstableShouldCreateUndoLevel !== false ) {
const { id, type } = yield select( STORE_KEY, 'getCurrentPost' );
const noChange =
- ( yield select(
+ ( yield __unstableSyncSelect(
'core',
'getEditedEntityRecord',
'postType',
diff --git a/packages/editor/src/store/selectors.js b/packages/editor/src/store/selectors.js
index 5a06ba46506b73..b17f9357971c7c 100644
--- a/packages/editor/src/store/selectors.js
+++ b/packages/editor/src/store/selectors.js
@@ -760,7 +760,7 @@ export function isEditedPostDateFloating( state ) {
status === 'auto-draft' ||
status === 'pending'
) {
- return date === modified;
+ return date === modified || date === null;
}
return false;
}
diff --git a/packages/element/CHANGELOG.md b/packages/element/CHANGELOG.md
index 6dc12e38828b8e..3173455d92f99d 100644
--- a/packages/element/CHANGELOG.md
+++ b/packages/element/CHANGELOG.md
@@ -1,4 +1,10 @@
-## Master
+
+
+## Unreleased
+
+### New Feature
+
+- Include TypeScript type declarations ([#21781](https://github.com/WordPress/gutenberg/pull/21781))
## 2.13.1 (2020-04-15)
diff --git a/packages/element/package.json b/packages/element/package.json
index 4542ddcbfd9565..78a06bcb1f2290 100644
--- a/packages/element/package.json
+++ b/packages/element/package.json
@@ -21,6 +21,7 @@
"main": "build/index.js",
"module": "build-module/index.js",
"react-native": "src/index",
+ "types": "build-types",
"sideEffects": false,
"dependencies": {
"@babel/runtime": "^7.9.2",
diff --git a/packages/env/CHANGELOG.md b/packages/env/CHANGELOG.md
index 5a67af6ef1d623..e918ff016cb58c 100644
--- a/packages/env/CHANGELOG.md
+++ b/packages/env/CHANGELOG.md
@@ -1,4 +1,10 @@
-## Master
+
+
+## Unreleased
+
+### New Feature
+
+- You may now mount local directories to any location within the WordPress install. For example, you may specify `"wp-content/mu-plugins": "./path/to/mu-plugins"` to add mu-plugins.
## 1.1.0 (2020-04-01)
diff --git a/packages/env/README.md b/packages/env/README.md
index e27fba038c9aeb..3676bec78c595b 100644
--- a/packages/env/README.md
+++ b/packages/env/README.md
@@ -8,18 +8,23 @@ Ensure that Docker is running, then:
```sh
$ cd /path/to/a/wordpress/plugin
-$ npx wp-env start
+$ npm -g i @wordpress/env
+$ wp-env start
```
The local environment will be available at http://localhost:8888.
-## Instructions
-
-### Installation
+## Prerequisites
`wp-env` requires Docker to be installed. There are instructions available for installing Docker on [Windows 10 Pro](https://docs.docker.com/docker-for-windows/install/), [all other versions of Windows](https://docs.docker.com/toolbox/toolbox_install_windows/), [macOS](https://docs.docker.com/docker-for-mac/install/), and [Linux](https://docs.docker.com/v17.12/install/linux/docker-ce/ubuntu/#install-using-the-convenience-script).
-After confirming that Docker is installed, you can install `wp-env` globally like so:
+Node.js and NPM are required. The latest LTS version of Node.js is used to develop `wp-env` and is recommended.
+
+## Installation
+
+### Installation as a global package
+
+After confirming that the prerequisites are installed, you can install `wp-env` globally like so:
```sh
$ npm -g i @wordpress/env
@@ -27,6 +32,36 @@ $ npm -g i @wordpress/env
You're now ready to use `wp-env`!
+### Installation as a local package
+
+If your project already has a package.json, it's also possible to use `wp-env` as a local package. First install `wp-env` locally as a dev dependency:
+
+```sh
+$ npm i @wordpress/env --save-dev
+```
+
+Then modify your package.json and add an extra command to npm `scripts` (https://docs.npmjs.com/misc/scripts):
+
+```json
+"scripts": {
+ "wp-env": "wp-env"
+}
+```
+
+When installing `wp-env` in this way, all `wp-env` commands detailed in these docs must be prefixed with `npm run`, for example:
+
+```sh
+$ npm run wp-env start
+```
+
+instead of:
+
+```sh
+$ wp-env start
+```
+
+## Usage
+
### Starting the environment
First, ensure that Docker is running. You can do this by clicking on the Docker icon in the system tray or menu bar.
@@ -175,7 +210,7 @@ Positionals:
[string] [choices: "all", "development", "tests"] [default: "tests"]
```
-### `wp-env run [container] [command]`
+### `wp-env run [container] [command]`
```sh
wp-env run [command..]
@@ -201,10 +236,10 @@ ID user_login display_name user_email user_registered roles
✔ Ran `wp user list` in 'cli'. (in 2s 374ms)
```
-### `docker logs -f [container_id] >/dev/null`
+### `docker logs -f [container_id] >/dev/null`
```sh
-docker logs -f >/dev/null
+docker logs -f >/dev/null
Shows the error logs of the specified container in the terminal. The container_id is the one that is visible with `docker ps -a`
```
@@ -215,23 +250,24 @@ You can customize the WordPress installation, plugins and themes that the develo
`.wp-env.json` supports five fields:
-| Field | Type | Default | Description |
-| ------------- | ------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
+| Field | Type | Default | Description |
+| ------------- | -------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| `"core"` | `string\|null` | `null` | The WordPress installation to use. If `null` is specified, `wp-env` will use the latest production release of WordPress. |
-| `"plugins"` | `string[]` | `[]` | A list of plugins to install and activate in the environment. |
-| `"themes"` | `string[]` | `[]` | A list of themes to install in the environment. The first theme in the list will be activated. |
-| `"port"` | `integer` | `8888` | The primary port number to use for the insallation. You'll access the instance through the port: 'http://localhost:8888'. |
-| `"testsPort"` | `integer` | `8889` | The port number to use for the tests instance. |
-| `"config"` | `Object` | `"{ WP_DEBUG: true, SCRIPT_DEBUG: true }"` | Mapping of wp-config.php constants to their desired values. |
+| `"plugins"` | `string[]` | `[]` | A list of plugins to install and activate in the environment. |
+| `"themes"` | `string[]` | `[]` | A list of themes to install in the environment. The first theme in the list will be activated. |
+| `"port"` | `integer` | `8888` | The primary port number to use for the insallation. You'll access the instance through the port: 'http://localhost:8888'. |
+| `"testsPort"` | `integer` | `8889` | The port number to use for the tests instance. |
+| `"config"` | `Object` | `"{ WP_DEBUG: true, SCRIPT_DEBUG: true }"` | Mapping of wp-config.php constants to their desired values. |
+| `"mappings"` | `Object` | `"{}"` | Mapping of WordPress directories to local directories to be mounted in the WordPress instance. |
_Note: the port number environment variables (`WP_ENV_PORT` and `WP_ENV_TESTS_PORT`) take precedent over the .wp-env.json values._
-Several types of strings can be passed into the `core`, `plugins`, and `themes` fields:
+Several types of strings can be passed into the `core`, `plugins`, `themes`, and `mappings` fields.
| Type | Format | Example(s) |
| ----------------- | ----------------------------- | -------------------------------------------------------- |
-| Relative path | `.\|~` | `"./a/directory"`, `"../a/directory"`, `"~/a/directory"` |
-| Absolute path | `/\|:\` | `"/a/directory"`, `"C:\\a\\directory"` |
+| Relative path | `.\|~` | `"./a/directory"`, `"../a/directory"`, `"~/a/directory"` |
+| Absolute path | `/\|:\` | `"/a/directory"`, `"C:\\a\\directory"` |
| GitHub repository | `/[#[]` | `"WordPress/WordPress"`, `"WordPress/gutenberg#master"` |
| ZIP File | `http[s]://]/.zip` | `"https://wordpress.org/wordpress-5.4-beta2.zip"` |
@@ -288,6 +324,34 @@ This is useful for integration testing: that is, testing how old versions of Wor
}
```
+#### Add mu-plugins and other mapped directories
+
+You can add mu-plugins via the mapping config. The mapping config also allows you to mount a directory to any location in the wordpress install, so you could even mount a subdirectory. Note here that theme-1, will not be activated, despite being the "first" mapped theme.
+
+```json
+{
+ "plugins": [ "." ],
+ "mappings": {
+ "wp-content/mu-plugins": "./path/to/local/mu-plugins",
+ "wp-content/themes": "./path/to/local/themes",
+ "wp-content/themes/specific-theme": "./path/to/local/theme-1"
+ }
+}
+```
+
+#### Avoid activating plugins or themes on the instance
+
+Since all plugins in the `plugins` key are activated by default, you should use the `mappings` key to avoid this behavior. This might be helpful if you have a test plugin that should not be activated all the time. The same applies for a theme which should not be activated.
+
+```json
+{
+ "plugins": [ "." ],
+ "mappings": {
+ "wp-content/plugins/my-test-plugin": "./path/to/test/plugin"
+ }
+}
+```
+
#### Custom Port Numbers
You can tell `wp-env` to use a custom port number so that your instance does not conflict with other `wp-env` instances.
diff --git a/packages/env/lib/build-docker-compose-config.js b/packages/env/lib/build-docker-compose-config.js
index e5ab685f4b1478..43b0b6a5f3069d 100644
--- a/packages/env/lib/build-docker-compose-config.js
+++ b/packages/env/lib/build-docker-compose-config.js
@@ -17,30 +17,28 @@ const path = require( 'path' );
* @return {Object} A docker-compose config object, ready to serialize into YAML.
*/
module.exports = function buildDockerComposeConfig( config ) {
- const pluginMounts = config.pluginSources.flatMap( ( source ) => [
- `${ source.path }:/var/www/html/wp-content/plugins/${ source.basename }`,
+ // Top-level WordPress directory mounts (like wp-content/themes)
+ const directoryMounts = Object.entries( config.mappings ).map(
+ ( [ wpDir, source ] ) => `${ source.path }:/var/www/html/${ wpDir }`
+ );
- // If this is is the Gutenberg plugin, then mount its E2E test plugins.
- // TODO: Implement an API that lets Gutenberg mount test plugins without this workaround.
- ...( fs.existsSync( path.resolve( source.path, 'gutenberg.php' ) )
- ? [
- `${ source.path }/packages/e2e-tests/plugins:/var/www/html/wp-content/plugins/gutenberg-test-plugins`,
- `${ source.path }/packages/e2e-tests/mu-plugins:/var/www/html/wp-content/mu-plugins`,
- ]
- : [] ),
- ] );
+ const pluginMounts = config.pluginSources.map(
+ ( source ) =>
+ `${ source.path }:/var/www/html/wp-content/plugins/${ source.basename }`
+ );
const themeMounts = config.themeSources.map(
( source ) =>
`${ source.path }:/var/www/html/wp-content/themes/${ source.basename }`
);
+ const localMounts = [ ...directoryMounts, ...pluginMounts, ...themeMounts ];
+
const developmentMounts = [
`${
config.coreSource ? config.coreSource.path : 'wordpress'
}:/var/www/html`,
- ...pluginMounts,
- ...themeMounts,
+ ...localMounts,
];
let testsMounts;
@@ -83,15 +81,10 @@ module.exports = function buildDockerComposeConfig( config ) {
)
: [] ),
- ...pluginMounts,
- ...themeMounts,
+ ...localMounts,
];
} else {
- testsMounts = [
- 'tests-wordpress:/var/www/html',
- ...pluginMounts,
- ...themeMounts,
- ];
+ testsMounts = [ 'tests-wordpress:/var/www/html', ...localMounts ];
}
// Set the default ports based on the config values.
diff --git a/packages/env/lib/config.js b/packages/env/lib/config.js
index 31e0d4bbb37156..73680fe2722fba 100644
--- a/packages/env/lib/config.js
+++ b/packages/env/lib/config.js
@@ -38,6 +38,7 @@ const HOME_PATH_PREFIX = `~${ path.sep }`;
* @property {number} port The port on which to start the development WordPress environment.
* @property {number} testsPort The port on which to start the testing WordPress environment.
* @property {Object} config Mapping of wp-config.php constants to their desired values.
+ * @property {Object.} mappings Mapping of WordPress directories to local directories which should be mounted.
* @property {boolean} debug True if debug mode is enabled.
*/
@@ -128,6 +129,7 @@ module.exports = {
port: 8888,
testsPort: 8889,
config: { WP_DEBUG: true, SCRIPT_DEBUG: true },
+ mappings: {},
},
config,
overrideConfig
@@ -185,6 +187,20 @@ module.exports = {
);
}
+ if ( typeof config.mappings !== 'object' ) {
+ throw new ValidationError(
+ 'Invalid .wp-env.json: "mappings" must be an object.'
+ );
+ }
+
+ for ( const [ wpDir, localDir ] of Object.entries( config.mappings ) ) {
+ if ( ! localDir || typeof localDir !== 'string' ) {
+ throw new ValidationError(
+ `Invalid .wp-env.json: "mapping.${ wpDir }" should be a string.`
+ );
+ }
+ }
+
const workDirectoryPath = path.resolve(
getHomeDirectory(),
md5( configPath )
@@ -217,6 +233,16 @@ module.exports = {
} )
),
config: config.config,
+ mappings: Object.entries( config.mappings ).reduce(
+ ( result, [ wpDir, localDir ] ) => {
+ const source = parseSourceString( localDir, {
+ workDirectoryPath,
+ } );
+ result[ wpDir ] = source;
+ return result;
+ },
+ {}
+ ),
};
},
};
diff --git a/packages/env/package.json b/packages/env/package.json
index 8b66f50a865e6d..01843f8c5f32dd 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/env",
- "version": "1.2.0",
+ "version": "1.3.0",
"description": "A zero-config, self contained local WordPress environment for development and testing.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/env/test/build-docker-compose-config.js b/packages/env/test/build-docker-compose-config.js
new file mode 100644
index 00000000000000..6bfd3e2f7c8978
--- /dev/null
+++ b/packages/env/test/build-docker-compose-config.js
@@ -0,0 +1,73 @@
+/**
+ * Internal dependencies
+ */
+const buildDockerComposeConfig = require( '../lib/build-docker-compose-config' );
+
+// The basic config keys which build docker compose config requires.
+const CONFIG = {
+ mappings: {},
+ pluginSources: [],
+ themeSources: [],
+ port: 8888,
+ testsPort: 8889,
+ configDirectoryPath: '/path/to/config',
+};
+
+describe( 'buildDockerComposeConfig', () => {
+ it( 'should map directories before individual sources', () => {
+ const envConfig = {
+ ...CONFIG,
+ mappings: {
+ 'wp-content/plugins': {
+ path: '/path/to/wp-plugins',
+ },
+ },
+ pluginSources: [
+ { path: '/path/to/local/plugin', basename: 'test-name' },
+ ],
+ };
+ const dockerConfig = buildDockerComposeConfig( envConfig );
+ const { volumes } = dockerConfig.services.wordpress;
+ expect( volumes ).toEqual( [
+ 'wordpress:/var/www/html', // WordPress root
+ '/path/to/wp-plugins:/var/www/html/wp-content/plugins', // Mapped plugins root
+ '/path/to/local/plugin:/var/www/html/wp-content/plugins/test-name', // Mapped plugin
+ ] );
+ } );
+
+ it( 'should add all specified sources to tests, dev, and cli services', () => {
+ const envConfig = {
+ ...CONFIG,
+ mappings: {
+ 'wp-content/plugins': {
+ path: '/path/to/wp-plugins',
+ },
+ },
+ pluginSources: [
+ { path: '/path/to/local/plugin', basename: 'test-name' },
+ ],
+ themeSources: [
+ { path: '/path/to/local/theme', basename: 'test-theme' },
+ ],
+ };
+ const dockerConfig = buildDockerComposeConfig( envConfig );
+ const devVolumes = dockerConfig.services.wordpress.volumes;
+ const cliVolumes = dockerConfig.services.cli.volumes;
+ expect( devVolumes ).toEqual( cliVolumes );
+
+ const testsVolumes = dockerConfig.services[ 'tests-wordpress' ].volumes;
+ const testsCliVolumes = dockerConfig.services[ 'tests-cli' ].volumes;
+ expect( testsVolumes ).toEqual( testsCliVolumes );
+
+ const localSources = [
+ '/path/to/wp-plugins:/var/www/html/wp-content/plugins',
+ '/path/to/local/plugin:/var/www/html/wp-content/plugins/test-name',
+ '/path/to/local/theme:/var/www/html/wp-content/themes/test-theme',
+ ];
+
+ expect( devVolumes ).toEqual( expect.arrayContaining( localSources ) );
+ expect( testsVolumes ).toEqual(
+ expect.arrayContaining( localSources )
+ );
+ } );
+} );
diff --git a/packages/env/test/config.js b/packages/env/test/config.js
index 34384e95b43d91..804180d9ed91ef 100644
--- a/packages/env/test/config.js
+++ b/packages/env/test/config.js
@@ -219,6 +219,93 @@ describe( 'readConfig', () => {
}
} );
+ it( 'should parse mappings into sources', async () => {
+ readFile.mockImplementation( () =>
+ Promise.resolve(
+ JSON.stringify( {
+ mappings: {
+ test: './relative',
+ test2: 'WordPress/gutenberg#master',
+ },
+ } )
+ )
+ );
+ const { mappings } = await readConfig( '.wp-env.json' );
+ expect( mappings ).toMatchObject( {
+ test: {
+ type: 'local',
+ path: expect.stringMatching( /^\/.*relative$/ ),
+ basename: 'relative',
+ },
+ test2: {
+ type: 'git',
+ path: expect.stringMatching( /^\/.*gutenberg$/ ),
+ basename: 'gutenberg',
+ },
+ } );
+ } );
+
+ it( 'should throw a validaton error if there is an invalid mapping', async () => {
+ readFile.mockImplementation( () =>
+ Promise.resolve( JSON.stringify( { mappings: { test: 'false' } } ) )
+ );
+ expect.assertions( 2 );
+ try {
+ await readConfig( '.wp-env.json' );
+ } catch ( error ) {
+ expect( error ).toBeInstanceOf( ValidationError );
+ expect( error.message ).toContain(
+ 'Invalid or unrecognized source'
+ );
+ }
+ } );
+
+ it( 'throws an error if a mapping is badly formatted', async () => {
+ readFile.mockImplementation( () =>
+ Promise.resolve(
+ JSON.stringify( {
+ mappings: { test: null },
+ } )
+ )
+ );
+ expect.assertions( 2 );
+ try {
+ await readConfig( '.wp-env.json' );
+ } catch ( error ) {
+ expect( error ).toBeInstanceOf( ValidationError );
+ expect( error.message ).toContain(
+ 'Invalid .wp-env.json: "mapping.test" should be a string.'
+ );
+ }
+ } );
+
+ it( 'throws an error if mappings is not an object', async () => {
+ readFile.mockImplementation( () =>
+ Promise.resolve(
+ JSON.stringify( {
+ mappings: 'not object',
+ } )
+ )
+ );
+ expect.assertions( 2 );
+ try {
+ await readConfig( '.wp-env.json' );
+ } catch ( error ) {
+ expect( error ).toBeInstanceOf( ValidationError );
+ expect( error.message ).toContain(
+ 'Invalid .wp-env.json: "mappings" must be an object.'
+ );
+ }
+ } );
+
+ it( 'should return an empty mappings object if none are passed', async () => {
+ readFile.mockImplementation( () =>
+ Promise.resolve( JSON.stringify( { mappings: {} } ) )
+ );
+ const { mappings } = await readConfig( '.wp-env.json' );
+ expect( mappings ).toEqual( {} );
+ } );
+
it( 'should throw a validaton error if the ports are not numbers', async () => {
expect.assertions( 10 );
await testPortNumberValidation( 'port', 'string' );
diff --git a/packages/escape-html/CHANGELOG.md b/packages/escape-html/CHANGELOG.md
index 9b236d7f334bde..a5660e1b87e992 100644
--- a/packages/escape-html/CHANGELOG.md
+++ b/packages/escape-html/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.8.0 (2020-04-15)
diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md
index 040e3b644b45ab..e1799b883c6db1 100644
--- a/packages/eslint-plugin/CHANGELOG.md
+++ b/packages/eslint-plugin/CHANGELOG.md
@@ -1,8 +1,21 @@
-## Master
+
+
+## Unreleased
+
+### Breaking Changes
+
+- The severity of the rule, `jsdoc/no-undefined-types`, has been increased from `warn` to `error`. In addition, `JSX` has been added to the default list of defined types.
+
+### Improvements
+
+- `'AsyncIterableIterator'` is now whitelisted as a valid TypeScript utility type.
+
+## 5.1.0 (2020-04-30)
### Bug Fixes
- The `@wordpress/no-unused-vars-before-return` rule will now correctly identify valid usage of a variable as a JSX identifier.
+- Make `@wordpress/i18n-text-domain` rule less strict by default. When `allowedTextDomain` option is not provided it allows now skipping text domain or providing any string ([#21928](https://github.com/WordPress/gutenberg/pull/21928)).
## 5.0.1 (2020-04-15)
diff --git a/packages/eslint-plugin/README.md b/packages/eslint-plugin/README.md
index e6bf980d326a3f..a47c932d403541 100644
--- a/packages/eslint-plugin/README.md
+++ b/packages/eslint-plugin/README.md
@@ -62,7 +62,13 @@ Rule|Description|Recommended
[react-no-unsafe-timeout](/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)|Disallow unsafe `setTimeout` in component|
[valid-sprintf](/packages/eslint-plugin/docs/rules/valid-sprintf.md)|Enforce valid sprintf usage|✓
[no-base-control-with-label-without-id](/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md)| Disallow the usage of BaseControl component with a label prop set but omitting the id property|✓
-[no-unguarded-get-range-at](/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)| Disallow the usage of unguarded `getRangeAt` calls|✓
+[no-unguarded-get-range-at](/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)|Disallow the usage of unguarded `getRangeAt` calls|✓
+[i18n-ellipsis](/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)|Disallow using three dots in translatable strings|✓
+[i18n-no-collapsible-whitespace](/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)|Disallow collapsible whitespace in translatable strings|✓
+[i18n-no-placeholders-only](/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)|Prevent using only placeholders in translatable strings|✓
+[i18n-no-variables](/packages/eslint-plugin/docs/rules/i18n-no-variables.md)|Enforce string literals as translation function arguments|✓
+[i18n-text-domain](/packages/eslint-plugin/docs/rules/i18n-text-domain.md)|Enforce passing valid text domains|✓
+[i18n-translator-comments](/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)|Enforce adding translator comments|✓
### Legacy
diff --git a/packages/eslint-plugin/configs/jsdoc.js b/packages/eslint-plugin/configs/jsdoc.js
index be11e0013dff15..e71bad9f053365 100644
--- a/packages/eslint-plugin/configs/jsdoc.js
+++ b/packages/eslint-plugin/configs/jsdoc.js
@@ -63,6 +63,7 @@ const typescriptUtilityTypes = [
'unknown',
'never',
'NodeJS',
+ 'AsyncIterableIterator',
];
module.exports = {
@@ -80,7 +81,7 @@ module.exports = {
},
rules: {
'jsdoc/no-undefined-types': [
- 'warn',
+ 'error',
{
definedTypes: [
// Required to reference browser types because we don't have the `browser` environment enabled for the project.
@@ -93,6 +94,7 @@ module.exports = {
...temporaryWordPressInternalTypes,
...temporaryExternalTypes,
'void',
+ 'JSX',
],
},
],
diff --git a/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md b/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md
index d9564698535a96..6fa5985e7f5178 100644
--- a/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md
+++ b/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md
@@ -1,4 +1,4 @@
-# Disallow collapsible whitespace in translatable strings. (i18n-no-collapsible-whitespace)
+# Disallow collapsible whitespace in translatable strings (i18n-no-collapsible-whitespace)
Using complex whitespace in translatable strings and relying on HTML to collapse it can make translation more difficult and lead to unnecessary retranslation.
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index 523b779afb360a..3c10b8abfd0810 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/eslint-plugin",
- "version": "5.0.1",
+ "version": "5.1.0",
"description": "ESLint plugin for WordPress development.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js b/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js
index 1212c90d998ed7..d2c78263e61ed4 100644
--- a/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js
+++ b/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js
@@ -16,6 +16,12 @@ const ruleTester = new RuleTester( {
ruleTester.run( 'i18n-text-domain', rule, {
valid: [
+ {
+ code: `_x( 'Hello World' )`,
+ },
+ {
+ code: `_x( 'Hello World', 'random' )`,
+ },
{
code: `__( 'Hello World' )`,
options: [ { allowedTextDomain: 'default' } ],
diff --git a/packages/eslint-plugin/rules/i18n-text-domain.js b/packages/eslint-plugin/rules/i18n-text-domain.js
index 94b0619372d547..b47564738d06e2 100644
--- a/packages/eslint-plugin/rules/i18n-text-domain.js
+++ b/packages/eslint-plugin/rules/i18n-text-domain.js
@@ -48,7 +48,6 @@ module.exports = {
},
{
type: 'string',
- default: 'default',
},
],
},
@@ -68,12 +67,14 @@ module.exports = {
},
create( context ) {
const options = context.options[ 0 ] || {};
- const { allowedTextDomain = 'default' } = options;
+ const { allowedTextDomain } = options;
const allowedTextDomains = Array.isArray( allowedTextDomain )
? allowedTextDomain
- : [ allowedTextDomain ];
+ : [ allowedTextDomain ].filter( ( value ) => value );
const canFixTextDomain = allowedTextDomains.length === 1;
- const allowDefault = allowedTextDomains.includes( 'default' );
+ const allowDefault =
+ allowedTextDomains.length === 0 ||
+ allowedTextDomains.includes( 'default' );
return {
CallExpression( node ) {
@@ -134,7 +135,10 @@ module.exports = {
return;
}
- if ( ! allowedTextDomains.includes( value ) ) {
+ if (
+ allowedTextDomains.length &&
+ ! allowedTextDomains.includes( value )
+ ) {
const replaceTextDomain = ( fixer ) => {
return fixer.replaceTextRange(
// account for quotes.
diff --git a/packages/format-library/CHANGELOG.md b/packages/format-library/CHANGELOG.md
index 2695afd6640623..c194649c69c0d9 100644
--- a/packages/format-library/CHANGELOG.md
+++ b/packages/format-library/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.8.0 (2019-08-29)
### Internal
diff --git a/packages/format-library/package.json b/packages/format-library/package.json
index 57f0e5e864ee03..40fe45e699d587 100644
--- a/packages/format-library/package.json
+++ b/packages/format-library/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/format-library",
- "version": "1.16.1",
+ "version": "1.17.0",
"description": "Format library for the WordPress editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/format-library/src/default-formats.js b/packages/format-library/src/default-formats.js
index ce6a9b5f73679b..dfc931ec41e606 100644
--- a/packages/format-library/src/default-formats.js
+++ b/packages/format-library/src/default-formats.js
@@ -9,6 +9,8 @@ import { link } from './link';
import { strikethrough } from './strikethrough';
import { underline } from './underline';
import { textColor } from './text-color';
+import { subscript } from './subscript';
+import { superscript } from './superscript';
export default [
bold,
@@ -19,4 +21,6 @@ export default [
strikethrough,
underline,
textColor,
+ subscript,
+ superscript,
];
diff --git a/packages/format-library/src/subscript/index.js b/packages/format-library/src/subscript/index.js
new file mode 100644
index 00000000000000..4cf6026f38d051
--- /dev/null
+++ b/packages/format-library/src/subscript/index.js
@@ -0,0 +1,36 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { toggleFormat } from '@wordpress/rich-text';
+import { RichTextToolbarButton } from '@wordpress/block-editor';
+import { subscript as subscriptIcon } from '@wordpress/icons';
+
+const name = 'core/subscript';
+const title = __( 'Subscript' );
+
+export const subscript = {
+ name,
+ title,
+ tagName: 'sub',
+ className: null,
+ edit( { isActive, value, onChange, onFocus } ) {
+ function onToggle() {
+ onChange( toggleFormat( value, { type: name } ) );
+ }
+
+ function onClick() {
+ onToggle();
+ onFocus();
+ }
+
+ return (
+
+ );
+ },
+};
diff --git a/packages/format-library/src/superscript/index.js b/packages/format-library/src/superscript/index.js
new file mode 100644
index 00000000000000..06bd7f03520d53
--- /dev/null
+++ b/packages/format-library/src/superscript/index.js
@@ -0,0 +1,36 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+import { toggleFormat } from '@wordpress/rich-text';
+import { RichTextToolbarButton } from '@wordpress/block-editor';
+import { superscript as superscriptIcon } from '@wordpress/icons';
+
+const name = 'core/superscript';
+const title = __( 'Superscript' );
+
+export const superscript = {
+ name,
+ title,
+ tagName: 'sup',
+ className: null,
+ edit( { isActive, value, onChange, onFocus } ) {
+ function onToggle() {
+ onChange( toggleFormat( value, { type: name } ) );
+ }
+
+ function onClick() {
+ onToggle();
+ onFocus();
+ }
+
+ return (
+
+ );
+ },
+};
diff --git a/packages/hooks/CHANGELOG.md b/packages/hooks/CHANGELOG.md
index acdcc9047ba288..2d2e4c013e4440 100644
--- a/packages/hooks/CHANGELOG.md
+++ b/packages/hooks/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.6.0 (2019-08-29)
### New Feature
diff --git a/packages/html-entities/CHANGELOG.md b/packages/html-entities/CHANGELOG.md
index d0c96c0eef6a5f..1f22d5a97a8500 100644
--- a/packages/html-entities/CHANGELOG.md
+++ b/packages/html-entities/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.7.0 (2020-04-15)
diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md
index bc2101147eda49..3c58547c435d91 100644
--- a/packages/i18n/CHANGELOG.md
+++ b/packages/i18n/CHANGELOG.md
@@ -1,4 +1,12 @@
-## Master
+
+
+## Unreleased
+
+## 3.12.0 (2020-04-30)
+
+### Bug Fix
+
+- Relax type of `sprintf` arguments type ([#21919](https://github.com/WordPress/gutenberg/pull/21919))
## 3.11.0 (2020-04-15)
diff --git a/packages/i18n/README.md b/packages/i18n/README.md
index f57ce4124c191b..366b034f453b78 100644
--- a/packages/i18n/README.md
+++ b/packages/i18n/README.md
@@ -79,7 +79,7 @@ _Related_
_Parameters_
- _format_ `string`: The format of the string to generate.
-- _args_ `...string`: Arguments to apply to the format.
+- _args_ `...*`: Arguments to apply to the format.
_Returns_
diff --git a/packages/i18n/package.json b/packages/i18n/package.json
index 7c341899f1700e..e86408cb89b00e 100644
--- a/packages/i18n/package.json
+++ b/packages/i18n/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/i18n",
- "version": "3.11.0",
+ "version": "3.12.0",
"description": "WordPress internationalization (i18n) library.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/i18n/src/sprintf.js b/packages/i18n/src/sprintf.js
index 397fe7abe4e40f..90eca75beae885 100644
--- a/packages/i18n/src/sprintf.js
+++ b/packages/i18n/src/sprintf.js
@@ -18,7 +18,7 @@ const logErrorOnce = memoize( console.error ); // eslint-disable-line no-console
* original format string is returned.
*
* @param {string} format The format of the string to generate.
- * @param {...string} args Arguments to apply to the format.
+ * @param {...*} args Arguments to apply to the format.
*
* @see http://www.diveintojavascript.com/projects/javascript-sprintf
*
diff --git a/packages/i18n/src/test/sprintf.js b/packages/i18n/src/test/sprintf.js
index 035d3b3a4b3d41..05000ce401a57d 100644
--- a/packages/i18n/src/test/sprintf.js
+++ b/packages/i18n/src/test/sprintf.js
@@ -23,5 +23,11 @@ describe( 'i18n', () => {
expect( result ).toBe( 'bonjour Riad' );
} );
+
+ it( 'replaces named placeholders', () => {
+ const result = sprintf( 'bonjour %(name)s', { name: 'Riad' } );
+
+ expect( result ).toBe( 'bonjour Riad' );
+ } );
} );
} );
diff --git a/packages/icons/CHANGELOG.md b/packages/icons/CHANGELOG.md
index ef1afdc9561f8d..038185218d109f 100644
--- a/packages/icons/CHANGELOG.md
+++ b/packages/icons/CHANGELOG.md
@@ -1,4 +1,14 @@
-## Master
+
+
+## Unreleased
+
+### Breaking change
+
+- `star` icon removed as it is duplicative of `star-filled`. ([#21825](https://github.com/WordPress/gutenberg/pull/21825))
+
+### New Feature
+
+- Include TypeScript type declarations ([#21781](https://github.com/WordPress/gutenberg/pull/21781))
## 1.3.1 (2020-04-15)
@@ -9,7 +19,7 @@
## 1.3.0 (2020-04-15)
-- Include TypeScript type declarations ([#21487](https://github.com/WordPress/gutenberg/pull/21487))
+- Include TypeScript type declarations ([#21487](https://github.com/WordPress/gutenberg/pull/21487))
## 1.0.0 (2020-02-04)
diff --git a/packages/icons/package.json b/packages/icons/package.json
index dd1f25f846c424..471ffce3b00cdd 100644
--- a/packages/icons/package.json
+++ b/packages/icons/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/icons",
- "version": "1.3.1",
+ "version": "1.4.0",
"description": "WordPress Icons package, based on dashicon.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -22,6 +22,7 @@
"main": "build/index.js",
"module": "build-module/index.js",
"react-native": "src/index",
+ "types": "build-types",
"dependencies": {
"@babel/runtime": "^7.9.2",
"@wordpress/element": "../element",
diff --git a/packages/icons/src/index.js b/packages/icons/src/index.js
index 9126efadfb0b56..a998627afd83a0 100644
--- a/packages/icons/src/index.js
+++ b/packages/icons/src/index.js
@@ -20,6 +20,7 @@ export { default as camera } from './library/camera';
export { default as capturePhoto } from './library/capture-photo';
export { default as captureVideo } from './library/capture-video';
export { default as category } from './library/category';
+export { default as chartBar } from './library/chart-bar';
export { default as chartLine } from './library/chart-line';
export { default as check } from './library/check';
export { default as chevronDown } from './library/chevron-down';
@@ -47,11 +48,15 @@ export { default as external } from './library/external';
export { default as file } from './library/file';
export { default as formatBold } from './library/format-bold';
export { default as formatIndent } from './library/format-indent';
+export { default as formatIndentRTL } from './library/format-indent-rtl';
export { default as formatItalic } from './library/format-italic';
export { default as formatListBullets } from './library/format-list-bullets';
+export { default as formatListBulletsRTL } from './library/format-list-bullets-rtl';
export { default as formatListNumbered } from './library/format-list-numbered';
+export { default as formatListNumberedRTL } from './library/format-list-numbered-rtl';
export { default as formatLtr } from './library/format-ltr';
export { default as formatOutdent } from './library/format-outdent';
+export { default as formatOutdentRTL } from './library/format-outdent-rtl';
export { default as formatRtl } from './library/format-rtl';
export { default as formatStrikethrough } from './library/format-strikethrough';
export { default as gallery } from './library/gallery';
@@ -62,6 +67,7 @@ export { default as heading } from './library/heading';
export { default as help } from './library/help';
export { default as inbox } from './library/inbox';
export { default as institution } from './library/institution';
+export { default as home } from './library/home';
export { default as html } from './library/html';
export { default as image } from './library/image';
export { default as info } from './library/info';
@@ -70,12 +76,14 @@ export { default as insertBefore } from './library/insert-before';
export { default as keyboardClose } from './library/keyboard-close';
export { default as keyboardReturn } from './library/keyboard-return';
export { default as layout } from './library/layout';
+export { default as lifesaver } from './library/lifesaver';
export { default as link } from './library/link';
export { default as linkOff } from './library/link-off';
export { default as list } from './library/list';
export { default as mapMarker } from './library/map-marker';
export { default as media } from './library/media';
export { default as mediaAndText } from './library/media-and-text';
+export { default as megaphone } from './library/megaphone';
export { default as menu } from './library/menu';
export { default as minus } from './library/minus';
export { default as mobile } from './library/mobile';
@@ -92,6 +100,7 @@ export { default as positionCenter } from './library/position-center';
export { default as positionLeft } from './library/position-left';
export { default as positionRight } from './library/position-right';
export { default as pencil } from './library/pencil';
+export { default as people } from './library/people';
export { default as pin } from './library/pin';
export { default as plugins } from './library/plugins';
export { default as plusCircleFilled } from './library/plus-circle-filled';
@@ -113,13 +122,14 @@ export { default as search } from './library/search';
export { default as separator } from './library/separator';
export { default as share } from './library/share';
export { default as shortcode } from './library/shortcode';
-export { default as star } from './library/star';
export { default as starEmpty } from './library/star-empty';
export { default as starFilled } from './library/star-filled';
export { default as starHalf } from './library/star-half';
export { default as stretchFullWidth } from './library/stretch-full-width';
export { default as shipping } from './library/shipping';
export { default as stretchWide } from './library/stretch-wide';
+export { default as subscript } from './library/subscript';
+export { default as superscript } from './library/superscript';
export { default as tableColumnAfter } from './library/table-column-after';
export { default as tableColumnBefore } from './library/table-column-before';
export { default as tableColumnDelete } from './library/table-column-delete';
@@ -131,6 +141,7 @@ export { default as tag } from './library/tag';
export { default as textColor } from './library/text-color';
export { default as tablet } from './library/tablet';
export { default as title } from './library/title';
+export { default as tool } from './library/tool';
export { default as trash } from './library/trash';
export { default as typography } from './library/typography';
export { default as undo } from './library/undo';
diff --git a/packages/icons/src/library/arrow-left.js b/packages/icons/src/library/arrow-left.js
index 859468b10cdf9d..2773ca85091d91 100644
--- a/packages/icons/src/library/arrow-left.js
+++ b/packages/icons/src/library/arrow-left.js
@@ -4,8 +4,8 @@
import { SVG, Path } from '@wordpress/primitives';
const arrowLeft = (
-
-
+
+
);
diff --git a/packages/icons/src/library/box.js b/packages/icons/src/library/box.js
index c2908c5a8adb38..d5020c439433f0 100644
--- a/packages/icons/src/library/box.js
+++ b/packages/icons/src/library/box.js
@@ -6,9 +6,9 @@ import { Path, SVG } from '@wordpress/primitives';
const box = (
);
diff --git a/packages/icons/src/library/chart-bar.js b/packages/icons/src/library/chart-bar.js
new file mode 100644
index 00000000000000..560ae459677d90
--- /dev/null
+++ b/packages/icons/src/library/chart-bar.js
@@ -0,0 +1,16 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const chartBar = (
+
+
+
+);
+
+export default chartBar;
diff --git a/packages/icons/src/library/cog.js b/packages/icons/src/library/cog.js
index cfa3336f19693a..e520e5c66d9a53 100644
--- a/packages/icons/src/library/cog.js
+++ b/packages/icons/src/library/cog.js
@@ -5,7 +5,11 @@ import { SVG, Path } from '@wordpress/primitives';
const cog = (
-
+
);
diff --git a/packages/icons/src/library/currency-pound.js b/packages/icons/src/library/currency-pound.js
index d2ab8494f3c5b3..e027e2ba955c33 100644
--- a/packages/icons/src/library/currency-pound.js
+++ b/packages/icons/src/library/currency-pound.js
@@ -6,7 +6,7 @@ import { Path, SVG } from '@wordpress/primitives';
const currencyPound = (
diff --git a/packages/icons/src/library/format-indent-rtl.js b/packages/icons/src/library/format-indent-rtl.js
new file mode 100644
index 00000000000000..082be1cd1535a5
--- /dev/null
+++ b/packages/icons/src/library/format-indent-rtl.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const formatIndentRTL = (
+
+
+
+);
+
+export default formatIndentRTL;
diff --git a/packages/icons/src/library/format-list-bullets-rtl.js b/packages/icons/src/library/format-list-bullets-rtl.js
new file mode 100644
index 00000000000000..164fe49248ea8c
--- /dev/null
+++ b/packages/icons/src/library/format-list-bullets-rtl.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const formatListBulletsRTL = (
+
+
+
+);
+
+export default formatListBulletsRTL;
diff --git a/packages/icons/src/library/format-list-numbered-rtl.js b/packages/icons/src/library/format-list-numbered-rtl.js
new file mode 100644
index 00000000000000..23c3afdeac55d4
--- /dev/null
+++ b/packages/icons/src/library/format-list-numbered-rtl.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const formatListNumberedRTL = (
+
+
+
+);
+
+export default formatListNumberedRTL;
diff --git a/packages/icons/src/library/format-outdent-rtl.js b/packages/icons/src/library/format-outdent-rtl.js
new file mode 100644
index 00000000000000..06ee913afcf647
--- /dev/null
+++ b/packages/icons/src/library/format-outdent-rtl.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const formatOutdentRTL = (
+
+
+
+);
+
+export default formatOutdentRTL;
diff --git a/packages/icons/src/library/help.js b/packages/icons/src/library/help.js
index a5392b4e33625a..9de427fd0f6d65 100644
--- a/packages/icons/src/library/help.js
+++ b/packages/icons/src/library/help.js
@@ -4,8 +4,8 @@
import { SVG, Path } from '@wordpress/primitives';
const help = (
-
-
+
+
);
diff --git a/packages/icons/src/library/home.js b/packages/icons/src/library/home.js
new file mode 100644
index 00000000000000..3ebc804eb024fe
--- /dev/null
+++ b/packages/icons/src/library/home.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const home = (
+
+
+
+);
+
+export default home;
diff --git a/packages/icons/src/library/inbox.js b/packages/icons/src/library/inbox.js
index 41b3cf33448cff..6957ba9570a83e 100644
--- a/packages/icons/src/library/inbox.js
+++ b/packages/icons/src/library/inbox.js
@@ -6,9 +6,9 @@ import { Path, SVG } from '@wordpress/primitives';
const inbox = (
);
diff --git a/packages/icons/src/library/institution.js b/packages/icons/src/library/institution.js
index 76cb54b6f188a9..8151e60b526830 100644
--- a/packages/icons/src/library/institution.js
+++ b/packages/icons/src/library/institution.js
@@ -6,9 +6,9 @@ import { Path, SVG } from '@wordpress/primitives';
const institute = (
);
diff --git a/packages/icons/src/library/lifesaver.js b/packages/icons/src/library/lifesaver.js
new file mode 100644
index 00000000000000..f82af9b48c29d9
--- /dev/null
+++ b/packages/icons/src/library/lifesaver.js
@@ -0,0 +1,16 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const lifesaver = (
+
+
+
+);
+
+export default lifesaver;
diff --git a/packages/icons/src/library/megaphone.js b/packages/icons/src/library/megaphone.js
new file mode 100644
index 00000000000000..293c45192e58ad
--- /dev/null
+++ b/packages/icons/src/library/megaphone.js
@@ -0,0 +1,16 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const megaphone = (
+
+
+
+);
+
+export default megaphone;
diff --git a/packages/icons/src/library/payment.js b/packages/icons/src/library/payment.js
index 771668ccd0035c..5e60fe32a821c5 100644
--- a/packages/icons/src/library/payment.js
+++ b/packages/icons/src/library/payment.js
@@ -6,9 +6,9 @@ import { Path, SVG } from '@wordpress/primitives';
const payment = (
);
diff --git a/packages/icons/src/library/people.js b/packages/icons/src/library/people.js
new file mode 100644
index 00000000000000..a521af10f3b77b
--- /dev/null
+++ b/packages/icons/src/library/people.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const people = (
+
+
+
+);
+
+export default people;
diff --git a/packages/icons/src/library/percent.js b/packages/icons/src/library/percent.js
index 663eb4e10b1855..71fb27b3deaa10 100644
--- a/packages/icons/src/library/percent.js
+++ b/packages/icons/src/library/percent.js
@@ -6,9 +6,9 @@ import { Path, SVG } from '@wordpress/primitives';
const percent = (
);
diff --git a/packages/icons/src/library/plugins.js b/packages/icons/src/library/plugins.js
index 511cc4597576c3..29e9cf7f2dadba 100644
--- a/packages/icons/src/library/plugins.js
+++ b/packages/icons/src/library/plugins.js
@@ -4,8 +4,8 @@
import { SVG, Path } from '@wordpress/primitives';
const plugins = (
-
-
+
+
);
diff --git a/packages/icons/src/library/receipt.js b/packages/icons/src/library/receipt.js
index 7db4280a882ef4..7d773b7bdbdf4a 100644
--- a/packages/icons/src/library/receipt.js
+++ b/packages/icons/src/library/receipt.js
@@ -6,9 +6,9 @@ import { Path, SVG } from '@wordpress/primitives';
const receipt = (
);
diff --git a/packages/icons/src/library/star-empty.js b/packages/icons/src/library/star-empty.js
index e811f8d3c03557..c082333ed600ce 100644
--- a/packages/icons/src/library/star-empty.js
+++ b/packages/icons/src/library/star-empty.js
@@ -4,8 +4,12 @@
import { SVG, Path } from '@wordpress/primitives';
const starEmpty = (
-
-
+
+
);
diff --git a/packages/icons/src/library/star-filled.js b/packages/icons/src/library/star-filled.js
index 76888ee1f03b26..df4217bb78097e 100644
--- a/packages/icons/src/library/star-filled.js
+++ b/packages/icons/src/library/star-filled.js
@@ -4,8 +4,8 @@
import { SVG, Path } from '@wordpress/primitives';
const starFilled = (
-
-
+
+
);
diff --git a/packages/icons/src/library/star-half.js b/packages/icons/src/library/star-half.js
index ebaf2fb754f394..c3a4b18ed60d3f 100644
--- a/packages/icons/src/library/star-half.js
+++ b/packages/icons/src/library/star-half.js
@@ -4,8 +4,8 @@
import { SVG, Path } from '@wordpress/primitives';
const starHalf = (
-
-
+
+
);
diff --git a/packages/icons/src/library/star.js b/packages/icons/src/library/star.js
deleted file mode 100644
index ad5546e5dcfe2b..00000000000000
--- a/packages/icons/src/library/star.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { Path, SVG } from '@wordpress/primitives';
-
-const star = (
-
-
-
-);
-
-export default star;
diff --git a/packages/icons/src/library/subscript.js b/packages/icons/src/library/subscript.js
new file mode 100644
index 00000000000000..ac536c58135ca6
--- /dev/null
+++ b/packages/icons/src/library/subscript.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const subscript = (
+
+
+
+);
+
+export default subscript;
diff --git a/packages/icons/src/library/superscript.js b/packages/icons/src/library/superscript.js
new file mode 100644
index 00000000000000..861ea3ceada0d3
--- /dev/null
+++ b/packages/icons/src/library/superscript.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const superscript = (
+
+
+
+);
+
+export default superscript;
diff --git a/packages/icons/src/library/tool.js b/packages/icons/src/library/tool.js
new file mode 100644
index 00000000000000..44aa2be53cee97
--- /dev/null
+++ b/packages/icons/src/library/tool.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const tool = (
+
+
+
+);
+
+export default tool;
diff --git a/packages/icons/_tsconfig.json b/packages/icons/tsconfig.json
similarity index 100%
rename from packages/icons/_tsconfig.json
rename to packages/icons/tsconfig.json
diff --git a/packages/interface/CHANGELOG.md b/packages/interface/CHANGELOG.md
index e597eb0e1e333d..f11e8cd3010869 100644
--- a/packages/interface/CHANGELOG.md
+++ b/packages/interface/CHANGELOG.md
@@ -1,3 +1,5 @@
-## Master
+
+
+## Unreleased
Initial release.
diff --git a/packages/interface/package.json b/packages/interface/package.json
index 5397a0a823f94d..0330ce29266716 100644
--- a/packages/interface/package.json
+++ b/packages/interface/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/interface",
- "version": "0.1.1",
+ "version": "0.2.0",
"description": "Interface module for WordPress. The package contains shared functionality across the modern JavaScript-based WordPress screens.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/interface/src/components/complementary-area/style.scss b/packages/interface/src/components/complementary-area/style.scss
index 469e6605d13d5f..30ba90853102b8 100644
--- a/packages/interface/src/components/complementary-area/style.scss
+++ b/packages/interface/src/components/complementary-area/style.scss
@@ -65,6 +65,7 @@
margin: 1.5em 0;
}
+ div.components-toolbar-group,
div.components-toolbar {
box-shadow: none;
margin-bottom: 1.5em;
diff --git a/packages/is-shallow-equal/CHANGELOG.md b/packages/is-shallow-equal/CHANGELOG.md
index f85ccb265d14e0..0501783db3f36e 100644
--- a/packages/is-shallow-equal/CHANGELOG.md
+++ b/packages/is-shallow-equal/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.0.0 (2020-04-15)
diff --git a/packages/jest-console/CHANGELOG.md b/packages/jest-console/CHANGELOG.md
index 3533278048ea45..8c6b426e9b4669 100644
--- a/packages/jest-console/CHANGELOG.md
+++ b/packages/jest-console/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 3.0.0 (2019-03-06)
### Breaking Changes
diff --git a/packages/jest-preset-default/CHANGELOG.md b/packages/jest-preset-default/CHANGELOG.md
index 0c26af370bd2ea..e7169b2d72bc86 100644
--- a/packages/jest-preset-default/CHANGELOG.md
+++ b/packages/jest-preset-default/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 6.0.0 (2020-04-15)
diff --git a/packages/jest-puppeteer-axe/CHANGELOG.md b/packages/jest-puppeteer-axe/CHANGELOG.md
index 61266033660bbc..06218151ed8beb 100644
--- a/packages/jest-puppeteer-axe/CHANGELOG.md
+++ b/packages/jest-puppeteer-axe/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## New Features
diff --git a/packages/jest-puppeteer-axe/package.json b/packages/jest-puppeteer-axe/package.json
index 06f49b3c279edf..275d56e710332a 100644
--- a/packages/jest-puppeteer-axe/package.json
+++ b/packages/jest-puppeteer-axe/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/jest-puppeteer-axe",
- "version": "1.7.0",
+ "version": "1.8.0",
"description": "Axe API integration with Jest and Puppeteer.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/keyboard-shortcuts/CHANGELOG.md b/packages/keyboard-shortcuts/CHANGELOG.md
index 15517d8f1ce7c7..12970d3948183a 100644
--- a/packages/keyboard-shortcuts/CHANGELOG.md
+++ b/packages/keyboard-shortcuts/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.0.0 (2020-02-04)
diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json
index 40bc5926ef228f..dbb18232c2a875 100644
--- a/packages/keyboard-shortcuts/package.json
+++ b/packages/keyboard-shortcuts/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/keyboard-shortcuts",
- "version": "1.3.1",
+ "version": "1.4.0",
"description": "Handling keyboard shortcuts.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/keycodes/CHANGELOG.md b/packages/keycodes/CHANGELOG.md
index ac2aec6c368b01..11185984d7c207 100644
--- a/packages/keycodes/CHANGELOG.md
+++ b/packages/keycodes/CHANGELOG.md
@@ -1,4 +1,8 @@
-## Master
+
+
+## Unreleased
+
+## 2.12.0 (2020-04-30)
### Bug Fixes
diff --git a/packages/keycodes/package.json b/packages/keycodes/package.json
index 8462ac6515b89c..8f01895dcf6d67 100644
--- a/packages/keycodes/package.json
+++ b/packages/keycodes/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/keycodes",
- "version": "2.11.0",
+ "version": "2.12.0",
"description": "Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/library-export-default-webpack-plugin/CHANGELOG.md b/packages/library-export-default-webpack-plugin/CHANGELOG.md
index dec500a334ca23..e02cd9bc425b95 100644
--- a/packages/library-export-default-webpack-plugin/CHANGELOG.md
+++ b/packages/library-export-default-webpack-plugin/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.3.0 (2019-06-12)
### Internal
diff --git a/packages/list-reusable-blocks/CHANGELOG.md b/packages/list-reusable-blocks/CHANGELOG.md
index f92feaacc6ecb7..ea8f4ba88ead69 100644
--- a/packages/list-reusable-blocks/CHANGELOG.md
+++ b/packages/list-reusable-blocks/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 1.1.18 (2019-01-03)
## 1.1.17 (2018-12-12)
diff --git a/packages/list-reusable-blocks/package.json b/packages/list-reusable-blocks/package.json
index 663dd41ec67a52..5554b5cee2573a 100644
--- a/packages/list-reusable-blocks/package.json
+++ b/packages/list-reusable-blocks/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/list-reusable-blocks",
- "version": "1.15.1",
+ "version": "1.16.0",
"description": "Adding Export/Import support to the reusable blocks listing.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/media-utils/CHANGELOG.md b/packages/media-utils/CHANGELOG.md
index 08666d6e2cf0c1..4123f5920bcc9d 100644
--- a/packages/media-utils/CHANGELOG.md
+++ b/packages/media-utils/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 0.1.0 (2019-01-03)
### New Features
diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json
index 2ba1a89b4349cf..6f098ea6c074c2 100644
--- a/packages/media-utils/package.json
+++ b/packages/media-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/media-utils",
- "version": "1.9.1",
+ "version": "1.10.0",
"description": "WordPress Media Upload Utils.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/notices/CHANGELOG.md b/packages/notices/CHANGELOG.md
index 94f102b81804fc..dbe2fad7a0e713 100644
--- a/packages/notices/CHANGELOG.md
+++ b/packages/notices/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 2.0.0 (2020-02-10)
diff --git a/packages/notices/package.json b/packages/notices/package.json
index 210be709b0f20e..2d256d7489794f 100644
--- a/packages/notices/package.json
+++ b/packages/notices/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/notices",
- "version": "2.2.1",
+ "version": "2.3.0",
"description": "State management for notices.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/npm-package-json-lint-config/CHANGELOG.md b/packages/npm-package-json-lint-config/CHANGELOG.md
index e129f661dd1925..443861faea465e 100644
--- a/packages/npm-package-json-lint-config/CHANGELOG.md
+++ b/packages/npm-package-json-lint-config/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 3.0.0 (2020-04-15)
@@ -10,7 +12,7 @@
### Breaking Change
-- Added `type` and `react-native` to the order of preferred properties.
+- Added `type` and `react-native` to the order of preferred properties.
## 1.2.0 (2019-03-06)
diff --git a/packages/nux/CHANGELOG.md b/packages/nux/CHANGELOG.md
index 48b4decaf81c8d..7687dd92c91c3e 100644
--- a/packages/nux/CHANGELOG.md
+++ b/packages/nux/CHANGELOG.md
@@ -1,4 +1,8 @@
-# 3.1.0 (Unreleased)
+
+
+## Unreleased
+
+# 3.1.0 (2019-06-03)
- The `@wordpress/nux` package has been deprecated. Please use the `Guide` component in `@wordpress/components` to show a user guide.
diff --git a/packages/nux/package.json b/packages/nux/package.json
index d32852bec08e1f..5939b12d660f3f 100644
--- a/packages/nux/package.json
+++ b/packages/nux/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/nux",
- "version": "3.14.1",
+ "version": "3.15.0",
"description": "NUX (New User eXperience) module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/plugins/CHANGELOG.md b/packages/plugins/CHANGELOG.md
index ae2a7d777e863d..4aaa458a30667f 100644
--- a/packages/plugins/CHANGELOG.md
+++ b/packages/plugins/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.0.10 (2019-01-03)
## 2.0.9 (2018-11-15)
diff --git a/packages/plugins/package.json b/packages/plugins/package.json
index c04c28315a696c..0ac7a49d09ea77 100644
--- a/packages/plugins/package.json
+++ b/packages/plugins/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/plugins",
- "version": "2.14.1",
+ "version": "2.15.0",
"description": "Plugins module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/postcss-themes/CHANGELOG.md b/packages/postcss-themes/CHANGELOG.md
index d1e71c6d4bfaed..e33679493b94c6 100644
--- a/packages/postcss-themes/CHANGELOG.md
+++ b/packages/postcss-themes/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.0.0 (2019-03-06)
### Breaking change
diff --git a/packages/prettier-config/CHANGELOG.md b/packages/prettier-config/CHANGELOG.md
index 320942d34efb3a..b982dbc13a6d5d 100644
--- a/packages/prettier-config/CHANGELOG.md
+++ b/packages/prettier-config/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 0.1.0 (2020-04-01)
diff --git a/packages/primitives/CHANGELOG.md b/packages/primitives/CHANGELOG.md
index 381269dfcfe7fc..ce4433776b1896 100644
--- a/packages/primitives/CHANGELOG.md
+++ b/packages/primitives/CHANGELOG.md
@@ -1,4 +1,10 @@
-## Master
+
+
+## Unreleased
+
+### New Feature
+
+- Include TypeScript type declarations ([#21781](https://github.com/WordPress/gutenberg/pull/21781))
## 1.3.1 (2020-04-15)
diff --git a/packages/primitives/package.json b/packages/primitives/package.json
index 349814a1a10446..7184998775d3f1 100644
--- a/packages/primitives/package.json
+++ b/packages/primitives/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/primitives",
- "version": "1.3.1",
+ "version": "1.4.0",
"description": "WordPress cross-platform primitives.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -22,6 +22,7 @@
"module": "build-module/index.js",
"react-native": "src/index",
"sideEffects": false,
+ "types": "build-types",
"dependencies": {
"@babel/runtime": "^7.9.2",
"@wordpress/element": "file:../element",
diff --git a/packages/primitives/_tsconfig.json b/packages/primitives/tsconfig.json
similarity index 100%
rename from packages/primitives/_tsconfig.json
rename to packages/primitives/tsconfig.json
diff --git a/packages/priority-queue/CHANGELOG.md b/packages/priority-queue/CHANGELOG.md
index 203f7825564a5e..f07646a38d51b1 100644
--- a/packages/priority-queue/CHANGELOG.md
+++ b/packages/priority-queue/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.6.0 (2020-04-15)
diff --git a/packages/project-management-automation/CHANGELOG.md b/packages/project-management-automation/CHANGELOG.md
index 4a166fb4115d13..ef83db99b32db6 100644
--- a/packages/project-management-automation/CHANGELOG.md
+++ b/packages/project-management-automation/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.4.0 (2020-04-15)
diff --git a/packages/project-management-automation/lib/add-milestone.js b/packages/project-management-automation/lib/add-milestone.js
index 1716a8bea4f024..35c60f2ffdc274 100644
--- a/packages/project-management-automation/lib/add-milestone.js
+++ b/packages/project-management-automation/lib/add-milestone.js
@@ -7,14 +7,13 @@ const getAssociatedPullRequest = require( './get-associated-pull-request' );
/** @typedef {import('@octokit/rest').HookError} HookError */
/** @typedef {import('@actions/github').GitHub} GitHub */
/** @typedef {import('@octokit/webhooks').WebhookPayloadPush} WebhookPayloadPush */
+/** @typedef {import('@octokit/rest').IssuesListMilestonesForRepoResponseItem} OktokitIssuesListMilestonesForRepoResponseItem */
-// Milestone due dates are calculated from a known due date:
-// 6.3, which was due on August 12 2019.
-const REFERENCE_MAJOR = 6;
-const REFERENCE_MINOR = 3;
-const REFERENCE_DATE = '2019-08-12';
-
-// Releases are every 14 days.
+/**
+ * Number of expected days elapsed between releases.
+ *
+ * @type {number}
+ */
const DAYS_PER_RELEASE = 14;
/**
@@ -34,6 +33,45 @@ const isDuplicateValidationError = ( error ) =>
Array.isArray( error.errors ) &&
error.errors.some( ( { code } ) => code === 'already_exists' );
+/**
+ * Returns a promise resolving to a milestone by a given title, if exists.
+ *
+ * @param {GitHub} octokit Initialized Octokit REST client.
+ * @param {string} owner Repository owner.
+ * @param {string} repo Repository name.
+ * @param {string} title Milestone title.
+ *
+ * @return {Promise} Promise resolving to milestone, if exists.
+ */
+async function getMilestoneByTitle( octokit, owner, repo, title ) {
+ /** @type {Partial} */
+ const params = {
+ state: 'all',
+ sort: 'due_on',
+ direction: 'desc',
+ };
+
+ const options = octokit.issues.listMilestonesForRepo.endpoint.merge( {
+ owner,
+ repo,
+ ...params,
+ } );
+
+ /**
+ * @type {AsyncIterableIterator>}
+ */
+ const responses = octokit.paginate.iterator( options );
+
+ for await ( const response of responses ) {
+ const milestones = response.data;
+ for ( const milestone of milestones ) {
+ if ( milestone.title === title ) {
+ return milestone;
+ }
+ }
+ }
+}
+
/**
* Assigns the correct milestone to PRs once merged.
*
@@ -53,16 +91,14 @@ async function addMilestone( payload, octokit ) {
}
debug( 'add-milestone: Fetching current milestone' );
+ const owner = payload.repository.owner.login;
+ const repo = payload.repository.name;
const {
- data: { milestone },
- } = await octokit.issues.get( {
- owner: payload.repository.owner.login,
- repo: payload.repository.name,
- issue_number: prNumber,
- } );
+ data: { milestone: pullMilestone },
+ } = await octokit.issues.get( { owner, repo, issue_number: prNumber } );
- if ( milestone ) {
+ if ( pullMilestone ) {
debug(
'add-milestone: Pull request already has a milestone. Aborting'
);
@@ -74,8 +110,8 @@ async function addMilestone( payload, octokit ) {
const {
data: { content, encoding },
} = await octokit.repos.getContents( {
- owner: payload.repository.owner.login,
- repo: payload.repository.name,
+ owner,
+ repo,
path: 'package.json',
} );
@@ -87,6 +123,20 @@ async function addMilestone( payload, octokit ) {
debug( `add-milestone: Current plugin version is ${ major }.${ minor }` );
+ const lastTitle = `Gutenberg ${ major }.${ minor }`;
+ const lastMilestone = await getMilestoneByTitle(
+ octokit,
+ owner,
+ repo,
+ lastTitle
+ );
+
+ if ( ! lastMilestone ) {
+ throw new Error(
+ 'Could not find milestone for current version: ' + lastTitle
+ );
+ }
+
if ( minor === 9 ) {
major += 1;
minor = 0;
@@ -94,13 +144,9 @@ async function addMilestone( payload, octokit ) {
minor += 1;
}
- const numVersionsElapsed =
- ( major - REFERENCE_MAJOR ) * 10 + ( minor - REFERENCE_MINOR );
- const numDaysElapsed = numVersionsElapsed * DAYS_PER_RELEASE;
-
// Using UTC for the calculation ensures it's not affected by daylight savings.
- const dueDate = new Date( REFERENCE_DATE );
- dueDate.setUTCDate( dueDate.getUTCDate() + numDaysElapsed );
+ const dueDate = new Date( lastMilestone.due_on );
+ dueDate.setUTCDate( dueDate.getUTCDate() + DAYS_PER_RELEASE );
debug(
`add-milestone: Creating 'Gutenberg ${ major }.${ minor }' milestone, due on ${ dueDate.toISOString() }`
@@ -108,8 +154,8 @@ async function addMilestone( payload, octokit ) {
try {
await octokit.issues.createMilestone( {
- owner: payload.repository.owner.login,
- repo: payload.repository.name,
+ owner,
+ repo,
title: `Gutenberg ${ major }.${ minor }`,
due_on: dueDate.toISOString(),
} );
@@ -127,24 +173,28 @@ async function addMilestone( payload, octokit ) {
debug( 'add-milestone: Fetching all milestones' );
- const { data: milestones } = await octokit.issues.listMilestonesForRepo( {
- owner: payload.repository.owner.login,
- repo: payload.repository.name,
- } );
+ const title = `Gutenberg ${ major }.${ minor }`;
- const [ { number } ] = milestones.filter(
- ( { title } ) => title === `Gutenberg ${ major }.${ minor }`
+ const milestone = await getMilestoneByTitle(
+ octokit,
+ payload.repository.owner.login,
+ payload.repository.name,
+ title
);
+ if ( ! milestone ) {
+ throw new Error( 'Could not rediscover milestone by title: ' + title );
+ }
+
debug(
- `add-milestone: Adding issue #${ prNumber } to milestone #${ number }`
+ `add-milestone: Adding issue #${ prNumber } to milestone #${ milestone.number }`
);
await octokit.issues.update( {
- owner: payload.repository.owner.login,
- repo: payload.repository.name,
+ owner,
+ repo,
issue_number: prNumber,
- milestone: number,
+ milestone: milestone.number,
} );
}
diff --git a/packages/project-management-automation/lib/test/add-milestone.js b/packages/project-management-automation/lib/test/add-milestone.js
index 13ecd80aa9b0a2..4d5c96ca4c293c 100644
--- a/packages/project-management-automation/lib/test/add-milestone.js
+++ b/packages/project-management-automation/lib/test/add-milestone.js
@@ -9,10 +9,17 @@ describe( 'addMilestone', () => {
ref: 'refs/heads/not-master',
};
const octokit = {
+ paginate: {
+ iterator: jest.fn(),
+ },
issues: {
get: jest.fn(),
createMilestone: jest.fn(),
- listMilestonesForRepo: jest.fn(),
+ listMilestonesForRepo: {
+ endpoint: {
+ merge: jest.fn(),
+ },
+ },
update: jest.fn(),
},
repos: {
@@ -24,7 +31,9 @@ describe( 'addMilestone', () => {
expect( octokit.issues.get ).not.toHaveBeenCalled();
expect( octokit.issues.createMilestone ).not.toHaveBeenCalled();
- expect( octokit.issues.listMilestonesForRepo ).not.toHaveBeenCalled();
+ expect(
+ octokit.issues.listMilestonesForRepo.endpoint.merge
+ ).not.toHaveBeenCalled();
expect( octokit.issues.update ).not.toHaveBeenCalled();
expect( octokit.repos.getContents ).not.toHaveBeenCalled();
} );
@@ -41,6 +50,9 @@ describe( 'addMilestone', () => {
},
};
const octokit = {
+ paginate: {
+ iterator: jest.fn(),
+ },
issues: {
get: jest.fn( () =>
Promise.resolve( {
@@ -83,6 +95,29 @@ describe( 'addMilestone', () => {
},
};
const octokit = {
+ paginate: {
+ iterator: jest.fn().mockReturnValue( [
+ Promise.resolve( {
+ data: [
+ {
+ title: 'Gutenberg 6.2',
+ number: 10,
+ due_on: '2019-07-29T00:00:00.000Z',
+ },
+ {
+ title: 'Gutenberg 6.3',
+ number: 11,
+ due_on: '2019-08-12T00:00:00.000Z',
+ },
+ {
+ title: 'Gutenberg 6.4',
+ number: 12,
+ due_on: '2019-08-26T00:00:00.000Z',
+ },
+ ],
+ } ),
+ ] ),
+ },
issues: {
get: jest.fn( () =>
Promise.resolve( {
@@ -92,15 +127,11 @@ describe( 'addMilestone', () => {
} )
),
createMilestone: jest.fn(),
- listMilestonesForRepo: jest.fn( () =>
- Promise.resolve( {
- data: [
- { title: 'Gutenberg 6.2', number: 10 },
- { title: 'Gutenberg 6.3', number: 11 },
- { title: 'Gutenberg 6.4', number: 12 },
- ],
- } )
- ),
+ listMilestonesForRepo: {
+ endpoint: {
+ merge: jest.fn(),
+ },
+ },
update: jest.fn(),
},
repos: {
@@ -137,10 +168,6 @@ describe( 'addMilestone', () => {
title: 'Gutenberg 6.4',
due_on: '2019-08-26T00:00:00.000Z',
} );
- expect( octokit.issues.listMilestonesForRepo ).toHaveBeenCalledWith( {
- owner: 'WordPress',
- repo: 'gutenberg',
- } );
expect( octokit.issues.update ).toHaveBeenCalledWith( {
owner: 'WordPress',
repo: 'gutenberg',
@@ -161,6 +188,29 @@ describe( 'addMilestone', () => {
},
};
const octokit = {
+ paginate: {
+ iterator: jest.fn().mockReturnValue( [
+ Promise.resolve( {
+ data: [
+ {
+ title: 'Gutenberg 6.8',
+ number: 10,
+ due_on: '2019-10-21T00:00:00.000Z',
+ },
+ {
+ title: 'Gutenberg 6.9',
+ number: 11,
+ due_on: '2019-11-04T00:00:00.000Z',
+ },
+ {
+ title: 'Gutenberg 7.0',
+ number: 12,
+ due_on: '2019-11-18T00:00:00.000Z',
+ },
+ ],
+ } ),
+ ] ),
+ },
issues: {
get: jest.fn( () =>
Promise.resolve( {
@@ -170,15 +220,11 @@ describe( 'addMilestone', () => {
} )
),
createMilestone: jest.fn(),
- listMilestonesForRepo: jest.fn( () =>
- Promise.resolve( {
- data: [
- { title: 'Gutenberg 6.8', number: 10 },
- { title: 'Gutenberg 6.9', number: 11 },
- { title: 'Gutenberg 7.0', number: 12 },
- ],
- } )
- ),
+ listMilestonesForRepo: {
+ endpoint: {
+ merge: jest.fn(),
+ },
+ },
update: jest.fn(),
},
repos: {
@@ -215,10 +261,6 @@ describe( 'addMilestone', () => {
title: 'Gutenberg 7.0',
due_on: '2019-11-18T00:00:00.000Z',
} );
- expect( octokit.issues.listMilestonesForRepo ).toHaveBeenCalledWith( {
- owner: 'WordPress',
- repo: 'gutenberg',
- } );
expect( octokit.issues.update ).toHaveBeenCalledWith( {
owner: 'WordPress',
repo: 'gutenberg',
diff --git a/packages/react-native-aztec/RNTAztecView.podspec b/packages/react-native-aztec/RNTAztecView.podspec
index 3bbda789024d1f..aed67f4754b53b 100644
--- a/packages/react-native-aztec/RNTAztecView.podspec
+++ b/packages/react-native-aztec/RNTAztecView.podspec
@@ -18,6 +18,6 @@ Pod::Spec.new do |s|
s.xcconfig = {'OTHER_LDFLAGS' => '-lxml2',
'HEADER_SEARCH_PATHS' => '/usr/include/libxml2'}
s.dependency 'React-Core'
- s.dependency 'WordPress-Aztec-iOS', '~> 1.17.1'
+ s.dependency 'WordPress-Aztec-iOS', '~> 1.19.0'
end
diff --git a/packages/react-native-aztec/android/build.gradle b/packages/react-native-aztec/android/build.gradle
index 26ec5a3a55d3d9..7e7e413a486fc2 100644
--- a/packages/react-native-aztec/android/build.gradle
+++ b/packages/react-native-aztec/android/build.gradle
@@ -12,7 +12,7 @@ buildscript {
wordpressUtilsVersion = '1.22'
espressoVersion = '3.0.1'
- aztecVersion = 'v1.3.39'
+ aztecVersion = 'v1.3.42'
}
repositories {
diff --git a/packages/react-native-aztec/android/src/main/java/org/wordpress/mobile/ReactNativeAztec/ReactAztecText.java b/packages/react-native-aztec/android/src/main/java/org/wordpress/mobile/ReactNativeAztec/ReactAztecText.java
index 76a85b68c0a114..7005d9fc684305 100644
--- a/packages/react-native-aztec/android/src/main/java/org/wordpress/mobile/ReactNativeAztec/ReactAztecText.java
+++ b/packages/react-native-aztec/android/src/main/java/org/wordpress/mobile/ReactNativeAztec/ReactAztecText.java
@@ -30,6 +30,7 @@
import com.facebook.react.views.textinput.ReactTextInputLocalData;
import com.facebook.react.views.textinput.ScrollWatcher;
+import org.wordpress.aztec.AlignmentRendering;
import org.wordpress.aztec.AztecText;
import org.wordpress.aztec.AztecTextFormat;
import org.wordpress.aztec.ITextFormat;
@@ -94,7 +95,7 @@ public class ReactAztecText extends AztecText {
};
public ReactAztecText(ThemedReactContext reactContext) {
- super(reactContext);
+ super(reactContext, AlignmentRendering.VIEW_LEVEL);
setGutenbergMode(true);
@@ -186,6 +187,11 @@ public boolean shouldSkipTidying() {
return isPreTag();
}
+ @Override
+ public boolean shouldIgnoreWhitespace() {
+ return false;
+ }
+
// VisibleForTesting from {@link TextInputEventsTestCase}.
public void requestFocusFromJS() {
mIsJSSettingFocus = true;
diff --git a/packages/react-native-aztec/android/src/main/kotlin/org/wordpress/mobile/ReactNativeAztec/EnterPressedWatcher.kt b/packages/react-native-aztec/android/src/main/kotlin/org/wordpress/mobile/ReactNativeAztec/EnterPressedWatcher.kt
index bd466a3a8c23e7..cc68aac2e17fd4 100644
--- a/packages/react-native-aztec/android/src/main/kotlin/org/wordpress/mobile/ReactNativeAztec/EnterPressedWatcher.kt
+++ b/packages/react-native-aztec/android/src/main/kotlin/org/wordpress/mobile/ReactNativeAztec/EnterPressedWatcher.kt
@@ -18,7 +18,7 @@ interface EnterDeleter {
class EnterPressedWatcher(aztecText: AztecText, var enterDeleter: EnterDeleter) : TextWatcher {
private val aztecTextRef: WeakReference = WeakReference(aztecText)
- private lateinit var textBefore : SpannableStringBuilder
+ private lateinit var textBefore: SpannableStringBuilder
private var start: Int = -1
private var selStart: Int = 0
private var selEnd: Int = 0
@@ -46,7 +46,12 @@ class EnterPressedWatcher(aztecText: AztecText, var enterDeleter: EnterDeleter)
if (newTextCopy[this.start] == Constants.NEWLINE) {
done = false
aztecText.editableText.setSpan(EnterPressedUnderway(), 0, 0, Spanned.SPAN_USER)
- aztecKeyListener.onEnterKey(newTextCopy.replace(this.start, this.start+1, ""), true, selStart, selEnd)
+ aztecKeyListener.onEnterKey(
+ newTextCopy.replace(this.start, this.start + 1, ""),
+ true,
+ selStart,
+ selEnd
+ )
}
}
}
diff --git a/packages/react-native-aztec/ios/RNTAztecView/RCTAztecView.swift b/packages/react-native-aztec/ios/RNTAztecView/RCTAztecView.swift
index 1e6d202c008468..31910f5ff8f980 100644
--- a/packages/react-native-aztec/ios/RNTAztecView/RCTAztecView.swift
+++ b/packages/react-native-aztec/ios/RNTAztecView/RCTAztecView.swift
@@ -136,6 +136,7 @@ class RCTAztecView: Aztec.TextView {
addPlaceholder()
textDragInteraction?.isEnabled = false
storage.htmlConverter.characterToReplaceLastEmptyLine = Character(.zeroWidthSpace)
+ storage.htmlConverter.shouldCollapseSpaces = false
shouldNotifyOfNonUserChanges = false
disableLinkTapRecognizer()
preBackgroundColor = .clear
diff --git a/packages/react-native-bridge/android/build.gradle b/packages/react-native-bridge/android/build.gradle
index ee2e7ceafaf5ca..d08598b03b0037 100644
--- a/packages/react-native-bridge/android/build.gradle
+++ b/packages/react-native-bridge/android/build.gradle
@@ -1,11 +1,14 @@
buildscript {
- def isJitPack = System.getenv('JITPACK').asBoolean()
+ def buildGutenbergMobileJSBundle =
+ System.getenv('SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD').asBoolean()
+ ? false : (rootProject.ext.has("buildGutenbergMobileJSBundle")
+ && rootProject.ext.buildGutenbergMobileJSBundle)
repositories {
jcenter()
google()
- if (isJitPack) {
+ if (buildGutenbergMobileJSBundle) {
maven {
url "https://plugins.gradle.org/m2/"
}
@@ -16,7 +19,7 @@ buildscript {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
- if (isJitPack) {
+ if (buildGutenbergMobileJSBundle) {
classpath "com.moowork.gradle:gradle-node-plugin:1.2.0"
}
}
@@ -25,10 +28,13 @@ buildscript {
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
-def isJitPack = System.getenv('JITPACK').asBoolean()
+def buildGutenbergMobileJSBundle =
+ System.getenv('SUPPRESS_GUTENBERG_MOBILE_JS_BUNDLE_BUILD').asBoolean()
+ ? false : (rootProject.ext.has("buildGutenbergMobileJSBundle")
+ && rootProject.ext.buildGutenbergMobileJSBundle)
-if (isJitPack) {
- println 'Building in JitPack'
+if (buildGutenbergMobileJSBundle) {
+ println 'Building the Gutenberg Mobile JS bundle'
apply plugin: 'com.moowork.node'
@@ -63,6 +69,10 @@ if (isJitPack) {
// Set the work directory where node_modules should be located
nodeModulesDir = file("${project.projectDir}/../../")
}
+
+ yarn_install {
+ args = ['--prefer-offline', '--network-concurrency 1']
+ }
}
// import the `readReactNativeVersion()` function
@@ -155,7 +165,7 @@ dependencies {
releaseImplementation files(hermesPath + "hermes-release.aar")
}
-if (isJitPack) {
+if (buildGutenbergMobileJSBundle) {
def assetsFolder = 'src/main/assets'
def aarFolder = 'src/main/assets'
@@ -163,7 +173,7 @@ if (isJitPack) {
args = ['bundle:android']
}
- task ensureAssetsDirectory {
+ task ensureAssetsDirectory {
doLast {
mkdir assetsFolder
}
@@ -205,7 +215,7 @@ if (isJitPack) {
delete '../../react-native-editor/node_modules'
}
- if (isJitPack) {
+ if (buildGutenbergMobileJSBundle) {
preBuild.dependsOn(cleanupNodeModulesFolder)
cleanupNodeModulesFolder.dependsOn(backupHermesDebugAAR)
backupHermesDebugAAR.dependsOn(backupHermesReleaseAAR)
diff --git a/packages/react-native-editor/.circleci/config.yml b/packages/react-native-editor/.circleci/config.yml
deleted file mode 100644
index f4922088341a18..00000000000000
--- a/packages/react-native-editor/.circleci/config.yml
+++ /dev/null
@@ -1,177 +0,0 @@
-version: 2.1
-
-commands:
- yarn-install:
- steps:
- - restore_cache:
- name: Restore Yarn Cache
- keys:
- - yarn-i18n-v4-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "yarn.lock" }}
- - run:
- name: Yarn Install
- command: yarn install --frozen-lockfile --prefer-offline --network-concurrency 1
- - save_cache:
- name: Save Yarn Cache
- key: yarn-i18n-v4-cache-v{{ .Environment.CACHE_TRIGGER_VERSION }}-job-{{ .Environment.CIRCLE_JOB }}-{{ checksum "yarn.lock" }}
- paths:
- - node_modules
- - i18n-cache/data
- checkout-gutenberg:
- steps:
- - run:
- name: Checkout Gutenberg
- command: git submodule update --init --recursive
- add-jest-reporter-dir:
- steps:
- - run:
- name: Create reports directory
- command: mkdir reports && mkdir reports/test-results
-
-jobs:
- checks:
- parameters:
- platform:
- type: string
- default: ""
- check-tests:
- type: boolean
- default: false
- check-correctness:
- type: boolean
- default: false
- docker:
- - image: circleci/node:10
- steps:
- - checkout
- - checkout-gutenberg
- - yarn-install
- - add-jest-reporter-dir
- - run:
- name: Set Environment Variables
- command: |
- echo 'export CHECK_CORRECTNESS=<>' >> $BASH_ENV
- echo 'export CHECK_TESTS=<>' >> $BASH_ENV
- echo 'export TEST_RN_PLATFORM=<>' >> $BASH_ENV
- - run:
- name: Run Checks
- command: bin/ci-checks-js.sh
- environment:
- JEST_JUNIT_OUTPUT: "reports/test-results/android-test-results.xml"
- - store_test_results:
- path: ./reports/test-results
- android-device-checks:
- docker:
- - image: circleci/android:api-29-node
- steps:
- - checkout
- - run:
- name: Checkout Gutenberg
- command: git submodule update --init --recursive
- - yarn-install
- - add-jest-reporter-dir
- - run:
- name: Set Environment Variables
- command: |
- echo 'export TEST_RN_PLATFORM=android' >> $BASH_ENV
- echo 'export TEST_ENV=sauce' >> $BASH_ENV
- - run:
- name: Bundle Android and Generate debug .apk file for testing
- command: yarn test:e2e:build-app:android
- - run:
- name: Upload apk to sauce labs
- command: |
- source bin/sauce-pre-upload.sh
- curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" -X POST -H "Content-Type: application/octet-stream" https://saucelabs.com/rest/v1/storage/automattic/Gutenberg-$SAUCE_FILENAME.apk?overwrite=true --data-binary @./android/app/build/outputs/apk/debug/app-debug.apk
- - run:
- name: Run Device Tests
- command: yarn device-tests
- environment:
- JEST_JUNIT_OUTPUT: "reports/test-results/android-test-results.xml"
- - store_test_results:
- path: ./reports/test-results
- ios-device-checks:
- macos:
- xcode: "11.2.1"
- steps:
- - checkout
- - checkout-gutenberg
- - yarn-install
- - add-jest-reporter-dir
- - run:
- name: Set Environment Variables
- command: |
- echo 'export TEST_RN_PLATFORM=ios' >> $BASH_ENV
- echo 'export TEST_ENV=sauce' >> $BASH_ENV
- - run:
- name: Prepare build cache key
- command: find yarn.lock ios react-native-aztec/ios react-native-gutenberg-bridge/ios -type f -print0 | sort -z | xargs -0 shasum | tee ios-checksums.txt
- - restore_cache:
- name: Restore Build Cache
- keys:
- - ios-build-cache-{{ checksum "ios-checksums.txt" }}
- - restore_cache:
- name: Restore Dependencies Cache
- keys:
- - dependencies-v3-{{ checksum "ios/Gemfile.lock" }}-{{ checksum "ios/Podfile.lock" }}-{{
- checksum "yarn.lock" }}
- - dependencies-v3-{{ checksum "ios/Gemfile.lock" }}-{{ checksum "ios/Podfile.lock" }}
- - dependencies-v3-{{ checksum "ios/Gemfile.lock" }}
- - dependencies-v3-
- - run:
- name: Build (if needed)
- command: test -e ios/build/gutenberg/Build/Products/Release-iphonesimulator/GutenbergDemo.app || SKIP_BUNDLING=true yarn test:e2e:build-app:ios
- - save_cache:
- name: Save Dependencies Cache
- key: dependencies-v3-{{ checksum "ios/Gemfile.lock" }}-{{ checksum "ios/Podfile.lock" }}-{{
- checksum "yarn.lock" }}
- paths:
- - ios/Pods
- - ~/Library/Caches/CocoaPods
- - ~/.cocoapods/repos/trunk
- - ios/vendor
- - run:
- name: Bundle iOS
- command: yarn test:e2e:bundle:ios
- - run:
- name: Generate .app file for testing
- command: WORK_DIR=$(pwd) && cd ./ios/build/gutenberg/Build/Products/Release-iphonesimulator && zip -r $WORK_DIR/ios/GutenbergDemo.app.zip GutenbergDemo.app
- - run:
- name: Upload .app to sauce labs
- command: |
- source bin/sauce-pre-upload.sh
- curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" -X POST -H "Content-Type: application/octet-stream" https://saucelabs.com/rest/v1/storage/automattic/Gutenberg-$SAUCE_FILENAME.app.zip?overwrite=true --data-binary @./ios/GutenbergDemo.app.zip
- - run:
- name: Run Device Tests
- command: |
- yarn device-tests
- environment:
- JEST_JUNIT_OUTPUT: "reports/test-results/ios-test-results.xml"
- - store_test_results:
- path: ./reports/test-results
- - run:
- name: Prepare build cache
- command: rm ios/build/gutenberg/Build/Products/Release-iphonesimulator/GutenbergDemo.app/main.jsbundle
- - save_cache:
- name: Save Build Cache
- key: ios-build-cache-{{ checksum "ios-checksums.txt" }}
- paths:
- - ios/build/gutenberg/Build/Products/Release-iphonesimulator/GutenbergDemo.app
-
-workflows:
- gutenberg-mobile:
- jobs:
- - checks:
- name: Check Correctness
- check-correctness: true
- - checks:
- name: Test iOS
- platform: ios
- check-tests: true
- - checks:
- name: Test Android
- platform: android
- check-tests: true
- - ios-device-checks:
- name: Test iOS on Device
- - android-device-checks:
- name: Test Android on Device
diff --git a/packages/react-native-editor/RELEASE-NOTES.txt b/packages/react-native-editor/RELEASE-NOTES.txt
index fcdcefa3fc9d68..4cd3f4e622ac6f 100644
--- a/packages/react-native-editor/RELEASE-NOTES.txt
+++ b/packages/react-native-editor/RELEASE-NOTES.txt
@@ -1,11 +1,28 @@
+1.28.0
+------
+* [***] New block: Pullquote
+* [**] Add support for changing background and text color in Buttons block
+* [*] Fix the icons and buttons in Gallery, Paragraph, List and MediaText block on RTL mode
+* [**] Remove Subscription Button from the Blog template since it didn't have an initial functionality and it is hard to configure for users.
+* [**] [iOS] Add support for the subscript `` and superscript ``HTML elements in text blocks
+* [**] Update page templates to use recently added blocks
+
+1.27.1
+------
+* Remove Subscription Button from the Blog template since it didn't have an initial functionality and it is hard to configure for users.
+
1.27.0
------
* Prefill caption for image blocks when available on the Media library
* New block: Buttons. From now you’ll be able to add the individual Button block only inside the Buttons block
-* [iOS]: Video in video blocks can now be played inline on the editor.
+* Fix bug where whitespaces at start of text blocks were being removed
+* Add support for upload options in Cover block
* [Android] Floating toolbar, previously located above nested blocks, is now placed at the top of the screen
* [iOS] Floating toolbar, previously located above nested blocks, is now placed at the bottom of the screen
* Fix the icons in FloatingToolbar on RTL mode
+* [Android] Add alignment options for heading block
+* Fix Quote block so it visually reflects selected alignment
+* Fix bug where buttons in page templates were not rendering correctly on web
1.26.0
------
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-block-insertion.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-block-insertion.test.js
index cb1fa3cd4a5584..553b02a99ea424 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-block-insertion.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-block-insertion.test.js
@@ -12,7 +12,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor tests for Block insertion', () => {
let driver;
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-gallery.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-gallery.test.js
index 21ec0c07e7d02e..d90542ce1ff09d 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-gallery.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-gallery.test.js
@@ -4,7 +4,7 @@
import EditorPage from './pages/editor-page';
import { setupDriver, isLocalEnvironment, stopDriver } from './helpers/utils';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor Gallery Block tests', () => {
let driver;
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-heading.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-heading.test.js
index a20d1aa654ed7c..8fec3cdeb4b0b2 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-heading.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-heading.test.js
@@ -10,7 +10,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor tests', () => {
let driver;
@@ -48,8 +48,7 @@ describe( 'Gutenberg Editor tests', () => {
}
await editorPage.sendTextToHeadingBlock(
headingBlockElement,
- testData.heading,
- false
+ testData.heading
);
await editorPage.addNewParagraphBlock();
@@ -74,8 +73,7 @@ describe( 'Gutenberg Editor tests', () => {
headingBlockElement = await editorPage.getHeadingBlockAtPosition( 4 );
await editorPage.sendTextToHeadingBlock(
headingBlockElement,
- testData.heading,
- false
+ testData.heading
);
await editorPage.addNewParagraphBlock();
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-image.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-image.test.js
index 2357e506a222c0..56accc92b66297 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-image.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-image.test.js
@@ -12,7 +12,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor Image Block tests', () => {
let driver;
@@ -58,8 +58,7 @@ describe( 'Gutenberg Editor Image Block tests', () => {
await imageBlock.click();
await swipeUp( driver, imageBlock );
await editorPage.enterCaptionToSelectedImageBlock(
- testData.imageCaption,
- true
+ testData.imageCaption
);
await editorPage.dismissKeyboard();
imageBlock = await editorPage.getImageBlockAtPosition( 1 );
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-latest-posts.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-latest-posts.test.js
index 8093f64d5ba650..15074eba1ce094 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-latest-posts.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-latest-posts.test.js
@@ -10,6 +10,7 @@ describe( 'Gutenberg Editor Latest Post Block tests', () => {
let driver;
let editorPage;
let allPassed = true;
+ const lastPostBlockName = 'Latest Posts';
// Use reporter for setting status for saucelabs Job
if ( ! isLocalEnvironment() ) {
@@ -38,7 +39,7 @@ describe( 'Gutenberg Editor Latest Post Block tests', () => {
);
expect( latestPostsBlock ).toBeTruthy();
- await editorPage.removeLatestPostsBlockAtPosition( 1 );
+ await editorPage.removeBlockAtPosition( lastPostBlockName );
} );
afterAll( async () => {
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-lists-end.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-lists-end.test.js
index cdec5004ce1ab8..208ca36bfe9ef7 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-lists-end.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-lists-end.test.js
@@ -10,7 +10,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor tests for List block (end)', () => {
let driver;
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-lists.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-lists.test.js
index 939960a21b7162..7120997fbdda3f 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-lists.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-lists.test.js
@@ -10,7 +10,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor tests for List block', () => {
let driver;
@@ -65,19 +65,6 @@ describe( 'Gutenberg Editor tests for List block', () => {
await editorPage.verifyHtmlContent( testData.listHtml );
} );
- it( 'should update format to ordered list, using toolbar button', async () => {
- const listBlockElement = await editorPage.getListBlockAtPosition( 1 );
-
- // Click List block to force EditText focus
- await listBlockElement.click();
-
- // Send a click on the order list format button
- await editorPage.clickOrderedListToolBarButton();
-
- // switch to html and verify html
- await editorPage.verifyHtmlContent( testData.listHtmlOrdered );
- } );
-
afterAll( async () => {
if ( ! isLocalEnvironment() ) {
driver.sauceJobStatus( allPassed );
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-more.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-more.test.js
new file mode 100644
index 00000000000000..1e8e4f2b2ba4ce
--- /dev/null
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-more.test.js
@@ -0,0 +1,51 @@
+/**
+ * Internal dependencies
+ */
+import EditorPage from './pages/editor-page';
+import { setupDriver, isLocalEnvironment, stopDriver } from './helpers/utils';
+
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
+
+describe( 'Gutenberg Editor Spacer Block test', () => {
+ let driver;
+ let editorPage;
+ let allPassed = true;
+ const moreBlockName = 'More';
+
+ // Use reporter for setting status for saucelabs Job
+ if ( ! isLocalEnvironment() ) {
+ const reporter = {
+ specDone: async ( result ) => {
+ allPassed = allPassed && result.status !== 'failed';
+ },
+ };
+
+ jasmine.getEnv().addReporter( reporter );
+ }
+
+ beforeAll( async () => {
+ driver = await setupDriver();
+ editorPage = new EditorPage( driver );
+ } );
+
+ it( 'should be able to see visual editor', async () => {
+ await expect( editorPage.getBlockList() ).resolves.toBe( true );
+ } );
+
+ it( 'should be able to add an separator block', async () => {
+ await editorPage.addNewBlock( moreBlockName );
+ const separatorBlock = await editorPage.getBlockAtPosition(
+ moreBlockName
+ );
+
+ expect( separatorBlock ).toBeTruthy();
+ await editorPage.removeBlockAtPosition( moreBlockName );
+ } );
+
+ afterAll( async () => {
+ if ( ! isLocalEnvironment() ) {
+ driver.sauceJobStatus( allPassed );
+ }
+ await stopDriver( driver );
+ } );
+} );
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-paragraph.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-paragraph.test.js
index 6885c13a4f39f6..86a9d66cc6813c 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-paragraph.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-paragraph.test.js
@@ -9,11 +9,10 @@ import {
clickBeginningOfElement,
stopDriver,
isAndroid,
- swipeUp,
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor tests for Paragraph Block', () => {
let driver;
@@ -73,8 +72,7 @@ describe( 'Gutenberg Editor tests for Paragraph Block', () => {
await clickMiddleOfElement( driver, textViewElement );
await editorPage.sendTextToParagraphBlock(
paragraphBlockElement,
- '\n',
- false
+ '\n'
);
expect(
( await editorPage.hasParagraphBlockAtPosition( 1 ) ) &&
@@ -158,7 +156,6 @@ describe( 'Gutenberg Editor tests for Paragraph Block', () => {
);
for ( let i = 3; i > 0; i-- ) {
- await swipeUp( driver );
await editorPage.removeParagraphBlockAtPosition( i );
}
} );
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-paste.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-paste.test.js
index ace124a65625c9..96a734e4c7bc30 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-paste.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-paste.test.js
@@ -14,7 +14,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor paste tests', () => {
// skip iOS for now
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-rotation.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-rotation.test.js
index 471d2be92bb664..9c82ab7392c8ce 100644
--- a/packages/react-native-editor/__device-tests__/gutenberg-editor-rotation.test.js
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-rotation.test.js
@@ -11,7 +11,7 @@ import {
} from './helpers/utils';
import testData from './helpers/test-data';
-jest.setTimeout( 1000000 );
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
describe( 'Gutenberg Editor tests', () => {
let driver;
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-separator.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-separator.test.js
new file mode 100644
index 00000000000000..7c669e6c574fa5
--- /dev/null
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-separator.test.js
@@ -0,0 +1,51 @@
+/**
+ * Internal dependencies
+ */
+import EditorPage from './pages/editor-page';
+import { setupDriver, isLocalEnvironment, stopDriver } from './helpers/utils';
+
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
+
+describe( 'Gutenberg Editor Separator Block test', () => {
+ let driver;
+ let editorPage;
+ let allPassed = true;
+ const separatorBlockName = 'Separator';
+
+ // Use reporter for setting status for saucelabs Job
+ if ( ! isLocalEnvironment() ) {
+ const reporter = {
+ specDone: async ( result ) => {
+ allPassed = allPassed && result.status !== 'failed';
+ },
+ };
+
+ jasmine.getEnv().addReporter( reporter );
+ }
+
+ beforeAll( async () => {
+ driver = await setupDriver();
+ editorPage = new EditorPage( driver );
+ } );
+
+ it( 'should be able to see visual editor', async () => {
+ await expect( editorPage.getBlockList() ).resolves.toBe( true );
+ } );
+
+ it( 'should be able to add an separator block', async () => {
+ await editorPage.addNewBlock( separatorBlockName );
+ const separatorBlock = await editorPage.getBlockAtPosition(
+ separatorBlockName
+ );
+
+ expect( separatorBlock ).toBeTruthy();
+ await editorPage.removeBlockAtPosition( separatorBlockName );
+ } );
+
+ afterAll( async () => {
+ if ( ! isLocalEnvironment() ) {
+ driver.sauceJobStatus( allPassed );
+ }
+ await stopDriver( driver );
+ } );
+} );
diff --git a/packages/react-native-editor/__device-tests__/gutenberg-editor-spacer.test.js b/packages/react-native-editor/__device-tests__/gutenberg-editor-spacer.test.js
new file mode 100644
index 00000000000000..056abacedc6052
--- /dev/null
+++ b/packages/react-native-editor/__device-tests__/gutenberg-editor-spacer.test.js
@@ -0,0 +1,51 @@
+/**
+ * Internal dependencies
+ */
+import EditorPage from './pages/editor-page';
+import { setupDriver, isLocalEnvironment, stopDriver } from './helpers/utils';
+
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000000;
+
+describe( 'Gutenberg Editor Spacer Block test', () => {
+ let driver;
+ let editorPage;
+ let allPassed = true;
+ const spacerBlockName = 'Spacer';
+
+ // Use reporter for setting status for saucelabs Job
+ if ( ! isLocalEnvironment() ) {
+ const reporter = {
+ specDone: async ( result ) => {
+ allPassed = allPassed && result.status !== 'failed';
+ },
+ };
+
+ jasmine.getEnv().addReporter( reporter );
+ }
+
+ beforeAll( async () => {
+ driver = await setupDriver();
+ editorPage = new EditorPage( driver );
+ } );
+
+ it( 'should be able to see visual editor', async () => {
+ await expect( editorPage.getBlockList() ).resolves.toBe( true );
+ } );
+
+ it( 'should be able to add an separator block', async () => {
+ await editorPage.addNewBlock( spacerBlockName );
+ const separatorBlock = await editorPage.getBlockAtPosition(
+ spacerBlockName
+ );
+
+ expect( separatorBlock ).toBeTruthy();
+ await editorPage.removeBlockAtPosition( spacerBlockName );
+ } );
+
+ afterAll( async () => {
+ if ( ! isLocalEnvironment() ) {
+ driver.sauceJobStatus( allPassed );
+ }
+ await stopDriver( driver );
+ } );
+} );
diff --git a/packages/react-native-editor/__device-tests__/helpers/caps.js b/packages/react-native-editor/__device-tests__/helpers/caps.js
index d9b32b936b7517..c0c9ddda2fe309 100644
--- a/packages/react-native-editor/__device-tests__/helpers/caps.js
+++ b/packages/react-native-editor/__device-tests__/helpers/caps.js
@@ -25,11 +25,11 @@ exports.iosServer = {
deviceName: 'iPhone 11 Simulator',
};
-exports.android8 = {
+exports.android = {
browserName: '',
platformName: 'Android',
platformVersion: '9.0',
- deviceName: 'Google Pixel 3 XL GoogleAPI Emulator',
+ deviceName: 'test',
automationName: 'UiAutomator2',
os: 'Android',
appPackage: 'com.gutenberg',
diff --git a/packages/react-native-editor/__device-tests__/helpers/test-data.js b/packages/react-native-editor/__device-tests__/helpers/test-data.js
index 149a86fc00f456..3f6086eb074684 100644
--- a/packages/react-native-editor/__device-tests__/helpers/test-data.js
+++ b/packages/react-native-editor/__device-tests__/helpers/test-data.js
@@ -90,3 +90,11 @@ exports.imageCompletehtml = `
The finer continuum interprets the polynomial rabbit. When can the geology runs? An astronomer runs. Should a communist consent?
`;
+
+exports.imageShorteHtml = `
+C'est la vie my friends
+
+
+
+rock music approaches at high velocity.
+`;
diff --git a/packages/react-native-editor/__device-tests__/helpers/utils.js b/packages/react-native-editor/__device-tests__/helpers/utils.js
index 14bff4370f436b..4f95ceb68d362b 100644
--- a/packages/react-native-editor/__device-tests__/helpers/utils.js
+++ b/packages/react-native-editor/__device-tests__/helpers/utils.js
@@ -11,7 +11,7 @@ import path from 'path';
* Internal dependencies
*/
import serverConfigs from './serverConfigs';
-import { iosServer, iosLocal, android8 } from './caps';
+import { iosServer, iosLocal, android } from './caps';
import AppiumLocal from './appium-local';
// eslint-disable-next-line import/no-extraneous-dependencies
import _ from 'underscore';
@@ -78,7 +78,7 @@ const setupDriver = async () => {
let desiredCaps;
if ( isAndroid() ) {
- desiredCaps = _.clone( android8 );
+ desiredCaps = _.clone( android );
if ( isLocalEnvironment() ) {
desiredCaps.app = path.resolve( localAndroidAppPath );
try {
diff --git a/packages/react-native-editor/__device-tests__/pages/editor-page.js b/packages/react-native-editor/__device-tests__/pages/editor-page.js
index 8136367310bf81..99af32e7aa32db 100644
--- a/packages/react-native-editor/__device-tests__/pages/editor-page.js
+++ b/packages/react-native-editor/__device-tests__/pages/editor-page.js
@@ -1,3 +1,9 @@
+/**
+ * External dependencies
+ */
+// eslint-disable-next-line import/no-extraneous-dependencies
+import wd from 'wd';
+
/**
* Internal dependencies
*/
@@ -10,19 +16,22 @@ import {
} from '../helpers/utils';
export default class EditorPage {
- driver;
- accessibilityIdKey;
- accessibilityIdXPathAttrib;
+ driver: wd.PromiseChainWebdriver;
+ accessibilityIdKey: string;
+ accessibilityIdXPathAttrib: string;
paragraphBlockName = 'Paragraph';
listBlockName = 'List';
headingBlockName = 'Heading';
imageBlockName = 'Image';
galleryBlockName = 'Gallery';
- latestPostsBlockName = 'Latest Posts';
- unorderedListButtonName = 'Convert to unordered list';
- orderedListButtonName = 'Convert to ordered list';
- constructor( driver ) {
+ // This is needed to adapt to changes in the way accessibility ids are being
+ // assigned after migrating to AndroidX and React Native 0.60. See:
+ // https://github.com/wordpress-mobile/gutenberg-mobile/pull/1112#issuecomment-501165250
+ // for more details.
+ accessibilityIdSuffix = '';
+
+ constructor( driver: wd.PromiseChainWebdriver ) {
this.driver = driver;
this.accessibilityIdKey = 'name';
this.accessibilityIdXPathAttrib = 'name';
@@ -30,9 +39,8 @@ export default class EditorPage {
if ( isAndroid() ) {
this.accessibilityIdXPathAttrib = 'content-desc';
this.accessibilityIdKey = 'contentDescription';
+ this.accessibilityIdSuffix = ', ';
}
-
- driver.setImplicitWaitTimeout( 5000 );
}
async getBlockList() {
@@ -43,9 +51,9 @@ export default class EditorPage {
// and accessibilityId attributes on this object and selects the block
// position uses one based numbering
async getBlockAtPosition(
- position,
- blockName,
- options = { autoscroll: false }
+ position: number,
+ blockName: string,
+ options: { autoscroll: boolean } = { autoscroll: false }
) {
const blockLocator = `//*[contains(@${ this.accessibilityIdXPathAttrib }, "${ blockName } Block. Row ${ position }")]`;
const elements = await this.driver.elementsByXPath( blockLocator );
@@ -101,14 +109,16 @@ export default class EditorPage {
return elements[ elements.length - 1 ];
}
- async hasBlockAtPosition( position, blockName = '' ) {
+ async hasBlockAtPosition( position: number, blockName: string = '' ) {
return (
undefined !==
( await this.getBlockAtPosition( position, blockName ) )
);
}
- async getTitleElement( options = { autoscroll: false } ) {
+ async getTitleElement(
+ options: { autoscroll: boolean } = { autoscroll: false }
+ ) {
//TODO: Improve the identifier for this element
const elements = await this.driver.elementsByXPath(
`//*[contains(@${ this.accessibilityIdXPathAttrib }, "Post title.")]`
@@ -121,7 +131,7 @@ export default class EditorPage {
}
async getTextViewForHtmlViewContent() {
- const accessibilityId = 'html-view-content';
+ const accessibilityId = `html-view-content${ this.accessibilityIdSuffix }`;
let blockLocator = `//*[@${ this.accessibilityIdXPathAttrib }="${ accessibilityId }"]`;
if ( ! isAndroid() ) {
@@ -132,7 +142,7 @@ export default class EditorPage {
// Converts to lower case and checks for a match to lowercased html content
// Ensure to take additional steps to handle text being changed by auto correct
- async verifyHtmlContent( html ) {
+ async verifyHtmlContent( html: string ) {
await toggleHtmlMode( this.driver, true );
const htmlContentView = await this.getTextViewForHtmlViewContent();
@@ -143,7 +153,7 @@ export default class EditorPage {
}
// set html editor content explicitly
- async setHtmlContentAndroid( html ) {
+ async setHtmlContentAndroid( html: string ) {
await toggleHtmlMode( this.driver, true );
const htmlContentView = await this.getTextViewForHtmlViewContent();
@@ -171,7 +181,7 @@ export default class EditorPage {
// Block toolbar functions
// =========================
- async addNewBlock( blockName ) {
+ async addNewBlock( blockName: string ) {
// Click add button
let identifier = 'Add block';
if ( isAndroid() ) {
@@ -183,55 +193,10 @@ export default class EditorPage {
await addButton.click();
// Click on block of choice
- const blockButton = await this.findBlockButton( blockName );
- if ( isAndroid() ) {
- await blockButton.click();
- } else {
- await this.driver.execute( 'mobile: tap', {
- element: blockButton,
- x: 10,
- y: 10,
- } );
- }
- }
-
- // Attempts to find the given block button in the block inserter control.
- async findBlockButton( blockName ) {
- if ( isAndroid() ) {
- // Checks if the Block Button is available, and if not will scroll to the second half of the available buttons.
- while (
- ! ( await this.driver.hasElementByAccessibilityId( blockName ) )
- ) {
- await this.driver.pressKeycode( 20 ); // Press the Down arrow to force a scroll.
- }
-
- return await this.driver.elementByAccessibilityId( blockName );
- }
-
const blockButton = await this.driver.elementByAccessibilityId(
blockName
);
- const size = await this.driver.getWindowSize();
- const height = size.height - 5;
-
- while ( ! ( await blockButton.isDisplayed() ) ) {
- await this.driver.execute( 'mobile: dragFromToForDuration', {
- fromX: 50,
- fromY: height,
- toX: 50,
- toY: height - 450,
- duration: 0.5,
- } );
- }
-
- return blockButton;
- }
-
- async clickToolBarButton( buttonName ) {
- const toolBarButton = await this.driver.elementByAccessibilityId(
- buttonName
- );
- await toolBarButton.click();
+ await blockButton.click();
}
// =========================
@@ -239,40 +204,43 @@ export default class EditorPage {
// =========================
// position of the block to move up
- async moveBlockUpAtPosition( position, blockName = '' ) {
+ async moveBlockUpAtPosition( position: number, blockName: string = '' ) {
if ( ! ( await this.hasBlockAtPosition( position, blockName ) ) ) {
throw Error( `No Block at position ${ position }` );
}
+ const parentId = `${ blockName } Block. Row ${ position }.${ this.accessibilityIdSuffix }`;
+ const parentLocator = `//*[@${ this.accessibilityIdXPathAttrib }="${ parentId }"]`;
- const parentLocator = `//*[@${ this.accessibilityIdXPathAttrib }="${ blockName } Block. Row ${ position }."]`;
+ const blockId = `Move block up from row ${ position } to row ${ position -
+ 1 }${ this.accessibilityIdSuffix }`;
let blockLocator = `${ parentLocator }/following-sibling::*`;
blockLocator += isAndroid() ? '' : '//*';
- blockLocator += `[@${
- this.accessibilityIdXPathAttrib
- }="Move block up from row ${ position } to row ${ position - 1 }"]`;
+ blockLocator += `[@${ this.accessibilityIdXPathAttrib }="${ blockId }"]`;
const moveUpButton = await this.driver.elementByXPath( blockLocator );
await moveUpButton.click();
}
// position of the block to move down
- async moveBlockDownAtPosition( position, blockName = '' ) {
+ async moveBlockDownAtPosition( position: number, blockName: string = '' ) {
if ( ! ( await this.hasBlockAtPosition( position, blockName ) ) ) {
throw Error( `No Block at position ${ position }` );
}
- const parentLocator = `//*[contains(@${ this.accessibilityIdXPathAttrib }, "${ blockName } Block. Row ${ position }.")]`;
+ const parentId = `${ blockName } Block. Row ${ position }.`;
+ const parentLocator = `//*[contains(@${ this.accessibilityIdXPathAttrib }, "${ parentId }")]`;
+
+ const blockId = `Move block down from row ${ position } to row ${ position +
+ 1 }${ this.accessibilityIdSuffix }`;
let blockLocator = `${ parentLocator }/following-sibling::*`;
blockLocator += isAndroid() ? '' : '//*';
- blockLocator += `[@${
- this.accessibilityIdXPathAttrib
- }="Move block down from row ${ position } to row ${ position + 1 }"]`;
+ blockLocator += `[@${ this.accessibilityIdXPathAttrib }="${ blockId }"]`;
const moveDownButton = await this.driver.elementByXPath( blockLocator );
await moveDownButton.click();
}
// position of the block to remove
// Block will no longer be present if this succeeds
- async removeBlockAtPosition( position, blockName = '' ) {
+ async removeBlockAtPosition( position: number, blockName: string = '' ) {
if ( ! ( await this.hasBlockAtPosition( position, blockName ) ) ) {
throw Error( `No Block at position ${ position }` );
}
@@ -311,8 +279,8 @@ export default class EditorPage {
}
async getParagraphBlockAtPosition(
- position,
- options = { autoscroll: false }
+ position: number,
+ options: { autoscroll: boolean } = { autoscroll: false }
) {
return this.getBlockAtPosition(
position,
@@ -321,11 +289,13 @@ export default class EditorPage {
);
}
- async hasParagraphBlockAtPosition( position ) {
+ async hasParagraphBlockAtPosition( position: number ) {
return this.hasBlockAtPosition( position, this.paragraphBlockName );
}
- async getTextViewForParagraphBlock( block ) {
+ async getTextViewForParagraphBlock(
+ block: wd.PromiseChainWebdriver.Element
+ ) {
let textViewElementName = 'XCUIElementTypeTextView';
if ( isAndroid() ) {
textViewElementName = 'android.widget.EditText';
@@ -340,15 +310,18 @@ export default class EditorPage {
return await this.driver.elementByXPath( blockLocator );
}
- async sendTextToParagraphBlock( block, text, clear ) {
+ async sendTextToParagraphBlock(
+ block: wd.PromiseChainWebdriver.Element,
+ text: string
+ ) {
const textViewElement = await this.getTextViewForParagraphBlock(
block
);
- await typeString( this.driver, textViewElement, text, clear );
+ await typeString( this.driver, textViewElement, text );
await this.driver.sleep( 1000 ); // Give time for the block to rerender (such as for accessibility)
}
- async sendTextToParagraphBlockAtPosition( position, text, clear ) {
+ async sendTextToParagraphBlockAtPosition( position: number, text: string ) {
const paragraphs = text.split( '\n' );
for ( let i = 0; i < paragraphs.length; i++ ) {
// Select block first
@@ -357,18 +330,14 @@ export default class EditorPage {
);
await block.click();
- await this.sendTextToParagraphBlock(
- block,
- paragraphs[ i ],
- clear
- );
+ await this.sendTextToParagraphBlock( block, paragraphs[ i ] );
if ( i !== paragraphs.length - 1 ) {
- await this.sendTextToParagraphBlock( block, '\n', false );
+ await this.sendTextToParagraphBlock( block, '\n' );
}
}
}
- async getTextForParagraphBlock( block ) {
+ async getTextForParagraphBlock( block: wd.PromiseChainWebdriver.Element ) {
const textViewElement = await this.getTextViewForParagraphBlock(
block
);
@@ -376,11 +345,11 @@ export default class EditorPage {
return text.toString();
}
- async removeParagraphBlockAtPosition( position ) {
+ async removeParagraphBlockAtPosition( position: number ) {
await this.removeBlockAtPosition( position, this.paragraphBlockName );
}
- async getTextForParagraphBlockAtPosition( position ) {
+ async getTextForParagraphBlockAtPosition( position: number ) {
// Select block first
let block = await this.getParagraphBlockAtPosition( position );
await block.click();
@@ -398,15 +367,15 @@ export default class EditorPage {
await this.addNewBlock( this.listBlockName );
}
- async getListBlockAtPosition( position ) {
+ async getListBlockAtPosition( position: number ) {
return this.getBlockAtPosition( position, this.listBlockName );
}
- async hasListBlockAtPosition( position ) {
+ async hasListBlockAtPosition( position: number ) {
return await this.hasBlockAtPosition( position, this.listBlockName );
}
- async getTextViewForListBlock( block ) {
+ async getTextViewForListBlock( block: wd.PromiseChainWebdriver.Element ) {
let textViewElementName = 'XCUIElementTypeTextView';
if ( isAndroid() ) {
textViewElementName = 'android.widget.EditText';
@@ -421,35 +390,30 @@ export default class EditorPage {
return await this.driver.elementByXPath( blockLocator );
}
- async sendTextToListBlock( block, text ) {
+ async sendTextToListBlock(
+ block: wd.PromiseChainWebdriver.Element,
+ text: string
+ ) {
const textViewElement = await this.getTextViewForListBlock( block );
-
- // Cannot clear list blocks because it messes up the list bullet
- const clear = false;
-
- return await typeString( this.driver, textViewElement, text, clear );
+ return await typeString( this.driver, textViewElement, text );
}
- async getTextForListBlock( block ) {
+ async getTextForListBlock( block: wd.PromiseChainWebdriver.Element ) {
const textViewElement = await this.getTextViewForListBlock( block );
const text = await textViewElement.text();
return text.toString();
}
- async removeListBlockAtPosition( position ) {
+ async removeListBlockAtPosition( position: number ) {
return await this.removeBlockAtPosition( position, this.listBlockName );
}
- async getTextForListBlockAtPosition( position ) {
+ async getTextForListBlockAtPosition( position: number ) {
const block = await this.getListBlockAtPosition( position );
const text = await this.getTextForListBlock( block );
return text.toString();
}
- async clickOrderedListToolBarButton() {
- await this.clickToolBarButton( this.orderedListButtonName );
- }
-
// =========================
// Image Block functions
// =========================
@@ -458,11 +422,11 @@ export default class EditorPage {
await this.addNewBlock( this.imageBlockName );
}
- async getImageBlockAtPosition( position ) {
+ async getImageBlockAtPosition( position: number ) {
return this.getBlockAtPosition( position, this.imageBlockName );
}
- async selectEmptyImageBlock( block ) {
+ async selectEmptyImageBlock( block: wd.PromiseChainWebdriver.Element ) {
const accessibilityId = await block.getAttribute(
this.accessibilityIdKey
);
@@ -480,15 +444,15 @@ export default class EditorPage {
await mediaLibraryButton.click();
}
- async enterCaptionToSelectedImageBlock( caption, clear = true ) {
+ async enterCaptionToSelectedImageBlock( caption: string ) {
const imageBlockCaptionField = await this.driver.elementByXPath(
- '//XCUIElementTypeButton[starts-with(@name, "Image caption.")]'
+ '//XCUIElementTypeButton[@name="Image caption. Empty"]'
);
await imageBlockCaptionField.click();
- await typeString( this.driver, imageBlockCaptionField, caption, clear );
+ await typeString( this.driver, imageBlockCaptionField, caption );
}
- async removeImageBlockAtPosition( position ) {
+ async removeImageBlockAtPosition( position: number ) {
return await this.removeBlockAtPosition(
position,
this.imageBlockName
@@ -503,11 +467,11 @@ export default class EditorPage {
await this.addNewBlock( this.galleryBlockName );
}
- async getGalleryBlockAtPosition( position ) {
+ async getGalleryBlockAtPosition( position: number ) {
return this.getBlockAtPosition( position, this.galleryBlockName );
}
- async removeGalleryBlockAtPosition( position ) {
+ async removeGalleryBlockAtPosition( position: number ) {
return await this.removeBlockAtPosition(
position,
this.galleryBlockName
@@ -521,12 +485,15 @@ export default class EditorPage {
await this.addNewBlock( this.headingBlockName );
}
- async getHeadingBlockAtPosition( position ) {
+ async getHeadingBlockAtPosition( position: number ) {
return this.getBlockAtPosition( position, this.headingBlockName );
}
// Inner element changes on iOS if Heading Block is empty
- async getTextViewForHeadingBlock( block, empty ) {
+ async getTextViewForHeadingBlock(
+ block: wd.PromiseChainWebdriver.Element,
+ empty: boolean
+ ) {
let textViewElementName = empty
? 'XCUIElementTypeStaticText'
: 'XCUIElementTypeTextView';
@@ -541,15 +508,18 @@ export default class EditorPage {
return await this.driver.elementByXPath( blockLocator );
}
- async sendTextToHeadingBlock( block, text, clear = true ) {
+ async sendTextToHeadingBlock(
+ block: wd.PromiseChainWebdriver.Element,
+ text: string
+ ) {
const textViewElement = await this.getTextViewForHeadingBlock(
block,
true
);
- return await typeString( this.driver, textViewElement, text, clear );
+ return await typeString( this.driver, textViewElement, text );
}
- async getTextForHeadingBlock( block ) {
+ async getTextForHeadingBlock( block: wd.PromiseChainWebdriver.Element ) {
const textViewElement = await this.getTextViewForHeadingBlock(
block,
false
@@ -557,23 +527,4 @@ export default class EditorPage {
const text = await textViewElement.text();
return text.toString();
}
-
- // ============================
- // Latest-Posts Block functions
- // ============================
-
- async addNewLatestPostsBlock() {
- await this.addNewBlock( this.latestPostsBlockName );
- }
-
- async getLatestPostsBlockAtPosition( position ) {
- return this.getBlockAtPosition( position, this.latestPostsBlockName );
- }
-
- async removeLatestPostsBlockAtPosition( position ) {
- return await this.removeBlockAtPosition(
- position,
- this.latestPostsBlockName
- );
- }
}
diff --git a/packages/react-native-editor/extra-node-modules.config.js b/packages/react-native-editor/extra-node-modules.config.js
deleted file mode 100644
index 94fd1126662b4f..00000000000000
--- a/packages/react-native-editor/extra-node-modules.config.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const enm = require( 'node-libs-react-native' );
-
-enm.fs = __dirname + '/__mocks__/nodejsMock.js';
-enm.net = __dirname + '/__mocks__/nodejsMock.js';
-enm.canvas = __dirname + '/__mocks__/nodejsMock.js';
-
-module.exports = enm;
diff --git a/packages/react-native-editor/ios/Podfile b/packages/react-native-editor/ios/Podfile
index 5835993eb9d21c..f7259643859358 100644
--- a/packages/react-native-editor/ios/Podfile
+++ b/packages/react-native-editor/ios/Podfile
@@ -39,9 +39,10 @@ target 'gutenberg' do
pod 'Folly', :podspec => '../../../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'RNTAztecView', :path => '../../react-native-aztec/RNTAztecView.podspec'
#Use for testing non official versions of Aztec
- #pod 'WordPress-Aztec-iOS', :git => '../../https://github.com/wordpress-mobile/WordPress-Aztec-iOS.git', :commit => 'edf1c9ae758b946e76bb9de6efc9135d2c2a4b43'
+ #pod 'WordPress-Aztec-iOS', :git => 'https://github.com/wordpress-mobile/WordPress-Aztec-iOS.git', :commit => '29dff741f4b19435d75f21179e27766337de8e9d'
pod 'Gutenberg', :path => '../../react-native-bridge/Gutenberg.podspec'
+
target 'gutenbergTests' do
inherit! :search_paths
# Pods for testing
diff --git a/packages/react-native-editor/ios/Podfile.lock b/packages/react-native-editor/ios/Podfile.lock
index 5e7e8312bbf3d7..84153743b8ad23 100644
--- a/packages/react-native-editor/ios/Podfile.lock
+++ b/packages/react-native-editor/ios/Podfile.lock
@@ -21,7 +21,7 @@ PODS:
- DoubleConversion
- glog
- glog (0.3.5)
- - Gutenberg (7.9.1):
+ - Gutenberg (8.1.0-rc.1):
- React (= 0.61.5)
- React-CoreModules (= 0.61.5)
- React-RCTImage (= 0.61.5)
@@ -197,10 +197,10 @@ PODS:
- React
- react-native-slider (2.0.7):
- React
- - react-native-video (5.0.1):
+ - react-native-video (5.0.2):
- React
- - react-native-video/Video (= 5.0.1)
- - react-native-video/Video (5.0.1):
+ - react-native-video/Video (= 5.0.2)
+ - react-native-video/Video (5.0.2):
- React
- React-RCTActionSheet (0.61.5):
- React-Core/RCTActionSheetHeaders (= 0.61.5)
@@ -243,8 +243,8 @@ PODS:
- React
- RNTAztecView (0.1.11):
- React-Core
- - WordPress-Aztec-iOS (~> 1.17.1)
- - WordPress-Aztec-iOS (1.17.1)
+ - WordPress-Aztec-iOS (~> 1.19.0)
+ - WordPress-Aztec-iOS (1.19.0)
- Yoga (1.14.0)
DEPENDENCIES:
@@ -266,7 +266,7 @@ DEPENDENCIES:
- React-jsi (from `../../../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../../../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../../../node_modules/react-native/ReactCommon/jsinspector`)
- - react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
+ - react-native-get-random-values (from `../../../node_modules/react-native-get-random-values`)
- react-native-keyboard-aware-scroll-view (from `../../../node_modules/react-native-keyboard-aware-scroll-view`)
- react-native-safe-area (from `../../../node_modules/react-native-safe-area`)
- "react-native-slider (from `../../../node_modules/@react-native-community/slider`)"
@@ -326,7 +326,7 @@ EXTERNAL SOURCES:
React-jsinspector:
:path: "../../../node_modules/react-native/ReactCommon/jsinspector"
react-native-get-random-values:
- :path: "../node_modules/react-native-get-random-values"
+ :path: "../../../node_modules/react-native-get-random-values"
react-native-keyboard-aware-scroll-view:
:path: "../../../node_modules/react-native-keyboard-aware-scroll-view"
react-native-safe-area:
@@ -372,7 +372,7 @@ SPEC CHECKSUMS:
FBReactNativeSpec: 118d0d177724c2d67f08a59136eb29ef5943ec75
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
glog: 1f3da668190260b06b429bb211bfbee5cd790c28
- Gutenberg: ca6b343ebd1e6d0ba57215d02568b391612dc557
+ Gutenberg: 1afccb2a2f6b2966016dae142fa48db859410c6b
RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1
RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320
React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78
@@ -386,7 +386,7 @@ SPEC CHECKSUMS:
react-native-keyboard-aware-scroll-view: ffa9152671fec9a571197ed2d02e0fcb90206e60
react-native-safe-area: e8230b0017d76c00de6b01e2412dcf86b127c6a3
react-native-slider: f81b89fa0c1f9a65742d33f889a194ca6653a985
- react-native-video: a1aeeb872d4408ff2f1a2a780a49ff44bdeb9172
+ react-native-video: 961749da457e73bf0b5565edfbaffc25abfb8974
React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76
React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360
React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72
@@ -399,10 +399,10 @@ SPEC CHECKSUMS:
ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd
ReactNativeDarkMode: f61376360c5d983907e5c316e8e1c853a8c2f348
RNSVG: 68a534a5db06dcbdaebfd5079349191598caef7b
- RNTAztecView: 922113903205678b6d8780fa844d35892ffab01a
- WordPress-Aztec-iOS: 319620514af963ca519bd83b96a2c0ebdf3a0f03
+ RNTAztecView: b8caab8aea3cc3628d751f8025555642e1b7ea9e
+ WordPress-Aztec-iOS: fb6ea6409a5228292568f665eb22ea0a0aa7ad7e
Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b
-PODFILE CHECKSUM: d6a23ca37a82e9ae3c2e6b996f5643a59c271c44
+PODFILE CHECKSUM: aac0fd05ad076bb61d290e7c36d06c9cb30154c8
COCOAPODS: 1.8.4
diff --git a/packages/react-native-editor/jitpack.yml b/packages/react-native-editor/jitpack.yml
deleted file mode 100644
index d8c5aaf0514e39..00000000000000
--- a/packages/react-native-editor/jitpack.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-install:
- - export TMPDIR=`dirname $(mktemp)`
- - echo "Removing react-native-aztec-old-submodule folder"
- - rm -rf react-native-aztec-old-submodule
- - echo "Changing into the android folder of the Bridge module"
- - pushd react-native-gutenberg-bridge/android && ./gradlew --stacktrace clean -Pgroup=com.github.wordpress-mobile.gutenberg-mobile -Pversion=$VERSION install && popd
- - pushd react-native-aztec/android && ./gradlew --stacktrace clean -Pgroup=com.github.wordpress-mobile.gutenberg-mobile -Pversion=$VERSION install && popd
-
diff --git a/packages/react-native-editor/metro.config.js b/packages/react-native-editor/metro.config.js
index 4b8da42c15e923..297b91d91befa1 100644
--- a/packages/react-native-editor/metro.config.js
+++ b/packages/react-native-editor/metro.config.js
@@ -1,11 +1,9 @@
const path = require( 'path' );
-const enm = require( './extra-node-modules.config.js' );
module.exports = {
watchFolders: [ path.resolve( __dirname, '../..' ) ],
resolver: {
sourceExts: [ 'js', 'json', 'scss', 'sass', 'ts', 'tsx' ],
- extraNodeModules: enm,
platforms: [ 'native', 'android', 'ios' ],
},
transformer: {
diff --git a/packages/react-native-editor/package.json b/packages/react-native-editor/package.json
index 81ff6ff4aba4b3..90e5c4ea572460 100644
--- a/packages/react-native-editor/package.json
+++ b/packages/react-native-editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/react-native-editor",
- "version": "1.26.0",
+ "version": "1.27.1",
"description": "Mobile WordPress gutenberg editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -27,8 +27,12 @@
"npm": ">=6.9"
},
"dependencies": {
- "@babel/runtime": "^7.7.7",
+ "@babel/runtime": "^7.9.2",
"@react-native-community/slider": "git+https://github.com/wordpress-mobile/react-native-slider.git#5ad284d92b8d886e366445bf215be741ed53ddc6",
+ "@wordpress/api-fetch": "file:../api-fetch",
+ "@wordpress/block-editor": "file:../block-editor",
+ "@wordpress/block-library": "file:../block-library",
+ "@wordpress/blocks": "file:../blocks",
"@wordpress/components": "file:../components",
"@wordpress/data": "file:../data",
"@wordpress/edit-post": "file:../edit-post",
@@ -43,11 +47,11 @@
"metro-react-native-babel-preset": "0.57.0",
"metro-react-native-babel-transformer": "0.56.0",
"node-fetch": "^2.3.0",
- "node-libs-react-native": "^1.0.2",
"react-native": "0.61.5",
"react-native-dark-mode": "git+https://github.com/wordpress-mobile/react-native-dark-mode.git#f09bf1480e7b34536413ab3300f29e4375edb2c6",
"react-native-get-random-values": "^1.4.0",
"react-native-hr": "git+https://github.com/Riglerr/react-native-hr.git#2d01a5cf77212d100e8b99e0310cce5234f977b3",
+ "react-native-hsv-color-picker": "git+https://github.com/wordpress-mobile/react-native-hsv-color-picker",
"react-native-keyboard-aware-scroll-view": "git+https://github.com/wordpress-mobile/react-native-keyboard-aware-scroll-view.git#gb-v0.8.8",
"react-native-linear-gradient": "git+https://github.com/wordpress-mobile/react-native-linear-gradient.git#52bf43077171cff8714ce3e0155f3ebb7f55bc37",
"react-native-modal": "^6.5.0",
@@ -55,7 +59,7 @@
"react-native-sass-transformer": "^1.1.1",
"react-native-svg": "git+https://github.com/wordpress-mobile/react-native-svg.git#a628e92990a2404e30a0086f168bd2b5b7b4ce96",
"react-native-url-polyfill": "^1.1.2",
- "react-native-video": "git+https://github.com/wordpress-mobile/react-native-video.git#6cdaddd9c81ebe2da5b28412d389cc105e156948"
+ "react-native-video": "git+https://github.com/wordpress-mobile/react-native-video.git#1b964b107863351ed744fc104d7952bbec3e2d4f"
},
"publishConfig": {
"access": "public"
@@ -112,14 +116,14 @@
"test:e2e:install-app:android": "cd android && ./gradlew installDebug",
"test:e2e:bundle:ios": "react-native bundle --reset-cache --platform=ios --dev=false --minify false --entry-file=index.js --bundle-output=./ios/build/gutenberg/Build/Products/Release-iphonesimulator/GutenbergDemo.app/main.jsbundle --assets-dest=./ios/build/gutenberg/Build/Products/Release-iphonesimulator/GutenbergDemo.app",
"test:e2e:build-app:ios": "npm run ios --configuration Release --no-packager",
- "build:gutenberg": "cd gutenberg && npm install && npm run build",
+ "build:gutenberg": "cd gutenberg && npm ci && npm run build",
"clean": "npm run clean:build-artifacts; npm run clean:aztec; npm run cache clean; npm run clean:haste; npm run clean:jest; npm run clean:metro; npm run clean:react; npm run clean:watchman; npm run clean:node; npm run clean:pot",
"clean:runtime": "npm run clean:haste; npm run clean:react; npm run clean:metro; npm run clean:jest; npm run clean:watchman; npm run clean:babel-cache",
"clean:build-artifacts": "rm -rf ./ios/build && rm -rf ./ios/Pods",
"clean:aztec": "cd ../react-native-aztec && npm run clean && cd example && npm run clean",
"clean:gutenberg": "cd gutenberg && npm run clean:packages && rm -rf build && rm -rf node_modules",
"clean:haste": "rm -rf /tmp/haste-map-react-native-packager-*",
- "clean:install": "npm run clean; npm run",
+ "clean:install": "npm run clean; npm install",
"clean:jest": "jest --clearCache --config ../../test/native/jest.config.js; rm -rf $TMPDIR/jest_*",
"clean:metro": "rm -rf $TMPDIR/metro-cache-*;",
"clean:pot": "rm -f gutenberg*.pot",
diff --git a/packages/react-native-editor/src/index.js b/packages/react-native-editor/src/index.js
index cdac46e3a1cf88..3ae6f00eb737e7 100644
--- a/packages/react-native-editor/src/index.js
+++ b/packages/react-native-editor/src/index.js
@@ -3,14 +3,11 @@
*/
import 'react-native-get-random-values'; // This library works as a polyfill for the global crypto.getRandomValues which is needed by `uuid` version 7.0.0
import { AppRegistry, I18nManager } from 'react-native';
-/**
- * WordPress dependencies
- */
-import { Component } from '@wordpress/element';
/**
* WordPress dependencies
*/
+import { Component } from '@wordpress/element';
import { setLocaleData } from '@wordpress/i18n';
/**
@@ -20,6 +17,7 @@ import './globals';
import { getTranslation } from '../i18n-cache';
import initialHtml from './initial-html';
import setupApiFetch from './api-fetch-setup';
+import correctTextFontWeight from './text-font-weight-correct';
const gutenbergSetup = () => {
const wpData = require( '@wordpress/data' );
@@ -57,6 +55,7 @@ export class RootComponent extends Component {
super( props );
setupLocale( props.locale, props.translations );
setupApiFetch();
+ correctTextFontWeight();
require( '@wordpress/edit-post' ).initializeEditor();
const isHermes = () => global.HermesInternal !== null;
diff --git a/packages/react-native-editor/src/initial-html.js b/packages/react-native-editor/src/initial-html.js
index 1ec7eef7fc2cc5..d7b1fd5de442a4 100644
--- a/packages/react-native-editor/src/initial-html.js
+++ b/packages/react-native-editor/src/initial-html.js
@@ -22,7 +22,7 @@ Hello World
-Hello World!
+Bold Italic Striked Superscript(1) Subscript(2)
@@ -223,4 +223,8 @@ else:
+
+
+One of the hardest things to do in technology is disrupt yourself.
Matt Mullenweg
+
`;
diff --git a/packages/react-native-editor/src/text-font-weight-correct.js b/packages/react-native-editor/src/text-font-weight-correct.js
new file mode 100644
index 00000000000000..ca40d73d6b9847
--- /dev/null
+++ b/packages/react-native-editor/src/text-font-weight-correct.js
@@ -0,0 +1,76 @@
+/**
+ * External dependencies
+ */
+import { Platform, Text } from 'react-native';
+
+/**
+ * WordPress dependencies
+ */
+import { cloneElement } from '@wordpress/element';
+
+const textRender = Text.render;
+
+const getCorrectFontWeight = ( fontWeight ) => {
+ switch ( fontWeight ) {
+ case '100':
+ case '200':
+ case '300':
+ return {
+ fontFamily: 'sans-serif-thin',
+ fontWeight: 'normal',
+ };
+ case '400':
+ return {
+ fontFamily: 'sans-serif-light',
+ fontWeight: 'normal',
+ };
+ case '500':
+ case 'normal':
+ return {
+ fontFamily: 'sans-serif',
+ fontWeight: 'normal',
+ };
+ case '600':
+ return {
+ fontFamily: 'sans-serif-medium',
+ fontWeight: 'normal',
+ };
+ case '700':
+ case 'bold':
+ return {
+ fontFamily: 'sans-serif',
+ fontWeight: 'bold',
+ };
+ case '800':
+ case '900':
+ return {
+ fontFamily: 'sans-serif-medium',
+ fontWeight: 'bold',
+ };
+ }
+};
+
+const correctTextFontWeight = ( args ) => {
+ const baseText = textRender.call( this, args );
+ const { style } = baseText.props;
+
+ const flatStyle = Array.isArray( style )
+ ? Object.assign( {}, ...style )
+ : style;
+ const shouldCorrectFontWeight = flatStyle && flatStyle.fontWeight;
+
+ return shouldCorrectFontWeight
+ ? cloneElement( baseText, {
+ style: [
+ flatStyle,
+ getCorrectFontWeight( flatStyle.fontWeight ),
+ ],
+ } )
+ : baseText;
+};
+
+export default () => {
+ if ( Platform.OS === 'android' ) {
+ Text.render = correctTextFontWeight;
+ }
+};
diff --git a/packages/redux-routine/CHANGELOG.md b/packages/redux-routine/CHANGELOG.md
index ee12aca29a4e3b..457e9715e6b864 100644
--- a/packages/redux-routine/CHANGELOG.md
+++ b/packages/redux-routine/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 3.7.0 (2020-02-04)
diff --git a/packages/redux-routine/package.json b/packages/redux-routine/package.json
index 620ab50e9fdf87..5748910bd55170 100644
--- a/packages/redux-routine/package.json
+++ b/packages/redux-routine/package.json
@@ -25,7 +25,7 @@
"sideEffects": false,
"dependencies": {
"@babel/runtime": "^7.9.2",
- "is-promise": "^2.1.0",
+ "is-promise": "^4.0.0",
"lodash": "^4.17.15",
"rungen": "^0.3.2"
},
diff --git a/packages/rich-text/CHANGELOG.md b/packages/rich-text/CHANGELOG.md
index 9c969cf333ed29..3e00fe0a138461 100644
--- a/packages/rich-text/CHANGELOG.md
+++ b/packages/rich-text/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 3.3.0 (2019-05-21)
### Internal
diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json
index 83b87751ebb470..81b340ee1bf136 100644
--- a/packages/rich-text/package.json
+++ b/packages/rich-text/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/rich-text",
- "version": "3.14.1",
+ "version": "3.15.0",
"description": "Rich text value and manipulation API.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/rich-text/src/component/index.native.js b/packages/rich-text/src/component/index.native.js
index a94e384c76e10f..98a7be7987a74a 100644
--- a/packages/rich-text/src/component/index.native.js
+++ b/packages/rich-text/src/component/index.native.js
@@ -111,13 +111,7 @@ export class RichText extends Component {
*/
getRecord() {
const { selectionStart: start, selectionEnd: end } = this.props;
- let { value } = this.props;
-
- // Since we get the text selection from Aztec we need to be in sync with the HTML `value`
- // Removing leading white spaces using `trim()` should make sure this is the case.
- if ( typeof value === 'string' || value instanceof String ) {
- value = value.trimLeft();
- }
+ const { value } = this.props;
const { formats, replacements, text } = this.formatToValue( value );
const { activeFormats } = this.state;
diff --git a/packages/scripts/CHANGELOG.md b/packages/scripts/CHANGELOG.md
index b9bafde585be29..915d21d7fea44f 100644
--- a/packages/scripts/CHANGELOG.md
+++ b/packages/scripts/CHANGELOG.md
@@ -1,9 +1,27 @@
-## Master
+
+
+## Unreleased
+
+### Enhancements
+
+- Bundle analysis in `build` script now runs with module concatenation disabled. This represents the size of individual modules more accurately, at the cost of not providing an exact byte-for-byte match to the final size in the production chunk.
+
+### Deprecations
+
+- `env` script was marked as deprecated. We recommend using `@wordpress/env` package instead that lets you easily set up a local WordPress environment for building and testing plugins and themes.
+
+## 9.0.0 (2020-04-30)
### Breaking Changes
- The bundled `puppeteer` (`^2.0.0`) dependency has been replaced with `puppeteer-core` in version `3.0.0`. Puppeteer uses Chromium v81 instead of Chromium v79. See the [full list of changes](https://github.com/puppeteer/puppeteer/releases/tag/v3.0.0). It also allowed preventing Chromium installation together with `@wordpress/scripts`. It happens now on-demand when running `test-e2e` script, and it re-triggers only when a new version is required.
+### New Features
+
+- Add support for passing [node CLI options](https://nodejs.org/api/cli.html) to scripts ([#21631](https://github.com/WordPress/gutenberg/pull/21631)).
+- Add debugging support for `test-unit-js` script ([#21631](https://github.com/WordPress/gutenberg/pull/21631)). Tests can be debugged by any [inspector client](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients) that supports the [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) using the `--inspect-brk` option.
+- Add debugging support for `test-e2e` script ([#21861](https://github.com/WordPress/gutenberg/pull/21861)). Tests can be debugged by using the `--inspect-brk` option and a new `--puppeteer-devtools` option (or `PUPPETEER_DEVTOOLS="true"` environment variable).
+
### Bug fix
- The bundled `npm-package-json-lint` dependency has been updated from requiring `^4.0.3` to requiring `^5.0.0` ([#21597](https://github.com/WordPress/gutenberg/pull/21597)). [Breaking changes](https://npmpackagejsonlint.org/docs/en/v4-to-v5) don't break anything in this package. It fixes the abrupt shutdown when `"description"` field in `package.json` is empty.
diff --git a/packages/scripts/README.md b/packages/scripts/README.md
index 3c49a764787ed6..e89e3fec93ea04 100644
--- a/packages/scripts/README.md
+++ b/packages/scripts/README.md
@@ -123,7 +123,9 @@ _Flags_:
- `--gpl2`: Validates against [GPLv2 license compatibility](https://www.gnu.org/licenses/license-list.en.html)
- `--ignore=a,b,c`: A comma-separated set of package names to ignore for validation. This is intended to be used primarily in cases where a dependency’s `license` field is malformed. It’s assumed that any `ignored` package argument would be manually vetted for compatibility by the project owner.
-### `env`
+### `env` (deprecated)
+
+> _This script is no longer maintained and it’s going to be removed in one of the future releases. We recommend using [`@wordpress/env`](/packages/env/README.md) package instead that lets you easily set up a local WordPress environment for building and testing plugins and themes._
`env` is a family of scripts for setting up a local Docker-based development environment that plugin contributors can work in.
@@ -162,14 +164,14 @@ In the `wp-env` config block, each entry can be configured like so:
#### Available Sub-Scripts
- `install`: Automatically downloads, builds, and installs a copy of WordPress to work with. This will be installed in the `wordpress` folder inside your project. You should add `wordpress` to your `.gitignore` file.
-- `connect`: For contributors that have a WordPress respository already, they can define the `WP_DEVELOP_DIR` environment variable with the path to their repository, then run this command to add your plugin to it.
+- `connect`: For contributors that have a WordPress repository already, they can define the `WP_DEVELOP_DIR` environment variable with the path to their repository, then run this command to add your plugin to it.
- `start`: Starts the Docker containers.
- `stop`: Stops the Docker containers.
- `update`: For contributors that used `npm run env install` to setup WordPress, running this command will update it to the latest checkout.
- `reinstall`: Resets the database and re-configures WordPress again.
- `cli`: Runs WP-CLI commands against the WordPress install.
- `lint-php`: Run PHPCS linting on your plugin. You will need to have `composer.json` configured to install PHPCS, with a `lint` script that runs your linting. You will also need to have an appropriately configured `phpcs.xml.dist` file.
-- `test-php`: Runs your plugin's PHPUnit tests. You will need to have an appropriately configured `phpunit.xml.dist` file.
+- `test-php`: Runs your plugin’s PHPUnit tests. You will need to have an appropriately configured `phpunit.xml.dist` file.
- `docker-run`: For more advanced debugging, contributors may sometimes need to run commands in the Docker containers. This is the equivalent of running `docker-compose run` within the WordPress directory.
### `format-js`
@@ -385,7 +387,8 @@ _Example:_
{
"scripts": {
"test:e2e": "wp-scripts test-e2e",
- "test:e2e:help": "wp-scripts test-e2e --help"
+ "test:e2e:help": "wp-scripts test-e2e --help",
+ "test:e2e:debug": "wp-scripts --inspect-brk test-e2e --puppeteer-devtools"
}
}
```
@@ -397,6 +400,7 @@ This is how you execute those scripts using the presented setup:
* `npm run test-e2e -- --puppeteer-interactive` - runs all e2e tests interactively.
* `npm run test-e2e FILE_NAME -- --puppeteer-interactive ` - runs one test file interactively.
* `npm run test-e2e:watch -- --puppeteer-interactive` - runs all tests interactively and watch for changes.
+* `npm run test-e2e:debug` - runs all tests interactively and enables [debugging tests](#debugging-e2e-tests).
Jest will look for test files with any of the following popular naming conventions:
@@ -425,7 +429,8 @@ _Example:_
"scripts": {
"test:unit": "wp-scripts test-unit-js",
"test:unit:help": "wp-scripts test-unit-js --help",
- "test:unit:watch": "wp-scripts test-unit-js --watch"
+ "test:unit:watch": "wp-scripts test-unit-js --watch",
+ "test:unit:debug": "wp-scripts --inspect-brk test-unit-js --runInBand --no-cache"
}
}
```
@@ -435,6 +440,7 @@ This is how you execute those scripts using the presented setup:
* `npm run test:unit` - runs all unit tests.
* `npm run test:unit:help` - prints all available options to configure unit tests runner.
* `npm run test:unit:watch` - runs all unit tests in the watch mode.
+* `npm run test:unit:debug` - runs all unit tests in [debug mode](#debugging-tests).
Jest will look for test files with any of the following popular naming conventions:
@@ -446,6 +452,58 @@ Jest will look for test files with any of the following popular naming conventio
It uses [Jest](https://jestjs.io/) behind the scenes and you are able to use all of its [CLI options](https://jestjs.io/docs/en/cli.html). You can also run `./node_modules/.bin/wp-scripts test:unit --help` or `npm run test:unit:help` (as mentioned above) to view all of the available options. By default, it uses the set of recommended options defined in [@wordpress/jest-preset-default](https://www.npmjs.com/package/@wordpress/jest-preset-default) npm package. You can override them with your own options as described in [Jest documentation](https://jestjs.io/docs/en/configuration). Learn more in the [Advanced Usage](#advanced-usage) section.
+## Passing Node.js options
+
+`wp-scripts` supports the full array of [Node.js CLI options](https://nodejs.org/api/cli.html). They can be passed after the `wp-scripts` command and before the script name.
+
+```sh
+wp-scripts [NODE_OPTIONS] script
+```
+
+### Debugging tests
+
+One common use-case for passing Node.js options is debugging your tests.
+
+Tests can be debugged by any [inspector client](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients) that supports the [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/).
+
+Follow the instructions for debugging Node.js with your favorite supported browser or IDE. When the instructions say to use `node --inspect script.js` or `node --inspect-brk script.js`, simply use `wp-scripts --inspect script` or `wp-scripts --inspect-brk script` instead.
+
+Google Chrome and Visual Studio Code are used as examples below.
+
+#### Debugging in Google Chrome
+
+Place `debugger;` statements in any test and run `wp-scripts --inspect-brk test-unit-js --runInBand --no-cache` (or `npm run test:unit:debug` from above).
+
+Then open `about:inspect` in Google Chrome and select `inspect` on your process.
+
+A breakpoint will be set at the first line of the script (this is done to give you time to open the developer tools and to prevent Jest from executing before you have time to do so). Click the resume button in the upper right panel of the dev tools to continue execution. When Jest executes the test that contains the debugger statement, execution will pause and you can examine the current scope and call stack.
+
+#### Debugging in Visual Studio Code
+
+Debugging npm scripts is supported out of the box for Visual Studio Code as of [version 1.23](https://code.visualstudio.com/blogs/2018/07/12/introducing-logpoints-and-auto-attach#_npm-scripts-and-debugging) and can be used to debug Jest unit tests.
+
+Make sure `wp-scripts --inspect-brk test-unit-js --runInBand --no-cache` is saved as `test:unit:debug` in your `package.json` file to run tests in Visual Studio Code.
+
+When debugging, set a breakpoint in your tests by clicking on a line in the editor’s left margin by the line numbers.
+
+Then open npm scripts in the explorer or run `Explorer: Focus on NPM Scripts View` in the command palette to see the npm scripts. To start the tests, click the debug icon next to `test:unit:debug`.
+
+The tests will start running, and execution will pause on your selected line so you can inspect the current scope and call stack within the editor.
+
+See [Debugging in Visual Studio Code](https://code.visualstudio.com/Docs/editor/debugging) for more details on using the Visual Studio Code debugger.
+
+#### Debugging e2e tests
+
+Since e2e tests run both in the node context _and_ the (usually headless) browser context, not all lines of code can have breakpoints set within the inspector client—only the node context is debugged in the inspector client.
+
+The code executed in the node context includes all of the test files _excluding_ code within `page.evaluate` functions. The `page.evaluate` functions and the rest of your app code is executed within the browser context.
+
+Test code (node context) can be debugged normally using the instructions above.
+
+To also debug the browser context, run `wp-scripts --inspect-brk test-e2e --puppeteer-devtools`. The `--puppeteer-devtools` option (or the `PUPPETEER_DEVTOOLS="true"` environment variable when used with `PUPPETEER_HEADLESS="false"`) will disable headless mode and launch the browser with the devtools already open. Breakpoints can then be set in the browser context using these devtools.
+
+For more e2e debugging tips check out the [Puppeteer debugging docs](https://developers.google.com/web/tools/puppeteer/debugging).
+
## Advanced Usage
In general, this package should be used with the set of recommended config files. While it’s possible to override every single config file provided, if you have to do it, it means that your use case is far more complicated than anticipated. If that happens, it would be better to avoid using the whole abstraction layer and set up your project with full control over tooling used.
@@ -497,4 +555,5 @@ module.exports = {
```
If you follow this approach, please, be aware that future versions of this package may change what webpack and Babel plugins we bundle, default configs, etc. Should those changes be necessary, they will be registered in the [package’s CHANGELOG](https://github.com/WordPress/gutenberg/blob/master/packages/scripts/CHANGELOG.md), so make sure to read it before upgrading.
+
diff --git a/packages/scripts/bin/wp-scripts.js b/packages/scripts/bin/wp-scripts.js
index a74076ead7f85f..d99d7c0c9fcae4 100755
--- a/packages/scripts/bin/wp-scripts.js
+++ b/packages/scripts/bin/wp-scripts.js
@@ -3,8 +3,8 @@
/**
* Internal dependencies
*/
-const { getArgsFromCLI, spawnScript } = require( '../utils' );
+const { getNodeArgsFromCLI, spawnScript } = require( '../utils' );
-const [ scriptName, ...nodesArgs ] = getArgsFromCLI();
+const { scriptName, scriptArgs, nodeArgs } = getNodeArgsFromCLI();
-spawnScript( scriptName, nodesArgs );
+spawnScript( scriptName, scriptArgs, nodeArgs );
diff --git a/packages/scripts/config/puppeteer.config.js b/packages/scripts/config/puppeteer.config.js
index f42070351bc84f..48941d9e34210f 100644
--- a/packages/scripts/config/puppeteer.config.js
+++ b/packages/scripts/config/puppeteer.config.js
@@ -1,5 +1,6 @@
module.exports = {
launch: {
+ devtools: process.env.PUPPETEER_DEVTOOLS === 'true',
headless: process.env.PUPPETEER_HEADLESS !== 'false',
slowMo: parseInt( process.env.PUPPETEER_SLOWMO, 10 ) || 0,
},
diff --git a/packages/scripts/config/webpack.config.js b/packages/scripts/config/webpack.config.js
index 4c227696a7da35..52aefbb7c6ff6d 100644
--- a/packages/scripts/config/webpack.config.js
+++ b/packages/scripts/config/webpack.config.js
@@ -19,6 +19,11 @@ const isProduction = process.env.NODE_ENV === 'production';
const mode = isProduction ? 'production' : 'development';
const config = {
+ optimization: {
+ // Only concatenate modules in production, when not analyzing bundles.
+ concatenateModules:
+ mode === 'production' && ! process.env.WP_BUNDLE_ANALYZER,
+ },
mode,
entry: {
index: path.resolve( process.cwd(), 'src', 'index.js' ),
@@ -70,8 +75,8 @@ const config = {
],
},
plugins: [
- // WP_BUNDLE_ANALYZER global variable enables utility that represents bundle content
- // as convenient interactive zoomable treemap.
+ // The WP_BUNDLE_ANALYZER global variable enables a utility that represents bundle
+ // content as a convenient interactive zoomable treemap.
process.env.WP_BUNDLE_ANALYZER && new BundleAnalyzerPlugin(),
// WP_LIVE_RELOAD_PORT global variable changes port on which live reload works
// when running watch mode.
diff --git a/packages/scripts/package.json b/packages/scripts/package.json
index 6904013ada57b9..a5830d6561c48b 100644
--- a/packages/scripts/package.json
+++ b/packages/scripts/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/scripts",
- "version": "8.0.1",
+ "version": "9.0.0",
"description": "Collection of reusable scripts for WordPress development.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/scripts/scripts/check-licenses.js b/packages/scripts/scripts/check-licenses.js
index 2c554c45699ce4..8bb9c00548f670 100644
--- a/packages/scripts/scripts/check-licenses.js
+++ b/packages/scripts/scripts/check-licenses.js
@@ -79,6 +79,7 @@ const otherOssLicenses = [
'Apache License, Version 2.0',
'Apache version 2.0',
'CC-BY-3.0',
+ 'CC-BY-SA-2.0',
'LGPL',
];
diff --git a/packages/scripts/scripts/test-e2e.js b/packages/scripts/scripts/test-e2e.js
index 6ab4dabb2b19c9..7d2fac76665e11 100644
--- a/packages/scripts/scripts/test-e2e.js
+++ b/packages/scripts/scripts/test-e2e.js
@@ -61,6 +61,11 @@ if ( hasArgInCLI( '--puppeteer-interactive' ) ) {
process.env.PUPPETEER_SLOWMO = getArgFromCLI( '--puppeteer-slowmo' ) || 80;
}
+if ( hasArgInCLI( '--puppeteer-devtools' ) ) {
+ process.env.PUPPETEER_HEADLESS = 'false';
+ process.env.PUPPETEER_DEVTOOLS = 'true';
+}
+
const configsMapping = {
WP_BASE_URL: '--wordpress-base-url',
WP_USERNAME: '--wordpress-username',
diff --git a/packages/scripts/utils/cli.js b/packages/scripts/utils/cli.js
index c1572ece8a23c1..5f889e7543fa91 100644
--- a/packages/scripts/utils/cli.js
+++ b/packages/scripts/utils/cli.js
@@ -7,7 +7,7 @@ const spawn = require( 'cross-spawn' );
/**
* Internal dependencies
*/
-const { fromScriptsRoot, hasScriptFile } = require( './file' );
+const { fromScriptsRoot, hasScriptFile, getScripts } = require( './file' );
const { exit, getArgsFromCLI } = require( './process' );
const getArgFromCLI = ( arg ) => {
@@ -23,6 +23,17 @@ const hasArgInCLI = ( arg ) => getArgFromCLI( arg ) !== undefined;
const getFileArgsFromCLI = () => minimist( getArgsFromCLI() )._;
+const getNodeArgsFromCLI = () => {
+ const args = getArgsFromCLI();
+ const scripts = getScripts();
+ const scriptIndex = args.findIndex( ( arg ) => scripts.includes( arg ) );
+ return {
+ nodeArgs: args.slice( 0, scriptIndex ),
+ scriptName: args[ scriptIndex ],
+ scriptArgs: args.slice( scriptIndex + 1 ),
+ };
+};
+
const hasFileArgInCLI = () => getFileArgsFromCLI().length > 0;
const handleSignal = ( signal ) => {
@@ -44,7 +55,7 @@ const handleSignal = ( signal ) => {
exit( 1 );
};
-const spawnScript = ( scriptName, args = [] ) => {
+const spawnScript = ( scriptName, args = [], nodeArgs = [] ) => {
if ( ! scriptName ) {
// eslint-disable-next-line no-console
console.log( 'Script name is missing.' );
@@ -64,7 +75,7 @@ const spawnScript = ( scriptName, args = [] ) => {
const { signal, status } = spawn.sync(
'node',
- [ fromScriptsRoot( scriptName ), ...args ],
+ [ ...nodeArgs, fromScriptsRoot( scriptName ), ...args ],
{
stdio: 'inherit',
}
@@ -81,6 +92,7 @@ module.exports = {
getArgFromCLI,
getArgsFromCLI,
getFileArgsFromCLI,
+ getNodeArgsFromCLI,
hasArgInCLI,
hasFileArgInCLI,
spawnScript,
diff --git a/packages/scripts/utils/file.js b/packages/scripts/utils/file.js
index 24dd8ad505e4bf..6e5718210e66b3 100644
--- a/packages/scripts/utils/file.js
+++ b/packages/scripts/utils/file.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-const { existsSync } = require( 'fs' );
+const { existsSync, readdirSync } = require( 'fs' );
const path = require( 'path' );
/**
@@ -24,10 +24,16 @@ const fromScriptsRoot = ( scriptName ) =>
const hasScriptFile = ( scriptName ) =>
existsSync( fromScriptsRoot( scriptName ) );
+const getScripts = () =>
+ readdirSync( path.join( path.dirname( __dirname ), 'scripts' ) )
+ .filter( ( f ) => path.extname( f ) === '.js' )
+ .map( ( f ) => path.basename( f, '.js' ) );
+
module.exports = {
fromProjectRoot,
fromConfigRoot,
fromScriptsRoot,
+ getScripts,
hasProjectFile,
hasScriptFile,
};
diff --git a/packages/scripts/utils/index.js b/packages/scripts/utils/index.js
index 2c4957c1d81922..5b0e62569108e5 100644
--- a/packages/scripts/utils/index.js
+++ b/packages/scripts/utils/index.js
@@ -5,6 +5,7 @@ const {
getArgFromCLI,
getArgsFromCLI,
getFileArgsFromCLI,
+ getNodeArgsFromCLI,
hasArgInCLI,
hasFileArgInCLI,
spawnScript,
@@ -30,6 +31,7 @@ module.exports = {
getArgFromCLI,
getArgsFromCLI,
getFileArgsFromCLI,
+ getNodeArgsFromCLI,
getWebpackArgs,
hasBabelConfig,
hasArgInCLI,
diff --git a/packages/scripts/utils/test/index.js b/packages/scripts/utils/test/index.js
index 45c2e27339e356..218e9cc1bc82d3 100644
--- a/packages/scripts/utils/test/index.js
+++ b/packages/scripts/utils/test/index.js
@@ -121,6 +121,32 @@ describe( 'utils', () => {
expect( console ).toHaveLogged();
} );
+ test( 'should pass inspect args to node', () => {
+ crossSpawnMock.mockReturnValueOnce( { status: 0 } );
+
+ expect( () =>
+ spawnScript( scriptName, [], [ '--inspect-brk' ] )
+ ).toThrow( 'Exit code: 0.' );
+ expect( crossSpawnMock ).toHaveBeenCalledWith(
+ 'node',
+ [ '--inspect-brk', expect.stringContaining( scriptName ) ],
+ { stdio: 'inherit' }
+ );
+ } );
+
+ test( 'should pass script args to the script', () => {
+ crossSpawnMock.mockReturnValueOnce( { status: 0 } );
+
+ expect( () =>
+ spawnScript( scriptName, [ '--runInBand' ] )
+ ).toThrow( 'Exit code: 0.' );
+ expect( crossSpawnMock ).toHaveBeenCalledWith(
+ 'node',
+ [ expect.stringContaining( scriptName ), '--runInBand' ],
+ { stdio: 'inherit' }
+ );
+ } );
+
test( 'should finish successfully when the script properly executed', () => {
crossSpawnMock.mockReturnValueOnce( { status: 0 } );
diff --git a/packages/server-side-render/CHANGELOG.md b/packages/server-side-render/CHANGELOG.md
index 2ed1d51ef27fda..e7104e27200e7a 100644
--- a/packages/server-side-render/CHANGELOG.md
+++ b/packages/server-side-render/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.7.0 (2020-02-04)
diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json
index 2e5bbdfd3f9d48..128cb599a08b28 100644
--- a/packages/server-side-render/package.json
+++ b/packages/server-side-render/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/server-side-render",
- "version": "1.10.1",
+ "version": "1.11.0",
"description": "The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/shortcode/CHANGELOG.md b/packages/shortcode/CHANGELOG.md
index e0cbe15336f6ac..99e94bb3d5ee81 100644
--- a/packages/shortcode/CHANGELOG.md
+++ b/packages/shortcode/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.0.1 (2018-09-30)
### Bug Fixes
diff --git a/packages/token-list/CHANGELOG.md b/packages/token-list/CHANGELOG.md
index cabfa94ea0427c..7b45c2b4465f49 100644
--- a/packages/token-list/CHANGELOG.md
+++ b/packages/token-list/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.10.0 (2020-04-15)
diff --git a/packages/url/CHANGELOG.md b/packages/url/CHANGELOG.md
index 177d4fd1c8eda2..f0b736ee542828 100644
--- a/packages/url/CHANGELOG.md
+++ b/packages/url/CHANGELOG.md
@@ -1,4 +1,12 @@
-## Master
+
+
+## Unreleased
+
+## 2.14.0 (2020-04-30)
+
+### Bug fix
+
+- `addQueryArgs` arguments are optional ([#21926](https://github.com/WordPress/gutenberg/pull/21926))
## 2.13.0 (2020-04-15)
diff --git a/packages/url/README.md b/packages/url/README.md
index d2b66ef4c71cb6..87c21efa4ed0c8 100644
--- a/packages/url/README.md
+++ b/packages/url/README.md
@@ -31,7 +31,7 @@ const newURL = addQueryArgs( 'https://google.com', { q: 'test' } ); // https://g
_Parameters_
- _url_ `[string]`: URL to which arguments should be appended. If omitted, only the resulting querystring is returned.
-- _args_ `Object`: Query arguments to apply to URL.
+- _args_ `[Object]`: Query arguments to apply to URL.
_Returns_
diff --git a/packages/url/package.json b/packages/url/package.json
index bdb10d5eb32e35..b3ad14de0fa24c 100644
--- a/packages/url/package.json
+++ b/packages/url/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/url",
- "version": "2.13.0",
+ "version": "2.14.0",
"description": "WordPress URL utilities.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/url/src/add-query-args.js b/packages/url/src/add-query-args.js
index 9a1add3af409be..2d48c0be5a06b8 100644
--- a/packages/url/src/add-query-args.js
+++ b/packages/url/src/add-query-args.js
@@ -10,7 +10,7 @@ import { parse, stringify } from 'qs';
*
* @param {string} [url=''] URL to which arguments should be appended. If omitted,
* only the resulting querystring is returned.
- * @param {Object} args Query arguments to apply to URL.
+ * @param {Object} [args] Query arguments to apply to URL.
*
* @example
* ```js
diff --git a/packages/url/src/is-url.js b/packages/url/src/is-url.js
index b84932c8aae2ee..1fda847947ed46 100644
--- a/packages/url/src/is-url.js
+++ b/packages/url/src/is-url.js
@@ -19,7 +19,7 @@ export function isURL( url ) {
try {
new URL( url );
return true;
- } catch ( error ) {
+ } catch {
return false;
}
}
diff --git a/packages/url/tsconfig.json b/packages/url/tsconfig.json
index 70efdfe49990d5..3c2c31f506f132 100644
--- a/packages/url/tsconfig.json
+++ b/packages/url/tsconfig.json
@@ -2,10 +2,7 @@
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"rootDir": "src",
- "declarationDir": "build-types",
-
- // This is required because the `react-native-url-polyfill` dependency lacks types
- "noImplicitAny": false
+ "declarationDir": "build-types"
},
"include": [ "src/**/*" ]
}
diff --git a/packages/viewport/CHANGELOG.md b/packages/viewport/CHANGELOG.md
index e3a0fbd033c08c..37e3c05aab406a 100644
--- a/packages/viewport/CHANGELOG.md
+++ b/packages/viewport/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.1.0 (2019-01-03)
### Improvements
diff --git a/packages/viewport/package.json b/packages/viewport/package.json
index 753838a0863f6c..fd162b2cca19ea 100644
--- a/packages/viewport/package.json
+++ b/packages/viewport/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/viewport",
- "version": "2.15.1",
+ "version": "2.16.0",
"description": "Viewport module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/warning/CHANGELOG.md b/packages/warning/CHANGELOG.md
index 2407c12cf85bf1..2aa197f8ba2b78 100644
--- a/packages/warning/CHANGELOG.md
+++ b/packages/warning/CHANGELOG.md
@@ -1,4 +1,6 @@
-## Master
+
+
+## Unreleased
## 1.1.0 (2020-04-15)
diff --git a/packages/wordcount/CHANGELOG.md b/packages/wordcount/CHANGELOG.md
index 9498e2b52738ab..9189c89a0b9209 100644
--- a/packages/wordcount/CHANGELOG.md
+++ b/packages/wordcount/CHANGELOG.md
@@ -1,3 +1,7 @@
+
+
+## Unreleased
+
## 2.0.3 (2018-10-29)
### Polish
diff --git a/phpunit/class-block-context-test.php b/phpunit/class-block-context-test.php
index e78f375345aef6..f3a7fc1011a757 100644
--- a/phpunit/class-block-context-test.php
+++ b/phpunit/class-block-context-test.php
@@ -104,7 +104,7 @@ function test_provides_block_context() {
'gutenberg/contextWithAssigned',
'gutenberg/contextWithoutDefault',
),
- 'render_callback' => function( $block ) use ( &$provided_context ) {
+ 'render_callback' => function( $attributes, $content, $block ) use ( &$provided_context ) {
$provided_context[] = $block->context;
return '';
@@ -129,4 +129,72 @@ function test_provides_block_context() {
);
}
+ /**
+ * Tests that a block can receive default-provided context through
+ * render_block.
+ */
+ function test_provides_default_context() {
+ global $post;
+
+ $provided_context = array();
+
+ $this->register_block_type(
+ 'gutenberg/test-context-consumer',
+ array(
+ 'context' => array( 'postId', 'postType' ),
+ 'render_callback' => function( $attributes, $content, $block ) use ( &$provided_context ) {
+ $provided_context[] = $block->context;
+
+ return '';
+ },
+ )
+ );
+
+ $parsed_blocks = parse_blocks( '' );
+
+ render_block( $parsed_blocks[0] );
+
+ $this->assertEquals(
+ array(
+ 'postId' => $post->ID,
+ 'postType' => $post->post_type,
+ ),
+ $provided_context[0]
+ );
+ }
+
+ /**
+ * Tests that default block context can be filtered.
+ */
+ function test_default_context_is_filterable() {
+ $provided_context = array();
+
+ $this->register_block_type(
+ 'gutenberg/test-context-consumer',
+ array(
+ 'context' => array( 'example' ),
+ 'render_callback' => function( $attributes, $content, $block ) use ( &$provided_context ) {
+ $provided_context[] = $block->context;
+
+ return '';
+ },
+ )
+ );
+
+ $filter_block_context = function( $context ) {
+ $context['example'] = 'ok';
+ return $context;
+ };
+
+ $parsed_blocks = parse_blocks( '' );
+
+ add_filter( 'render_block_context', $filter_block_context );
+
+ render_block( $parsed_blocks[0] );
+
+ remove_filter( 'render_block_context', $filter_block_context );
+
+ $this->assertEquals( array( 'example' => 'ok' ), $provided_context[0] );
+ }
+
}
diff --git a/phpunit/class-wp-block-list-test.php b/phpunit/class-wp-block-list-test.php
new file mode 100644
index 00000000000000..ed6565f7a9f943
--- /dev/null
+++ b/phpunit/class-wp-block-list-test.php
@@ -0,0 +1,94 @@
+registry = new WP_Block_Type_Registry();
+ $this->registry->register( 'core/example', array() );
+ }
+
+ /**
+ * Tear down each test method.
+ */
+ public function tearDown() {
+ parent::tearDown();
+
+ $this->registry = null;
+ }
+
+ function test_array_access() {
+ $parsed_blocks = parse_blocks( '' );
+ $context = array();
+ $blocks = new WP_Block_List( $parsed_blocks, $context, $this->registry );
+
+ // Test "offsetExists".
+ $this->assertTrue( isset( $blocks[0] ) );
+
+ // Test "offsetGet".
+ $this->assertEquals( 'core/example', $blocks[0]->name );
+
+ // Test "offsetSet".
+ $parsed_blocks[0]['blockName'] = 'core/updated';
+ $blocks[0] = new WP_Block( $parsed_blocks[0], $context, $this->registry );
+ $this->assertEquals( 'core/updated', $blocks[0]->name );
+
+ // Test "offsetUnset".
+ unset( $blocks[0] );
+ $this->assertFalse( isset( $blocks[0] ) );
+ }
+
+ function test_iterable() {
+ $parsed_blocks = parse_blocks( '' );
+ $context = array();
+ $blocks = new WP_Block_List( $parsed_blocks, $context, $this->registry );
+ $assertions = 0;
+
+ foreach ( $blocks as $block ) {
+ $this->assertEquals( 'core/example', $block->name );
+ $assertions++;
+ foreach ( $block->inner_blocks as $inner_block ) {
+ $this->assertEquals( 'core/example', $inner_block->name );
+ $assertions++;
+ }
+ }
+
+ $blocks->rewind();
+ while ( $blocks->valid() ) {
+ $key = $blocks->key();
+ $block = $blocks->current();
+ $this->assertEquals( 0, $key );
+ $assertions++;
+ $this->assertEquals( 'core/example', $block->name );
+ $assertions++;
+ $blocks->next();
+ }
+
+ $this->assertEquals( 4, $assertions );
+ }
+
+ function test_countable() {
+ $parsed_blocks = parse_blocks( '' );
+ $context = array();
+ $blocks = new WP_Block_List( $parsed_blocks, $context, $this->registry );
+
+ $this->assertEquals( 1, count( $blocks ) );
+ }
+
+}
diff --git a/phpunit/class-wp-block-test.php b/phpunit/class-wp-block-test.php
index 242f96f9eb462c..236ed46c0cb0ec 100644
--- a/phpunit/class-wp-block-test.php
+++ b/phpunit/class-wp-block-test.php
@@ -32,6 +32,10 @@ public function tearDown() {
$this->registry = null;
}
+ function filter_render_block( $content, $parsed_block ) {
+ return 'Original: "' . $content . '", from block "' . $parsed_block['blockName'] . '"';
+ }
+
function test_constructor_assigns_properties_from_parsed_block() {
$this->registry->register( 'core/example', array() );
@@ -40,6 +44,7 @@ function test_constructor_assigns_properties_from_parsed_block() {
$context = array();
$block = new WP_Block( $parsed_block, $context, $this->registry );
+ $this->assertSame( $parsed_block, $block->parsed_block );
$this->assertEquals( $parsed_block['blockName'], $block->name );
$this->assertEquals( $parsed_block['attrs'], $block->attributes );
$this->assertEquals( $parsed_block['innerContent'], $block->inner_content );
@@ -68,7 +73,7 @@ function test_constructor_assigns_block_type_from_registry() {
);
}
- function test_constructor_assigns_attributes_with_defaults() {
+ function test_lazily_assigns_attributes_with_defaults() {
$this->registry->register(
'core/example',
array(
@@ -99,7 +104,7 @@ function test_constructor_assigns_attributes_with_defaults() {
);
}
- function test_constructor_assigns_attributes_with_only_defaults() {
+ function test_lazily_assigns_attributes_with_only_defaults() {
$this->registry->register(
'core/example',
array(
@@ -120,6 +125,8 @@ function test_constructor_assigns_attributes_with_only_defaults() {
$block = new WP_Block( $parsed_block, $context, $this->registry );
$this->assertEquals( array( 'defaulted' => 10 ), $block->attributes );
+ // Intentionally call a second time, to ensure property was assigned.
+ $this->assertEquals( array( 'defaulted' => 10 ), $block->attributes );
}
function test_constructor_assigns_context_from_block_type() {
@@ -246,35 +253,40 @@ function test_render_static_block_type_returns_own_content() {
$this->assertSame( 'abc', $block->render() );
}
- function test_render_passes_instance_to_render_callback() {
+ function test_render_passes_block_for_render_callback() {
$this->registry->register(
'core/greeting',
array(
- 'attributes' => array(
- 'toWhom' => array(
- 'type' => 'string',
- ),
- 'punctuation' => array(
- 'type' => 'string',
- 'default' => '!',
- ),
- ),
- 'render_callback' => function( $block ) {
- return sprintf(
- 'Hello %s%s',
- $block->attributes['toWhom'],
- $block->attributes['punctuation']
- );
+ 'render_callback' => function( $attributes, $content, $block ) {
+ return sprintf( 'Hello from %s', $block->name );
},
)
);
- $parsed_blocks = parse_blocks( '' );
+ $parsed_blocks = parse_blocks( '' );
$parsed_block = $parsed_blocks[0];
$context = array();
$block = new WP_Block( $parsed_block, $context, $this->registry );
- $this->assertSame( 'Hello world!', $block->render() );
+ $this->assertSame( 'Hello from core/greeting', $block->render() );
+ }
+
+ function test_render_applies_render_block_filter() {
+ $this->registry->register( 'core/example', array() );
+
+ add_filter( 'render_block', array( $this, 'filter_render_block' ), 10, 2 );
+
+ $parsed_blocks = parse_blocks( 'StaticInner' );
+ $parsed_block = $parsed_blocks[0];
+ $context = array();
+ $block = new WP_Block( $parsed_block, $context, $this->registry );
+
+ $rendered_content = $block->render();
+
+ remove_filter( 'render_block', array( $this, 'filter_render_block' ) );
+
+ $this->assertSame( 'Original: "StaticOriginal: "Inner", from block "core/example"", from block "core/example"', $rendered_content );
+
}
function test_passes_attributes_to_render_callback() {
@@ -312,7 +324,7 @@ function test_passes_content_to_render_callback() {
$this->registry->register(
'core/outer',
array(
- 'render_callback' => function( $block, $content ) {
+ 'render_callback' => function( $block_attributes, $content ) {
return $content;
},
)
@@ -334,37 +346,4 @@ function test_passes_content_to_render_callback() {
$this->assertSame( 'abc', $block->render() );
}
- function test_array_access_attributes() {
- $this->registry->register(
- 'core/example',
- array(
- 'attributes' => array(
- 'value' => array(
- 'type' => 'string',
- ),
- ),
- )
- );
- $parsed_block = array(
- 'blockName' => 'core/example',
- 'attrs' => array( 'value' => 'ok' ),
- );
- $context = array();
- $block = new WP_Block( $parsed_block, $context, $this->registry );
-
- $this->assertTrue( isset( $block['value'] ) );
- $this->assertFalse( isset( $block['nonsense'] ) );
- $this->assertEquals( 'ok', $block['value'] );
-
- $block['value'] = 'changed';
- $this->assertEquals( 'changed', $block['value'] );
- $this->assertEquals( 'changed', $block->attributes['value'] );
-
- unset( $block['value'] );
- $this->assertFalse( isset( $block['value'] ) );
-
- $block[] = 'invalid, but still supported';
- $this->assertEquals( 'invalid, but still supported', $block[0] );
- }
-
}
diff --git a/readme.txt b/readme.txt
index b038cc8dbbd09e..f953804c7e589f 100644
--- a/readme.txt
+++ b/readme.txt
@@ -52,4 +52,4 @@ The four phases of the project are Editing, Customization, Collaboration, and Mu
== Changelog ==
-To read the changelog for Gutenberg 7.9.1, please navigate to the release page .
+To read the changelog for Gutenberg 8.1.0-rc.1, please navigate to the release page .
diff --git a/packages/react-native-editor/jest_ui.config.js b/test/native/jest_ui.config.js
similarity index 100%
rename from packages/react-native-editor/jest_ui.config.js
rename to test/native/jest_ui.config.js
diff --git a/test/native/setup.js b/test/native/setup.js
index 2728e05fbe2120..36399b8368d13f 100644
--- a/test/native/setup.js
+++ b/test/native/setup.js
@@ -85,6 +85,10 @@ jest.mock( 'react-native-linear-gradient', () => () => 'LinearGradient', {
virtual: true,
} );
+jest.mock( 'react-native-hsv-color-picker', () => () => 'HsvColorPicker', {
+ virtual: true,
+} );
+
// Overwrite some native module mocks from `react-native` jest preset:
// https://github.com/facebook/react-native/blob/master/jest/setup.js
// to fix issue "TypeError: Cannot read property 'Commands' of undefined"
diff --git a/tsconfig.json b/tsconfig.json
index 7f31d9ad53e770..28f48647436b52 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -5,23 +5,20 @@
{ "path": "packages/autop" },
{ "path": "packages/blob" },
{ "path": "packages/block-editor" },
+ { "path": "packages/element" },
{ "path": "packages/dom-ready" },
{ "path": "packages/escape-html" },
{ "path": "packages/html-entities" },
{ "path": "packages/i18n" },
+ { "path": "packages/icons" },
{ "path": "packages/is-shallow-equal" },
{ "path": "packages/prettier-config" },
+ { "path": "packages/primitives" },
{ "path": "packages/priority-queue" },
{ "path": "packages/project-management-automation" },
{ "path": "packages/token-list" },
{ "path": "packages/url" },
{ "path": "packages/warning" }
-
- // Temporarily disabled due to conflicts with 3rd party DefinitelyTyped types
- // See https://github.com/WordPress/gutenberg/pull/21613
- // { "path": "packages/element" },
- // { "path": "packages/icons" },
- // { "path": "packages/primitives" }
],
"files": []
}
diff --git a/webpack.config.js b/webpack.config.js
index 96b887d908ba23..63031f6bf98978 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,6 +1,7 @@
/**
* External dependencies
*/
+const { BundleAnalyzerPlugin } = require( 'webpack-bundle-analyzer' );
const { DefinePlugin } = require( 'webpack' );
const CopyWebpackPlugin = require( 'copy-webpack-plugin' );
const postcss = require( 'postcss' );
@@ -40,6 +41,11 @@ const gutenbergPackages = Object.keys( dependencies )
.map( ( packageName ) => packageName.replace( WORDPRESS_NAMESPACE, '' ) );
module.exports = {
+ optimization: {
+ // Only concatenate modules in production, when not analyzing bundles.
+ concatenateModules:
+ mode === 'production' && ! process.env.WP_BUNDLE_ANALYZER,
+ },
mode,
entry: gutenbergPackages.reduce( ( memo, packageName ) => {
const name = camelCaseDash( packageName );
@@ -63,6 +69,9 @@ module.exports = {
] ),
},
plugins: [
+ // The WP_BUNDLE_ANALYZER global variable enables a utility that represents bundle
+ // content as a convenient interactive zoomable treemap.
+ process.env.WP_BUNDLE_ANALYZER && new BundleAnalyzerPlugin(),
new DefinePlugin( {
// Inject the `GUTENBERG_PHASE` global, used for feature flagging.
'process.env.GUTENBERG_PHASE': JSON.stringify(
@@ -190,7 +199,7 @@ module.exports = {
},
] ),
new DependencyExtractionWebpackPlugin( { injectPolyfill: true } ),
- ],
+ ].filter( Boolean ),
watchOptions: {
ignored: '!packages/*/!(src)/**/*',
},