diff --git a/lib/index.js b/lib/index.js index 4ccffa5a8..b46332787 100644 --- a/lib/index.js +++ b/lib/index.js @@ -3,7 +3,6 @@ const dedent = require('dedent') const { cosmiconfig } = require('cosmiconfig') const stringifyObject = require('stringify-object') -const printErrors = require('./printErrors') const runAll = require('./runAll') const validateConfig = require('./validateConfig') @@ -105,7 +104,6 @@ module.exports = async function lintStaged( debugLog('tasks were executed successfully!') return true } catch (runAllError) { - printErrors(runAllError, logger) return false } } catch (lintStagedError) { diff --git a/lib/printErrors.js b/lib/printErrors.js deleted file mode 100644 index 34ff16740..000000000 --- a/lib/printErrors.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict' - -// istanbul ignore next -// Work-around for duplicated error logs, see #142 -const errMsg = (err) => (err.privateMsg != null ? err.privateMsg : err.message) - -module.exports = function printErrors(errorInstance, logger) { - if (Array.isArray(errorInstance.errors)) { - errorInstance.errors.forEach((lintError) => { - logger.error(errMsg(lintError)) - }) - } else { - logger.error(errMsg(errorInstance)) - } -} diff --git a/lib/resolveTaskFn.js b/lib/resolveTaskFn.js index f773d7d19..27aa13ef2 100644 --- a/lib/resolveTaskFn.js +++ b/lib/resolveTaskFn.js @@ -10,21 +10,6 @@ const debug = require('debug')('lint-staged:task') const successMsg = (linter) => `${symbols.success} ${linter} passed!` -/** - * Create and returns an error instance with a given message. - * If we set the message on the error instance, it gets logged multiple times(see #142). - * So we set the actual error message in a private field and extract it later, - * log only once. - * - * @param {string} message - * @returns {Error} - */ -function throwError(message) { - const err = new Error() - err.privateMsg = `\n\n\n${message}` - return err -} - /** * Create a failure message dependding on process result. * @@ -41,12 +26,12 @@ function throwError(message) { function makeErr(linter, result, context = {}) { context.taskError = true const { stdout, stderr, killed, signal } = result + if (killed || (signal && signal !== '')) { - return throwError( - `${symbols.warning} ${chalk.yellow(`${linter} was terminated with ${signal}`)}` - ) + throw new Error(`${chalk.yellow(`${linter} was terminated with ${signal}`)}`) } - return throwError(dedent`${symbols.error} ${chalk.redBright( + + throw new Error(dedent`${chalk.redBright( `${linter} found some errors. Please fix them and try committing again.` )} ${stdout} diff --git a/lib/runAll.js b/lib/runAll.js index ed890de95..345c72dd6 100644 --- a/lib/runAll.js +++ b/lib/runAll.js @@ -3,7 +3,7 @@ /** @typedef {import('./index').Logger} Logger */ const chalk = require('chalk') -const Listr = require('listr') +const { Listr } = require('listr2') const symbols = require('log-symbols') const chunkFiles = require('./chunkFiles') @@ -58,6 +58,13 @@ const shouldSkipCleanup = (ctx) => { } } +const wasFailed = (context) => { + const itemCount = Object.keys(context).length + if (itemCount === 0) return false + if ('hasPartiallyStagedFiles' in context && itemCount === 1) return false + return true +} + /** * Executes all tasks and either resolves or rejects the promise * @@ -161,8 +168,9 @@ const runAll = async ( new Listr(subTasks, { // In sub-tasks we don't want to run concurrently // and we want to abort on errors - dateFormat: false, + collapse: false, concurrent: false, + dateFormat: false, exitOnError: true }), skip: () => { @@ -179,7 +187,7 @@ const runAll = async ( // No need to show number of task chunks when there's only one title: chunkCount > 1 ? `Running tasks (chunk ${index + 1}/${chunkCount})...` : 'Running tasks...', - task: () => new Listr(chunkListrTasks, { ...listrOptions, concurrent }), + task: (ctx) => new Listr(chunkListrTasks, { ...listrOptions, ctx, concurrent }), skip: (ctx = {}) => { // Skip if the first step (backup) failed if (ctx.gitError) return MESSAGES.GIT_ERROR @@ -248,15 +256,15 @@ const runAll = async ( listrOptions ) - try { - await runner.run({}) - } catch (error) { - if (error.context.gitApplyEmptyCommitError) { + const context = await runner.run() + + if (wasFailed(context)) { + if (context.gitApplyEmptyCommitError) { logger.warn(` ${symbols.warning} ${chalk.yellow(`lint-staged prevented an empty git commit. - Use the --allow-empty option to continue, or check your task configuration`)} -`) - } else if (error.context.gitError && !error.context.gitGetBackupStashError) { + Use the --allow-empty option to continue, or check your task configuration`)} + `) + } else if (context.gitError && !context.gitGetBackupStashError) { logger.error(`\n ${symbols.error} ${chalk.red(`lint-staged failed due to a git error.`)}`) if (shouldBackup) { @@ -264,12 +272,12 @@ const runAll = async ( logger.error(` Any lost modifications can be restored from a git stash: > git stash list - stash@{0}: On master: automatic lint-staged backup + stash@{0}: automatic lint-staged backup > git stash apply --index stash@{0}\n`) } } - - throw error + const error = new Error('lint-staged failed') + throw Object.assign(error, context) } } diff --git a/package.json b/package.json index c8383a163..683c7acc2 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "debug": "^4.1.1", "dedent": "^0.7.0", "execa": "^4.0.0", - "listr": "^0.14.3", + "listr2": "1.3.7", "log-symbols": "^3.0.0", "micromatch": "^4.0.2", "normalize-path": "^3.0.0", diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index adcb57ecc..8ec97131c 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -1,20 +1,13 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`lintStaged should exit with code 1 on linter errors 1`] = ` -" -ERROR - - -× node found some errors. Please fix them and try committing again." -`; +exports[`lintStaged should exit with code 1 on linter errors 1`] = `""`; exports[`lintStaged should load an npm config package when specified 1`] = ` " LOG Running lint-staged with the following config: LOG { '*': 'mytask' -} -ERROR Unable to get staged files!" +}" `; exports[`lintStaged should load config file when specified 1`] = ` @@ -22,22 +15,17 @@ exports[`lintStaged should load config file when specified 1`] = ` LOG Running lint-staged with the following config: LOG { '*': 'mytask' -} -ERROR Unable to get staged files!" +}" `; -exports[`lintStaged should not output config in normal mode 1`] = ` -" -ERROR Unable to get staged files!" -`; +exports[`lintStaged should not output config in normal mode 1`] = `""`; exports[`lintStaged should output config in debug mode 1`] = ` " LOG Running lint-staged with the following config: LOG { '*': 'mytask' -} -ERROR Unable to get staged files!" +}" `; exports[`lintStaged should parse function linter from js config 1`] = ` @@ -46,8 +34,7 @@ LOG Running lint-staged with the following config: LOG { '*.css': filenames => \`echo \${filenames.join(' ')}\`, '*.js': filenames => filenames.map(filename => \`echo \${filename}\`) -} -ERROR Unable to get staged files!" +}" `; exports[`lintStaged should print helpful error message when config file is not found 2`] = ` @@ -83,14 +70,10 @@ exports[`lintStaged should use config object 1`] = ` LOG Running lint-staged with the following config: LOG { '*': 'node -e \\"process.exit(1)\\"' -} -ERROR Unable to get staged files!" +}" `; -exports[`lintStaged should use cosmiconfig if no params are passed 1`] = ` -" -ERROR Unable to get staged files!" -`; +exports[`lintStaged should use cosmiconfig if no params are passed 1`] = `""`; exports[`lintStaged should use use the console if no logger is passed 1`] = ` " diff --git a/test/__snapshots__/printErrors.spec.js.snap b/test/__snapshots__/printErrors.spec.js.snap deleted file mode 100644 index b41d29da8..000000000 --- a/test/__snapshots__/printErrors.spec.js.snap +++ /dev/null @@ -1,12 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`printErrors should print Listr nested errors 1`] = ` -" -ERROR Foo failed -ERROR Unicorn failed" -`; - -exports[`printErrors should print plain errors 1`] = ` -" -ERROR We have a problem" -`; diff --git a/test/index.spec.js b/test/index.spec.js index cbec8dc49..b1e3cee12 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -53,6 +53,16 @@ describe('lintStaged', () => { expect(logger.printHistory()).toMatchSnapshot() }) + it('should return true when passed', async () => { + expect.assertions(1) + const config = { + '*': 'node -e "process.exit(0)"' + } + getStagedFiles.mockImplementationOnce(async () => ['sample.java']) + const passed = await lintStaged({ config, quiet: true }, logger) + expect(passed).toEqual(true) + }) + it('should use use the console if no logger is passed', async () => { expect.assertions(1) mockCosmiconfigWith({ config: {} }) diff --git a/test/index2.spec.js b/test/index2.spec.js index 7ae02a17a..f3ccfac37 100644 --- a/test/index2.spec.js +++ b/test/index2.spec.js @@ -1,8 +1,8 @@ -import Listr from 'listr' +import { Listr } from 'listr2' import makeConsoleMock from 'consolemock' import path from 'path' -jest.mock('listr') +jest.mock('listr2') jest.mock('../lib/resolveGitRepo') // eslint-disable-next-line import/first diff --git a/test/printErrors.spec.js b/test/printErrors.spec.js deleted file mode 100644 index 9dd0e3cb7..000000000 --- a/test/printErrors.spec.js +++ /dev/null @@ -1,58 +0,0 @@ -import Listr from 'listr' -import makeConsoleMock from 'consolemock' -import printErrors from '../lib/printErrors' - -describe('printErrors', () => { - const logger = makeConsoleMock() - - beforeEach(() => { - logger.clearHistory() - }) - - it('should print plain errors', () => { - const err = new Error('We have a problem') - printErrors(err, logger) - expect(logger.printHistory()).toMatchSnapshot() - }) - - it('should print Listr nested errors', async () => { - expect.assertions(1) - const list = new Listr( - [ - { - title: 'foo', - task: () => Promise.reject(new Error('Foo failed')) - }, - { - title: 'bar', - task: () => - new Listr([ - { - title: 'unicorn', - task: () => Promise.reject(new Error('Unicorn failed')) - }, - { - title: 'rainbow', - task: () => Promise.resolve() - } - ]) - }, - { - title: 'baz', - task: () => Promise.resolve() - } - ], - { - exitOnError: false, - renderer: 'silent' - } - ) - - try { - await list.run() - } catch (err) { - printErrors(err, logger) - expect(logger.printHistory()).toMatchSnapshot() - } - }) -}) diff --git a/test/resolveTaskFn.spec.js b/test/resolveTaskFn.spec.js index 04612d5a2..0f1dfee13 100644 --- a/test/resolveTaskFn.spec.js +++ b/test/resolveTaskFn.spec.js @@ -137,17 +137,7 @@ describe('resolveTaskFn', () => { }) const taskFn = resolveTaskFn({ ...defaultOpts, command: 'mock-fail-linter' }) - try { - await taskFn() - } catch (err) { - expect(err.privateMsg).toMatchInlineSnapshot(` - " - - - × mock-fail-linter found some errors. Please fix them and try committing again. - Mock error" - `) - } + await expect(taskFn()).rejects.toThrow('mock-fail-linter found some errors') }) it('should throw error for killed processes', async () => { @@ -163,16 +153,7 @@ describe('resolveTaskFn', () => { }) const taskFn = resolveTaskFn({ ...defaultOpts, command: 'mock-killed-linter' }) - try { - await taskFn() - } catch (err) { - expect(err.privateMsg).toMatchInlineSnapshot(` - " - - - ‼ mock-killed-linter was terminated with SIGINT" - `) - } + await expect(taskFn()).rejects.toThrow('mock-killed-linter was terminated with SIGINT') }) it('should not set taskError on context if no error occur', async () => { diff --git a/test/runAll.spec.js b/test/runAll.spec.js index 0e230321f..e269310da 100644 --- a/test/runAll.spec.js +++ b/test/runAll.spec.js @@ -65,18 +65,18 @@ describe('runAll', () => { await runAll({ config: { '*.js': ['echo "sample"'] } }) expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG echo \\"sample\\" [started] - LOG echo \\"sample\\" [completed] - LOG Running tasks for *.js [completed] - LOG Running tasks... [completed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed] - LOG Cleaning up... [started] - LOG Cleaning up... [completed]" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ echo \\"sample\\" + LOG ✔ echo \\"sample\\" + LOG ✔ Running tasks for *.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + LOG ✔ Applying modifications... + INFO ❯ Cleaning up... + LOG ✔ Cleaning up..." `) }) @@ -93,28 +93,21 @@ describe('runAll', () => { await expect( runAll({ config: { '*.js': ['echo "sample"'] } }) - ).rejects.toThrowErrorMatchingInlineSnapshot(`"Something went wrong"`) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"lint-staged failed"`) expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [failed] - LOG → test - LOG Running tasks... [started] - LOG Running tasks... [skipped] - LOG → Skipped because of previous git error. - LOG Applying modifications... [started] - LOG Applying modifications... [skipped] - LOG → Skipped because of previous git error. - LOG Cleaning up... [started] - LOG Cleaning up... [skipped] - LOG → Skipped because of previous git error. + INFO ❯ Preparing... + ERROR ✖ test + INFO ❯ Running tasks... + INFO ❯ Applying modifications... + INFO ❯ Cleaning up... ERROR × lint-staged failed due to a git error. ERROR Any lost modifications can be restored from a git stash: > git stash list - stash@{0}: On master: automatic lint-staged backup + stash@{0}: automatic lint-staged backup > git stash apply --index stash@{0} " `) @@ -135,27 +128,27 @@ describe('runAll', () => { await expect( runAll({ config: { '*.js': ['echo "sample"'] } }) - ).rejects.toThrowErrorMatchingInlineSnapshot(`"Something went wrong"`) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"lint-staged failed"`) expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG echo \\"sample\\" [started] - LOG echo \\"sample\\" [failed] - LOG → - LOG Running tasks for *.js [failed] - LOG → - LOG Running tasks... [failed] - LOG Applying modifications... [started] - LOG Applying modifications... [skipped] - LOG → Skipped because of errors from tasks. - LOG Reverting to original state because of errors... [started] - LOG Reverting to original state because of errors... [completed] - LOG Cleaning up... [started] - LOG Cleaning up... [completed]" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ echo \\"sample\\" + ERROR ✖ echo found some errors. Please fix them and try committing again. + ✖ + ✖ Linter finished with error + ERROR ✖ echo found some errors. Please fix them and try committing again. + ✖ + ✖ Linter finished with error + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + INFO ❯ Reverting to original state because of errors... + LOG ✔ Reverting to original state because of errors... + INFO ❯ Cleaning up... + LOG ✔ Cleaning up..." `) }) @@ -182,33 +175,20 @@ describe('runAll', () => { expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG echo \\"sample\\" [started] - LOG echo \\"sample\\" [failed] - LOG → - LOG Running tasks for *.js [failed] - LOG → - LOG Running tasks... [failed] - LOG Applying modifications... [started] - LOG Applying modifications... [skipped] - LOG → Skipped because of errors from tasks. - LOG Reverting to original state because of errors... [started] - LOG Reverting to original state because of errors... [completed] - LOG Cleaning up... [started] - LOG Cleaning up... [completed] - LOG { - name: 'ListrError', - errors: [ - { - privateMsg: '\\\\n\\\\n\\\\n‼ echo was terminated with SIGINT', - context: {taskError: true} - } - ], - context: {taskError: true} - }" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ echo \\"sample\\" + ERROR ✖ echo was terminated with SIGINT + ERROR ✖ echo was terminated with SIGINT + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + INFO ❯ Reverting to original state because of errors... + LOG ✔ Reverting to original state because of errors... + INFO ❯ Cleaning up... + LOG ✔ Cleaning up... + LOG {taskError: true}" `) }) }) diff --git a/test/runAll.unmocked.2.spec.js b/test/runAll.unmocked.2.spec.js index 17698ff46..dcc150157 100644 --- a/test/runAll.unmocked.2.spec.js +++ b/test/runAll.unmocked.2.spec.js @@ -102,35 +102,30 @@ describe('runAll', () => { // Run lint-staged with `prettier --list-different` await expect( gitCommit({ config: { '*.js': 'prettier --list-different' }, quiet: false }) - ).rejects.toThrowErrorMatchingInlineSnapshot(`"Something went wrong"`) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"lint-staged failed"`) expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG prettier --list-different [started] - LOG prettier --list-different [failed] - LOG → - LOG Running tasks for *.js [failed] - LOG → - LOG Running tasks... [failed] - LOG Applying modifications... [started] - LOG Applying modifications... [skipped] - LOG → Skipped because of errors from tasks. - LOG Reverting to original state because of errors... [started] - LOG Reverting to original state because of errors... [failed] - LOG → Merge state could not be restored due to an error! - LOG Cleaning up... [started] - LOG Cleaning up... [skipped] - LOG → Skipped because of previous git error. + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ prettier --list-different + ERROR ✖ prettier found some errors. Please fix them and try committing again. + ✖ ../../../..${cwd}/test.js + ERROR ✖ prettier found some errors. Please fix them and try committing again. + ✖ ../../../..${cwd}/test.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + INFO ❯ Reverting to original state because of errors... + ERROR ✖ Merge state could not be restored due to an error! + INFO ❯ Cleaning up... ERROR × lint-staged failed due to a git error. ERROR Any lost modifications can be restored from a git stash: > git stash list - stash@{0}: On master: automatic lint-staged backup + stash@{0}: automatic lint-staged backup > git stash apply --index stash@{0} " `) diff --git a/test/runAll.unmocked.spec.js b/test/runAll.unmocked.spec.js index 5f0650579..bacc2cfad 100644 --- a/test/runAll.unmocked.spec.js +++ b/test/runAll.unmocked.spec.js @@ -160,7 +160,7 @@ describe('runAll', () => { try { await gitCommit({ config: { '*.js': 'prettier --list-different' } }) } catch (error) { - expect(error.message).toMatchInlineSnapshot(`"Something went wrong"`) + expect(error.message).toMatchInlineSnapshot(`"lint-staged failed"`) } // Something was wrong so the repo is returned to original state @@ -180,7 +180,7 @@ describe('runAll', () => { try { await gitCommit(fixJsConfig) } catch (error) { - expect(error.message).toMatchInlineSnapshot(`"Something went wrong"`) + expect(error.message).toMatchInlineSnapshot(`"lint-staged failed"`) } // Something was wrong so the repo is returned to original state @@ -236,22 +236,22 @@ describe('runAll', () => { await gitCommit({ config: { '*.js': 'prettier --list-different' }, quiet: false }) expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Hiding unstaged changes to partially staged files... [started] - LOG Hiding unstaged changes to partially staged files... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG prettier --list-different [started] - LOG prettier --list-different [completed] - LOG Running tasks for *.js [completed] - LOG Running tasks... [completed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed] - LOG Restoring unstaged changes to partially staged files... [started] - LOG Restoring unstaged changes to partially staged files... [completed] - LOG Cleaning up... [started] - LOG Cleaning up... [completed]" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Hiding unstaged changes to partially staged files... + LOG ✔ Hiding unstaged changes to partially staged files... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ prettier --list-different + LOG ✔ prettier --list-different + LOG ✔ Running tasks for *.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + LOG ✔ Applying modifications... + INFO ❯ Restoring unstaged changes to partially staged files... + LOG ✔ Restoring unstaged changes to partially staged files... + INFO ❯ Cleaning up... + LOG ✔ Cleaning up..." `) // Nothing is wrong, so a new commit is created and file is pretty @@ -314,28 +314,24 @@ describe('runAll', () => { ).rejects.toThrowError() expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Hiding unstaged changes to partially staged files... [started] - LOG Hiding unstaged changes to partially staged files... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG prettier --list-different [started] - LOG prettier --list-different [failed] - LOG → - LOG Running tasks for *.js [failed] - LOG → - LOG Running tasks... [failed] - LOG Applying modifications... [started] - LOG Applying modifications... [skipped] - LOG → Skipped because of errors from tasks. - LOG Restoring unstaged changes to partially staged files... [started] - LOG Restoring unstaged changes to partially staged files... [skipped] - LOG → Skipped because of errors from tasks. - LOG Reverting to original state because of errors... [started] - LOG Reverting to original state because of errors... [completed] - LOG Cleaning up... [started] - LOG Cleaning up... [completed]" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Hiding unstaged changes to partially staged files... + LOG ✔ Hiding unstaged changes to partially staged files... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ prettier --list-different + ERROR ✖ prettier found some errors. Please fix them and try committing again. + ✖ ../../../..${cwd}/test.js + ERROR ✖ prettier found some errors. Please fix them and try committing again. + ✖ ../../../..${cwd}/test.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + INFO ❯ Restoring unstaged changes to partially staged files... + INFO ❯ Reverting to original state because of errors... + LOG ✔ Reverting to original state because of errors... + INFO ❯ Cleaning up... + LOG ✔ Cleaning up..." `) // Something was wrong so the repo is returned to original state @@ -359,7 +355,7 @@ describe('runAll', () => { try { await gitCommit(fixJsConfig) } catch (error) { - expect(error.message).toMatchInlineSnapshot(`"Something went wrong"`) + expect(error.message).toMatchInlineSnapshot(`"lint-staged failed"`) } // Something was wrong so the repo is returned to original state @@ -427,7 +423,7 @@ describe('runAll', () => { ERROR Any lost modifications can be restored from a git stash: > git stash list - stash@{0}: On master: automatic lint-staged backup + stash@{0}: automatic lint-staged backup > git stash apply --index stash@{0} " `) @@ -579,7 +575,7 @@ describe('runAll', () => { // Do not use `gitCommit` wrapper here await expect( runAll({ config: { '*.js': 'prettier --list-different' }, cwd, quiet: true }) - ).rejects.toThrowErrorMatchingInlineSnapshot(`"Something went wrong"`) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"lint-staged failed"`) // Something went wrong, so runAll failed and merge is still going expect(await execGit(['rev-list', '--count', 'HEAD'])).toEqual('2') @@ -766,19 +762,18 @@ describe('runAll', () => { expect(console.printHistory()).toMatchInlineSnapshot(` " - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG [Function] git ... [started] - LOG [Function] git ... [completed] - LOG Running tasks for *.js [completed] - LOG Running tasks... [completed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed] - LOG Cleaning up... [started] - LOG Cleaning up... [failed] - LOG → lint-staged automatic backup is missing!" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ [Function] git ... + LOG ✔ [Function] git ... + LOG ✔ Running tasks for *.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + LOG ✔ Applying modifications... + INFO ❯ Cleaning up... + ERROR ✖ lint-staged automatic backup is missing!" `) }) @@ -799,7 +794,7 @@ describe('runAll', () => { // use the old syntax with manual `git add` to provide a warning message await expect( gitCommit({ config: { '*.js': ['prettier --write', 'git add'] } }) - ).rejects.toThrowErrorMatchingInlineSnapshot(`"Something went wrong"`) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"lint-staged failed"`) expect(console.printHistory()).toMatchInlineSnapshot(` " @@ -807,8 +802,8 @@ describe('runAll', () => { WARN ‼ lint-staged prevented an empty git commit. - Use the --allow-empty option to continue, or check your task configuration - " + Use the --allow-empty option to continue, or check your task configuration + " `) // Something was wrong so the repo is returned to original state @@ -946,16 +941,16 @@ describe('runAll', () => { " WARN ‼ Skipping backup because \`--no-stash\` was used. - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG prettier --write [started] - LOG prettier --write [completed] - LOG Running tasks for *.js [completed] - LOG Running tasks... [completed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed]" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ prettier --write + LOG ✔ prettier --write + LOG ✔ Running tasks for *.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + LOG ✔ Applying modifications..." `) // Nothing is wrong, so a new commit is created @@ -988,21 +983,20 @@ describe('runAll', () => { " WARN ‼ Skipping backup because \`--no-stash\` was used. - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Hiding unstaged changes to partially staged files... [started] - LOG Hiding unstaged changes to partially staged files... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG [Function] prettier ... [started] - LOG [Function] prettier ... [completed] - LOG Running tasks for *.js [completed] - LOG Running tasks... [completed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed] - LOG Restoring unstaged changes to partially staged files... [started] - LOG Restoring unstaged changes to partially staged files... [failed] - LOG → Unstaged changes could not be restored due to a merge conflict! + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Hiding unstaged changes to partially staged files... + LOG ✔ Hiding unstaged changes to partially staged files... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ [Function] prettier ... + LOG ✔ [Function] prettier ... + LOG ✔ Running tasks for *.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + LOG ✔ Applying modifications... + INFO ❯ Restoring unstaged changes to partially staged files... + ERROR ✖ Unstaged changes could not be restored due to a merge conflict! ERROR × lint-staged failed due to a git error." `) @@ -1038,25 +1032,11 @@ describe('runAll', () => { quiet: false, stash: false }) - ).rejects.toThrowErrorMatchingInlineSnapshot(`"Something went wrong"`) - - expect(console.printHistory()).toMatchInlineSnapshot(` - " - WARN ‼ Skipping backup because \`--no-stash\` was used. + ).rejects.toThrowErrorMatchingInlineSnapshot(`"lint-staged failed"`) - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG prettier --write [started] - LOG prettier --write [failed] - LOG → - LOG Running tasks for *.js [failed] - LOG → - LOG Running tasks... [failed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed]" - `) + expect(console.printHistory()).toMatch( + 'prettier found some errors. Please fix them and try committing again' + ) // Something was wrong, so the commit was aborted expect(await execGit(['rev-list', '--count', 'HEAD'])).toEqual('1') @@ -1102,16 +1082,16 @@ describe('runAll', () => { " WARN ‼ Skipping backup because there’s no initial commit yet. - LOG Preparing... [started] - LOG Preparing... [completed] - LOG Running tasks... [started] - LOG Running tasks for *.js [started] - LOG prettier --list-different [started] - LOG prettier --list-different [completed] - LOG Running tasks for *.js [completed] - LOG Running tasks... [completed] - LOG Applying modifications... [started] - LOG Applying modifications... [completed]" + INFO ❯ Preparing... + LOG ✔ Preparing... + INFO ❯ Running tasks... + INFO ❯ Running tasks for *.js + INFO ❯ prettier --list-different + LOG ✔ prettier --list-different + LOG ✔ Running tasks for *.js + LOG ✔ Running tasks... + INFO ❯ Applying modifications... + LOG ✔ Applying modifications..." `) // Nothing is wrong, so the initial commit is created diff --git a/yarn.lock b/yarn.lock index 8a6941a73..98ca91473 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1294,6 +1294,14 @@ agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" @@ -1304,10 +1312,10 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-colors@^3.2.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-escapes@^4.2.1: version "4.2.1" @@ -1316,7 +1324,14 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.5.2" -ansi-regex@^2.0.0, ansi-regex@^2.1.1: +ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= @@ -1336,11 +1351,6 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1477,6 +1487,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1732,18 +1747,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - 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" - -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1788,6 +1792,11 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cli-color@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" @@ -1800,13 +1809,6 @@ cli-color@^1.2.0: memoizee "^0.4.14" timers-ext "^0.1.5" -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -1814,13 +1816,13 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" + slice-ansi "^3.0.0" + string-width "^4.2.0" cli-width@^2.0.0: version "2.2.0" @@ -1836,16 +1838,16 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -2039,11 +2041,6 @@ data-urls@^1.1.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2090,6 +2087,13 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2176,10 +2180,10 @@ electron-to-chromium@^1.3.390: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.413.tgz#9c457a4165c7b42e59d66dff841063eb9bfe5614" integrity sha512-Jm1Rrd3siqYHO3jftZwDljL2LYQafj3Kki5r+udqE58d0i91SkjItVJ5RwlJn9yko8i7MOcoidVKjQlgSdd1hg== -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= +elegant-spinner@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-2.0.0.tgz#f236378985ecd16da75488d166be4b688fd5af94" + integrity sha512-5YRYHhvhYzV/FC4AiMdeSIg3jAYGq9xFvbhZMpPlJoBsfYgrw2DSCYeXfat6tYBu45PWiyRr3+flaCPPmviPaA== emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" @@ -2198,6 +2202,13 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" +enquirer@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" + integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA== + dependencies: + ansi-colors "^3.2.1" + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2295,7 +2306,7 @@ es6-weak-map@^2.0.2: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -2709,21 +2720,6 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - figures@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" @@ -2731,6 +2727,13 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -2947,13 +2950,6 @@ har-validator@~5.1.0, har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-3.0.0.tgz#36077ef1d15f333484aa7fa77a28606f1c655b37" @@ -3112,10 +3108,10 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" @@ -3279,13 +3275,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -3325,13 +3314,6 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -4011,49 +3993,25 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== +listr2@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-1.3.7.tgz#37a9971e077f9bc9490b3462ce19f2cd25cc0d3e" + integrity sha512-yeSjMMLwW7TQqUh0a4kW9uBF6K+vtOEFYzJdhgMWS0dYFBtT3O6gT8ng9f29P8tXKN281gKyGDR1P9OLXf3FsQ== dependencies: "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-truncate "^2.1.0" + elegant-spinner "^2.0.0" + enquirer "^2.3.4" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + pad "^3.2.0" rxjs "^6.3.3" + through "^2.3.8" + uuid "^7.0.2" load-json-file@^2.0.0: version "2.0.0" @@ -4090,13 +4048,6 @@ lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= - dependencies: - chalk "^1.0.0" - log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" @@ -4104,14 +4055,15 @@ log-symbols@^3.0.0: dependencies: chalk "^2.4.2" -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" lolex@^5.0.0: version "5.1.2" @@ -4218,11 +4170,6 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.42.0" -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -4379,11 +4326,6 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -4394,7 +4336,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -4489,13 +4431,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - onetime@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" @@ -4568,10 +4503,12 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" @@ -4583,6 +4520,13 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pad@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pad/-/pad-3.2.0.tgz#be7a1d1cb6757049b4ad5b70e71977158fea95d1" + integrity sha512-2u0TrjcGbOjBTJpyewEl4hBO3OeX5wWue7eIFPzQTg6wFSvoaHcBTTUY5m+n0hd04gmTCPuY0kCpVIVuw5etwg== + dependencies: + wcwidth "^1.0.1" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -5076,14 +5020,6 @@ resolve@^1.15.1: dependencies: path-parse "^1.0.6" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -5266,11 +5202,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= - slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -5280,6 +5211,24 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5433,23 +5382,6 @@ string-length@^3.1.0: astral-regex "^1.0.0" strip-ansi "^5.2.0" -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -5539,13 +5471,6 @@ stringify-object@^3.1.0, stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" @@ -5592,11 +5517,6 @@ strip-json-comments@^3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -5619,11 +5539,6 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -5666,7 +5581,7 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -5789,6 +5704,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + type-fest@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" @@ -5884,6 +5804,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== +uuid@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" @@ -5938,6 +5863,13 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -6000,14 +5932,6 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"