diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 0c03779a886..5368b5481bc 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -124,15 +124,7 @@ The default test script will do the following: lint with ESLint -> type check wi
## Financial Contribution
-As a pure community-driven project without major corporate backing, we also welcome financial contributions via Patreon and OpenCollective.
-
-- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou)
-- [Become a backer or sponsor on OpenCollective](https://opencollective.com/vuejs)
-- [One-time donation via PayPal or crypto-currencies](https://vuejs.org/support-vuejs/#One-time-Donations)
-
-### What's the difference between Patreon and OpenCollective funding?
-
-Funds donated via Patreon go directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses for core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform.
+As a pure community-driven project without major corporate backing, we also welcome financial contributions via GitHub Sponsors and OpenCollective. Please consult the [Sponsor Page](https://vuejs.org/sponsor/) for more details.
## Credits
diff --git a/BACKERS.md b/BACKERS.md
index 38a9299edae..fa66d206698 100644
--- a/BACKERS.md
+++ b/BACKERS.md
@@ -1,434 +1,9 @@
.`).not.toHaveBeenWarned()
+ expect(spy.calls.allArgs()).toEqual([['regular']]); // Regular @click should work for dynamic components resolved to native HTML elements.
+ })
+
it('.once modifier should work with child components', () => {
vm = new Vue({
el,
@@ -962,6 +976,17 @@ describe('Directive v-on', () => {
expect(value).toBe(1)
})
+ it('should not execute callback if modifiers are present', () => {
+ vm = new Vue({
+ el,
+ template: '
',
+ methods: { foo: spy }
+ })
+ // simulating autocomplete event (Event object with type keyup but without keyCode)
+ triggerEvent(vm.$el, 'keyup')
+ expect(spy.calls.count()).toBe(0)
+ })
+
describe('dynamic arguments', () => {
it('basic', done => {
const spy = jasmine.createSpy()
diff --git a/test/unit/features/error-handling.spec.js b/test/unit/features/error-handling.spec.js
index 7d0eaa512ab..7dd36dc9f1f 100644
--- a/test/unit/features/error-handling.spec.js
+++ b/test/unit/features/error-handling.spec.js
@@ -127,25 +127,25 @@ describe('Error handling', () => {
}).then(done)
})
- it('should recover from errors in user watcher callback', done => {
- const vm = createTestInstance(components.userWatcherCallback)
- vm.n++
- waitForUpdate(() => {
- expect(`Error in callback for watcher "n"`).toHaveBeenWarned()
- expect(`Error: userWatcherCallback`).toHaveBeenWarned()
- }).thenWaitFor(next => {
- assertBothInstancesActive(vm).end(next)
- }).then(done)
- })
+ ;[
+ ['userWatcherCallback', 'watcher'],
+ ['userImmediateWatcherCallback', 'immediate watcher']
+ ].forEach(([type, description]) => {
+ it(`should recover from errors in user ${description} callback`, done => {
+ const vm = createTestInstance(components[type])
+ assertBothInstancesActive(vm).then(() => {
+ expect(`Error in callback for ${description} "n"`).toHaveBeenWarned()
+ expect(`Error: ${type} error`).toHaveBeenWarned()
+ }).then(done)
+ })
- it('should recover from errors in user immediate watcher callback', done => {
- const vm = createTestInstance(components.userImmediateWatcherCallback)
- waitForUpdate(() => {
- expect(`Error in callback for immediate watcher "n"`).toHaveBeenWarned()
- expect(`Error: userImmediateWatcherCallback error`).toHaveBeenWarned()
- }).thenWaitFor(next => {
- assertBothInstancesActive(vm).end(next)
- }).then(done)
+ it(`should recover from promise errors in user ${description} callback`, done => {
+ const vm = createTestInstance(components[`${type}Async`])
+ assertBothInstancesActive(vm).then(() => {
+ expect(`Error in callback for ${description} "n" (Promise/async)`).toHaveBeenWarned()
+ expect(`Error: ${type} error`).toHaveBeenWarned()
+ }).then(done)
+ })
})
it('config.errorHandler should capture render errors', done => {
@@ -359,6 +359,33 @@ function createErrorTestComponents () {
}
}
+ components.userWatcherCallbackAsync = {
+ props: ['n'],
+ watch: {
+ n () {
+ return Promise.reject(new Error('userWatcherCallback error'))
+ }
+ },
+ render (h) {
+ return h('div', this.n)
+ }
+ }
+
+ components.userImmediateWatcherCallbackAsync = {
+ props: ['n'],
+ watch: {
+ n: {
+ immediate: true,
+ handler () {
+ return Promise.reject(new Error('userImmediateWatcherCallback error'))
+ }
+ }
+ },
+ render (h) {
+ return h('div', this.n)
+ }
+ }
+
// event errors
components.event = {
beforeCreate () {
diff --git a/test/unit/features/filter/filter.spec.js b/test/unit/features/filter/filter.spec.js
index 82c57a3d62e..854ea575064 100644
--- a/test/unit/features/filter/filter.spec.js
+++ b/test/unit/features/filter/filter.spec.js
@@ -194,4 +194,11 @@ describe('Filters', () => {
it('support template string', () => {
expect(parseFilters('`a | ${b}c` | d')).toBe('_f("d")(`a | ${b}c`)')
})
+
+ it('bigint support', () => {
+ const vm = new Vue({
+ template: `
{{ BigInt(BigInt(10000000)) + BigInt(2000000000n) * 3000000n }}
`
+ }).$mount()
+ expect(vm.$el.textContent).toBe('6000000010000000')
+ })
})
diff --git a/test/unit/features/global-api/set-delete.spec.js b/test/unit/features/global-api/set-delete.spec.js
index d1c7f3d8709..59e75ae4dbe 100644
--- a/test/unit/features/global-api/set-delete.spec.js
+++ b/test/unit/features/global-api/set-delete.spec.js
@@ -14,7 +14,7 @@ describe('Global API: set/delete', () => {
}).then(done)
})
- it('should update a observing object', done => {
+ it('should update an observing object', done => {
const vm = new Vue({
template: '
{{foo.x}}
',
data: { foo: { x: 1 }}
@@ -26,7 +26,7 @@ describe('Global API: set/delete', () => {
}).then(done)
})
- it('should update a observing array', done => {
+ it('should update an observing array', done => {
const vm = new Vue({
template: '
',
data: { list: ['a', 'b', 'c'] }
diff --git a/test/unit/features/instance/methods-lifecycle.spec.js b/test/unit/features/instance/methods-lifecycle.spec.js
index 1e424a5c9be..a2c5b86e920 100644
--- a/test/unit/features/instance/methods-lifecycle.spec.js
+++ b/test/unit/features/instance/methods-lifecycle.spec.js
@@ -53,6 +53,38 @@ describe('Instance methods lifecycle', () => {
}
}).$mount()
})
+
+ it('Dep.target should be undefined during invocation of child immediate watcher', done => {
+ let calls = 0
+ const childData = { a: 1 }
+ const parentUpdate = jasmine.createSpy()
+ new Vue({
+ template: '
',
+ updated: parentUpdate,
+ components: {
+ myComponent: {
+ template: '
{{ a }}
',
+ data() {
+ return childData
+ },
+ watch: {
+ anything: {
+ handler() {
+ ++calls
+ this.a
+ },
+ immediate: true
+ }
+ }
+ }
+ }
+ }).$mount()
+ expect(calls).toBe(1)
+ childData.a++
+ waitForUpdate(() => {
+ expect(parentUpdate).not.toHaveBeenCalled()
+ }).then(done)
+ })
})
describe('$destroy', () => {
diff --git a/test/unit/features/options/computed.spec.js b/test/unit/features/options/computed.spec.js
index edc20bad3bf..17cd9516640 100644
--- a/test/unit/features/options/computed.spec.js
+++ b/test/unit/features/options/computed.spec.js
@@ -206,6 +206,18 @@ describe('Options computed', () => {
expect(`computed property "a" is already defined as a prop`).toHaveBeenWarned()
})
+ it('warn conflict with methods', () => {
+ new Vue({
+ computed: {
+ a: () => 2
+ },
+ methods: {
+ a: () => {}
+ }
+ })
+ expect(`computed property "a" is already defined as a method`).toHaveBeenWarned()
+ })
+
it('rethrow computed error', () => {
const vm = new Vue({
computed: {
diff --git a/test/unit/features/options/errorCaptured.spec.js b/test/unit/features/options/errorCaptured.spec.js
index 3da13b9ed38..0c1aba35b79 100644
--- a/test/unit/features/options/errorCaptured.spec.js
+++ b/test/unit/features/options/errorCaptured.spec.js
@@ -247,4 +247,152 @@ describe('Options errorCaptured', () => {
expect(store.errors[0]).toEqual(new Error('render error'))
}).then(done)
})
+
+ it('should capture error from watcher', done => {
+ const spy = jasmine.createSpy()
+
+ let child
+ let err
+ const Child = {
+ data () {
+ return {
+ foo: null
+ }
+ },
+ watch: {
+ foo () {
+ err = new Error('userWatcherCallback error')
+ throw err
+ }
+ },
+ created () {
+ child = this
+ },
+ render () {}
+ }
+
+ new Vue({
+ errorCaptured: spy,
+ render: h => h(Child)
+ }).$mount()
+
+ child.foo = 'bar'
+
+ waitForUpdate(() => {
+ expect(spy).toHaveBeenCalledWith(err, child, 'callback for watcher "foo"')
+ expect(globalSpy).toHaveBeenCalledWith(err, child, 'callback for watcher "foo"')
+ }).then(done)
+ })
+
+ it('should capture promise error from watcher', done => {
+ const spy = jasmine.createSpy()
+
+ let child
+ let err
+ const Child = {
+ data () {
+ return {
+ foo: null
+ }
+ },
+ watch: {
+ foo () {
+ err = new Error('userWatcherCallback error')
+ return Promise.reject(err)
+ }
+ },
+ created () {
+ child = this
+ },
+ render () {}
+ }
+
+ new Vue({
+ errorCaptured: spy,
+ render: h => h(Child)
+ }).$mount()
+
+ child.foo = 'bar'
+
+ child.$nextTick(() => {
+ waitForUpdate(() => {
+ expect(spy).toHaveBeenCalledWith(err, child, 'callback for watcher "foo" (Promise/async)')
+ expect(globalSpy).toHaveBeenCalledWith(err, child, 'callback for watcher "foo" (Promise/async)')
+ }).then(done)
+ })
+ })
+
+ it('should capture error from immediate watcher', done => {
+ const spy = jasmine.createSpy()
+
+ let child
+ let err
+ const Child = {
+ data () {
+ return {
+ foo: 'foo'
+ }
+ },
+ watch: {
+ foo: {
+ immediate: true,
+ handler () {
+ err = new Error('userImmediateWatcherCallback error')
+ throw err
+ }
+ }
+ },
+ created () {
+ child = this
+ },
+ render () {}
+ }
+
+ new Vue({
+ errorCaptured: spy,
+ render: h => h(Child)
+ }).$mount()
+
+ waitForUpdate(() => {
+ expect(spy).toHaveBeenCalledWith(err, child, 'callback for immediate watcher "foo"')
+ expect(globalSpy).toHaveBeenCalledWith(err, child, 'callback for immediate watcher "foo"')
+ }).then(done)
+ })
+
+ it('should capture promise error from immediate watcher', done => {
+ const spy = jasmine.createSpy()
+
+ let child
+ let err
+ const Child = {
+ data () {
+ return {
+ foo: 'foo'
+ }
+ },
+ watch: {
+ foo: {
+ immediate: true,
+ handler () {
+ err = new Error('userImmediateWatcherCallback error')
+ return Promise.reject(err)
+ }
+ }
+ },
+ created () {
+ child = this
+ },
+ render () {}
+ }
+
+ new Vue({
+ errorCaptured: spy,
+ render: h => h(Child)
+ }).$mount()
+
+ waitForUpdate(() => {
+ expect(spy).toHaveBeenCalledWith(err, child, 'callback for immediate watcher "foo" (Promise/async)')
+ expect(globalSpy).toHaveBeenCalledWith(err, child, 'callback for immediate watcher "foo" (Promise/async)')
+ }).then(done)
+ })
})
diff --git a/test/unit/features/options/props.spec.js b/test/unit/features/options/props.spec.js
index b2bf482737b..2ada45a0553 100644
--- a/test/unit/features/options/props.spec.js
+++ b/test/unit/features/options/props.spec.js
@@ -252,6 +252,16 @@ describe('Options props', () => {
expect('Expected String, Number, got Symbol').toHaveBeenWarned()
})
}
+
+ if (typeof BigInt !== 'undefined') {
+ /* global BigInt */
+ it('bigint', () => {
+ makeInstance(BigInt(100), BigInt)
+ expect(console.error.calls.count()).toBe(0)
+ makeInstance({}, BigInt)
+ expect('Expected BigInt, got Object').toHaveBeenWarned()
+ })
+ }
it('custom constructor', () => {
function Class () {}
@@ -553,4 +563,20 @@ describe('Options props', () => {
expect(vm.$refs.test.$props.booleanOrString).toBe(true)
expect(vm.$refs.test.$props.stringOrBoolean).toBe('')
})
+
+ it('should warn when a prop type is not a constructor', () => {
+ const vm = new Vue({
+ template: '
{{a}}
',
+ props: {
+ a: {
+ type: 'String',
+ default: 'test'
+ }
+ }
+ }).$mount()
+ expect(
+ 'Invalid prop type: "String" is not a constructor'
+ ).toHaveBeenWarned()
+ })
+
})
diff --git a/test/unit/modules/compiler/codegen.spec.js b/test/unit/modules/compiler/codegen.spec.js
index d7faa204944..a31f751d64e 100644
--- a/test/unit/modules/compiler/codegen.spec.js
+++ b/test/unit/modules/compiler/codegen.spec.js
@@ -196,7 +196,7 @@ describe('codegen', () => {
it('generate slot fallback content', () => {
assertCodegen(
'
',
- `with(this){return _c('div',[_t("default",[_c('div',[_v("hi")])])],2)}`
+ `with(this){return _c('div',[_t("default",function(){return [_c('div',[_v("hi")])]})],2)}`
)
})
diff --git a/test/unit/modules/compiler/parser.spec.js b/test/unit/modules/compiler/parser.spec.js
index 360bc11bbb6..b47de581396 100644
--- a/test/unit/modules/compiler/parser.spec.js
+++ b/test/unit/modules/compiler/parser.spec.js
@@ -865,6 +865,14 @@ describe('parser', () => {
expect(ast.children[4].children[0].text).toBe('. Have fun! ')
})
+ it(`maintains with whitespace: 'condense'`, () => {
+ const options = extend({}, condenseOptions)
+ const ast = parse('
', options)
+ const code = ast.children[0]
+ expect(code.type).toBe(3)
+ expect(code.text).toBe('\xA0')
+ })
+
it(`preserve whitespace in
tag with whitespace: 'condense'`, function () {
const options = extend({}, condenseOptions)
const ast = parse(' \nhi \n
', options)
@@ -901,4 +909,20 @@ describe('parser', () => {
expect(ast.children[2].type).toBe(3)
expect(ast.children[2].text).toBe('\ndef')
})
+
+ // #10152
+ it('not warn when scoped slot used inside of dynamic component on regular element', () => {
+ parse(`
+
+ `, baseOptions)
+ expect('v-slot can only be used on components or ').not.toHaveBeenWarned()
+
+ parse(`
`, baseOptions)
+ expect(` can only appear at the root level inside the receiving the component`)
+ .not.toHaveBeenWarned()
+ })
})
diff --git a/test/unit/modules/vdom/patch/edge-cases.spec.js b/test/unit/modules/vdom/patch/edge-cases.spec.js
index a7f7ba38932..24d97a63dba 100644
--- a/test/unit/modules/vdom/patch/edge-cases.spec.js
+++ b/test/unit/modules/vdom/patch/edge-cases.spec.js
@@ -1,4 +1,5 @@
import Vue from 'vue'
+import { SSR_ATTR } from 'shared/constants'
describe('vdom patch: edge cases', () => {
// exposed by #3406
@@ -432,4 +433,22 @@ describe('vdom patch: edge cases', () => {
expect(vm.$el.textContent).not.toMatch('Infinity')
}).then(done)
})
+
+ it('should not throw when hydrated pending async component is patched by v-if="false"', done => {
+ const PendingAsyncComponent = () => new Promise(() => {})
+ const ssrAsyncComponent = document.createElement('div')
+ ssrAsyncComponent.setAttribute(SSR_ATTR, 'true')
+ const vm = new Vue({
+ data: {
+ visible: true
+ },
+ components: {
+ PendingAsyncComponent
+ },
+ template: ' '
+ }).$mount(ssrAsyncComponent)
+
+ vm.visible = false
+ vm.$nextTick(done)
+ })
})
diff --git a/types/options.d.ts b/types/options.d.ts
index 323c7630986..ff266052feb 100644
--- a/types/options.d.ts
+++ b/types/options.d.ts
@@ -12,9 +12,10 @@ export type Component, Methods=DefaultMethods, Co
| FunctionalComponentOptions
| ComponentOptions
-interface EsModuleComponent {
- default: Component
-}
+type EsModule = T | { default: T }
+
+type ImportedComponent, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps>
+ = EsModule>
export type AsyncComponent, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps>
= AsyncComponentPromise
@@ -23,12 +24,12 @@ export type AsyncComponent, Methods=DefaultMethods, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = (
resolve: (component: Component) => void,
reject: (reason?: any) => void
-) => Promise | void;
+) => Promise> | void;
export type AsyncComponentFactory, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = () => {
- component: AsyncComponentPromise;
- loading?: Component | EsModuleComponent;
- error?: Component | EsModuleComponent;
+ component: Promise>;
+ loading?: ImportedComponent;
+ error?: ImportedComponent;
delay?: number;
timeout?: number;
}
diff --git a/types/test/async-component-test.ts b/types/test/async-component-test.ts
new file mode 100644
index 00000000000..baa50c4b915
--- /dev/null
+++ b/types/test/async-component-test.ts
@@ -0,0 +1,44 @@
+import Vue, { AsyncComponent, Component } from "../index";
+
+const a: AsyncComponent = () => ({
+ component: new Promise((res, rej) => {
+ res({ template: "" })
+ })
+})
+
+const b: AsyncComponent = () => ({
+ // @ts-expect-error component has to be a Promise that resolves to a component
+ component: () =>
+ new Promise((res, rej) => {
+ res({ template: "" })
+ })
+})
+
+const c: AsyncComponent = () =>
+ new Promise((res, rej) => {
+ res({
+ template: ""
+ })
+ })
+
+const d: AsyncComponent = () =>
+ new Promise<{ default: Component }>((res, rej) => {
+ res({
+ default: {
+ template: ""
+ }
+ })
+ })
+
+const e: AsyncComponent = () => ({
+ component: new Promise<{ default: Component }>((res, rej) => {
+ res({
+ default: {
+ template: ""
+ }
+ })
+ })
+})
+
+// Test that Vue.component accepts any AsyncComponent
+Vue.component("async-compponent1", a)
diff --git a/types/test/options-test.ts b/types/test/options-test.ts
index 024916b4a70..cb8fa2e3f1b 100644
--- a/types/test/options-test.ts
+++ b/types/test/options-test.ts
@@ -482,3 +482,20 @@ Vue.component('functional-component-v-model', {
Vue.component('async-es-module-component', () => import('./es-module'))
+
+Vue.component('directive-expression-optional-string', {
+ render(createElement) {
+ return createElement("div", {
+ directives: [
+ {
+ name: 'has-expression',
+ value: 2,
+ expression: '1 + 1',
+ }, {
+ name: 'no-expression',
+ value: 'foo',
+ },
+ ],
+ })
+ }
+});
diff --git a/types/vnode.d.ts b/types/vnode.d.ts
index dc4470ffd84..997980ce0b8 100644
--- a/types/vnode.d.ts
+++ b/types/vnode.d.ts
@@ -20,7 +20,7 @@ export interface VNode {
elm?: Node;
ns?: string;
context?: Vue;
- key?: string | number;
+ key?: string | number | symbol | boolean;
componentOptions?: VNodeComponentOptions;
componentInstance?: Vue;
parent?: VNode;
@@ -69,7 +69,7 @@ export interface VNodeDirective {
name: string;
value?: any;
oldValue?: any;
- expression?: any;
+ expression?: string;
arg?: string;
oldArg?: string;
modifiers?: { [key: string]: boolean };
diff --git a/types/vue.d.ts b/types/vue.d.ts
index 204f9cca94d..7adb5a53aec 100644
--- a/types/vue.d.ts
+++ b/types/vue.d.ts
@@ -26,7 +26,7 @@ export interface Vue {
readonly $parent: Vue;
readonly $root: Vue;
readonly $children: Vue[];
- readonly $refs: { [key: string]: Vue | Element | Vue[] | Element[] };
+ readonly $refs: { [key: string]: Vue | Element | (Vue | Element)[] | undefined };
readonly $slots: { [key: string]: VNode[] | undefined };
readonly $scopedSlots: { [key: string]: NormalizedScopedSlot | undefined };
readonly $isServer: boolean;
@@ -121,6 +121,10 @@ export interface VueConstructor {
observable(obj: T): T;
+ util: {
+ warn(msg: string, vm?: InstanceType): void;
+ };
+
config: VueConfiguration;
version: string;
}
diff --git a/yarn.lock b/yarn.lock
index 0ed00b3e569..0477ff0359f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -945,11 +945,11 @@ ajv-keywords@^3.1.0:
integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
ajv@^6.1.0, ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1:
- version "6.6.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d"
- integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
- fast-deep-equal "^2.0.1"
+ fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
@@ -1166,7 +1166,7 @@ async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
-async@1.x, async@^1.5.2:
+async@1.x:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
@@ -1178,6 +1178,13 @@ async@^2.0.0, async@^2.1.2:
dependencies:
lodash "^4.17.10"
+async@^2.6.2:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+ integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
+ dependencies:
+ lodash "^4.17.14"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -1409,6 +1416,11 @@ base@^0.11.1:
mixin-deep "^1.2.0"
pascalcase "^0.1.1"
+basic-auth@^1.0.3:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884"
+ integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=
+
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
@@ -1443,10 +1455,10 @@ bluebird@^3.3.0, bluebird@^3.5.3:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
- version "4.11.9"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
- integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+ integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
body-parser@^1.16.1:
version "1.18.3"
@@ -1504,7 +1516,7 @@ braces@^2.3.0, braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
-brorand@^1.0.1:
+brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
@@ -1798,10 +1810,10 @@ chokidar@^2.0.2, chokidar@^2.0.3:
optionalDependencies:
fsevents "^1.2.2"
-chownr@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
- integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
+chownr@^1.1.1, chownr@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
chrome-trace-event@^1.0.0:
version "1.0.0"
@@ -1922,16 +1934,16 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-colors@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
- integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
-
colors@^1.1.0:
version "1.3.3"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d"
integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==
+colors@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+
combine-lists@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6"
@@ -1946,11 +1958,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@2.20.0:
- version "2.20.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
- integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
-
commander@2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
@@ -2257,7 +2264,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-corser@~2.0.0:
+corser@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87"
integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=
@@ -2462,13 +2469,6 @@ debug@4.1.0:
dependencies:
ms "^2.1.1"
-debug@=3.1.0, debug@~3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
- integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
- dependencies:
- ms "2.0.0"
-
debug@^3.1.0:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
@@ -2476,6 +2476,13 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
+debug@^3.1.1:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
debug@^4.0.1, debug@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
@@ -2483,6 +2490,13 @@ debug@^4.0.1, debug@^4.1.0:
dependencies:
ms "^2.1.1"
+debug@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
decamelize-keys@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
@@ -2686,7 +2700,7 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-ecstatic@^3.0.0:
+ecstatic@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48"
integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==
@@ -2717,17 +2731,17 @@ elegant-spinner@^1.0.1:
integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
elliptic@^6.0.0:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
- integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+ integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
dependencies:
- bn.js "^4.4.0"
- brorand "^1.0.1"
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
hash.js "^1.0.0"
- hmac-drbg "^1.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
emojis-list@^2.0.0:
version "2.1.0"
@@ -3039,10 +3053,10 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
-eventemitter3@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
- integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==
+eventemitter3@^4.0.0:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
events@^1.0.0:
version "1.1.1"
@@ -3232,15 +3246,15 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+fast-deep-equal@^3.1.1:
+ 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-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@~2.0.4:
version "2.0.6"
@@ -3255,9 +3269,9 @@ fd-slicer@~1.0.1:
pend "~1.2.0"
figgy-pudding@^3.5.1:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
- integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+ integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
figures@^1.3.5, figures@^1.7.0:
version "1.7.0"
@@ -3439,11 +3453,9 @@ flush-write-stream@^1.0.0:
readable-stream "^2.0.4"
follow-redirects@^1.0.0:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb"
- integrity sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==
- dependencies:
- debug "=3.1.0"
+ version "1.14.7"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
+ integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
@@ -3507,12 +3519,12 @@ fs-extra@^1.0.0:
jsonfile "^2.1.0"
klaw "^1.0.0"
-fs-minipass@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
- integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==
+fs-minipass@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
+ integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
dependencies:
- minipass "^2.2.1"
+ minipass "^2.6.0"
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
@@ -3794,13 +3806,14 @@ growl@1.9.2:
integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=
handlebars@^4.0.1, handlebars@^4.0.2:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.3.tgz#180bae52c1d0e9ec0c15d7e82a4362d662762f6e"
- integrity sha512-B0W4A2U1ww3q7VVthTKfh+epHx+q4mCt6iK+zEAzbMBpWQAwxCeKxEGpj/1oQTpzPXDNSOG7hmG14TsISH50yw==
+ version "4.7.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+ integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
dependencies:
+ minimist "^1.2.5"
neo-async "^2.6.0"
- optimist "^0.6.1"
source-map "^0.6.1"
+ wordwrap "^1.0.0"
optionalDependencies:
uglify-js "^3.1.4"
@@ -3928,7 +3941,7 @@ he@^1.1.1:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-hmac-drbg@^1.0.0:
+hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
@@ -3973,28 +3986,30 @@ http-proxy-agent@1:
debug "2"
extend "3"
-http-proxy@^1.13.0, http-proxy@^1.8.1:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
- integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==
+http-proxy@^1.13.0, http-proxy@^1.18.0:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
dependencies:
- eventemitter3 "^3.0.0"
+ eventemitter3 "^4.0.0"
follow-redirects "^1.0.0"
requires-port "^1.0.0"
-http-server@^0.11.1:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.11.1.tgz#2302a56a6ffef7f9abea0147d838a5e9b6b6a79b"
- integrity sha512-6JeGDGoujJLmhjiRGlt8yK8Z9Kl0vnl/dQoQZlc4oeqaUoAKQg94NILLfrY3oWzSyFaQCVNTcKE5PZ3cH8VP9w==
- dependencies:
- colors "1.0.3"
- corser "~2.0.0"
- ecstatic "^3.0.0"
- http-proxy "^1.8.1"
- opener "~1.4.0"
- optimist "0.6.x"
- portfinder "^1.0.13"
- union "~0.4.3"
+http-server@^0.12.3:
+ version "0.12.3"
+ resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37"
+ integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==
+ dependencies:
+ basic-auth "^1.0.3"
+ colors "^1.4.0"
+ corser "^2.0.1"
+ ecstatic "^3.3.2"
+ http-proxy "^1.18.0"
+ minimist "^1.2.5"
+ opener "^1.5.1"
+ portfinder "^1.0.25"
+ secure-compare "3.0.1"
+ union "~0.5.0"
http-signature@~1.2.0:
version "1.2.0"
@@ -4106,7 +4121,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -4122,9 +4137,9 @@ inherits@2.0.3:
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
- integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
inquirer@1.2.3:
version "1.2.3"
@@ -5232,10 +5247,10 @@ lodash@4.17.5:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==
-lodash@^4.0.1, lodash@^4.16.6, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0:
- version "4.17.13"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.13.tgz#0bdc3a6adc873d2f4e0c4bac285df91b64fc7b93"
- integrity sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA==
+lodash@^4.0.1, lodash@^4.16.6, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-symbols@^1.0.2:
version "1.0.2"
@@ -5502,7 +5517,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
+minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
@@ -5534,30 +5549,35 @@ minimist@0.0.8:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
+minimist@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
-minipass@^2.2.1, minipass@^2.3.4:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
- integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
+minipass@^2.6.0, minipass@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
+ integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
dependencies:
safe-buffer "^5.1.2"
yallist "^3.0.0"
-minizlib@^1.1.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
- integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
+minizlib@^1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
+ integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
dependencies:
- minipass "^2.2.1"
+ minipass "^2.9.0"
mississippi@^3.0.0:
version "3.0.0"
@@ -5583,13 +5603,20 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
+mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
+mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
mkpath@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d"
@@ -5696,9 +5723,9 @@ negotiator@0.6.1:
integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
neo-async@^2.5.0, neo-async@^2.6.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
- integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
netmask@~1.0.4:
version "1.0.6"
@@ -5986,10 +6013,10 @@ opencollective@1.0.3:
node-fetch "1.6.3"
opn "4.0.2"
-opener@~1.4.0:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
- integrity sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=
+opener@^1.5.1:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
+ integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
opn@4.0.2:
version "4.0.2"
@@ -5999,7 +6026,7 @@ opn@4.0.2:
object-assign "^4.0.1"
pinkie-promise "^2.0.0"
-optimist@0.6.1, optimist@0.6.x, optimist@^0.6.1:
+optimist@0.6.1, optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
@@ -6373,14 +6400,14 @@ pluralize@^7.0.0:
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
-portfinder@^1.0.13:
- version "1.0.20"
- resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a"
- integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==
+portfinder@^1.0.25:
+ version "1.0.28"
+ resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
+ integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
dependencies:
- async "^1.5.2"
- debug "^2.2.0"
- mkdirp "0.5.x"
+ async "^2.6.2"
+ debug "^3.1.1"
+ mkdirp "^0.5.5"
posix-character-classes@^0.1.0:
version "0.1.1"
@@ -6560,10 +6587,10 @@ qs@6.5.2, qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
-qs@~2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404"
- integrity sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=
+qs@^6.4.0:
+ version "6.9.4"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687"
+ integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==
querystring-es3@^0.2.0:
version "0.2.1"
@@ -7066,7 +7093,12 @@ rxjs@^6.1.0, rxjs@^6.3.3:
dependencies:
tslib "^1.9.0"
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1:
+ 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"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -7123,6 +7155,11 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
+secure-compare@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3"
+ integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=
+
selenium-server@^2.53.1:
version "2.53.1"
resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-2.53.1.tgz#d681528812f3c2e0531a6b7e613e23bb02cce8a6"
@@ -7494,9 +7531,9 @@ sshpk@^1.7.0:
tweetnacl "~0.14.0"
ssri@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
- integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
+ integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
dependencies:
figgy-pudding "^3.5.1"
@@ -7717,17 +7754,17 @@ tapable@^1.0.0, tapable@^1.1.0:
integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==
tar@^4:
- version "4.4.8"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
- integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==
- dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.3.4"
- minizlib "^1.1.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.2"
+ version "4.4.19"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
+ integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==
+ dependencies:
+ chownr "^1.1.4"
+ fs-minipass "^1.2.7"
+ minipass "^2.9.0"
+ minizlib "^1.3.3"
+ mkdirp "^0.5.5"
+ safe-buffer "^5.2.1"
+ yallist "^3.1.1"
tcp-port-used@^1.0.1:
version "1.0.1"
@@ -7957,12 +7994,9 @@ typescript@^3.6.4:
integrity sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==
uglify-js@^3.1.4:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.1.tgz#ae7688c50e1bdcf2f70a0e162410003cf9798311"
- integrity sha512-+dSJLJpXBb6oMHP+Yvw8hUgElz4gLTh82XuX68QiJVTXaE5ibl6buzhNkQdYhBlIhozWOC9ge16wyRmjG4TwVQ==
- dependencies:
- commander "2.20.0"
- source-map "~0.6.1"
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.0.tgz#66ed69f7241f33f13531d3d51d5bcebf00df7f69"
+ integrity sha512-TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w==
ultron@~1.1.0:
version "1.1.1"
@@ -8002,12 +8036,12 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^0.4.3"
-union@~0.4.3:
- version "0.4.6"
- resolved "https://registry.yarnpkg.com/union/-/union-0.4.6.tgz#198fbdaeba254e788b0efcb630bc11f24a2959e0"
- integrity sha1-GY+9rrolTniLDvy2MLwR8kopWeA=
+union@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075"
+ integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==
dependencies:
- qs "~2.3.3"
+ qs "^6.4.0"
unique-filename@^1.1.1:
version "1.1.1"
@@ -8042,9 +8076,9 @@ upath@^1.0.5:
integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==
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.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
@@ -8338,19 +8372,19 @@ xtend@^4.0.0, xtend@~4.0.1:
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
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==
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
+ integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-yallist@^3.0.0, yallist@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
- integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
+yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yauzl@2.4.1:
version "2.4.1"