diff --git a/.travis.yml b/.travis.yml index a8f74d6..bc3f97c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ before_script: - ./cc-test-reporter before-build script: - - npm run cover + - npm run travis after_script: - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT diff --git a/README.md b/README.md index 285ad8d..6c48366 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Grammar compilation toolkit for JavaScript. Served with asynchronous goodness. See [docs](https://aureooms.github.io/js-grammar/index.html). -> :warning: The code needs a ES2015+ polyfill to work (`regeneratorRuntime`), -> for instance [@babel/polyfill](https://babeljs.io/docs/usage/polyfill). +> :warning: The code requires `regeneratorRuntime` to be defined, for instance by importing +> [regenerator-runtime/runtime](https://www.npmjs.com/package/regenerator-runtime). ```js const G = grammar.from( { root , start , eof , productions } ) ; diff --git a/doc/manual/usage.md b/doc/manual/usage.md index dbf37b7..86f0b23 100644 --- a/doc/manual/usage.md +++ b/doc/manual/usage.md @@ -1,13 +1,13 @@ # Usage -> :warning: The code needs a ES2015+ polyfill to work (`regeneratorRuntime`), -> for instance [@babel/polyfill](https://babeljs.io/docs/usage/polyfill). +> :warning: The code requires `regeneratorRuntime` to be defined, for instance by importing +> [regenerator-runtime/runtime](https://www.npmjs.com/package/regenerator-runtime). First, require the polyfill at the entry point of your application ```js -require( '@babel/polyfill' ) ; +require( 'regenerator-runtime/runtime' ); // or -import '@babel/polyfill' ; +import 'regenerator-runtime/runtime.js' ; ``` Then, import the library where needed diff --git a/package.json b/package.json index 551af73..9c9d62d 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "author": "aureooms", "ava": { "require": [ - "@babel/polyfill", + "regenerator-runtime/runtime", "@babel/register" ], "files": [ @@ -17,11 +17,57 @@ "presets": [ "@babel/preset-env" ], - "plugins": [ - "@babel/plugin-proposal-async-generator-functions" - ], "env": { + "test": { + "presets": [ + "babel-preset-power-assert" + ], + "plugins": [ + [ + "transform-remove-console", + { + "exclude": [ + "log", + "error", + "warn" + ] + } + ] + ], + "sourceMaps": "inline" + }, "development": { + "presets": [ + "babel-preset-power-assert" + ], + "plugins": [ + [ + "transform-remove-console", + { + "exclude": [ + "log", + "error", + "warn" + ] + } + ] + ], + "sourceMaps": "inline" + }, + "production": { + "plugins": [ + "babel-plugin-unassert", + [ + "transform-remove-console", + { + "exclude": [ + "log", + "error", + "warn" + ] + } + ] + ], "sourceMaps": "inline" } } @@ -30,26 +76,32 @@ "url": "https://github.com/aureooms/js-grammar/issues" }, "dependencies": { - "@aureooms/js-itertools": "^4.0.1" + "@aureooms/js-itertools": "^4.1.0", + "@aureooms/js-pairs": "^0.0.0", + "@aureooms/js-red-black-tree": "^2.0.7" }, "devDependencies": { - "@aureooms/js-compare": "1.4.5", + "@aureooms/js-compare": "1.4.8", "@aureooms/js-tape": "7.0.0", - "@babel/cli": "7.10.5", - "@babel/core": "7.11.0", + "@babel/cli": "7.11.6", + "@babel/core": "7.11.6", "@babel/plugin-proposal-async-generator-functions": "7.10.5", - "@babel/polyfill": "7.10.4", - "@babel/preset-env": "7.11.0", - "@babel/register": "7.10.5", - "ava": "3.11.1", + "@babel/preset-env": "7.11.5", + "@babel/register": "7.11.5", + "ava": "3.12.1", + "babel-plugin-transform-remove-console": "6.9.4", + "babel-plugin-unassert": "3.0.1", + "babel-preset-power-assert": "3.0.0", "coveralls": "3.1.0", "esdoc": "1.1.0", "esdoc-ecmascript-proposal-plugin": "1.0.0", "esdoc-inject-script-plugin": "1.0.0", "esdoc-inject-style-plugin": "1.0.0", "esdoc-standard-plugin": "1.0.0", - "np": "6.3.2", - "nyc": "15.1.0" + "np": "6.5.0", + "nyc": "15.1.0", + "power-assert": "1.6.1", + "regenerator-runtime": "0.13.7" }, "files": [ "lib" @@ -67,12 +119,14 @@ "url": "https://github.com/aureooms/js-grammar" }, "scripts": { - "build": "rm -rf lib && babel src -d lib", + "build": "babel --delete-dir-on-start --env-name production src -d lib", "cover": "nyc --reporter=lcov npm test", + "dev": "npm run cover -- -- -st --fail-fast", "esdoc": "esdoc", "prepare": "npm run build", "release": "np", - "test": "ava" + "test": "ava", + "travis": "npm run cover" }, "sideEffects": false } diff --git a/src/ast/flatten.js b/src/ast/flatten.js index 02e44c1..5f35f82 100644 --- a/src/ast/flatten.js +++ b/src/ast/flatten.js @@ -1,3 +1,4 @@ +import assert from 'assert' ; import { anyIterator } from '../util' ; function getCount ( object ) { @@ -7,7 +8,7 @@ function getCount ( object ) { export default async function* flatten ( root ) { - // assert root.type === 'node' + assert(root.type === 'node'); const stack = [ { // no need to use the exhaustive iterator since flatten exhausts the whole subtree diff --git a/src/ast/index.js b/src/ast/index.js index 750124a..a096e89 100644 --- a/src/ast/index.js +++ b/src/ast/index.js @@ -7,6 +7,7 @@ import materialize from './materialize' ; import rmap from './rmap' ; import transform from './transform' ; +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ export default { Children , _children_exhaust , diff --git a/src/ast/materialize.js b/src/ast/materialize.js index 90ca709..db86671 100644 --- a/src/ast/materialize.js +++ b/src/ast/materialize.js @@ -1,8 +1,9 @@ +import assert from 'assert'; import { anyIterator } from '../util' ; export default async function materialize ( root ) { - // assert root.type === 'node' + assert(root.type === 'node'); const parents = [ { diff --git a/src/ast/transform.js b/src/ast/transform.js index db034a6..1cc2b95 100644 --- a/src/ast/transform.js +++ b/src/ast/transform.js @@ -1,5 +1,7 @@ +import assert from 'assert' ; + export default async function transform ( tree , match , ctx ) { - // assert tree.type === 'node' + assert(tree.type === 'node'); const { nonterminal , production } = tree ; return await match[nonterminal][production]( tree , match , ctx ) ; } diff --git a/src/cfg/index.js b/src/cfg/index.js new file mode 100644 index 0000000..7f18e53 --- /dev/null +++ b/src/cfg/index.js @@ -0,0 +1,13 @@ +import nullable from './nullable' ; +import unitrules from './unitrules' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + nullable , + unitrules , +} ; + +export { + nullable , + unitrules , +} ; diff --git a/src/cfg/nullable.js b/src/cfg/nullable.js new file mode 100644 index 0000000..6832709 --- /dev/null +++ b/src/cfg/nullable.js @@ -0,0 +1,53 @@ +import assert from 'assert' ; +import { list , any , map , all } from '@aureooms/js-itertools' ; +import { simplify_zol_system_dnf_no_negation } from '../math/logic' ; + +/** + * Compute the set of nullable terminals from a list of productions. + * + * NB: this corresponds to computing the set of variables that are true given a + * system of equations in disjunctive normal form. Given the grammar + * + * A -> B | BB | C + * B -> CC | b + * C -> C | ε + * + * we get the following system of equations + * + * A = B or (B and B) or C + * B = (C and C) or FALSE + * C = C or TRUE + * + * where terminals have been replaced by FALSE and the empty word has been + * replaced by TRUE. + * + * The solution for this example is + * + * A = B = C = TRUE + * + * If some symbol is not defined (has no productions) then it is FALSE (empty + * disjunction). + * + * TODO Use solver for this kind of system instead of ad-hoc code. + * + * @param {Iterable} productions - A sequence of (nonterminal, rule) pairs. + * @return {Set} The set of nullable terminals. + */ +export default function nullable ( productions ) { + + const system = nullable_zol_system_dnf_no_negation(productions); + return simplify_zol_system_dnf_no_negation(system); + +} + +function* nullable_zol_system_dnf_no_negation ( productions ) { + + for ( const [ nonterminal , rule ] of productions ) { + assert(typeof nonterminal === 'string'); + assert(rule instanceof Array); + if (any(map(x => x.type === 'leaf', rule))) continue ; + assert(all(map(x => x.type === 'node', rule))) ; + yield [ nonterminal , list(map(x => x.nonterminal, rule)) ] ; + } + +} diff --git a/src/cfg/unitrules.js b/src/cfg/unitrules.js new file mode 100644 index 0000000..772cc1c --- /dev/null +++ b/src/cfg/unitrules.js @@ -0,0 +1,11 @@ +export default function* unitrules ( productions ) { + + for ( const [A, rule] of productions ) { + if ( rule.length === 1 && rule[0].type === 'node' ) { + // A -> B + const B = rule[0].nonterminal ; + yield [A, B]; + } + } + +} diff --git a/src/cnf/from.js b/src/cnf/from.js new file mode 100644 index 0000000..020be0a --- /dev/null +++ b/src/cnf/from.js @@ -0,0 +1,366 @@ +import assert from 'assert' ; +import { any , map } from '@aureooms/js-itertools' ; +import { iter } from '../grammar' ; +import { nullable , unitrules } from '../cfg' ; +import { transitive_closure } from '../math/graphs' ; +import { fromIterable , nonterminalNotOnRHS } from '../productions' ; + +// From Wikipedia, the free encyclopedia +// https://en.wikipedia.org/wiki/Chomsky_normal_form + +/** + * Converting a grammar to Chomsky normal form + * == + * + * To convert a grammar to Chomsky normal form, a sequence of simple + * transformations is applied in a certain order; this is described in most + * textbooks on automata theory.[2]:87–94[3][4][5] The presentation here + * follows Hopcroft, Ullman (1979), but is adapted to use the transformation + * names from Lange, Leiß (2009).[6][note 2] Each of the following + * transformations establishes one of the properties required for Chomsky + * normal form. + */ + +/** + * START: Eliminate the start symbol from right-hand sides + * == + * + * Introduce a new start symbol S0, and a new rule + * + * S0 → S, + * + * where S is the previous start symbol. This does not change the grammar's + * produced language, and S0 will not occur on any rule's right-hand side. + */ +export function cnf_START ( G ) { + + const { root , start , eof , productions } = G ; + + if ( nonterminalNotOnRHS( root , iter(productions) ) ) return G ; + + const newRoot = cnf_new_symbol(productions, 'S0') ; + const newStart = 0 ; + + const newProductions = new Map([ + [ newRoot , new Map([[ newStart , [ { type: 'node' , nonterminal: root } ] ]]) ] , + ...productions.entries() + ]) ; + + return { + root: newRoot, + start: newStart, + eof, + productions: newProductions, + } ; + +} + +/** + * TERM: Eliminate rules with nonsolitary terminals + * == + * + * To eliminate each rule + * + * A → X1 ... a ... Xn + * + * with a terminal symbol a being not the only symbol on the right-hand side, introduce, for every such terminal, a new nonterminal symbol Na, and a new rule + * + * Na → a. + * + * Change every rule + * + * A → X1 ... a ... Xn + * + * to + * + * A → X1 ... Na ... Xn. + * + * If several terminal symbols occur on the right-hand side, simultaneously + * replace each of them by its associated nonterminal symbol. This does not + * change the grammar's produced language.[2]:92 + */ +export function* cnf_TERM_gen ( existingNonterminals , productions ) { + + const mockedTerminals = new Map(); // terminal -> nonterminal + + for ( const [ nonterminal , rule , key ] of productions ) { + + if ( rule.length >= 2 ) { + const newRule = [ ] ; + for ( const part of rule ) { + if (part.type === 'leaf') { + if (!mockedTerminals.has(part.terminal)) { + const newNonterminal = cnf_new_symbol(existingNonterminals, 'N', '#' + part.terminal); + mockedTerminals.set(part.terminal, newNonterminal); + yield [ newNonterminal , [ part ] , 0 ] ; + } + newRule.push({ + type: 'node' , + nonterminal: mockedTerminals.get(part.terminal) , + }) ; + } + else newRule.push(part) ; + } + yield [ nonterminal , newRule , key ] ; + + } + + else { + yield [ nonterminal , rule , key ] ; + } + + } + +} + +export function cnf_TERM ( { root , start , eof , productions } ) { + + const newProductions = fromIterable(cnf_TERM_gen(productions, iter(productions))); + + return { + root, + start, + eof, + productions: newProductions, + } ; +} + +/** + * BIN: Eliminate right-hand sides with more than 2 nonterminals + * == + * + * Replace each rule + * + * A → X1 X2 ... Xn + * + * with more than 2 nonterminals X1,...,Xn by rules + * + * A → X1 A1, + * A1 → X2 A2, + * ... , + * An-2 → Xn-1 Xn, + * + * where Ai are new nonterminal symbols. Again, this does not change the + * grammar's produced language.[2]:93 + */ +export function* cnf_BIN_gen ( existingNonterminals , productions ) { + + for ( const [nonterminal, rule, key] of productions ) { + if ( rule.length <= 2 ) yield [ nonterminal , rule , key ] ; + else { + let nextNonterminal = cnf_new_symbol(existingNonterminals, nonterminal + '1'); + yield [nonterminal, [rule[0], { type: 'node', nonterminal: nextNonterminal}], key] ; + for ( let i = 1 ; i < rule.length - 2 ; ++i ) { + const currentNonterminal = nextNonterminal ; + nextNonterminal = cnf_new_symbol(existingNonterminals, nonterminal + (i+1).toString()); + yield [currentNonterminal, [rule[i], { type: 'node', nonterminal: nextNonterminal}], 0] ; + } + yield [nextNonterminal, [rule[rule.length-2], rule[rule.length-1]], 0] ; + } + } + +} + +export function cnf_BIN ( { root , start , eof , productions } ) { + + const newProductions = fromIterable(cnf_BIN_gen(productions, iter(productions))); + + return { + root, + start, + eof, + productions: newProductions, + } ; +} + +/** + * DEL: Eliminate ε-rules + * == + * + * An ε-rule is a rule of the form + * + * A → ε, + * + * where A is not S0, the grammar's start symbol. + * + * To eliminate all rules of this form, first determine the set of all + * nonterminals that derive ε. Hopcroft and Ullman (1979) call such + * nonterminals nullable, and compute them as follows: + * + * If a rule A → ε exists, then A is nullable. + * If a rule A → X1 ... Xn exists, and every single Xi is nullable, then A is nullable, too. + * + * Obtain an intermediate grammar by replacing each rule + * + * A → X1 ... Xn + * + * by all versions with some nullable Xi omitted. By deleting in this grammar + * each ε-rule, unless its left-hand side is the start symbol, the transformed + * grammar is obtained.[2]:90 + * + * For example, in the following grammar, with start symbol S0, + * + * S0 → AbB | C + * B → AA | AC + * C → b | c + * A → a | ε + * + * the nonterminal A, and hence also B, is nullable, while neither C nor S0 is. Hence the following intermediate grammar is obtained:[note 3] + * + * S0 → AbB | AbB | AbB | AbB | C + * B → AA | AA | AA | AεA | AC | AC + * C → b | c + * A → a | ε + * + * In this grammar, all ε-rules have been "inlined at the call site".[note 4] In the next step, they can hence be deleted, yielding the grammar: + * + * S0 → AbB | Ab | bB | b | C + * B → AA | A | AC | C + * C → b | c + * A → a + * + * This grammar produces the same language as the original example grammar, viz. {ab,aba,abaa,abab,abac,abb,abc,b,bab,bac,bb,bc,c}, but has no ε-rules. + */ + +export function* cnf_DEL_gen ( { root , productions } , nullableNonterminals ) { + + // Yield final output + // Can simplify if rule.length <= 2 for all rules + for ( const [ nonterminal , rule , key ] of iter(productions) ) { + for ( const newRule of _expandNullables( nullableNonterminals , rule.slice() ) ) { + const newKey = newRule.length === rule.length ? key : cnf_new_symbol(productions.get(nonterminal), key); + // remove empty productions that are not from the root + if (newRule.length === 0 && nonterminal !== root) continue ; + yield [ nonterminal , newRule , newKey ] ; + } + } + +} + +function* _expandNullables ( nullable , rule ) { + if ( rule.length === 0 ) yield [ ] ; + else { + const last = rule.pop() ; + for ( const subRule of _expandNullables( nullable , rule ) ) { + yield subRule.slice().concat([last]) ; + if ( last.type === 'node' && nullable.has(last.nonterminal) ) yield subRule ; + } + } +} + +export function cnf_DEL ( { root , start , eof , productions } ) { + + const nullableNonterminals = nullable(iter(productions)); + const newProductions = fromIterable(cnf_DEL_gen({root, productions}, nullableNonterminals)); + + return { + root, + start, + eof, + productions: newProductions, + } ; +} + + +/** + * UNIT: Eliminate unit rules + * + * A unit rule is a rule of the form + * + * A → B, + * + * where A, B are nonterminal symbols. To remove it, for each rule + * + * B → X1 ... Xn, + * + * where X1 ... Xn is a string of nonterminals and terminals, add rule + * + * A → X1 ... Xn + * + * unless this is a unit rule which has already been (or is being) removed. + */ +export function* cnf_UNIT_gen ( { productions } , nonterminalAliases ) { + + // if nonterminalAliases.has([B,A]) then there is a chain A -> ... -> B + + for ( const [nonterminal, rule, key] of iter(productions) ) { + if ( rule.length === 1 && rule[0].type === 'node' ) continue ; + yield [ nonterminal , rule , key ] ; + for ( const alias of nonterminalAliases.rightOf(nonterminal) ) { + const newKey = cnf_new_symbol(productions.get(alias), nonterminal + '#' + key); + yield [ alias , rule , newKey ] ; + } + } + +} + +export function cnf_UNIT ( { root , start , eof , productions } ) { + + const edges = unitrules(iter(productions)); + const nonterminalAliases = aliases(edges); + const newProductions = fromIterable(cnf_UNIT_gen({productions}, nonterminalAliases)); + + return { + root, + start, + eof, + productions: newProductions, + } ; +} + + +function aliases ( edges ) { + const closure = transitive_closure(edges); + return closure.invert(); +} + +/** + * Order of transformations + * == + * + * When choosing the order in which the above transformations are to be applied, + * it has to be considered that some transformations may destroy the + * result achieved by other ones. For example, START will re-introduce a unit + * rule if it is applied after UNIT. The table shows which orderings are + * admitted. + * + * Moreover, the worst-case bloat in grammar size[note 5] depends on the + * transformation order. Using |G| to denote the size of the original grammar + * G, the size blow-up in the worst case may range from |G|^2 to 2^2^|G|, + * depending on the transformation algorithm used.[6]:7 The blow-up in + * grammar size depends on the order between DEL and BIN. It may be + * exponential when DEL is done first, but is linear otherwise. UNIT can incur + * a quadratic blow-up in the size of the grammar.[6]:5 The orderings + * START,TERM,BIN,DEL,UNIT and START,BIN,DEL,UNIT,TERM lead to the least (i.e. + * quadratic) blow-up. + */ +export default function from ( G ) { + // TODO composition is more complex than that + // generate a mapping to translate from new grammar to old ? + + // START,TERM,BIN,DEL,UNIT + return cnf_UNIT(cnf_DEL(cnf_BIN(cnf_TERM(cnf_START(G))))); + + // START,BIN,DEL,UNIT,TERM + // return cnf_TERM(cnf_UNIT(cnf_DEL(cnf_BIN(cnf_START(G))))); +} + +//function cnf_copy ( { root , start , eof , productions } ) { + //return { + //root, + //start, + //eof, + //productions: fromIterable(iter(productions)), + //}; +//} + +function cnf_new_symbol ( existingSymbols , prefix = '' , suffix = '' ) { + let newSymbol = prefix + suffix ; + let i = 1; + while ( existingSymbols.has(newSymbol) ) { + const rand = '.' + i ; + newSymbol = prefix + rand + suffix ; + ++i ; + } + return newSymbol ; +} diff --git a/src/cnf/index.js b/src/cnf/index.js new file mode 100644 index 0000000..6f8de89 --- /dev/null +++ b/src/cnf/index.js @@ -0,0 +1,13 @@ +import from from './from' ; +import is from './is' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + from , + is , +} ; + +export { + from , + is , +} ; diff --git a/src/cnf/is.js b/src/cnf/is.js new file mode 100644 index 0000000..11bb954 --- /dev/null +++ b/src/cnf/is.js @@ -0,0 +1,55 @@ +// From Wikipedia, the free encyclopedia +// https://en.wikipedia.org/wiki/Chomsky_normal_form + +/** + * Chomsky normal form + * == + * + * In formal language theory, a context-free grammar, G, is said to be in + * Chomsky normal form (first described by Noam Chomsky)[1] if all of its + * production rules are of the form:[2]:92–93,106 + * + * A → BC, or + * A → a, or + * S → ε, + * + * where A, B, and C are nonterminal symbols, the letter a is a terminal symbol + * (a symbol that represents a constant value), S is the start symbol, and ε + * denotes the empty string. Also, neither B nor C may be the start symbol, and + * the third production rule can only appear if ε is in L(G), the language + * produced by the context-free grammar G. + * + * Every grammar in Chomsky normal form is context-free, and conversely, every + * context-free grammar can be transformed into an equivalent one[note 1] which + * is in Chomsky normal form and has a size no larger than the square of the + * original grammar's size. + */ +export default function is ( { root , productions } ) { + // TODO requires to get rid of the eof symbol from the start production + + for ( const [ nonterminal , rules ] of productions.entries() ) { + for ( const rule of rules.values() ) { + switch (rule.length) { + case 0: + // S → ε + if (nonterminal !== root) return false ; + break; + case 1: + // A → a + if (rule[0].type !== 'leaf') return false ; + break; + case 2: + // A → BC + if (rule[0].type !== 'node') return false ; + if (rule[1].type !== 'node') return false ; + break; + default: + return false; + } + + } + } + + return true; + +} diff --git a/src/error/index.js b/src/error/index.js index 488d66e..f6381f3 100644 --- a/src/error/index.js +++ b/src/error/index.js @@ -2,6 +2,7 @@ import LookaheadMismatchError from './LookaheadMismatchError' ; import SyntaxError from './SyntaxError' ; import UnexpectedEndOfFileError from './UnexpectedEndOfFileError' ; +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ export default { LookaheadMismatchError , SyntaxError , diff --git a/src/grammar/Grammar.js b/src/grammar/Grammar.js index 333a244..5d921da 100644 --- a/src/grammar/Grammar.js +++ b/src/grammar/Grammar.js @@ -1,5 +1,6 @@ import expandobject from './expandobject' ; import alphabet from './alphabet' ; +import toJSON from './toJSON' ; export default class Grammar { @@ -16,4 +17,8 @@ export default class Grammar { return this._alphabet; } + toJSON ( ) { + return toJSON(this); + } + } diff --git a/src/grammar/_packRule.js b/src/grammar/_packRule.js new file mode 100644 index 0000000..16ae20c --- /dev/null +++ b/src/grammar/_packRule.js @@ -0,0 +1,17 @@ +function _makenode ( part ) { + switch ( part.type ) { + case 'node' : + return '&' + part.nonterminal ; + case 'leaf' : + return '=' + part.terminal ; + default : + throw new Error(`${typ} is not a valid type`) ; + } +} + +export default function* _packRule ( production ) { + for ( const part of production ) { + if ( part instanceof Object ) yield _makenode( part ) ; + else yield part ; + } +} diff --git a/src/grammar/_productionsToJSON.js b/src/grammar/_productionsToJSON.js new file mode 100644 index 0000000..ba0de65 --- /dev/null +++ b/src/grammar/_productionsToJSON.js @@ -0,0 +1,20 @@ +import { map , all , list } from '@aureooms/js-itertools' ; +import { _mostAppropriateKeyHolder , _arrayIndexOrObjectKey } from '../util' ; +import _packRule from './_packRule' ; + +export default function _productionsToJSON ( productions ) { + + const _productions = _mostAppropriateKeyHolder(productions.keys()); + + for ( const [ nonterminal , rules ] of productions.entries() ) { + const _rules = _mostAppropriateKeyHolder(rules.keys()); + for ( const [ key , rule ] of rules.entries() ) { + const _key = _arrayIndexOrObjectKey(key); + _rules[_key] = list(_packRule(rule)) ; + } + const _nonterminal = _arrayIndexOrObjectKey(nonterminal); + _productions[_nonterminal] = _rules; + } + + return _productions ; +} diff --git a/src/grammar/expandobject.js b/src/grammar/expandobject.js index 14e951b..f4c81f8 100644 --- a/src/grammar/expandobject.js +++ b/src/grammar/expandobject.js @@ -1,4 +1,4 @@ -import { map , list } from '@aureooms/js-itertools' ; +import { list } from '@aureooms/js-itertools' ; import _expandproduction from './_expandproduction' ; diff --git a/src/grammar/index.js b/src/grammar/index.js index 9936a60..c0e595b 100644 --- a/src/grammar/index.js +++ b/src/grammar/index.js @@ -1,24 +1,43 @@ import EW from './EW' ; import Grammar from './Grammar' ; import _expandproduction from './_expandproduction' ; +import _packRule from './_packRule' ; +import _productionsToJSON from './_productionsToJSON' ; import alphabet from './alphabet' ; import expandobject from './expandobject' ; import from from './from' ; +import iter from './iter' ; +import iterObject from './iterObject' ; +import simplify from './simplify' ; +import toJSON from './toJSON' ; +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ export default { EW , Grammar , _expandproduction , + _packRule , + _productionsToJSON , alphabet , expandobject , from , + iter , + iterObject , + simplify , + toJSON , } ; export { EW , Grammar , _expandproduction , + _packRule , + _productionsToJSON , alphabet , expandobject , from , + iter , + iterObject , + simplify , + toJSON , } ; diff --git a/src/grammar/iter.js b/src/grammar/iter.js new file mode 100644 index 0000000..2af206b --- /dev/null +++ b/src/grammar/iter.js @@ -0,0 +1,11 @@ +import assert from 'assert'; + +export default function* iter ( productions ) { + assert(productions instanceof Map); + for ( const [ nonterminal , rules ] of productions.entries() ) { + assert(rules instanceof Map); + for ( const [key, rule] of rules.entries() ) { + yield [ nonterminal , rule , key ] ; + } + } +} diff --git a/src/grammar/iterObject.js b/src/grammar/iterObject.js new file mode 100644 index 0000000..fd0aa88 --- /dev/null +++ b/src/grammar/iterObject.js @@ -0,0 +1,15 @@ +import assert from 'assert'; + +import { list } from '@aureooms/js-itertools' ; +import _expandproduction from './_expandproduction' ; + +export default function* iterObject ( productions ) { + assert(productions instanceof Object); + for ( const [ nonterminal , rules ] of Object.entries(productions) ) { + assert(rules instanceof Object); + for ( const [ key , rule ] of Object.entries(rules) ) { + const expandedRule = list(_expandproduction(rule)) ; + yield [ nonterminal , expandedRule , key ] ; + } + } +} diff --git a/src/grammar/simplify.js b/src/grammar/simplify.js new file mode 100644 index 0000000..7cc1626 --- /dev/null +++ b/src/grammar/simplify.js @@ -0,0 +1,43 @@ +import { map , filter } from '@aureooms/js-itertools' ; +import { RedBlackTree } from '@aureooms/js-red-black-tree' ; +import { MemoryEfficientPairs as Pairs } from '@aureooms/js-pairs' ; +import { reachable } from '../math/graphs' ; +import { compareKeyedRules } from '../util' ; +import { nonterminalEdges } from '../productions' ; + +import iter from './iter' ; + +export default function simplify ( { root , start , eof , productions } ) { + + const newProductions = new Map(); + + // 1. Remove duplicate productions + + for ( const [ nonterminal , productions ] of productions.entries() ) { + const set = new RedBlackTree(compareKeyedRules) ; + for ( const production of productions.entries() ) { + if (!set.has(production)) set.add(production); + } + + newProductions.set(nonterminal, new Map(set)); + } + + // 2. Remove unreachable nonterminals + const unreachableTerminals = new Set(productions.keys()); + const edges = nonterminalEdges(iter(productions)); + const pairs = Pairs.from(edges); + for ( const nonterminal of reachable(pairs, root) ) { + unreachableTerminals.delete(nonterminal); + } + for ( const nonterminal of unreachableTerminals ) { + newProductions.delete(nonterminal); + } + + return { + root , + start , + eof , + productions: newProductions, + } ; + +} diff --git a/src/grammar/toJSON.js b/src/grammar/toJSON.js new file mode 100644 index 0000000..ea54992 --- /dev/null +++ b/src/grammar/toJSON.js @@ -0,0 +1,17 @@ +import { _arrayIndexOrObjectKey } from '../util' ; +import _productionsToJSON from './_productionsToJSON' ; + +export default function toJSON ( { root , start , eof , productions } ) { + + const _root = _arrayIndexOrObjectKey(root); + const _start = _arrayIndexOrObjectKey(start); + const _productions = _productionsToJSON(productions); + + return { + root: _root, + start: _start, + eof, + productions: _productions, + } ; + +} diff --git a/src/index.js b/src/index.js index f07b28a..525664a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,21 +1,37 @@ import ast from './ast' ; +import cfg from './cfg' ; +import cnf from './cnf' ; import error from './error' ; import grammar from './grammar' ; +import language from './language' ; import ll1 from './ll1' ; +import math from './math' ; +import productions from './productions' ; import util from './util' ; +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ export default { ast , + cfg , + cnf , error , grammar , + language , ll1 , + math , + productions , util , } ; export { ast , + cfg , + cnf , error , grammar , + language , ll1 , + math , + productions , util , } ; diff --git a/src/language/_generate.js b/src/language/_generate.js new file mode 100644 index 0000000..5a086bf --- /dev/null +++ b/src/language/_generate.js @@ -0,0 +1,33 @@ +import { chain , list , map , roundrobin , diagonal } from '@aureooms/js-itertools' ; + +// generate AST instead (use flatten to generate word) +// use heap (parametrizable priority) to generate AST's in quasilexicographic order +// (first by number of derivation rules applied, then lexicographically on the +// terminals and nonterminals where terminals precede nonterminals) +// use persistent seq to represent children +// convert to CNF first then output words can be ordered qlexly. +export default function* _generate ( productions , rule ) { + + if (rule.length === 0) { + yield [ ] ; + return ; + } + + const part = rule[0]; + const rest = rule.slice(1); + + switch (part.type) { + case 'node' : + const nonterminal = part.nonterminal ; + const lefts = map(list, roundrobin(list(map( production => _generate( productions , production ) , productions.get(nonterminal).values() )))) ; + const rights = map(list, _generate( productions , rest )) ; + for ( const parts of diagonal(lefts, rights) ) yield chain( parts ) ; + break ; + case 'leaf' : + for ( const right of _generate( productions , rest) ) yield chain( [ [ part.terminal ] , right ] ) ; + break ; + default : + throw new Error(`${part.type} is not a valid type`) ; + } + +} diff --git a/src/language/generate.js b/src/language/generate.js new file mode 100644 index 0000000..bb3b556 --- /dev/null +++ b/src/language/generate.js @@ -0,0 +1,6 @@ +import _generate from './_generate' ; + +export default function generate ( { root , start , productions } ) { + const startRule = productions.get(root).get(start) ; + return _generate(productions, startRule) ; +} diff --git a/src/language/index.js b/src/language/index.js new file mode 100644 index 0000000..86e9f4b --- /dev/null +++ b/src/language/index.js @@ -0,0 +1,13 @@ +import _generate from './_generate' ; +import generate from './generate' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + _generate , + generate , +} ; + +export { + _generate , + generate , +} ; diff --git a/src/ll1/index.js b/src/ll1/index.js index 9c516c2..0194b5f 100644 --- a/src/ll1/index.js +++ b/src/ll1/index.js @@ -11,6 +11,7 @@ import from from './from' ; import is from './is' ; import parse from './parse' ; +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ export default { Parser , _children_next_lazy , diff --git a/src/math/data_structures/ProcessOnceQueue.js b/src/math/data_structures/ProcessOnceQueue.js new file mode 100644 index 0000000..634c559 --- /dev/null +++ b/src/math/data_structures/ProcessOnceQueue.js @@ -0,0 +1,31 @@ +import assert from 'assert' ; + +export default class ProcessOnceQueue { + + constructor ( iterable = [] ) { + this._queue = [...iterable] ; + this._done = new Set(this._queue) ; + } + + push ( value ) { + if (this._done.has(value)) return false ; + // each true symbol is handled exactly once + this._done.add(value) ; + this._queue.push(value) ; + return true ; + } + + empty ( ) { + return this._queue.length === 0 ; + } + + pop ( ) { + return this._queue.pop() ; + } + + done ( ) { + assert(this.empty()) ; + return this._done ; + } + +} diff --git a/src/math/data_structures/index.js b/src/math/data_structures/index.js new file mode 100644 index 0000000..fe1a38d --- /dev/null +++ b/src/math/data_structures/index.js @@ -0,0 +1,10 @@ +import ProcessOnceQueue from './ProcessOnceQueue' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + ProcessOnceQueue , +} ; + +export { + ProcessOnceQueue , +} ; diff --git a/src/math/graphs/index.js b/src/math/graphs/index.js new file mode 100644 index 0000000..0f2d732 --- /dev/null +++ b/src/math/graphs/index.js @@ -0,0 +1,13 @@ +import reachable from './reachable' ; +import transitive_closure from './transitive_closure' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + reachable , + transitive_closure , +} ; + +export { + reachable , + transitive_closure , +} ; diff --git a/src/math/graphs/reachable.js b/src/math/graphs/reachable.js new file mode 100644 index 0000000..27a816e --- /dev/null +++ b/src/math/graphs/reachable.js @@ -0,0 +1,19 @@ +export default function reachable ( pairs , start , cache = new Map() ) { + // bfs from start + const queue = [start]; + const marked = new Set(queue); + while (queue.length !== 0) { + const A = queue.pop(); + for ( const B of pairs.rightOf(A) ) { + if (marked.has(B)) continue; + marked.add(B); + if (cache.has(B)) { + for ( const C of cache.get(B) ) marked.add(C) ; + } + else { + queue.push(B); + } + } + } + return marked; +} diff --git a/src/math/graphs/transitive_closure.js b/src/math/graphs/transitive_closure.js new file mode 100644 index 0000000..79c85ec --- /dev/null +++ b/src/math/graphs/transitive_closure.js @@ -0,0 +1,20 @@ +import { MemoryEfficientPairs as Pairs } from '@aureooms/js-pairs' ; +import reachable from './reachable' ; + +/** + * TODO Make it run in O(OUTPUT). + */ +export default function transitive_closure ( edges ) { + + const pairs = Pairs.from(edges); + + const closure = new Map(); + + for ( const start of pairs.left() ) { + const marked = reachable(pairs, start, closure); + closure.set(start, marked); + } + + return new Pairs(closure) ; + +} diff --git a/src/math/index.js b/src/math/index.js new file mode 100644 index 0000000..72964b6 --- /dev/null +++ b/src/math/index.js @@ -0,0 +1,16 @@ +import data_structures from './data_structures' ; +import graphs from './graphs' ; +import logic from './logic' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + data_structures , + graphs , + logic , +} ; + +export { + data_structures , + graphs , + logic , +} ; diff --git a/src/math/logic/index.js b/src/math/logic/index.js new file mode 100644 index 0000000..a0b0b8a --- /dev/null +++ b/src/math/logic/index.js @@ -0,0 +1,10 @@ +import simplify_zol_system_dnf_no_negation from './simplify_zol_system_dnf_no_negation' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + simplify_zol_system_dnf_no_negation , +} ; + +export { + simplify_zol_system_dnf_no_negation , +} ; diff --git a/src/math/logic/simplify_zol_system_dnf_no_negation.js b/src/math/logic/simplify_zol_system_dnf_no_negation.js new file mode 100644 index 0000000..144a56c --- /dev/null +++ b/src/math/logic/simplify_zol_system_dnf_no_negation.js @@ -0,0 +1,73 @@ +import assert from 'assert' ; +import { ProcessOnceQueue } from '../data_structures' ; + +/** + * Given the following system of equations + * + * A = B or (B and B) or C + * B = (C and C) or FALSE + * C = C or TRUE + * + * The solution for this example is + * + * A = B = C = TRUE + * + * If some symbol is not defined then it is FALSE (empty + * disjunction). + * + * @param {Iterable} equations - A sequence of (symbol, dnf formula) pairs. + * @return {Set} The set of true symbols. + */ +export default function simplify_zol_system_dnf_no_negation ( equations ) { + + const maybeTrueSymbols = new WeakMap(); // expression -> symbol[] + const expressionToEquationSymbol = new WeakMap(); // expression -> symbol + const expressionsContainingGivenSymbol = new Map(); // symbol -> expression[] + + const stack = new ProcessOnceQueue(); + + for ( const [ symbol , expression ] of equations ) { + assert(typeof symbol === 'string'); + assert(expression instanceof Array); + if (expression.length === 0) { + // symbol is true since expression is empty + stack.push(symbol); + } + else { + expressionToEquationSymbol.set(expression, symbol); + const symbols = new Set(expression); + maybeTrueSymbols.set(expression, symbols); + + for ( const symbol of expression ) { + if (expressionsContainingGivenSymbol.has(symbol)) { + expressionsContainingGivenSymbol.get(symbol).push(expression); + } + else { + expressionsContainingGivenSymbol.set(symbol, [expression]); + } + } + } + } + + while (!stack.empty()) { + const symbol = stack.pop(); + + if (!expressionsContainingGivenSymbol.has(symbol)) continue; + for ( const expression of expressionsContainingGivenSymbol.get(symbol) ) { + const symbols = maybeTrueSymbols.get(expression); + symbols.delete(symbol); + if (symbols.size === 0) { + const trueSymbol = expressionToEquationSymbol.get(expression); + // each true symbol is handled exactly once + stack.push(trueSymbol) + // maybeTrueSymbols.delete(expression); // explicit GC + } + } + + // expressionsContainingGivenSymbol.delete(symbol); // explicit GC + + } + + return stack.done(); + +} diff --git a/src/productions/fromIterable.js b/src/productions/fromIterable.js new file mode 100644 index 0000000..2a646e8 --- /dev/null +++ b/src/productions/fromIterable.js @@ -0,0 +1,17 @@ +import assert from 'assert' ; + +export default function fromIterable ( iterable ) { + const productions = new Map(); + for ( const [ nonterminal , rule , key ] of iterable ) { + assert(nonterminal !== undefined); + assert(rule instanceof Array); + assert(key !== undefined); + if (productions.has(nonterminal)) { + productions.get(nonterminal).set(key, rule); + } + else { + productions.set(nonterminal, new Map([[key, rule]])); + } + } + return productions; +} diff --git a/src/productions/index.js b/src/productions/index.js new file mode 100644 index 0000000..c430b49 --- /dev/null +++ b/src/productions/index.js @@ -0,0 +1,19 @@ +import fromIterable from './fromIterable' ; +import nonterminalEdges from './nonterminalEdges' ; +import nonterminalNotOnRHS from './nonterminalNotOnRHS' ; +import onRHS from './onRHS' ; + +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ +export default { + fromIterable , + nonterminalEdges , + nonterminalNotOnRHS , + onRHS , +} ; + +export { + fromIterable , + nonterminalEdges , + nonterminalNotOnRHS , + onRHS , +} ; diff --git a/src/productions/nonterminalEdges.js b/src/productions/nonterminalEdges.js new file mode 100644 index 0000000..8ef59f5 --- /dev/null +++ b/src/productions/nonterminalEdges.js @@ -0,0 +1,11 @@ +export default function* nonterminalEdges ( productions ) { + + for ( const [ A , rule ] of productions ) { + for ( const part of rule ) { + if ( part.type === 'leaf' ) continue ; + // A -> B + const B = part.nonterminal ; + yield [A, B]; + } + } +} diff --git a/src/productions/nonterminalNotOnRHS.js b/src/productions/nonterminalNotOnRHS.js new file mode 100644 index 0000000..198abec --- /dev/null +++ b/src/productions/nonterminalNotOnRHS.js @@ -0,0 +1,8 @@ +import { any , map } from '@aureooms/js-itertools' ; + +import onRHS from './onRHS' ; + +export default function nonterminalNotOnRHS ( nonterminal , productions ) { + return !any(map(x => x.type === 'node' && x.nonterminal === nonterminal, onRHS(productions) )); +} + diff --git a/src/productions/onRHS.js b/src/productions/onRHS.js new file mode 100644 index 0000000..6738ef9 --- /dev/null +++ b/src/productions/onRHS.js @@ -0,0 +1,3 @@ +export default function* onRHS ( productions ) { + for ( const [ _ , rule ] of productions ) yield* rule ; +} diff --git a/src/util/_arrayIndexOrObjectKey.js b/src/util/_arrayIndexOrObjectKey.js new file mode 100644 index 0000000..c8d4978 --- /dev/null +++ b/src/util/_arrayIndexOrObjectKey.js @@ -0,0 +1,9 @@ +import assert from 'assert' ; + +export default function _arrayIndexOrObjectKey ( x ) { + if (typeof x === 'number') return x; + assert(typeof x === 'string'); + if (x !== '0' && !/^[1-9][0-9]*$/.test(x)) return x; + const n = parseInt(x, 10); + return Number.isNaN(n) ? x : n; +} diff --git a/src/util/_mostAppropriateKeyHolder.js b/src/util/_mostAppropriateKeyHolder.js new file mode 100644 index 0000000..9a91028 --- /dev/null +++ b/src/util/_mostAppropriateKeyHolder.js @@ -0,0 +1,17 @@ +import { list , map , any } from '@aureooms/js-itertools' ; + +import _arrayIndexOrObjectKey from './_arrayIndexOrObjectKey' ; + +export default function _mostAppropriateKeyHolder ( keys ) { + const _keys = list(map(_arrayIndexOrObjectKey, keys)); + if (_keys.length === 0) return []; + if (any(map(x => typeof x === 'string', _keys))) return {}; + _keys.sort(); + // check starts at 0 + if (_keys[0] !== 0) return {}; + // check for holes + for ( let i = 1 ; i < _keys.length ; ++i ) { + if (_keys[i] !== _keys[i-1] + 1) return {}; + } + return []; +} diff --git a/src/util/compareKeyedRules.js b/src/util/compareKeyedRules.js new file mode 100644 index 0000000..3705c78 --- /dev/null +++ b/src/util/compareKeyedRules.js @@ -0,0 +1,5 @@ +import assert from 'assert' ; +import { attr } from '@aureooms/js-compare' ; +import compareRules from './compareRules' ; + +export default attr(compareRules, 1); diff --git a/src/util/compareRules.js b/src/util/compareRules.js new file mode 100644 index 0000000..dfa7a77 --- /dev/null +++ b/src/util/compareRules.js @@ -0,0 +1,4 @@ +import { quasilexicographical } from '@aureooms/js-compare' ; +import compareSymbols from './compareSymbols' ; + +export default quasilexicographical(compareSymbols) ; diff --git a/src/util/compareSymbols.js b/src/util/compareSymbols.js new file mode 100644 index 0000000..fda03dd --- /dev/null +++ b/src/util/compareSymbols.js @@ -0,0 +1,25 @@ +import assert from 'assert' ; + +export default function compareSymbols ( a , b ) { + + if ( a.type === 'node' ) { + if ( b.type === 'node' ) { + return a.nonterminal < b.nonterminal ? -1 : a.nonterminal > b.nonterminal ? 1 : 0 ; + } + else { + assert(b.type === 'leaf'); + return -1 ; + } + } + else { + assert(a.type === 'leaf'); + if ( b.type === 'node' ) { + return 1 ; + } + else { + assert(b.type === 'leaf'); + return a.terminal < b.terminal ? -1 : a.terminal > b.terminal ? 1 : 0 ; + } + + } +} diff --git a/src/util/index.js b/src/util/index.js index c8ff8aa..cbfdb41 100644 --- a/src/util/index.js +++ b/src/util/index.js @@ -1,15 +1,31 @@ +import _arrayIndexOrObjectKey from './_arrayIndexOrObjectKey' ; +import _mostAppropriateKeyHolder from './_mostAppropriateKeyHolder' ; import anyIterator from './anyIterator' ; +import compareKeyedRules from './compareKeyedRules' ; +import compareRules from './compareRules' ; +import compareSymbols from './compareSymbols' ; import setadd from './setadd' ; import setaddall from './setaddall' ; +/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */ export default { + _arrayIndexOrObjectKey , + _mostAppropriateKeyHolder , anyIterator , + compareKeyedRules , + compareRules , + compareSymbols , setadd , setaddall , } ; export { + _arrayIndexOrObjectKey , + _mostAppropriateKeyHolder , anyIterator , + compareKeyedRules , + compareRules , + compareSymbols , setadd , setaddall , } ; diff --git a/test/src/cfg/nullable.js b/test/src/cfg/nullable.js new file mode 100644 index 0000000..f007cc1 --- /dev/null +++ b/test/src/cfg/nullable.js @@ -0,0 +1,109 @@ +import test from 'ava'; + +import { cfg , grammar } from '../../../src' ; + +const { iterObject } = grammar ; +const { nullable } = cfg ; + +function macro ( t , productions , expected ) { + const it = iterObject(productions); + const result = nullable(it); + t.assert(result instanceof Set); + const _result = Array.from(result).sort(); + t.deepEqual(expected, _result); +} + +macro.title = (title, productions, expected) => title || `nullable(${JSON.stringify(productions)}) = ${JSON.stringify(expected)}` ; + +test(macro, {}, []); + +test(macro, {A: [[]]}, ['A']); +test(macro, {A: [['=x'],[]]}, ['A']); +test(macro, {A: [['=x']]}, []); +test(macro, {A: [['=x'],['=y']]}, []); +test(macro, {A: [[],[]]}, ['A']); +test(macro, {A: [[],['=x'],[]]}, ['A']); +test(macro, {A: [[],['=x'],[],['=y']]}, ['A']); + +test(macro, { + A: [ + ['&B'], + ], +}, []); + +test(macro, { + A: [ + ['&B'], + ], + B: [ + [], + ] +}, ['A', 'B']); + +test(macro, { + A: [ + ['&B'], + [] + ], + B: [ + [], + ] +}, ['A', 'B']); + +test(macro, { + A: [ + ['&B'], + [] + ], + B: [ + ['&C'], + ] +}, ['A']); + +test(macro, { + "R" : [ + [ "&S_0" , "=$" ] , + ] , + "S_0" : [ + [ "&A" , "=b" , "&B" ] , + [ "&C" ] , + ] , + "B": [ + [ "&A" , "&A" ] , + [ "&A" , "&C" ] + ] , + "C": [ + ["=b"], + ["=c"], + ], + "A": [ + [ "=a" ] , + [ ] , + ] +}, ['A', 'B']); + +test(macro, { + "R" : [ + [ "&S_0" , "=$" ] , + ] , + "S_0" : [ + [ "&A" , "=b" , "&B" ] , + [ "&A" , "=b" ] , + [ "=b" , "&B" ] , + [ "=b" ] , + [ "&C" ] , + ] , + "B": [ + [ "&A" , "&A" ] , + [ "&A" ] , + [ "&A" , "&C" ] , + [ "&C" ] + ] , + "C": [ + ["=b"], + ["=c"], + ], + "A": [ + [ "=a" ] , + ] +}, []); diff --git a/test/src/cnf/from.js b/test/src/cnf/from.js new file mode 100644 index 0000000..910e5df --- /dev/null +++ b/test/src/cnf/from.js @@ -0,0 +1,300 @@ +import test from 'ava' ; + +import { grammar , cnf } from '../../../src' ; + +function transform ( t , input , output ) { + + const expected = grammar.from(output) + t.true(cnf.is(expected)); + + const _input = grammar.from(input); + const result = cnf.from(_input); + t.true(cnf.is(result)); + + const _expected = expected.toJSON(); + const _result = grammar.toJSON(result); + t.deepEqual(_expected, _result); + +} + +transform.title = (title, input, expected) => title || `cnf.from(${JSON.stringify(input)}) = ${JSON.stringify(expected)}` ; + +const immutable = (t , input) => transform(t, input, input); +immutable.title = (title, input) => transform.title(title, input, input) ; + +test('cnf.from empty non-root rule', transform, { + "root": "S0", + "start": 0, + "eof": "$", + "productions": { + "S0": [ + [ "&A" , "&A" ] , + ] , + "A" : [ + [ ] , + ] , + } +}, { + "root": "S0", + "start": 0, + "eof": "$", + "productions": { + "S0": { + 0: [ "&A" , "&A" ] , + "0.1": [ ] , + } + } +}); + +test('cnf.from rule of length 2 with terminal (both)' , transform , { + "root": "S0", + "start": 0, + "eof": "$", + "productions": { + "S0": [ + [ "=a" , "=b" ] , + ] + } +}, { + "root": "S0", + "start": 0, + "eof": "$", + "productions": { + "S0": [ + [ "&N#a" , "&N#b" ] , + ] , + "N#a": [ + [ "=a"] + ], + "N#b": [ + [ "=b"] + ], + } +}); + +test('cnf.from rule of length 3' , transform , { + "root": "R", + "start": 0, + "eof": "$", + "productions": { + "R": [ + [ "=a" , "=b" , "=c" ] + ] + } +}, { + "root": "R", + "start": 0, + "eof": "$", + "productions": { + "R": [ + [ "&N#a" , "&R1" ] + ] , + "R1": [ + [ "&N#b" , "&N#c" ] + ] , + "N#a" : [ [ "=a" ] ] , + "N#b" : [ [ "=b" ] ] , + "N#c" : [ [ "=c" ] ] , + } +}); + +test('cnf.from rule of length 4' , transform , { + "root": "R", + "start": 0, + "eof": "$", + "productions": { + "R": [ + [ "=a" , "=b" , "=c" , "=d" ] + ] + } +}, { + "root": "R", + "start": 0, + "eof": "$", + "productions": { + "R": [ + [ "&N#a" , "&R1" ] + ] , + "R1": [ + [ "&N#b" , "&R2" ] + ] , + "R2": [ + [ "&N#c" , "&N#d" ] + ] , + "N#a" : [ [ "=a" ] ] , + "N#b" : [ [ "=b" ] ] , + "N#c" : [ [ "=c" ] ] , + "N#d" : [ [ "=d" ] ] , + } +}); + +test('cnf.from https://en.wikipedia.org/wiki/Chomsky_normal_form#Example' , immutable , { + "root": "S0", + "start": 0, + "eof": "$", + "productions": { + "S0": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + [ "&Term" , "&MulOp_Factor" ] , + [ "&Expr" , "&AddOp_Term" ] , + [ "&AddOp" , "&Term" ] , + [ ] , // Added for coverage + ] , + "Expr": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + [ "&Term" , "&MulOp_Factor" ] , + [ "&Expr" , "&AddOp_Term" ] , + [ "&AddOp" , "&Term" ] , + ] , + "Term": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + [ "&Term" , "&MulOp_Factor" ] , + ] , + "Factor": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + ] , + "Primary": [ [ "=number" ] , [ "=variable" ] , [ "&Open" , "&Expr_Close" ] ] , + "AddOp": [ [ "=+" ] , [ "=-" ] ] , + "MulOp": [ [ "=*" ] , [ "=/" ] ] , + "PowOp": [ [ "=^" ] ] , + "Open": [ [ "=(" ] ] , + "Close": [ [ "=)" ] ] , + "AddOp_Term": [ [ "&AddOp" , "&Term" ] ] , + "MulOp_Factor": [ [ "&MulOp" , "&Factor" ] ] , + "PowOp_Primary": [ [ "&PowOp" , "&Primary" ] ] , + "Expr_Close": [ [ "&Expr" , "&Close" ] ] , + } +}) ; + +test('cnf.from root rule in RHS', transform, { + "root": "R", + "start": 0, + "eof": "$", + "productions": { + "R": [ + [ "&A" , "&R" ] , + [ ] + ] , + "A" : [ + [ "=a" ] , + ] , + } +}, { + "root": "S0", + "start": 0, + "eof": "$", + "productions": { + "S0": { + "R#0": [ "&A" , "&R" ] , + "A#0": [ "=a" ] , + 0: [ ] , + "S0#0": [ ] , + } , + "R": { + 0: [ "&A" , "&R" ] , + "R#0": [ "&A" , "&R" ] , + "A#0": [ "=a" ] , + } , + "A" : [ + [ "=a" ] , + ] , + } +}); + +test('cnf.from indirection A -> B -> C', transform, { + "root": "A", + "start": 0, + "eof": "$", + "productions": { + "A": [ [ "&B" ] ] , + "B": [ [ "&C" ] ] , + "C": [ [ "=c" ] ] , + } +} , { + "root": "A", + "start": 0, + "eof": "$", + "productions": { + "A": { + "C#0": [ "=c" ] + } , + "B": { + "C#0": [ "=c" ] + } , + "C": [ + [ "=c" ] + ] , + } +}); + +test('cnf.from indirections A -> B -> C + A -> C', transform, { + "root": "A", + "start": 0, + "eof": "$", + "productions": { + "A": [ [ "&B" ] , [ "&C" ] ] , + "B": [ [ "&C" ] ] , + "C": [ [ "=c" ] ] , + } +} , { + "root": "A", + "start": 0, + "eof": "$", + "productions": { + "A": { + "C#0": [ "=c" ] + } , + "B": { + "C#0": [ "=c" ] + } , + "C": [ + [ "=c" ] + ] , + } +}); + +test('cnf.from loop B -> C -> B', transform, { + "root": "A", + "start": 0, + "eof": "$", + "productions": { + "A": [ [ "&B" ] ] , + "B": [ [ "&C" ] ] , + "C": [ [ "&B" ] , [ "=c" ] ] , + } +} , { + "root": "A", + "start": 0, + "eof": "$", + "productions": { + "A": { + "C#1": [ "=c" ] + } , + "B": { + "C#1": [ "=c" ] + } , + "C": { + 1: [ "=c" ], + "C#1": [ "=c" ] + } , + } +}); + +test('cnf.from terminals only', immutable, { + "root": 0, + "start": 0, + "eof": "$", + "productions": [ [ [ "=0" ] ] ], +}); diff --git a/test/src/cnf/is.js b/test/src/cnf/is.js new file mode 100644 index 0000000..257253f --- /dev/null +++ b/test/src/cnf/is.js @@ -0,0 +1,173 @@ +import test from 'ava' ; + +import { grammar , cnf } from '../../../src' ; + +test('cnf.is empty non-root rule' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "&A" , "&A" ] , + ] , + "A" : [ + [ ] , + ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.false(cnf.is(G)); + +}) ; + +test('cnf.is rule of length >= 3' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "&A" , "&B" , "&C" ] , + ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.false(cnf.is(G)); + +}) ; + +test('cnf.is rule of length 1 with nonterminal' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "&A" ] , + ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.false(cnf.is(G)); + +}) ; + +test('cnf.is rule of length 2 with terminal (left)' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "=a" , "&B" ] , + ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.false(cnf.is(G)); + +}) ; + +test('cnf.is rule of length 2 with terminal (right)' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "&A" , "=b" ] , + ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.false(cnf.is(G)); + +}) ; + +test('cnf.is rule of length 2 with terminal (both)' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "=a" , "=b" ] , + ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.false(cnf.is(G)); + +}) ; + + +test('cnf.is https://en.wikipedia.org/wiki/Chomsky_normal_form#Example' , t => { + + const root = 'S0' ; + const start = Math.random() ; // don't care + const eof = Math.random() ; // don't care + + const productions = { + "S0": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + [ "&Term" , "&MulOp_Factor" ] , + [ "&Expr" , "&AddOp_Term" ] , + [ "&AddOp" , "&Term" ] , + [ ] , // Added for coverage + ] , + "Expr": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + [ "&Term" , "&MulOp_Factor" ] , + [ "&Expr" , "&AddOp_Term" ] , + [ "&AddOp" , "&Term" ] , + ] , + "Term": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + [ "&Term" , "&MulOp_Factor" ] , + ] , + "Factor": [ + [ "=number" ] , + [ "=variable" ] , + [ "&Open" , "&Expr_Close" ] , + [ "&Factor" , "&PowOp_Primary" ] , + ] , + "Primary": [ [ "=number" ] , [ "=variable" ] , [ "&Open" , "&Expr_Close" ] ] , + "AddOp": [ [ "=+" ] , [ "=-" ] ] , + "MulOp": [ [ "=*" ] , [ "=/" ] ] , + "PowOp": [ [ "=^" ] ] , + "Open": [ [ "=(" ] ] , + "Close": [ [ "=)" ] ] , + "AddOp_Term": [ [ "&AddOp" , "&Term" ] ] , + "MulOp_Factor": [ [ "&MulOp" , "&Factor" ] ] , + "PowOp_Primary": [ [ "&PowOp" , "&Primary" ] ] , + "Expr_Close": [ [ "&Expr" , "&Close" ] ] , + } ; + + const G = grammar.from({root, start, eof, productions}); + + t.true(cnf.is(G)); + +}) ; + diff --git a/test/src/grammar/invalid-format.js b/test/src/grammar/invalid-format.js index 5496f00..03233a1 100644 --- a/test/src/grammar/invalid-format.js +++ b/test/src/grammar/invalid-format.js @@ -1,8 +1,6 @@ import test from 'ava' ; -import { list , map } from '@aureooms/js-itertools' ; - -import { grammar , ll1 } from '../../../src' ; +import { grammar } from '../../../src' ; test( 'invalid node type in _expandproduction (_makenode)' , t => { diff --git a/test/src/grammar/iter.js b/test/src/grammar/iter.js new file mode 100644 index 0000000..f160023 --- /dev/null +++ b/test/src/grammar/iter.js @@ -0,0 +1,104 @@ +import test from 'ava'; + +import { list } from '@aureooms/js-itertools' ; +import { grammar } from '../../../src' ; + +const { iter , iterObject } = grammar ; + +function macro ( t , productions ) { + + const G = grammar.from({ + root: '', + start: 0, + eof: '', + productions, + }); + + t.deepEqual(list(iter(G.productions)), list(iterObject(productions))); + +} + +macro.title = (title, productions) => title || `iter(grammar.from({..., ${JSON.stringify(productions)}}).productions) = iterObject(${JSON.stringify(productions)})` ; + +test(macro, { + A: [ + ['&B'], + ], +}); + +test(macro, { + A: [ + ['&B'], + ], + B: [ + [], + ] +}); + +test(macro, { + A: [ + ['&B'], + [] + ], + B: [ + [], + ] +}); + +test(macro, { + A: [ + ['&B'], + [] + ], + B: [ + ['&C'], + ] +}); + +test(macro, { + "R" : [ + [ "&S_0" , "=$" ] , + ] , + "S_0" : [ + [ "&A" , "=b" , "&B" ] , + [ "&C" ] , + ] , + "B": [ + [ "&A" , "&A" ] , + [ "&A" , "&C" ] + ] , + "C": [ + ["=b"], + ["=c"], + ], + "A": [ + [ "=a" ] , + [ ] , + ] +}); + +test(macro, { + "R" : [ + [ "&S_0" , "=$" ] , + ] , + "S_0" : [ + [ "&A" , "=b" , "&B" ] , + [ "&A" , "=b" ] , + [ "=b" , "&B" ] , + [ "=b" ] , + [ "&C" ] , + ] , + "B": [ + [ "&A" , "&A" ] , + [ "&A" ] , + [ "&A" , "&C" ] , + [ "&C" ] + ] , + "C": [ + ["=b"], + ["=c"], + ], + "A": [ + [ "=a" ] , + ] +}); diff --git a/test/src/grammar/simplify.js b/test/src/grammar/simplify.js new file mode 100644 index 0000000..ad0a519 --- /dev/null +++ b/test/src/grammar/simplify.js @@ -0,0 +1,136 @@ +import test from 'ava'; + +import { list } from '@aureooms/js-itertools' ; +import { grammar } from '../../../src' ; + +function macro ( t , input , expected ) { + + const G = grammar.from(input); + const S = grammar.simplify(G); + const result = grammar.toJSON(S); + + t.deepEqual(expected, result); + +} + +macro.title = (title, input, expected) => title || `simplify(${JSON.stringify(input)}}) = ${JSON.stringify(expected)})` ; + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ ], + B: [ ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ ], + } +}); + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ ] , [ ] ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ ] ], + } +}); + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "=a" ] , [ "=a" ] , [ "&B" ] , [ "=c" ] , [ "&D" ] , [ "&D" ] , [ "&D" , "=e" ] , [ "=a" , "&B" ] ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: { + 0: [ "=a" ] , + 2: [ "&B" ] , + 3: [ "=c" ] , + 4: [ "&D" ] , + 6: [ "&D" , "=e" ] , + 7: [ "=a" , "&B" ] , + }, + } +}); + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "=a" ] , [ "=b" ] ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "=a" ] , [ "=b" ] ], + } +}); + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "=b" ] , [ "=a" ] ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "=b" ] , [ "=a" ] ], + } +}); + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "&a" ] , [ "&b" ] ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "&a" ] , [ "&b" ] ], + } +}); + +test(macro, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "&b" ] , [ "&a" ] ], + } +}, { + root: 'A', + start: 0, + eof: '$', + productions: { + A: [ [ "&b" ] , [ "&a" ] ], + } +}); diff --git a/test/src/language/generate.js b/test/src/language/generate.js new file mode 100644 index 0000000..b851e7b --- /dev/null +++ b/test/src/language/generate.js @@ -0,0 +1,315 @@ +import test from 'ava' ; + +import { list , map , take , sorted } from '@aureooms/js-itertools' ; + +import { quasilexicographical , increasing } from '@aureooms/js-compare' ; + +import { grammar , language } from '../../../src' ; + +const compare = quasilexicographical(increasing) ; +const set = x => sorted(compare, x) ; + +test( 'language.generate' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ "=x" ] , + [ ] + ] + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const L = set(map(x => list(x).join(''), language.generate(G))) ; + + const expected = set([ '$' , 'x$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate empty x2' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ "&X" ] , + [ ] + ] , + "X" : [ + [ ] + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const L = set(map(x => list(x).join(''), language.generate(G))) ; + + const expected = set([ '$' , '$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate finite (large)' , t => { + const root = 'R' ; + const start = 0 ; + const eof = '$' ; + + const productions = { + "R" : [ + [ "&S_0" , "=$" ] , + ] , + "S_0" : [ + [ "&A" , "=b" , "&B" ] , + [ "&C" ] , + ] , + "B": [ + [ "&A" , "&A" ] , + [ "&A" , "&C" ] + ] , + "C": [ + ["=b"], + ["=c"], + ], + "A": [ + [ "=a" ] , + [ ] , + ] + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const L = set(new Set(map(x => list(x).join(''), language.generate(G)))) ; + + const expected = set([ 'ab$','aba$','abaa$','abab$','abac$','abb$','abc$','b$','ba$','baa$','bab$','bac$','bb$','bc$','c$' ]) ; + + t.deepEqual(expected, L); +}); + +test( 'language.generate finite (large without ε-rules)' , t => { + const root = 'R' ; + const start = 0 ; + const eof = '$' ; + + const productions = { + "R" : [ + [ "&S_0" , "=$" ] , + ] , + "S_0" : [ + [ "&A" , "=b" , "&B" ] , + [ "&A" , "=b" ] , + [ "=b" , "&B" ] , + [ "=b" ] , + [ "&C" ] , + ] , + "B": [ + [ "&A" , "&A" ] , + [ "&A" ] , + [ "&A" , "&C" ] , + [ "&C" ] + ] , + "C": [ + ["=b"], + ["=c"], + ], + "A": [ + [ "=a" ] , + ] + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const L = set(new Set(map(x => list(x).join(''), language.generate(G)))) ; + + const expected = set([ 'ab$','aba$','abaa$','abab$','abac$','abb$','abc$','b$','ba$','baa$','bab$','bac$','bb$','bc$','c$' ]) ; + + t.deepEqual(expected, L); +}); + +test( 'language.generate infinite (left)' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ ] , + [ "=0" , "&S" ] , + [ "=1" , "&S" ] , + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const N = 5 ; + const L = set(take(map(x => list(x).join(''), language.generate(G)), N)) ; + + const expected = set([ '$' , '0$' , '1$' , '00$' , '10$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate infinite (right)' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ ] , + [ "&S" , "=0" ] , + [ "&S" , "=1" ] , + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const N = 5 ; + const L = set(take(map(x => list(x).join(''), language.generate(G)), N)) ; + + const expected = set([ '$' , '0$' , '1$' , '00$' , '01$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate infinite (left &B)' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ ] , + [ "&B" , "&S" ] , + ] , + "B" : [ + [ "=0" ] , + [ "=1" ] , + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const N = 5 ; + const L = set(take(map(x => list(x).join(''), language.generate(G)), N)) ; + + const expected = set([ '$' , '0$' , '1$' , '00$' , '000$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate infinite (right &B)' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ ] , + [ "&S" , "&B" ] , + ] , + "B" : [ + [ "=0" ] , + [ "=1" ] , + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const N = 5 ; + const L = set(take(map(x => list(x).join(''), language.generate(G)), N)) ; + + const expected = set([ '$' , '0$' , '1$' , '00$' , '01$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate ambiguous (empty word)' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ ] , + [ "&S"] , + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const N = 5 ; + const L = set(take(map(x => list(x).join(''), language.generate(G)), N)) ; + + const expected = set([ '$' , '$' , '$' , '$' , '$' ]) ; + + t.deepEqual(expected, L); + +}) ; + +test( 'language.generate ambiguous (words)' , t => { + + const root = 'R' ; + const start = 0 ; + const eof = '$'; + + const productions = { + "R" : [ + [ "&S" , '=$' ] + ] , + "S" : [ + [ "=x" ] , + [ "&S" , "&S"] , + ] , + } ; + + const G = grammar.from( { root , start , eof , productions } ) ; + + const N = 5 ; + const L = set(take(map(x => list(x).join(''), language.generate(G)), N)) ; + + const expected = set([ 'x$' , 'xx$' , 'xxx$' , 'xxx$' , 'xxxx$' ]) ; + + t.deepEqual(expected, L); + +}) ; + + diff --git a/yarn.lock b/yarn.lock index df32400..f986956 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,33 +9,48 @@ dependencies: "@aureooms/js-error" "^4.0.1" -"@aureooms/js-compare@1.4.5": - version "1.4.5" - resolved "https://registry.yarnpkg.com/@aureooms/js-compare/-/js-compare-1.4.5.tgz#8531ba35bf2ecb0ec6aca307674276e8dd65c81c" - integrity sha1-hTG6Nb8uyw7GrKMHZ0J26N1lyBw= +"@aureooms/js-compare@1.4.8": + version "1.4.8" + resolved "https://registry.yarnpkg.com/@aureooms/js-compare/-/js-compare-1.4.8.tgz#c6bff1091f4a2e211f449299572d9f195146fc59" + integrity sha512-Z26PU6OmuhS7ZJsELTKImmipF7J+KCOyN70wBhhVIhmqUhXY6C3JpJHAev6wNBkC4ThlQt3zO6p/OmBFIq76Qg== "@aureooms/js-error@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@aureooms/js-error/-/js-error-4.0.1.tgz#be2740b3f31a337e0828930c9b70d38113b4dd77" integrity sha512-zsgs6wmnRsKljlusewYiBaFBM/hIJp43b7OwE9ybpLEL4wfXjGP17cJTTAY8gpzALVFwEA5/flxIK0I6gJJLHQ== -"@aureooms/js-itertools@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@aureooms/js-itertools/-/js-itertools-4.0.1.tgz#6968eb71456daa042af0b8682100d59f397f7f91" - integrity sha512-cNaSF+5bgRGUXWBlWzSLjo0t12MHmkr1qCIxCvB4d3D5C7GPG0SH35efMOrv1VkHrLXuTqAbdnNu/iy2i26w5w== +"@aureooms/js-itertools@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@aureooms/js-itertools/-/js-itertools-4.1.0.tgz#c731eaee7de0005c6ea41f2f87cca4bdb2d86ca1" + integrity sha512-P9TfwQPuXk5T5z6QMMfwLLyzh9QsEu4sGWcBk/P/waWgim/xqr+LDTOHVo7WU4QAty+/5CBX8DuW7MrPVfXt5A== dependencies: "@aureooms/js-collections-deque" "^4.0.1" "@aureooms/js-error" "^4.0.1" +"@aureooms/js-pairs@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@aureooms/js-pairs/-/js-pairs-0.0.0.tgz#a9d348c367511d4e70e166c73085ffc98c5fecf6" + integrity sha512-zsyLmTpXZ2cQmVMCU1FnUIwiaaFEhZ9FiotgjVjsJLFhBoU+wIxykUyIDZXozRszQLnk5sa8gWIrnQ3azjQCUA== + dependencies: + "@aureooms/js-error" "^4.0.1" + "@aureooms/js-itertools" "^4.1.0" + +"@aureooms/js-red-black-tree@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@aureooms/js-red-black-tree/-/js-red-black-tree-2.0.7.tgz#653ee108e3a31b038288f9d425f858c9415dbffd" + integrity sha1-ZT7hCOOjGwOCiPnUJfhYyUFdv/0= + dependencies: + chalk "^1.1.3" + "@aureooms/js-tape@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@aureooms/js-tape/-/js-tape-7.0.0.tgz#2e11c416368c7331fbf1fb9f34a4b5e54b694df2" integrity sha512-pUXKe28iLq51SslPtYHHZVrthXgNiiax4ZLTDmu0fVv5Zmry3kEEIRrIMpLtTsvBG6Lv6tBU+HWrbTbPZXYa4Q== -"@babel/cli@7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.10.5.tgz#57df2987c8cf89d0fc7d4b157ec59d7619f1b77a" - integrity sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA== +"@babel/cli@7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.11.6.tgz#1fcbe61c2a6900c3539c06ee58901141f3558482" + integrity sha512-+w7BZCvkewSmaRM6H4L2QM3RL90teqEIHDIFXAmrW33+0jhlymnDAEdqVeCZATvxhQuio1ifoGVlJJbIiH9Ffg== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -48,30 +63,14 @@ optionalDependencies: chokidar "^2.1.8" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/code-frame@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.4.tgz#706a6484ee6f910b719b696a9194f8da7d7ac241" - integrity sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/compat-data@^7.11.0": +"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== @@ -80,19 +79,19 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/core@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.0.tgz#73b9c33f1658506887f767c26dae07798b30df76" - integrity sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg== +"@babel/core@7.11.6", "@babel/core@^7.7.5": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" + "@babel/generator" "^7.11.6" "@babel/helper-module-transforms" "^7.11.0" "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.0" + "@babel/parser" "^7.11.5" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -102,57 +101,15 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.7.5": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" - integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.6" - "@babel/parser" "^7.9.6" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.4.tgz#e49eeed9fe114b62fa5b181856a43a5e32f5f243" - integrity sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng== - dependencies: - "@babel/types" "^7.10.4" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" - integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== +"@babel/generator@^7.0.0", "@babel/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.11.5" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" - integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== - dependencies: - "@babel/types" "^7.9.6" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -160,13 +117,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" @@ -187,12 +137,12 @@ semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz#2d4015d0136bd314103a70d84a7183e4b344a355" - integrity sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== dependencies: "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" "@babel/helper-optimise-call-expression" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-replace-supers" "^7.10.4" @@ -207,30 +157,20 @@ "@babel/helper-regex" "^7.10.4" regexpu-core "^4.7.0" -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - "@babel/helper-define-map@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz#f037ad794264f729eda1889f4ee210b870999092" - integrity sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== dependencies: "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.4" - lodash "^4.17.13" + "@babel/types" "^7.10.5" + lodash "^4.17.19" "@babel/helper-explode-assignable-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" - integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== + version "7.11.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" + integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== dependencies: - "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" "@babel/helper-function-name@^7.10.4": @@ -242,15 +182,6 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - "@babel/helper-get-function-arity@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" @@ -258,13 +189,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -272,19 +196,12 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz#7cd04b57dfcf82fce9aeae7d4e4452fa31b8c7c4" - integrity sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" + integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.11.0" "@babel/helper-module-imports@^7.10.4": version "7.10.4" @@ -293,27 +210,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz#ca1f01fdb84e48c24d7506bb818c961f1da8805d" - integrity sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - lodash "^4.17.13" - -"@babel/helper-module-transforms@^7.11.0": +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== @@ -326,19 +223,6 @@ "@babel/types" "^7.11.0" lodash "^4.17.19" -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - "@babel/helper-optimise-call-expression@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" @@ -346,46 +230,26 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-plugin-utils@^7.10.4": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== "@babel/helper-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.4.tgz#59b373daaf3458e5747dece71bbaf45f9676af6d" - integrity sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== dependencies: - lodash "^4.17.13" + lodash "^4.17.19" "@babel/helper-remap-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" - integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== + version "7.11.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" + integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-wrap-function" "^7.10.4" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" "@babel/helper-replace-supers@^7.10.4": @@ -398,16 +262,6 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-replace-supers@^7.8.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" - integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - "@babel/helper-simple-access@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" @@ -416,14 +270,6 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helper-skip-transparent-expression-wrappers@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" @@ -431,37 +277,18 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-split-export-declaration@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" - integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-split-export-declaration@^7.11.0": +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== dependencies: "@babel/types" "^7.11.0" -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - "@babel/helper-wrap-function@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" @@ -481,15 +308,6 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" - integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -499,31 +317,12 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.4.tgz#9eedf27e1998d87739fb5028a5120557c06a1a64" - integrity sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA== - -"@babel/parser@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.0.tgz#a9d7e11aead25d3b422d17b2c6502c8dddef6a5d" - integrity sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw== - -"@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" - integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== +"@babel/parser@^7.0.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== -"@babel/plugin-proposal-async-generator-functions@7.10.5": +"@babel/plugin-proposal-async-generator-functions@7.10.5", "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== @@ -532,15 +331,6 @@ "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz#4b65abb3d9bacc6c657aaa413e56696f9f170fc6" - integrity sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-proposal-class-properties@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" @@ -631,7 +421,7 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4": +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== @@ -639,14 +429,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -755,12 +537,11 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-block-scoping@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz#a670d1364bb5019a621b9ea2001482876d734787" - integrity sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A== + version "7.11.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" + integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - lodash "^4.17.13" "@babel/plugin-transform-classes@^7.10.4": version "7.10.4" @@ -790,7 +571,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.10.4": +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== @@ -798,14 +579,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-duplicate-keys@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" @@ -851,11 +624,11 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz#cb407c68b862e4c1d13a2fc738c7ec5ed75fc520" - integrity sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== dependencies: - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" @@ -870,12 +643,12 @@ babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz#8f576afd943ac2f789b35ded0a6312f929c633f9" - integrity sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== dependencies: "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" @@ -910,9 +683,9 @@ "@babel/helper-replace-supers" "^7.10.4" "@babel/plugin-transform-parameters@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz#7b4d137c87ea7adc2a0f3ebf53266871daa6fced" - integrity sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== dependencies: "@babel/helper-get-function-arity" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" @@ -962,9 +735,9 @@ "@babel/helper-regex" "^7.10.4" "@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz#e6375407b30fcb7fcfdbba3bb98ef3e9d36df7bc" - integrity sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ== + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" @@ -991,18 +764,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/polyfill@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.10.4.tgz#915e5bfe61490ac0199008e35ca9d7d151a8e45a" - integrity sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/preset-env@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== +"@babel/preset-env@7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== dependencies: "@babel/compat-data" "^7.11.0" "@babel/helper-compilation-targets" "^7.10.4" @@ -1066,7 +831,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.10.4" "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" + "@babel/types" "^7.11.5" browserslist "^4.12.0" core-js-compat "^3.6.2" invariant "^2.2.2" @@ -1074,9 +839,9 @@ semver "^5.5.0" "@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1084,10 +849,10 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/register@7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== +"@babel/register@7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.11.5.tgz#79becf89e0ddd0fba8b92bc279bc0f5d2d7ce2ea" + integrity sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.19" @@ -1095,10 +860,10 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" - integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== +"@babel/runtime@^7.8.4": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" @@ -1111,87 +876,30 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.4.tgz#e642e5395a3b09cc95c8e74a27432b484b697818" - integrity sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" + "@babel/generator" "^7.11.5" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.7.4", "@babel/traverse@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" - integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.4.tgz#369517188352e18219981efd156bfdb199fff1ee" - integrity sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - "@concordance/react@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@concordance/react/-/react-2.0.0.tgz#aef913f27474c53731f4fd79cc2f54897de90fde" @@ -1200,12 +908,13 @@ arrify "^1.0.1" "@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" find-up "^4.1.0" + get-package-type "^0.1.0" js-yaml "^3.13.1" resolve-from "^5.0.0" @@ -1236,9 +945,9 @@ fastq "^1.6.0" "@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== dependencies: any-observable "^0.3.0" @@ -1281,17 +990,11 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" @@ -1318,9 +1021,9 @@ integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*": - version "13.13.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.4.tgz#1581d6c16e3d4803eb079c87d4ac893ee7501c2c" - integrity sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA== + version "14.6.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.3.tgz#cc4f979548ca4d8e7b90bc0180052ab99ee64224" + integrity sha512-pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1344,6 +1047,11 @@ abab@^1.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" integrity sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4= +acorn-es7-plugin@^1.0.12: + version "1.1.7" + resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" + integrity sha1-8u4fMiipDurRJF+asZIusucdM2s= + acorn-globals@^1.0.4: version "1.0.9" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" @@ -1351,33 +1059,38 @@ acorn-globals@^1.0.4: dependencies: acorn "^2.1.0" -acorn-walk@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.0.tgz#56ae4c0f434a45fff4a125e7ea95fa9c98f67a16" + integrity sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA== acorn@^2.1.0, acorn@^2.4.0: version "2.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= -acorn@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== +acorn@^5.0.0: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.1.tgz#d7e8eca9b71d5840db0e7e415b3b2b20e250f938" + integrity sha512-dmKn4pqZ29iQl2Pvze1zTrps2luvls2PBY//neO2WJ0s10B3AxJXshN+Ph7B4GrhfGhHXrl4dnUwyNNXQcnWGQ== 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== + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== +ajv@^6.12.3: + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1503,6 +1216,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -1587,20 +1305,20 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -ava@3.11.1: - version "3.11.1" - resolved "https://registry.yarnpkg.com/ava/-/ava-3.11.1.tgz#580bfc974b858fb13f7ce948b9651da4e5b17bc8" - integrity sha512-yGPD0msa5Qronw7GHDNlLaB7oU5zryYtXeuvny40YV6TMskSghqK7Ky3NisM/sr+aqI3DY7sfmORx8dIWQgMoQ== +ava@3.12.1: + version "3.12.1" + resolved "https://registry.yarnpkg.com/ava/-/ava-3.12.1.tgz#0181b5ca10d178539a0d503e0fc9244146303717" + integrity sha512-cS41+X+UfrcPed+CIgne/YV/6eWxaUjHEPH+W8WvNSqWTWku5YitjZGE5cMHFuJxwHELdR541xTBRn8Uwi4PSw== dependencies: "@concordance/react" "^2.0.0" - acorn "^7.3.1" - acorn-walk "^7.2.0" + acorn "^8.0.1" + acorn-walk "^8.0.0" ansi-styles "^4.2.1" arrgv "^1.0.2" arrify "^2.0.1" callsites "^3.1.0" chalk "^4.1.0" - chokidar "^3.4.1" + chokidar "^3.4.2" chunkd "^2.0.1" ci-info "^2.0.0" ci-parallel-vars "^1.0.1" @@ -1609,7 +1327,7 @@ ava@3.11.1: cli-truncate "^2.1.0" code-excerpt "^3.0.0" common-path-prefix "^3.0.0" - concordance "^5.0.0" + concordance "^5.0.1" convert-source-map "^1.7.0" currently-unhandled "^0.4.1" debug "^4.1.1" @@ -1624,12 +1342,12 @@ ava@3.11.1: is-error "^2.2.2" is-plain-object "^4.1.1" is-promise "^4.0.0" - lodash "^4.17.19" + lodash "^4.17.20" matcher "^3.0.0" md5-hex "^3.0.1" mem "^6.1.0" ms "^2.1.2" - ora "^4.0.5" + ora "^5.0.0" p-map "^4.0.0" picomatch "^2.2.2" pkg-conf "^3.1.0" @@ -1644,7 +1362,7 @@ ava@3.11.1: supertap "^1.0.0" temp-dir "^2.0.0" trim-off-newlines "^1.0.1" - update-notifier "^4.1.0" + update-notifier "^4.1.1" write-file-atomic "^3.0.3" yargs "^15.4.1" @@ -1654,9 +1372,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + version "1.10.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== babel-code-frame@^6.26.0: version "6.26.0" @@ -1707,6 +1425,43 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" +babel-plugin-empower-assert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-empower-assert/-/babel-plugin-empower-assert-2.0.0.tgz#41087d602b5debea7a6b28654d5a458394c879d7" + integrity sha512-xAzOOTEYIp8BnbHNmU7xKj7mePlPP3/bvFqcjBTeJBDzl+pne4ZjNcpOnaV6WUYnux3fcOOgRW622CsWlU4SGg== + +babel-plugin-espower@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-3.0.1.tgz#180db17126f88e754105b8b5216d21e520a6bd4e" + integrity sha512-Ms49U7VIAtQ/TtcqRbD6UBmJBUCSxiC3+zPc+eGqxKUIFO1lTshyEDRUjhoAbd2rWfwYf3cZ62oXozrd8W6J0A== + dependencies: + "@babel/generator" "^7.0.0" + "@babel/parser" "^7.0.0" + call-matcher "^1.0.0" + core-js "^2.0.0" + espower-location-detector "^1.0.0" + espurify "^1.6.0" + estraverse "^4.1.1" + +babel-plugin-transform-remove-console@6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= + +babel-plugin-unassert@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-unassert/-/babel-plugin-unassert-3.0.1.tgz#cba17c38249a0bb26a72eb3793e0b24e29fcb7cd" + integrity sha512-dJvXKECYExv+GGieSm6jNe1H+HRa6hH/qPZWOoUfAN+cO6GbnC9fCbwHeJs0XZ2UqcEtJLpJCMs8q0pUEMI0fw== + +babel-preset-power-assert@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-power-assert/-/babel-preset-power-assert-3.0.0.tgz#3ceba576d57eb3f1b2e5e1865277539d9dc6570d" + integrity sha512-StkhBJsKdLemlsujCWjuHjjd/h+u7L2bgb/9/YsgBj1FBnE0BUthyaY8Xdpiqthf3NUudhd8BJMZFjGtXVKE6A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-empower-assert "^2.0.0" + babel-plugin-espower "^3.0.0" + babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1776,9 +1531,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== bindings@^1.5.0: version "1.5.0" @@ -1788,9 +1543,9 @@ bindings@^1.5.0: file-uri-to-path "1.0.0" blueimp-md5@^2.10.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.13.0.tgz#07314b0c64dda0bf1733f96ce40d5af94eb28965" - integrity sha512-lmp0m647R5e77ORduxLW5mISIDcvgJZa52vMBv5uVI3UmSWTQjkJsZVBfaFqQPw/QFogJwvY6e3Gl9nP+Loe+Q== + version "2.17.0" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.17.0.tgz#f4fcac088b115f7b4045f19f5da59e9d01b1bb96" + integrity sha512-x5PKJHY5rHQYaADj6NwPUR2QRCUVSggPzrUKkeENpj871o9l9IefJbO2jkT5UvYykeOK9dx0VmkIo6dZ+vThYw== boolbase@~1.0.0: version "1.0.0" @@ -1843,14 +1598,14 @@ braces@^3.0.1, braces@~3.0.2: fill-range "^7.0.1" browserslist@^4.12.0, browserslist@^4.8.5: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== + version "4.14.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" + integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" + caniuse-lite "^1.0.30001111" + electron-to-chromium "^1.3.523" + escalade "^3.0.2" + node-releases "^1.1.60" buffer-from@^1.0.0: version "1.1.1" @@ -1921,12 +1676,27 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" +call-matcher@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432" + integrity sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw== + dependencies: + core-js "^2.0.0" + deep-equal "^1.0.0" + espurify "^1.6.0" + estraverse "^4.0.0" + +call-signature@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" + integrity sha1-qEq8glpV70yysCi9dOIFpluaSZY= + callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase-keys@^6.1.1: +camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== @@ -1940,10 +1710,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001043: - version "1.0.30001048" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz#4bb4f1bc2eb304e5e1154da80b93dee3f1cf447e" - integrity sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg== +caniuse-lite@^1.0.30001111: + version "1.0.30001123" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001123.tgz#7b981d81382ab2c8fd062f3e6439215e8c503c22" + integrity sha512-03dJDoa4YC4332jq0rqwiM+Hw6tA5RJtrnZKvOQy7ASoIUv8CinkcmGhYpCvCjedvkBQrrKnkcELxrUSW/XwNQ== caseless@~0.12.0: version "0.12.0" @@ -1978,7 +1748,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== @@ -2057,10 +1827,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" - integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== +chokidar@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -2108,9 +1878,9 @@ clean-yaml-object@^0.1.0: integrity sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g= cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" @@ -2126,10 +1896,10 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" - integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w== +cli-spinners@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" + integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== cli-truncate@^0.2.1: version "0.2.1" @@ -2152,6 +1922,11 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2259,10 +2034,10 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concordance@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.0.tgz#6d4552f76c78301dd65e748c26af2cf131f9dd49" - integrity sha512-stOCz9ffg0+rytwTaL2njUOIyMfANwfwmqc9Dr4vTUS/x/KkVFlWx9Zlzu6tHYtjKxxaCF/cEAZgPDac+n35sg== +concordance@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.1.tgz#7a248aca8b286125d1d76f77b03320acf3f4ac63" + integrity sha512-TbNtInKVElgEBnJ1v2Xg+MFX2lvFLbmlv3EuSC5wTfCwpB8kC3w3mffF6cKuUhkn475Ym1f1I4qmuXzx2+uXpw== dependencies: date-time "^3.1.0" esutils "^2.0.3" @@ -2310,7 +2085,7 @@ core-js-compat@^3.6.2: browserslist "^4.8.5" semver "7.0.0" -core-js@^2.4.0, core-js@^2.6.5: +core-js@^2.0.0, core-js@^2.4.0: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== @@ -2343,9 +2118,9 @@ coveralls@3.1.0: request "^2.88.2" cross-spawn@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" - integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -2455,6 +2230,18 @@ decompress-response@^5.0.0: dependencies: mimic-response "^2.0.0" +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + 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" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2489,7 +2276,7 @@ defer-to-connect@^2.0.0: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== -define-properties@^1.1.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" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -2566,6 +2353,11 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +diff-match-patch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" + integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2641,6 +2433,11 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2649,10 +2446,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.3.413: - version "1.3.426" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.426.tgz#d7301de9e40df83a40fe1f51b4463cfe170d1153" - integrity sha512-sdQ7CXQbFflKY5CU63ra+kIYq9F7d1OqI33856qJZxTrwo0sLASdmoRl9lWpGrQDS9Nk/RFliQWd3PPDrZ+Meg== +electron-to-chromium@^1.3.523: + version "1.3.561" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.561.tgz#90411a8f45a227ee3cf9219297b2515b5a5359e5" + integrity sha512-f9ESwg7KGKqNzfhJ8QRXBEZA/FpiWohHC/xob/Jk7BwUoKdI2xEhp36Y31AJwc5GygPwoMo/4W3ne7IWncW9Zg== elegant-spinner@^1.0.1: version "1.0.1" @@ -2674,6 +2471,22 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +empower-core@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c" + integrity sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ== + dependencies: + call-signature "0.0.2" + core-js "^2.0.0" + +empower@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/empower/-/empower-1.3.1.tgz#768979cbbb36d71d8f5edaab663deacb9dab916c" + integrity sha512-uB6/ViBaawOO/uujFADTK3SqdYlxYNn+N4usK9MRKZ4Hbn/1QSy8k2PezxCA2/+JGbF8vd/eOfghZ90oOSDZCA== + dependencies: + core-js "^2.0.0" + empower-core "^1.2.0" + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2692,9 +2505,9 @@ entities@^1.1.1, entities@~1.1.1: integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== equal-length@^1.0.0: version "1.0.1" @@ -2708,11 +2521,42 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +escalade@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + escape-goat@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" @@ -2744,9 +2588,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^1.6.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" - integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" estraverse "^4.2.0" @@ -2877,12 +2721,29 @@ esdoc@1.1.0: minimist "1.2.0" taffydb "2.7.3" +espower-location-detector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" + integrity sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU= + dependencies: + is-url "^1.2.1" + path-is-absolute "^1.0.0" + source-map "^0.5.0" + xtend "^4.0.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estraverse@^4.2.0: +espurify@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056" + integrity sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg== + dependencies: + core-js "^2.0.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -2893,9 +2754,9 @@ esutils@^2.0.2, esutils@^2.0.3: integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== execa@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.0.tgz#7f37d6ec17f09e6b8fc53288611695b6d12b9daf" - integrity sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA== + version "4.0.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" @@ -2974,9 +2835,9 @@ extsprintf@^1.2.0: integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.2.0: version "1.2.0" @@ -2984,9 +2845,9 @@ fast-diff@^1.2.0: integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-glob@^3.0.3, fast-glob@^3.1.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" - integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3006,9 +2867,9 @@ fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastq@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.7.0.tgz#fcd79a08c5bd7ec5b55cd3f5c4720db551929801" - integrity sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== dependencies: reusify "^1.0.4" @@ -3074,13 +2935,6 @@ find-cache-dir@^3.2.0: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -3131,9 +2985,9 @@ fragment-cache@^0.2.1: map-cache "^0.2.2" fromentries@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.2.0.tgz#e6aa06f240d6267f913cea422075ef88b63e7897" - integrity sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.2.1.tgz#64c31665630479bc993cd800d53387920dc61b4d" + integrity sha512-Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw== fs-extra@1.0.0: version "1.0.0" @@ -3164,9 +3018,9 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" @@ -3209,9 +3063,9 @@ get-stream@^4.1.0: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" @@ -3362,14 +3216,14 @@ har-schema@^2.0.0: integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" -hard-rejection@^2.0.0: +hard-rejection@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== @@ -3391,7 +3245,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: +has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== @@ -3432,6 +3286,13 @@ has-yarn@^2.1.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + hasha@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" @@ -3446,11 +3307,11 @@ hosted-git-info@^2.1.4: integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== hosted-git-info@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" - integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== + version "3.0.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" + integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== dependencies: - lru-cache "^5.1.1" + lru-cache "^6.0.0" html-escaper@^2.0.0: version "2.0.2" @@ -3520,9 +3381,9 @@ ignore-by-default@^2.0.0: integrity sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA== ignore@^5.1.1, ignore@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" - integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== import-fresh@^3.1.0: version "3.2.1" @@ -3560,6 +3421,11 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3607,20 +3473,20 @@ inquirer@^6.2.1: through "^2.3.6" inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== dependencies: ansi-escapes "^4.2.1" - chalk "^3.0.0" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-width "^2.0.0" + cli-width "^3.0.0" external-editor "^3.0.3" figures "^3.0.0" - lodash "^4.17.15" + lodash "^4.17.19" mute-stream "0.0.8" run-async "^2.4.0" - rxjs "^6.5.3" + rxjs "^6.6.0" string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" @@ -3651,6 +3517,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3675,6 +3546,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -3696,6 +3572,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -3715,9 +3596,9 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: kind-of "^6.0.2" is-docker@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== is-error@^2.2.2: version "2.2.2" @@ -3870,6 +3751,13 @@ is-promise@^4.0.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== +is-regex@^1.0.4, is-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + is-scoped@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" @@ -3887,6 +3775,13 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3897,15 +3792,22 @@ is-url-superb@^4.0.0: resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== +is-url@^1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" is-yarn-global@^0.3.0: version "0.3.0" @@ -3962,14 +3864,11 @@ istanbul-lib-hook@^3.0.0: append-transform "^2.0.0" istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@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" @@ -4029,9 +3928,9 @@ js-tokens@^3.0.2: integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= js-yaml@^3.10.0, js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -4092,6 +3991,11 @@ json-parse-better-errors@^1.0.1: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -4171,7 +4075,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -4285,14 +4189,6 @@ load-json-file@^5.2.0: strip-bom "^3.0.0" type-fest "^0.3.0" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -4378,15 +4274,10 @@ lodash.zip@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= -lodash@^4.1.0, lodash@^4.15.0, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.0: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +lodash@^4.1.0, lodash@^4.15.0, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.0: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-driver@^1.2.7: version "1.2.7" @@ -4407,6 +4298,13 @@ log-symbols@^3.0.0: dependencies: chalk "^2.4.2" +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" @@ -4433,12 +4331,12 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - yallist "^3.0.2" + yallist "^4.0.0" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -4513,29 +4411,29 @@ mem@^4.3.0: p-is-promise "^2.0.0" mem@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-6.1.0.tgz#846eca0bd4708a8f04b9c3f3cd769e194ae63c5c" - integrity sha512-RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-6.1.1.tgz#ea110c2ebc079eca3022e6b08c85a795e77f6318" + integrity sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q== dependencies: map-age-cleaner "^0.1.3" mimic-fn "^3.0.0" meow@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.0.tgz#4ff4641818d3502afcddc631f94cb6971a581cb3" - integrity sha512-iIAoeI01v6pmSfObAAWFoITAA4GgiT45m4SmJgoxtZfvI0fyZwhV4d0lTwiUXvAKIPlma05Feb2Xngl52Mj5Cg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" + integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== dependencies: "@types/minimist" "^1.2.0" - camelcase-keys "^6.1.1" + camelcase-keys "^6.2.2" decamelize-keys "^1.1.0" - hard-rejection "^2.0.0" - minimist-options "^4.0.1" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" normalize-package-data "^2.5.0" - read-pkg-up "^7.0.0" + read-pkg-up "^7.0.1" redent "^3.0.0" trim-newlines "^3.0.0" - type-fest "^0.8.1" - yargs-parser "^18.1.1" + type-fest "^0.13.1" + yargs-parser "^18.1.3" merge-stream@^2.0.0: version "2.0.0" @@ -4543,9 +4441,9 @@ merge-stream@^2.0.0: integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3, merge2@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -4597,9 +4495,9 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0: integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.0.0.tgz#76044cfa8818bbf6999c5c9acadf2d3649b14b4b" - integrity sha512-PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" @@ -4612,9 +4510,9 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== min-indent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" - integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== minimatch@^3.0.4: version "3.0.4" @@ -4623,13 +4521,14 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist-options@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.0.2.tgz#29c4021373ded40d546186725e57761e4b1984a7" - integrity sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w== +minimist-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" + kind-of "^6.0.3" minimist@1.2.0: version "1.2.0" @@ -4710,10 +4609,10 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== +node-releases@^1.1.60: + version "1.1.60" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== normalize-package-data@^2.5.0: version "2.5.0" @@ -4742,10 +4641,10 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== -np@6.3.2: - version "6.3.2" - resolved "https://registry.yarnpkg.com/np/-/np-6.3.2.tgz#1d7793274ee4cd466af376331a1f3154bf02f6f1" - integrity sha512-8+w+cHLGHM01BfTvIqw2Q61geLPA7HEOeN54jJPQrH/cXHaUWdugKSNV6JiXhpbFKg+fj3JWNKq0d7a/gU0WeQ== +np@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/np/-/np-6.5.0.tgz#1092e001a7dd22412bb459d9bcb86a43806660f2" + integrity sha512-Xm1kUUlEqOZsu0qBA3A9wB44EBDRXubrLvfdCodG1TOllW0aymVI0qeFWKGN+kH74/XjO1B5how07fm3g+c72w== dependencies: "@samverschueren/stream-to-observable" "^0.3.0" any-observable "^0.5.0" @@ -4874,7 +4773,20 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-is@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4918,16 +4830,16 @@ onetime@^2.0.0: 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" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" open@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/open/-/open-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" - integrity sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA== + version "7.2.1" + resolved "https://registry.yarnpkg.com/open/-/open-7.2.1.tgz#07b0ade11a43f2a8ce718480bdf3d7563a095195" + integrity sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA== dependencies: is-docker "^2.0.0" is-wsl "^2.1.1" @@ -4944,16 +4856,16 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -ora@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.5.tgz#7410b5cc2d99fa637fd5099bbb9f02bfbb5a361e" - integrity sha512-jCDgm9DqvRcNIAEv2wZPrh7E5PcQiDUnbnWbAfu4NGAE2ZNqPFbDixmWldy1YG2QfLeQhuiu6/h5VRrk6cG50w== +ora@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" + integrity sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw== dependencies: - chalk "^3.0.0" + chalk "^4.1.0" cli-cursor "^3.1.0" - cli-spinners "^2.2.0" + cli-spinners "^2.4.0" is-interactive "^1.0.0" - log-symbols "^3.0.0" + log-symbols "^4.0.0" mute-stream "0.0.8" strip-ansi "^6.0.0" wcwidth "^1.0.1" @@ -5007,13 +4919,6 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -5021,13 +4926,6 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -5076,11 +4974,6 @@ p-timeout@^3.1.0: dependencies: p-finally "^1.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -5122,13 +5015,13 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" + json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" parse-ms@^2.1.0: @@ -5254,13 +5147,6 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - plur@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" @@ -5273,6 +5159,105 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +power-assert-context-formatter@^1.0.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz#8fbe72692288ec5a7203cdf215c8b838a6061d2a" + integrity sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg== + dependencies: + core-js "^2.0.0" + power-assert-context-traversal "^1.2.0" + +power-assert-context-reducer-ast@^1.0.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz#c7ca1c9e39a6fb717f7ac5fe9e76e192bf525df3" + integrity sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw== + dependencies: + acorn "^5.0.0" + acorn-es7-plugin "^1.0.12" + core-js "^2.0.0" + espurify "^1.6.0" + estraverse "^4.2.0" + +power-assert-context-traversal@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz#f6e71454baf640de5c1c9c270349f5c9ab0b2e94" + integrity sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ== + dependencies: + core-js "^2.0.0" + estraverse "^4.1.0" + +power-assert-formatter@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" + integrity sha1-XcEl7VCj37HdomwZNH879Y7CiEo= + dependencies: + core-js "^2.0.0" + power-assert-context-formatter "^1.0.7" + power-assert-context-reducer-ast "^1.0.7" + power-assert-renderer-assertion "^1.0.7" + power-assert-renderer-comparison "^1.0.7" + power-assert-renderer-diagram "^1.0.7" + power-assert-renderer-file "^1.0.7" + +power-assert-renderer-assertion@^1.0.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz#3db6ffcda106b37bc1e06432ad0d748a682b147a" + integrity sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg== + dependencies: + power-assert-renderer-base "^1.1.1" + power-assert-util-string-width "^1.2.0" + +power-assert-renderer-base@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb" + integrity sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s= + +power-assert-renderer-comparison@^1.0.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz#e4f88113225a69be8aa586ead05aef99462c0495" + integrity sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g== + dependencies: + core-js "^2.0.0" + diff-match-patch "^1.0.0" + power-assert-renderer-base "^1.1.1" + stringifier "^1.3.0" + type-name "^2.0.1" + +power-assert-renderer-diagram@^1.0.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz#37f66e8542e5677c5b58e6d72b01c0d9a30e2219" + integrity sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg== + dependencies: + core-js "^2.0.0" + power-assert-renderer-base "^1.1.1" + power-assert-util-string-width "^1.2.0" + stringifier "^1.3.0" + +power-assert-renderer-file@^1.0.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz#3f4bebd9e1455d75cf2ac541e7bb515a87d4ce4b" + integrity sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg== + dependencies: + power-assert-renderer-base "^1.1.1" + +power-assert-util-string-width@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz#6e06d5e3581bb876c5d377c53109fffa95bd91a0" + integrity sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A== + dependencies: + eastasianwidth "^0.2.0" + +power-assert@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.6.1.tgz#b28cbc02ae808afd1431d0cd5093a39ac5a5b1fe" + integrity sha512-VWkkZV6Y+W8qLX/PtJu2Ur2jDPIs0a5vbP0TpKeybNcIXmT4vcKoVkyTp5lnQvTpY/DxacAZ4RZisHRHLJcAZQ== + dependencies: + define-properties "^1.1.2" + empower "^1.3.1" + power-assert-formatter "^1.4.1" + universal-deep-strict-equal "^1.2.1" + xtend "^4.0.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -5290,11 +5275,6 @@ pretty-ms@^7.0.0: dependencies: parse-ms "^2.1.0" -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -5352,7 +5332,7 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-pkg-up@^7.0.0: +read-pkg-up@^7.0.0, read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== @@ -5435,27 +5415,26 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + +regenerator-runtime@0.13.7, regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -5465,6 +5444,14 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + regexpu-core@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" @@ -5478,9 +5465,9 @@ regexpu-core@^4.7.0: unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" + integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== dependencies: rc "^1.2.8" @@ -5492,9 +5479,9 @@ registry-url@^5.0.0, registry-url@^5.1.0: rc "^1.2.8" regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: version "0.6.4" @@ -5668,17 +5655,17 @@ run-parallel@^1.1.9: resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.5.4: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.5.4, rxjs@^6.6.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" + integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== dependencies: tslib "^1.9.0" safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -5872,9 +5859,9 @@ spawn-wrap@^2.0.0: which "^2.0.1" spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -5885,9 +5872,9 @@ spdx-exceptions@^2.1.0: integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -5981,6 +5968,22 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -6000,6 +6003,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringifier@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.4.0.tgz#d704581567f4526265d00ed8ecb354a02c3fec28" + integrity sha512-cNsMOqqrcbLcHTXEVmkw9y0fwDwkdgtZwlfyolzpQDoAE1xdNGhQhxBUfiDvvZIKl1hnUEgMv66nHwtMz3OjPw== + dependencies: + core-js "^2.0.0" + traverse "^0.6.6" + type-name "^2.0.1" + 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" @@ -6079,9 +6091,9 @@ supports-color@^5.3.0: has-flag "^3.0.0" supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -6222,6 +6234,11 @@ tr46@~0.0.1: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + trim-newlines@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" @@ -6238,9 +6255,9 @@ trim-right@^1.0.1: integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tunnel-agent@^0.6.0: version "0.6.0" @@ -6271,6 +6288,11 @@ type-fest@^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.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" @@ -6291,6 +6313,11 @@ type-fest@^0.8.0, type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" + integrity sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q= + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -6338,6 +6365,15 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +universal-deep-strict-equal@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" + integrity sha1-DaSsL3PP95JMgfpN4BjKViyisKc= + dependencies: + array-filter "^1.0.0" + indexof "0.0.1" + object-keys "^1.0.0" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6356,10 +6392,10 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^4.0.0, update-notifier@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" - integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== +update-notifier@^4.0.0, update-notifier@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.1.tgz#895fc8562bbe666179500f9f2cebac4f26323746" + integrity sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg== dependencies: boxen "^4.2.0" chalk "^3.0.0" @@ -6376,9 +6412,9 @@ update-notifier@^4.0.0, update-notifier@^4.1.0: xdg-basedir "^4.0.0" uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" @@ -6523,24 +6559,27 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" integrity sha1-TYuPHszTQZqjYgYb7O9RXh5VljU= +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.7.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed" - integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg== - dependencies: - "@babel/runtime" "^7.9.2" + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yargs-parser@^18.1.1, yargs-parser@^18.1.2: +yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -6548,24 +6587,7 @@ yargs-parser@^18.1.1, yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^15.0.2: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - dependencies: - 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@^15.4.1: +yargs@^15.0.2, yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==